Câu hỏi cụ thể của bạn
Tôi hiểu rằng rõ ràng tôi có thể bị nhiễm vi-rút bằng cách tải xuống và thực thi .exe trong Windows nhưng làm cách nào tôi có thể bị nhiễm vi-rút chỉ bằng cách truy cập trang web?
Trình duyệt của bạn đang thực thi mã mọi lúc (nó được làm bằng mã). Khi nó tải xuống các trang web, mã đó đang tải xuống và hiển thị dữ liệu tùy ý (pixel, characers, v.v.).
Mã cũng là dữ liệu (ở cấp bộ xử lý).
Vì mã là dữ liệu, nếu trình duyệt của bạn cố gắng thực thi dữ liệu (bất kể phần mở rộng hoặc định dạng tệp là gì), nó thực sự có thể chạy (nếu được tạo chính xác).
Thông thường trình duyệt của bạn sẽ không ngu ngốc đến mức cố chạy dữ liệu ngẫu nhiên mà nó đã tải xuống. Tuy nhiên, điều này có thể xảy ra.
Một cách để làm điều này là hình thành dữ liệu theo cách mà khi đọc, nó sẽ "rò rỉ" và ghi đè lên dữ liệu tạo nên chương trình thực thi của trình duyệt. Điều này đòi hỏi trình duyệt phải có một lỗi (phổ biến nhất trong trường hợp này, cho phép tràn bộ đệm ).
Trình duyệt của bạn cũng chạy các chương trình trên đầu trang web. Javascript, như bạn đã đề cập, là một loại mã như vậy. Nhưng có hàng tá. ActiveX, Flash, add-on, script khỉ, v.v ... là tất cả các mã mà bạn đang chạy khi truy cập các trang web. Mã này có thể chứa các lỗi gây ra lỗi bảo mật.
Những virus này tấn công cả người dùng Windows, Mac và Linux hay người dùng Mac / Linux có miễn dịch không?
Không có nền tảng nào chúng tôi sử dụng hoàn toàn miễn dịch với các lỗi, bởi vì tất cả chúng đều sử dụng các bộ xử lý coi dữ liệu là mã. Đây chỉ đơn giản là cách kiến trúc máy tính hiện tại của chúng tôi hoạt động.
Lý do cho huyền thoại này là Mac và Linux có tỷ lệ chấp nhận thấp hơn nhiều so với các máy Windows (ở cấp độ máy tính để bàn). Vì vậy, phần mềm máy tính để bàn trên các máy này không phải là mục tiêu phổ biến cho các nhà sản xuất vi-rút.
Vi-rút không xảy ra bằng phép thuật, hoặc do tiến hóa lập trường xảy ra (như vi-rút sinh học làm). Nó là phần mềm được viết bởi các cá nhân, hoặc nhóm các nhà phát triển. Và họ muốn nhắm mục tiêu thị phần lớn nhất, giống như cách các nhà cung cấp phần mềm thông thường làm.
Về việc một virus có thể nhắm mục tiêu nhiều nền tảng hay không; Tất cả các trình duyệt đang chạy mã khác nhau, do đó sẽ có các lỗi khác nhau (thậm chí cùng một trình duyệt trên các nền tảng khác nhau). Nhưng có một số thư viện mã được chia sẻ trên các nền tảng. Nếu một thư viện như vậy chứa lỗi, có thể việc khai thác có thể tồn tại trên nhiều nền tảng.
Nhưng, tùy thuộc vào loại tấn công được thực hiện, một vi-rút được viết cho máy Mac không phải của Intel có thể không hoạt động trên máy Mac của Intel và ngược lại, vì chúng có bộ xử lý khác nhau. Đối với các bộ xử lý khác nhau, dữ liệu đại diện cho mã có định dạng khác nhau.
Tuy nhiên, khi bạn nói về một máy ảo hoặc ngôn ngữ kịch bản, các cuộc tấn công có thể độc lập với nền tảng. Điều đó dẫn chúng ta đến câu hỏi tiếp theo ...
Các virus có được lập trình trong JavaScript không?
Một số virus là. Thông tin tôi đã nêu ở trên (về khai thác tràn bộ đệm) thường sẽ được sử dụng như một cuộc tấn công bên ngoài Javascript, nhưng cũng có thể áp dụng tốt cho một vi rút được tạo ra để tấn công khai thác trong trình thông dịch Javascript.
Javascript cũng sẽ có bộ khai thác riêng, ở cấp độ hoạt động vượt quá bộ đệm. Có rất nhiều cách để tấn công bất kỳ phần mềm nào. Phần mềm càng lớn (dòng mã), càng có nhiều loại đầu vào của người dùng (trong trường hợp này là các loại mã) có khả năng nhận được và càng có nhiều lỗi.
Ngoài ra, một phần mềm đang chạy càng lộ ra (ví dụ như phần mềm chạy máy chủ) thì càng dễ bị tấn công.
Nói chung, đây được gọi là Tấn công bề mặt
Khai thác nói chung
Microsoft có một bản ghi nhớ cho các loại khai thác phổ biến và tất cả chúng đều có các thuộc tính thú vị riêng và các cấp độ phần mềm khác nhau mà chúng có thể tấn công - STRIDE , viết tắt của:
Spoofing (of user identity)
Tampering
Repudiation
Information disclosure (privacy breach or Data leak)
Denial of Service (D.o.S.)
Elevation of privilege
Một số trong số này có nhiều khả năng được sử dụng trong một cuộc tấn công dựa trên Javascript so với những người khác, một số trên máy chủ, một số trên các tệp dữ liệu (như hình ảnh).
Nhưng an ninh là một lĩnh vực lớn và đang phát triển. Thực sự có quá nhiều thông tin để trả lời hoàn toàn tất cả các câu hỏi của bạn.