Phần này mình sẽ giới thiệu cho bạn các khái niệm liên quan đến virus và worm (sâu máy tính). Ngoài ra, chúng ta cũng thảo luận về các giai đoạn trong vòng đời của một virus và cách hoạt động của virus cùng với lý do tại sao người ta tạo ra virus, dấu hiệu của một cuộc tấn công virus cũng như các công cụ giả mạo phần mềm diệt virus và ransomware.
Phần này còn nhấn mạnh các loại virus và phân loại theo nguồn gốc của chúng, các kỹ thuật được sử dụng để xâm nhập vào hệ thống mục tiêu, các loại file chúng xâm nhiễm, nơi chúng ẩn nấp, các thiệt hại chúng gây ra cũng như các hệ điều hành chúng hoạt động, …
Tổng quan về Virus
Virus là mối đe dọa của ngành công nghiệp máy tính hiện đại. Virus có khả năng gây hủy hoại cả trong môi trường kinh doanh lẫn máy tính cá nhân. Tuổi thọ của một virus phụ thuộc vào khả năng tự nhân bản. Vì vậy, hacker sẽ thiết kế virus sao cho nó tự động nhân bản n lần.
Virus máy tính là gì
Virus máy tính là một chương trình tự nhân bản, tạo ra bản sao của chính nó bằng cách gắn vào code thực thi khác và hoạt động mà không cần sự đồng ý của người dùng. Giống như một vi khuẩn sinh học, virus lây nhiễm và có thể xâm nhập vào các file khác; tuy nhiên, virus chỉ có thể lây nhiễm vào máy tính khác khi có sự trợ giúp từ con người.
Một số virus tác động đến máy tính ngay khi code của chúng được thực thi, trong khi những virus khác sẽ tồn tại ẩn dưới dạng nguyên bản cho đến khi đáp ứng được một điều kiện logic đã được định trước. Virus có thể lây nhiễm vào nhiều loại file, bao gồm các file overlay (.OVL) và file thực thi (.EXE, .SYS, .COM hoặc .BAT). Chúng được truyền qua internet, qua ổ flash, và qua các file đính kèm email.
Một số đặc điểm của virus
- Lây nhiễm vào các chương trình khác
- Tự biến đổi
- Mã hóa chính nó
- Thay đổi dữ liệu
- Gây hỏng hệ thống file
- Tự nhân bản
Mục đích của việc tạo ra virus
- Gây thiệt hại cho đối thủ cạnh tranh
- Đạt lợi ích tài chính
- Phá hoại tài sản trí tuệ
- Trêu đùa
- Nghiên cứu
- Tham gia vào khủng bố mạng
- Phân phối thông điệp chính trị
- Gây thiệt hại cho mạng hoặc máy tính
- Giành quyền truy cập từ xa
Dấu hiệu của tấn công virus
Các dấu hiệu của tấn công bởi virus phát sinh từ các hoạt động bất thường. Những hoạt động này phản ánh tính chất của một virut bằng cách làm gián đoạn luồng thông thường của một tiến trình hoặc một chương trình. Tuy nhiên, không phải tất cả các lỗi đều nhằm mục đích tấn công hệ thống; chúng có thể chỉ là false positive (báo hiệu sai). Ví dụ nếu hệ thống chạy chậm hơn bình thường, người ta có thể nghĩ rằng do virus, tuy nhiên nguyên nhân thực tế có thể là quá tải.
Một virus nguy hiểm có xu hướng nhân bản nhanh chóng và có thể lây nhiễm trong một thời gian ngắn. Virus có thể lây nhiễm vào các file trên hệ thống, và khi các file đó được truyền đi, chúng có thể nhiễm sang các máy tính khác. Người dùng sẽ có thể nhận ra một số dấu hiệu cho thấy sự tồn tại của nhiễm virus như sau:
- Các tiến trình yêu cầu nhiều tài nguyên, gây giảm hiệu suất
- Máy tính phát ra tiếng beep
- Thay đổi tên ổ đĩa và hệ điều hành boot được
- Các cảnh báo antivirus liên tục
- Máy tính bị đóng băng thường xuyên hoặc gặp lỗi như BSOD (Blue Screen of Death)
- Các file và thư mục bị thiếu
- Trình duyệt “đông đứng”
- Thiếu không gian lưu trữ
- Quảng cáo không mong muốn
Vòng đời của Virus
Vòng đời của virus bao gồm 6 giai đoạn như sau:
- Design: Lập trình virus bằng cách sử dụng ngôn ngữ lập trình hoặc công cụ xây dựng.
- Replication: Virus nhân bản trong một khoảng thời gian trên hệ thống mục tiêu và sau đó lan truyền chính nó.
- Launch: Virus được kích hoạt khi người dùng thực hiện các hành động cụ thể như chạy một chương trình bị nhiễm virus.
- Detection: Virus được xác định là mối đe dọa nhiễm vào hệ thống mục tiêu.
- Incorporation: Thực hiện tích hợp các biện pháp phòng vệ chống lại virus.
- Execution of the damage routine: Người dùng cài đặt các cập nhật phần mềm diệt virus và loại bỏ mối đe dọa từ nó.
Cách hoạt động của Virus
Infection Phase
Hai yếu tố quan trọng nhất trong giai đoạn lây nhiễm của một virus là phương pháp lây nhiễm và phương pháp lan truyền. Một virus lây nhiễm vào hệ thống theo thứ tự sau:
- Virus tải chính nó vào bộ nhớ và kiểm tra xem có chương trình thực thi trên đĩa không.
- Virus gắn thêm mã độc vào một chương trình hợp lệ mà không có sự cho phép của người dùng.
- Người dùng không nhận ra sự thay đổi và khởi chạy chương trình bị nhiễm.
- Việc thực thi của chương trình bị nhiễm giúp lây nhiễm cho các chương trình khác trên hệ thống.
- Chu kỳ trên tiếp tục cho đến khi người dùng nhận ra có sự bất thường trong hệ thống.
Cách mà virus tấn công vào hệ thống mục tiêu rất đa dạng. Chúng có thể gắn vào các chương trình và lây nhiễm chúng các chương trình khác thông qua các sự kiện cụ thể. Virus cần có các sự kiện đó xảy ra vì chúng không thể tự khởi động. Các loại virus khác nhau có cách lây nhiễm khác nhau, ví dụ:
- File virus lây nhiễm bằng cách gắn kết vào một chương trình thực thi trong hệ thống. Các mục tiêu tiềm năng cho nhiễm virut bao gồm source code, các file batch, file script, …
- Boot sector virus thực thi code của nó trước khi máy tính khởi động.
Virus lan truyền theo nhiều cách khác nhau. Có những virus máy tính lây nhiễm và tiếp tục lan truyền mỗi khi người dùng thực thi tuy nhiên một số virus lại không lây nhiễm ngay khi chúng được thực thi lần đầu. Chúng thường lưu trữ trong bộ nhớ và lây nhiễm các chương trình sau đó. Những chương trình virut như vậy chờ sự kiện kích hoạt cụ thể để lan truyền ở giai đoạn sau. Do đó, khó nhận biết được sự kiện nào có thể kích hoạt chúng. Như được minh họa trong hình trên, header của file .EXE, khi file này bị nhiễm virus, bất kỳ sự kiện kích hoạt nào từ phần header của file có thể kích hoạt code virus cùng với chương trình ứng dụng ngay sau khi thực thi.
Attack Phase
Hầu hết các virus thực hiện các hành động sau:
- Xóa file và thay đổi nội dung của các file dữ liệu, làm chậm hệ thống.
- Thực hiện các tác vụ không liên quan đến ứng dụng.
Trong hình trên, có hai file A và B. Trước khi bị tấn công, hai file này được sắp xếp đứng liền kề nhau theo một trật tự nhất định. Khi virus nhiễm vào, nó thay đổi vị trí của các file được đặt liên tiếp, dẫn đến sai lệch trong việc phân bổ file và làm cho hệ thống chậm đi khi người dùng cố gắng truy xuất.
Phân loại Virus máy tính
Virus máy tính được phân loại dựa trên cách thức hoạt động và mục tiêu của chúng. Dưới đây là một số loại virus máy tính phổ biến nhất:
- System or Boot Sector Virus
- File Virus
- Multipartite Virus
- Macro Virus
- Cluster Virus
- Stealth/Tunneling Virus
- Encryption Virus
- Sparse Infector Virus
- Polymorphic Virus
- Metamorphic Virus
- Overwriting File or Cavity Virus
- Companion Virus/Camouflage Virus
- Shell Virus
- File Extension Virus
- FAT Virus
- Logic Bomb Virus
- Web Scripting Virus
- Email Virus
- Armored Virus
- Add-on Virus
- Intrusive Virus
- Direct Action or Transient Virus
- Terminate and Stay Resident Virus (TSR)
System or Boot Sector Viruses
Mục tiêu phổ biến nhất của virus là các phần của hệ thống, bao gồm master boot record (MBR) và các DOS boot record system sector. Hệ điều hành thực thi code trong những khu vực này trong quá trình khởi động. MBR là vùng dễ bị nhiễm virus nhất, vì nếu MBR bị hỏng, tất cả dữ liệu sẽ bị mất. Phần boot record system sector cũng được thực thi trong quá trình khởi động và đây là một điểm tấn công quan trọng cho virus.
System sector chỉ gồm 512 byte không gian đĩa. Do đó, system sector virus ẩn code của chúng trong một không gian đĩa khác. Các phương tiện chuyển đổi chính của system sector virus là file đính kèm trong email và thiết bị đĩa ngoại vi như USB. Các virus như vậy tồn tại trong bộ nhớ. Một số sector virus cũng lan truyền thông qua các file bị nhiễm; chúng được gọi là multisector virut.
System sector virus di chuyển MBR sang vị trí khác trên ổ cứng và sao chép chính nó vào vị trí ban đầu của MBR.
Một cách để đối phó với virus này là tránh sử dụng hệ điều hành Windows và chuyển sang sử dụng Linux hoặc Mac, vì Windows dễ bị tấn công hơn. Linux và Macintosh có các biện pháp bảo vệ tích hợp để chống lại những virus như vậy.
File Viruses
File viruses dịch tạm là virus tập tin. Các loại virus tập tin lây nhiễm vào các file thực thi hoặc dịch mã như file COM, EXE, SYS, OVL, OBJ, PRG, MNU và BAT. Có hai loại virus tập tin: virus direct-action (không cư trú) và virus memory-resident cư trú trong bộ nhớ. Mặc dù hiếm, nhưng số lượng virus này khá đa dạng. Chúng lây nhiễm theo nhiều cách và xuất hiện trong nhiều loại file khác nhau.
Loại virus tập tin phổ biến nhất hoạt động bằng cách xác định loại file dễ bị nhiễm như file kết thúc bằng .COM hoặc .EXE. Trong quá trình chạy chương trình, virus cùng chạy để nhiễm thêm file khác. Loại virus này thường được phát hiện ngay lập tức. Trước khi chèn code vào chương trình, chúng lưu trữ các lệnh gốc và chạy chương trình nguyên bản để mọi thứ trông như bình thường.
Virus tập tin ẩn mình bằng cách sử dụng kỹ thuật che giấu để cư trú trong bộ nhớ máy tính tương tự như sector virus. Chúng không làm tăng kích thước file, nếu người dùng cố gắng đọc file, virus sẽ chặn yêu cầu và trả lại file gốc.
Multipartite Viruses
Một loại virus đa bên (còn được gọi là virus đa phần hoặc virus lai) kết hợp cách tiếp cận của virus lây nhiễm tập tin và sector virus và cố gắng tấn công cùng lúc cả boot sector và các file thực thi. Khi virus lây nhiễm vào boot sector, nó sẽ ảnh hưởng đến các file hệ thống và ngược lại. Loại virus này sẽ lây nhiễm lại hệ thống một cách lặp đi lặp lại nếu không được triệt phá hoàn toàn khỏi máy bị nhiễm.
Macro Viruses
Virus macro lây nhiễm vào các ứng dụng như Microsoft Word hoặc các ứng dụng tương tự bằng cách tự động thực hiện một chuỗi hành động sau khi kích hoạt ứng dụng. Hầu hết các virus macro được viết bằng ngôn ngữ macro Visual Basic for Applications (VBA) và lây nhiễm vào các template hoặc chuyển đổi các tài liệu bị nhiễm thành các file template trong khi vẫn giữ được diện mạo của các file tài liệu thông thường.
Virus macro thường ít gây hại hơn so với các loại virus khác. Thông thường, chúng lây lan qua email. Do ngôn ngữ macro phức tạp được sử dụng trong một số chương trình, người dùng dễ dàng nhầm lẫn giữa một file dữ liệu và một file thực thi. Hacker có thể lợi dụng các chương trình phổ biến có khả năng sử dụng macro, như Microsoft Word, Excel và các chương trình Office khác. Các file Windows Help cũng có thể chứa macro.
Stealth Viruses/Tunneling Viruses
Những loại virus máy tính này che giấu khỏi các chương trình diệt virus bằng cách thay đổi hoặc làm hỏng các service call trong quá trình hoạt động. Virus ẩn danh (stealth viruses) ẩn kích thước gốc của file hoặc tạm thời đặt một bản sao của chính nó trong một ổ đĩa khác, từ đó thay thế file bị nhiễm bằng file không nhiễm được lưu trữ trên ổ cứng.
Ngoài ra, còn có một loại virus ẩn danh che giấu các sự thay đổi mà nó đã thực hiện. Nó chiếm quyền kiểm soát các chức năng của hệ thống như đọc file hoặc các sector hệ thống. Khi một chương trình khác yêu cầu thông tin đã được virus thay đổi, virus ẩn danh báo cáo thông tin đó cho chương trình thay vì thông tin thực tế. Loại virus này cũng tồn tại trong bộ nhớ. Để tránh bị phát hiện, chúng luôn chiếm quyền kiểm soát các chức năng hệ thống và sử dụng chúng để che giấu sự hiện diện của chúng.
Một trong số các carriers của virus ẩn danh là rootkit.
Encryption Viruses
Các loại virus mã hóa hoặc virus cryptolocker xâm nhập vào mục tiêu thông qua các phần mềm miễn phí, torrent, thư rác,… Loại virus này bao gồm một bản sao được mã hóa của virus và một module giải mã. Module giải mã luôn giữ nguyên, trong khi quá trình mã hóa sử dụng các khóa khác nhau.
Một khóa mã hóa bao gồm một module giải mã và một bản sao mã hóa của mã, làm mã hóa cho virus. Khi hacker tiêm virus vào mục tiêu, trình giải mã sẽ được thực thi trước và giải mã phần thân của virus. Sau đó, phần thân virus được thực thi và được sao chép vào mục tiêu. Mỗi file bị nhiễm virus sử dụng một khóa mã hóa khác nhau. Các loại virus này sử dụng phép XOR trên mỗi byte với một khóa ngẫu nhiên. Kỹ thuật giải mã được sử dụng là “x” hoặc mỗi byte với một khóa ngẫu nhiên được tạo ra và lưu bởi virus gốc.
Polymorphic Viruses
Các loại virus đa hình (polymorphic viruses) nhiễm bản thân nó vào một file với một bản sao mã hóa của code đa hình đã được giải mã bởi một module giải mã. Các loại virus đa hình này thay đổi code của chúng trong mỗi lần sao chép để tránh bị phát hiện. Chúng thực hiện điều này bằng cách thay đổi module mã hóa và chuỗi lệnh. Các cơ chế đa hình sử dụng bộ sinh số ngẫu nhiên trong quá trình thực hiện.
Một loại virus đa hình bao gồm ba thành phần: code virus đã được mã hóa, tiến trình giải mã và bộ đổi gen. Chức năng của tiến trình giải mã là giải mã code của virus. Nó chỉ giải mã code sau khi kiểm soát được máy tính. Bộ đổi gen tạo ra các tiến trình giải mã ngẫu nhiên, các tiến trình giải mã này thay đổi mỗi khi virus nhiễm vào một chương trình mới.
Virus đa hình mã hóa cả bộ đổi gen và code virus. Khi người dùng thực thi một chương trình bị nhiễm virus đa hình, tiến trình giải mã lấy hoàn toàn kiểm soát hệ thống, sau đó giải mã code virus và bộ đổi gen. Tiếp theo, tiến trình giải mã chuyển quyền kiểm soát hệ thống cho virus, virus tìm một chương trình mới để nhiễm. Trong RAM, virus tạo một bản sao của chính nó cũng như bản sao của bộ đổi gen. Ở đây, virus mã hóa các bản sao mới của cả code virus và bộ đổi gen.
Virus đa hình rất khó phát hiện do việc mã hóa phần thân virus và thay đổi tiến trình giải mã mỗi khi virus lây nhiễm. Đối với chương trình diệt virus, việc xác định các loại virus này là khó khăn vì không có hai lần lây nhiễm nào giống nhau.
Metamorphic Viruses
Virus biến dạng (metamorphic viruses) được lập trình sao cho mỗi lần lây nhiễm vào một file thực thi mới, chúng tự viết lại toàn bộ code của mình. Loại virus này rất phức tạp và sử dụng các engine để thực thi. Code biến dạng tự lập trình lại chính nó, nó ban đầu được dịch thành code tạm thời (một biến thể mới của cùng một virus nhưng có code khác nhau) và sau đó chuyển đổi lại thành code gốc. Với kỹ thuật này, thuật toán ban đầu vẫn nguyên vẹn, được sử dụng để tránh nhận diện signature bởi phần mềm diệt virus. Virus biến dạng hiệu quả hơn virus đa hình.
Quá trình biến đổi phần thân virus có mức độ đơn giản đến phức tạp, phụ thuộc vào kỹ thuật được sử dụng. Một số kỹ thuật được sử dụng để biến dạng virus bao gồm:
- Disassembler
- Expander
- Permutator
- Assembler
Phần thân virus được biến đổi theo các bước sau:
- Chèn dead code
- Thay đổi biểu thức
- Sắp xếp lại các lệnh
- Sửa đổi tên biến
- Mã hóa code chương trình
- Sửa đổi cấu trúc điều khiển của chương trình
Overwriting File or Cavity Viruses
Một số chương trình đều có các không gian trống nào đó bên trong chúng. Cavity virus, còn được gọi là space fillers, ghi đè một phần của file cần nhiễm bằng một hằng số (thường là nulls), mà không làm tăng độ dài của file trong khi vẫn giữ nguyên chức năng của nó. Việc duy trì kích thước file không đổi khi nhiễm virus cho phép virus tránh bị phát hiện. Cavity hiếm khi được tìm thấy do tính không khả dụng của các file chủ và sự phức tạp của code.
Thiết kế mới của file thực thi Windows là Portable Executable (PE) giúp cải thiện tốc độ tải chương trình nhưng nó để lại một khoảng trống cụ thể trong file trong quá trình thực thi, mà cavity virus có thể sử dụng để chèn vào.
Companion/Camouflage Viruses
Virus đồng hành (companion virus) lưu trữ chính nó với tên như file chương trình mục tiêu. Khi file được thực thi, virus xâm nhập vào máy tính và thay đổi dữ liệu trên ổ cứng. Virus đồng hành sử dụng DOS để chạy các file COM trước khi thực thi các file EXE. Virus này cài đặt một file COM giống hệt và lây nhiễm các file EXE.
Quá trình hoạt động của virus đồng hành như sau: Khi virus đồng hành đang chạy trên máy tính, nó tìm kiếm xung quanh và tình cờ tìm thấy một file có tên notepad.exe. Lúc này, virus tạo một file mới có tên notepad.com, chứa chính virus. Thông thường, virus đặt file này trong cùng thư mục với file .exe, tuy nhiên nó cũng có thể đặt ở bất kỳ thư mục nào khác. Khi người dùng gõ “notepad” và nhấn Enter, DOS thực thi file notepad.com thay vì notepad.exe (theo trình tự, DOS sẽ thực thi các file COM trước, sau đó là EXE và sau đó là BAT có cùng tên gốc, nếu tất cả các file đều nằm trong cùng một thư mục). Virus lúc này sẽ thực thi và lây nhiễm thêm các file khác (nếu có), sau đó nó tải và thực thi file notepad.exe. Người dùng thường không nhận ra sự hiện diện của virus. Việc phát hiện virus đồng hành rất dễ dàng chỉ bằng việc kiểm tra sự tồn tại của file COM trong hệ thống.
File Extension Viruses
Các loại virus sửa đổi phần mở rộng của file, gọi là “File Extension Viruses”. Ví dụ, một file có tên BAD.TXT.VBS sẽ được hiển thị chỉ là BAD.TXT nếu ta đã tắt hiển thị phần mở rộng. Trong trường hợp này, ta có thể nghĩ rằng đó là một file văn bản thông thường và mở nó. Nhưng thực tế, nó là một file virus thực thi Visual Basic Script và có thể gây ra hậu quả nghiêm trọng.
FAT Viruses
Virus FAT là một loại virus tấn công vào File Allocation Table (FAT), một hệ thống được sử dụng trong các sản phẩm của Microsoft và một số loại máy tính khác để truy cập thông tin lưu trữ trên đĩa. Bằng cách tấn công vào FAT, virus có thể gây ra tổn hại nghiêm trọng. Một số virus được thiết kế để nhúng chính nó vào các file để khi FAT truy cập vào file đó, virus sẽ được kích hoạt. Một số khác có thể tấn công trực tiếp vào FAT như ghi đè lên file, thư mục gây mất mát dữ liệu vĩnh viễn. Nếu virus FAT đủ mạnh, nó có thể làm cho máy tính không thể sử dụng, buộc người dùng phải format lại ổ đĩa.
Về cơ bản, một virus FAT phá hủy index, từ đó làm cho máy tính không thể xác định vị trí các file. Virus có thể lan rộng vào các file khi FAT cố gắng truy cập chúng, gây tổn hại cho toàn bộ máy tính dần dần. Loại virus này thường xuất hiện dưới dạng các file bị hỏng, bị thiếu hoặc không thể truy cập.
Add-on Viruses
Add-on Viruses gắn thêm code của chúng vào code gốc mà không làm bất kỳ thay đổi nào đối với code gốc hoặc di chuyển code gốc để chèn code của chúng vào đầu tiên.
Intrusive Viruses
Các loại virus xâm nhập (intrusive viruses) ghi đè toàn bộ hoặc một phần code bằng code của nó.
Các bạn đọc thêm các bài viết phía sau tại CEH Tiếng Việt.
Comments 1