Operations Security

Mã độc JavaScript và xu hướng tấn công

CyStack Avatar

Trung Nguyen

CEO @CyStack|April 5, 2023


Những tên tội phạm mạng bắt đầu tập trung vào một loại “vũ khí” mới. Phương thức này giúp chúng dễ dàng lây lan phần mềm độc hại trên hàng ngàn máy tính. Đó là tấn công bằng mã độc JavaScript.
Khai thác JavaScript để tấn công mạng không phải mới xuất hiện, nhưng tần suất sử dụng véc-tơ này đang ngày một tăng cao. Xu hướng này đã thu hút sự chú ý của nhiều cá nhân và tổ chức nghiên cứu về an ninh mạng. Sự nguy hiểm trong các cuộc tấn công này nằm ở một khía cạnh quan trọng. Phần mềm độc hại được phân phối qua tệp JavaScript bị nhiễm mà không cần tương tác với người dùng.
Vì vậy, chúng tôi muốn đưa ra định nghĩa về mã độc JavaScript theo thuật ngữ đơn giản nhất. Qua đó bất kỳ ai cũng có thể học cách chống lại mối đe dọa này và bảo vệ dữ liệu của mình
Hướng dẫn bảo mật này bao gồm 6 nội dung, qua đó người dùng có thể:

  1. Tìm hiểu sự khác biệt giữa Java và JavaScript
  2. Hiểu cách hoạt động của phần mềm độc hại trên JavaScript
  3. Tìm hiểu lý do tội phạm mạng hiện nay tập trung vào các cuộc tấn công JavaScript
  4. Khám phá mã độc JavaScript lây lan như thế nào
  5. Tìm hiểu về các loại phần mềm độc hại dùng JavaScript để lây nhiễm
  6. Tìm hiểu cách bảo vệ bản thân khỏi phần mềm độc hại sử dụng JavaScript

Sự khác nhau giữa Java và JavaScript

Hầu hết người dùng thường bị lẫn lộn giữa Java và JavaScript, vì chúng có tên tương tự nhau. Cách đặt tên thiếu sáng tạo này đã gây ra không ít rắc rối. Vậy trước hết chúng ta nên tìm hiểu định nghĩa về chúng.
JavaScript là ngôn ngữ lập trình được phát triển bởi Netscape Inc. và nó không phải là một phần của nền tảng Java.
JavaScript là một trong 3 công nghệ cốt lõi được sử dụng để tạo nội dung cho website, cùng với HTML và CSS.
Hầu hết các website đều sử dụng JavaScript và nó cũng được hỗ trợ bởi tất cả các trình duyệt web hiện đại mà không cần plugin.
Bạn cũng có thể tìm thấy tệp JavaScript trong tài liệu PDF hoặc tiện ích trên máy tính để bàn. Chẳng hạn như các tiện ích thời tiết trong Windows 7:

Hình ảnh 1. Tiện ích thời tiết trong Windows 7
                    Tiện ích thời tiết trong Windows 7


hay trên máy tính, JavaScript được thể hiện như sau:

Hình ảnh 2. JavaScript trên máy tính của bạn
JavaScript trên máy tính


Còn Java là một ngôn ngữ lập trình máy tính đa năng được phát triển bởi Sun Microsystems. Java không phải là viết tắt của JavaScript. Nó là một ngôn ngữ lập trình/nền tảng hoàn toàn khác.
Vậy nên, bạn chỉ cần nhớ rằng hai thuật ngữ này về cơ bản là hai vấn đề khác nhau và không có bất cứ kết nối nào.

Phương thức hoạt động của mã độc JavaScript

Bây giờ bạn đã biết JavaScript là gì. Đã đến lúc bạn nên tìm hiểu tội phạm mạng sử dụng ngôn ngữ lập trình này như thế nào.
Những tên tội phạm mạng thường xuyên sử dụng mã này trên vô số trang web để thực hiện các hành động phá hoại. Tuy nhiên, JavaScript không phải là một ngôn ngữ lập trình không an toàn. Kẻ tấn công chỉ có thể khai thác các mã được triển khai sai cách thức hoặc mã lỗi để tạo ra backdoor.
Khi bạn duyệt qua một trang web, một loạt các tệp JavaScript (.js) được tự động tải xuống máy tính. Các tệp này hoạt động thông qua trình duyệt, vì vậy bạn có thể:

  •  Xem nội dung của trang web bạn đang truy cập.
  •  Thực hiện các hành động khác nhau (ví dụ: điền vào biểu mẫu hoặc tải xuống tệp từ trang web).
  •  Xem quảng cáo trực tuyến (biểu ngữ) trên trang web đó, v.v.

Những tên tội phạm mạng thường xuyên nhắm tới thói quen duyệt trực tuyến của người dùng và chuyển hướng truy cập của họ tới các trang web bị nhiễm mã độc. Trang này do chúng tạo ra hoặc có thể là các trang web hợp pháp đã bị chúng tấn công.
Một trang web bị nhiễm được định nghĩa như sau:

  • Khi trang web bị tội phạm mạng cài mã độc JavaScript.
  • Trang web bị tấn công hiển thị các quảng cáo / biểu ngữ , thông qua mã độc JavaScript.
  • Trang web bị cài mã độc JavaScript vào cơ sở dữ liệu.
  • Kẻ tấn công đăng tải nội dung độc hại hoặc phần mềm độc hại lên trang web bởi máy chủ từ xa.

Bởi vậy, tệp JavaScript độc hại sẽ được tải xuống máy tính khi bạn tình cờ duyệt qua một trang web bị nhiễm độc
Đây được gọi là cuộc tấn công drive-by và thường bao gồm 9 giai đoạn:
(1) Bạn, với tư cách là người dùng, vô tình duyệt qua trang web bị xâm nhập.
(2) Các tệp JavaScript độc hại được tải xuống hệ thống của bạn.
(3) Thông qua trình duyệt của bạn, chúng được kích hoạt và thực hiện việc lây nhiễm phần mềm độc hại.
(4) Các tệp JavaScript bị nhiễm âm thầm chuyển hướng lưu lượng truy cập Internet tới một máy chủ khai thác.
(5) Exploit kit được sử dụng trong cuộc tấn công (lưu trữ trên máy chủ khai thác) khảo sát hệ thống của bạn để tìm kiếm các lỗ hổng bảo mật.
(6) Một khi exploit kit tìm thấy lỗ hổng, nó sẽ sử dụng các lỗ hổng này để truy cập vào các chức năng của máy tính.
(7) Điều này cho phép exploit kit thực thi mã và dùng quyền quản trị viên để tải các tệp bổ sung từ Internet.
(8) Trong bước tiếp theo, phần mềm độc hại sẽ được tải xuống PC và bắt đầu hoạt động.
(9) Phần mềm độc hại có thể thực hiện các chức năng gây hại trên PC. Nó cũng có thể thu thập thông tin từ hệ thống bị nhiễm và gửi nó đến các máy chủ được kiểm soát bởi tội phạm mạng.

Cách thức sử dụng mã độc JavaScript trong các cuộc tấn công drive-by
Cách thức sử dụng mã độc JavaScript trong các cuộc tấn công drive-by


Chỉ mất vài giây để tất cả những điều này xảy ra! Bạn thậm chí không bấm vào bất cứ thứ gì mà vẫn tạo ra chuỗi lây nhiễm phần mềm độc hại này. Cuộc tấn công drive-by rất nguy hiểm vì người dùng không thể thấy được cách thức hoạt động của chúng. Tất cả những giai đoạn chúng tôi vừa mô tả chỉ xảy ra trong nền và chúng phát triển cực nhanh.

Tại sao các tội phạm mạng hiện nay tập trung vào các cuộc tấn công JavaScript?

93,6% trang web hiện nay sử dụng JavaScript (Nguồn: w3techs.com). Đó là lý do vì sao những kẻ tấn công trực tuyến lại tập trung vào chúng. Các trang web phụ thuộc rất nhiều vào JavaScript để hiển thị nội dung và thực hiện thao tác.
Tội phạm mạng thường xâm nhập các trang web có lưu lượng truy cập cao, hợp pháp và sử dụng chúng để chuyển hướng người dùng tới các trang web độc hại. Các nạn nhân không hề biết về những gì đang xảy ra. Vì vậy phần mềm độc hại có thể lây lan sang hàng triệu máy tính cá nhân. Sự lây nhiễm thường kết nối các máy tính này vào mạng botnet. Sau đó, nó sẽ được sử dụng để gây ra các cuộc tấn công khác. Chu kỳ đó cứ thế diễn ra liên tục.
Tội phạm mạng ngày càng quan tâm đến việc sử dụng JavaScript trong các cuộc tấn công phần mềm độc hại. Vì ử dụng các tệp này sẽ dễ dàng hơn trong việc ẩn chuyển hướng truy cập của người dùng.

Mã độc JavaScript lây lan như thế nào?

JavaScript được sử dụng để lây lan phần mềm độc hại qua 8 cách thức phổ biến dưới đây:

  1. Mã độc JavaScript lây lan vào các trang web hợp pháp – được sử dụng để chuyển hướng người dùng đến các trang web chứa phần mềm độc hại hoặc để khai thác các máy chủ gây nhiễm phần mềm độc hại.
  2. Các iFrames ẩn – tải mã độc JavaScript từ các trang web bị xâm nhập, sau đó cố gắng thực thi mã trong trình duyệt để xâm nhập vào máy tính.
  3. Cài mã độc JavaScript vào mạng quảng cáo trực tuyến – xuất hiện trong quảng cáo biểu ngữ trực tuyến, cũng có thể chuyển hướng người dùng đến các trang độc hại trên web.
  4. Tự động tải xuống (Drive-by Download) – sử dụng các tệp JavaScript bị nhiễm để khởi chạy các phần mềm độc hại.
  5. Các tập tin đính kèm mã độc JavaScript – được chạy qua một chương trình Windows. Nó có thể kích hoạt các phần mềm độc hại bên ngoài trình duyệt.
  6. Các lượt tải xuống bị nhiễm được kích hoạt thông qua các đoạn mã JavaScript bị xâm nhập. Chẳng hạn như các sản phẩm diệt vi rút giả mạo. Những thứ này có thể phá hủy hoàn toàn hệ thống của bạn.
  7. Tiện ích và plugin của trình duyệt – có thể bị nhiễm hoặc có thể tải các nội dung kèm phần mềm độc hại từ các nguồn bên ngoài.
  8. Các tin pop-up giả mạo của phần mềm – những kẻ lừa đảo trên mạng có thể dễ dàng biến chúng trở nên nhìn rất thật và thuyết phục.

Tìm hiểu về các loại phần mềm độc hại nhắm mục tiêu JavaScript để phân phối

Có rất nhiều phần mềm độc hại sử dụng JavaScript để lây nhiễm. Những tội phạm mạng rất giỏi theo kịp thời đại. Chúng nhanh chóng tạo ra ransomware đầu tiên phát triển 100% trong JavaScript, được gọi là Ransom32.
Sáu tháng sau, một loại ransomware mới gọi là RAA xuất hiện. Tính năng của nó làm chúng ta bất ngờ: “JavaScript không tải xuống ransomware, nó chính là ransomware. Không có phần mềm bổ sung nào được tải xuống. Vì vậy khi tệp tin phần mềm độc hại JS / Ransom-DDL nằm trong mạng của bạn, nó đã sẵn sàng để mã hóa dữ liệu và tự động đưa ra thông điệp về tiền chuộc”. (Nguồn: Blog Naked Security của Sophos)
Nhưng ransomware không phải là loại phần mềm độc hại duy nhất sử dụng các tệp JavaScript để lây lan. Các loại phần mềm độc hại khác được phân phối thông qua véc-tơ này bao gồm phần mềm độc hại về tài chính (Shylock), hoặc phần mềm độc hại gắn các máy tính bị ảnh hưởng vào các botnet.
Một khi những tên tội phạm thành công trong việc đưa mã độc vào một trang web hoặc điều khiển mã hiện có theo ý định của chúng, chúng có thể cài đặt bất kỳ phầm mềm độc hại nào vào các máy tính cá nhân của nạn nhân và sử dụng nó.

Tìm hiểu cách bảo vệ thiết bị của mình khỏi phần mềm độc hại sử dụng JavaScript

Hàng ngày, người dùng có thể áp dụng một số quy tắc đơn giản để bảo vệ thiết bị an toàn hơn với phần mềm độc hại JavaScript cũng như các mối đe dọa khác
Các quy tắc này bao gồm:

  • Giữ cho phần mềm luôn được cập nhật (trình duyệt, ứng dụng, hệ điều hành, v.v …)
  • Sử dụng một sản phẩm chống virus mạnh với khả năng mở rộng
  • Cài đặt một giải pháp lọc lưu lượng truy cập để chủ động trong bảo mật
  • Không bao giờ nhấp vào liên kết trong các email không mong muốn (spam)
  • Không bao giờ tải và mở tệp đính kèm trong email spam
  • Tránh xa các trang web đáng ngờ.

Và nếu bạn muốn chắc chắn hơn nữa, hãy điều chỉnh một vài cài đặt trong trình duyệt Chrome.
Nếu bạn muốn tắt hoặc bật JavaScript cho tất cả các trang web:

  • Nhấp vào menu Chrome ở góc bên phải trên cùng của trình duyệt
  • Chọn cài đặt
  • Nhấp vào Hiển thị cài đặt nâng cao
  • Trong phần “Bảo mật”, hãy nhấp vào nút Cài đặt nội dung.
  • Trong phần “Javascript”, hãy chọn “Không cho phép bất kỳ trang web nào chạy JavaScript” hoặc “Cho phép tất cả các trang web chạy JavaScript (được khuyến nghị)”

(Nguồn: Chrome Help)

Hình ảnh 4. Cài đặt JavaScript trên Chrome
Cài đặt JavaScript trên Chrome


Nếu bạn chọn “Không cho phép bất kỳ trang web nào chạy JavaScript”, bạn có thể thiết lập một số ngoại lệ cho các trang web đáng tin cậy để sử dụng đầy đủ các tính năng của những trang web đó.
Nếu bạn là người dùng Firefox, bạn có thể thử phần mở rộng NoScript.
Phần mở rộng NoScript Firefox cung cấp khả năng bảo vệ bổ sung cho Firefox, Seamonkey và các trình duyệt dựa trên mozilla khác. Trình cắm thêm mã nguồn mở miễn phí này cho phép JavaScript, Java, Flash và các plugin khác được thực hiện bởi các trang web đáng tin cậy mà bạn đã chọn (ví dụ ngân hàng trực tuyến của bạn).

Tóm lại

Xu hướng tấn công bằng mã độc JavaScript ngày càng tăng làm cho các cá nhân, doanh nghiệp vô cùng lo lắng. Nhưng bạn sẽ không phải chiến đấu đơn độc. Chúng tôi đang làm việc liên tục để xây dựng những trang web an toàn cho người sử dụng. Hãy liên hệ với chúng tôi ngay để có chọn cho mình một giải pháp trực tuyến chuyên nghiệp.

Bài viết liên quan

6 lý do doanh nghiệp nên lựa chọn đơn vị bảo mật hỗ trợ tuân thủ Nghị định 13
6 lý do doanh nghiệp nên lựa chọn đơn vị bảo mật hỗ trợ tuân thủ Nghị định 13
15/11/2023|Operations Security

Việc Chính phủ ban hành Nghị định 13/2023/NĐ-CP về Bảo mật dữ liệu cá nhân đã tạo nên một tác động đáng kể đối với nhiều doanh nghiệp tại Việt Nam. Tuân thủ và bảo vệ dữ liệu cá nhân không chỉ đòi hỏi nhiều thời gian và công sức lớn mà còn có thể …

Những thách thức của Nghị định 13 đối với doanh nghiệp vừa và nhỏ
Những thách thức của Nghị định 13 đối với doanh nghiệp vừa và nhỏ
13/11/2023|Operations Security

Sự ra đời của Nghị định 13/2023/NĐ-CP có ý nghĩa quan trọng trong sự phát triển công nghệ thông tin nói chung và việc bảo vệ dữ liệu cá nhân nói riêng tại Việt Nam. Song, văn bản này cũng đặt ra những thách thức đáng kể cho các doanh nghiệp, đặc biệt là những …

Downtime là gì? Cách giảm tình trạng downtime của website
Downtime là gì? Cách giảm tình trạng downtime của website
21/09/2023|Operations Security

Bạn cần biết những gì về thời gian downtime của website? Mặc dù hầu hết các website và dịch vụ web đều cố gắng hạn chế thời gian downtime (thời gian chết của website), đó vẫn là điều không thể tránh khỏi.