Việc phát hiện virus siêu đa hình bằng cách sử dụng phương pháp tìm kiếm các chuỗi là gần như không thể thực hiện được.
Các kỹ thuật phát hiện và diệt virus siêu đa hình - Phần 2
Tham khảo: đặc điểm và các kỹ thuật tạo virus siêu đa hình - Phần 1
Để tránh sự phát hiện, virus siêu đa hình được trang bị những kỹ thuật khác nhau để “tiến hóa” mã của chúng thành thế hệ virus mới có mã khác hoàn toàn nhưng chức năng thì vẫn không thay đổi.
Để phát hiện người ta thường sử dụng các kỹ thuật như xem xét các cấu trúc file hay phân tích hoạt động của mã. Một số kỹ thuật phát hiện virus siêu đa hình được mô tả như sau:
- Phát hiện hình học: là dựa trên sự biến đổi mà virus đã thực hiện trên các cấu trúc file. Phát hiện hình học được sử dụng để phát hiện Win95/Zmist, bởi vì đoạn dữ liệu của file được tăng lên ít nhất 32kb khi nó bị nhiễm bởi phiên bản được mã hóa của virus này. Tuy nhiên, phương pháp này có thể gây ra nhiều sai sót.
- Quét chuỗi ký tự đại diện và half-byte: Các virus siêu đa hình đơn giản thường sử dụng hoán đổi thanh ghi và thay thế lệnh, do đó, chúng có thể bị phát hiện bởi việc quét các chuỗi đại diện và half- byte. Ví dụ, trong Win95/Regswap tồn tại rất nhiều các Opcode phổ biến, không đổi ở tất cả các thế hệ virus của nó. Điều đó dẫn đến việc trích ra các chuỗi tìm kiếm khả dụng sử dụng các ký tự đại diện có thể xảy ra. Nếu bộ quét hỗ trợ điều đó, việc phát hiện half- byte có thể thích hợp cho file đã bị nhiễm.
- Phân rã mã (code disassembling): có nghĩa là chia nhỏ luồng thành các lệnh riêng rẽ. Phương pháp này thuận lợi cho việc phát hiện các virus sử dụng kỹ thuật chèn mã rác vào giữa các mã của nó. Phân rã mã rất hiệu quả khi được kết hợp với một máy trạng thái, vì máy trạng thái có thể ghi lại trình tự trong đó các lệnh quan trọng được phát hiện. Máy trạng thái là mô hình gồm hành vi được tạo từ lượng hữu hạn các trạng thái, các chuyển tiếp giữa các trạng thái và các hành vi. Máy trạng thái hoạt động hiệu quả khi nó được kết hợp với một bộ giả lập sử dụng trong việc phát hiện các loại virus khác nhau như Win95/Zmist hay Win 95/Puro dựa trên một phương tiện gọi là “Lexotan”.
- Sử dụng các bộ giả lập: Giả lập đoạn mã thực thi cần thiết lập một máy ảo để mô phỏng hệ thống quản lý bộ nhớ và CPU, chạy các mã độc hại bên trong máy ảo đó. Mã độc hại không thể thoát khỏi máy ảo. Các chương trình quét diệt virus có thể chạy đoạn mã trong một bộ giả lập, sau đó kiểm tra định kỳ để tìm và phát hiện các lệnh quan trọng của virus. Một số kỹ thuật giả lập như sau:
Sử dụng bộ giả lập dựa trên kỹ thuật heuristics: Phát hiện dựa trên kỹ thuật heuristics không nhận diện virus một cách rõ rệt nhưng chỉ ra được các đặc trưng và phát hiện các lớp của virus máy tính một cách tổng quát. Công cụ heuristics có thể dò tìm dấu vết các lệnh ngắt và thực thi ở mức sâu hơn thông qua việc sử dụng một máy ảo mô phỏng hệ điều hành.
Các hệ thống như vậy thậm chí có thể tái lập các virus trong hệ thống file ảo của máy ảo. Một số sản phẩm antivirus triển khai các hệ thống như vậy rất hiệu quả và cho ít cảnh báo sai. Kỹ thuật này yêu cầu việc mô phỏng hệ thống file. Ví dụ, bất kỳ khi nào một file mới được mở bởi các virus giả lập, một tệp tin ảo được chỉ tới nó. Sau đó, virus giả lập có thể làm lây nhiễm file ảo trong hệ thống ảo mà hiện tại nó đang lưu trú. Hai vấn đề lớn nhất ở đây là rất khó để giả lập hệ thống đa luồng và hiệu suất hệ thống giả lập thấp
Phát hiện các vòng lặp giả: Việc chống lại kỹ thuật tạo bộ giả lập xuất hiện trong một phiên bản cải tiến của Virus Bistro (được phát hành sau vài phiên bản so với phiên bản gốc). Kỹ thuật này được gọi là chèn mã ngẫu nhiên, chèn thêm các dòng lệnh rác và các vòng lặp giả một cách ngẫu nhiên trước khi giải mã. Điều này làm cho một số bộ giả lập mô phỏng hàng triệu các dòng lệnh rác và không thể dựng lại một virus thực sự nên việc phát hiện virus là không thể thực hiện được.
Phát hiện việc giải mã ngăn xếp: Các biến thể khác nhau của virus Zmorph đưa vào file bị nhiễm một phần mã đa hình, sau đó chúng giải mã virus theo từng lệnh và tái lập lại nó bằng cách đẩy kết quả vào bộ nhớ ngăn xếp. Nếu bộ giả lập không có khả năng phát hiện giải mã ngăn xếp thì những virus như thế sẽ bị bỏ sót. Bộ nhớ bị các virus này truy nhập có thể bị kiểm soát, giám sát bởi một bộ giả lập và khi lệnh điều khiển được truyền tới bộ nhớ ngăn xếp, mô hình này sẽ phát hiện nó và kết xuất toàn bộ đoạn mã virus được giải mã để nhận dạng. Hạn chế của kỹ thuật này là nó có tác động đáng kể tới hiệu suất của máy quét.
- Phát hiện sự biến đổi mã: Sự biến đổi mã được dùng để biến đổi các dòng lệnh hoán vị sang dạng đơn giản, khi mà sự kết hợp các dòng lệnh được chuyển đổi thành dạng tương đương nhưng đơn giản hơn. Sau khi chuyển đổi, mã phổ biến được thể hiện bởi các virus có thể được nhận dạng. Virus đa hình đầu tiên sử dụng kỹ thuật này là Win32/Simile. Kỹ thuật này bao gồm việc chuyển đổi mã virus về dạng nguyên thủy tương đồng với thế hệ đầu tiên. Tuy nhiên, để có thể đảm bảo việc phát hiện hoàn toàn mà không ảnh hưởng đến tốc độ quét, môđun chuyển đổi mã phải được tối ưu hóa và linh hoạt. Vị trí của virus có thể được chuyển đổi tới nơi mẫu quét được lưu trữ, điều đó sẽ làm giảm tác động lên hiệu suất của máy quét.
- Phát hiện hoán vị chương trình con: được sử dụng để phát hiện các virus có sử dụng hoán vị mã của chúng thành dạng mới. Như miêu tả ở trên, việc biến hình đạt được nhờ việc chia nhỏ mã thành các frames và sau đó đặt vị trí các frames này một cách ngẫu nhiên và liên kết chúng bởi các lệnh nhánh để duy trì luồng tiến trình. Virus Zperm sử dụng công cụ hoán vị thực (Real Permutation Engine - RPME) phức tạp để biến đổi mã của nó. Để phát hiện virus này, máy quét phải thực hiện giả lập từng phần để xây dựng lại mã virus từ dạng nguyên gốc trước khi hoán vị. Giả lập từng phần có nghĩa là mô phỏng các lệnh nhánh như bước nhảy. Quyết định khi nào dừng giải mã là vấn đề của kỹ thuật này. Cũng như vậy, việc đảm bảo rằng mã virus đã được phát hiện đầy đủ cũng là một vấn đề rất khó. Bên cạnh việc tái tạo lại mã virus, kỹ thuật này cũng có hiệu quả cho việc xóa các lệnh rác.
Kết luận:
Virus siêu đa hình sử dụng nhiều kỹ thuật phức tạp như chèn mã rác, thay thế lệnh, hoán vị mã và tích hợp mã. Việc phát hiện virus siêu đa hình luôn là vấn đề khó và để phát hiện chúng một cách toàn diện, các chu trình phát hiện phải được viết sao cho có thể tạo ra chỉ dẫn cần thiết về tập hợp nhóm virus từ cách thức thực tế của việc xâm nhiễm.
Có nhiều kỹ thuật phát hiện virus siêu đa hình đã được sử dụng như: phát hiện hình học, phân rã mã, phát hiện hoán vị chương trình con... tuy nhiên chưa có kỹ thuật nào phát hiện một cách toàn diện. Do vậy, việc tìm các phương pháp mới để phát hiện Virus siêu đa hình là vấn đề cần được quan tâm nghiên cứu.
Tham khảo: đặc điểm và các kỹ thuật tạo virus siêu đa hình - Phần 1
CHÚ Ý: để được cảnh báo virus và được Tư vấn Hỗ trợ và nhận Key Download mới nhất của phần mềm diệt Virus này hãy Tham gia nhóm Facebook tại đây
Theo ThS Vũ Đình Thu
Các tin khác liên quan cùng chủ đề
- Đặc điểm và các kỹ thuật tạo virus siêu đa hình - Phần 1
- Quét và diệt virus siêu đa hình bằng phần mềm diệt virus miễn phí
- Các xử lý và diệt Virus lấy nhiễm qua Yahoo Messenger
- Google sẽ tích hợp Phần mềm quét và diệt virus cho các ứng dụng Google Play
- Hàng loạt phần mềm diệt Virus và bảo mật di động ra mắt và tặng miễn phí
- Hướng dẫn cách phát hiện và diệt virus Keylog bằng tay trên máy
- Hầu hết các phần mềm diệt virus đều không hiệu quả đối với virus mới
- Hỏi cách diệt virus Obfuscated.AU2!genr và TROJ_GEN.R47H1DN mà Kaspersky và Bkav ko diệt được
- Phân biệt và phát hiện Virus, Spyware, Trojan, Malware và Worm
- Quét và diệt virus cứng đầu nhất bằng đĩa cứu hộ của các hãng bảo mật
- So sánh các phần mềm diệt Virus hàng đầu Avira, Avast, Eset và Norton Antivirus
- So sánh tính năng các phần mềm diệt virus và bảo mật cho điện thoại di động