NỘI DUNG
Tiếp theo nội dung Phần 2, kỳ này tôi sẽ chiến tiếp với phân hệ Obfuscation Technique Based Virus. Cụ thể là cái đám sau.
#1 No Obfuscation Virus
Vâng, cái tên nói lên tất cả rồi. Tôi nghĩ cái này thôi chắc khỏi coi thêm vì đây hiển nhiên là dạng lành tính nhất trong phân hệ Obfuscation Technique Based Virus. Với phương châm No Obfuscation – “có sao để vậy”, không che đậy méo gì cả thì đây có thể xem là dạng “mì ăn liền” vì dễ làm nhanh ăn (nhưng cũng nhanh bị bốc phốt).
#2 Encryption Virus
Dạng này thì để tôi coi qua cái:
Encryption Virus sử dụng các chiêu trong Cryptography để che đậy các chức năng của nó. Phương án đơn giản nhất là nó có thể cặp nách theo một cái Decrypter bên hông như XOR decryption function để vừa giải mã vừa xài. Cao cấp hơn tí, nó có thể có phương án tự phục hồi bằng cách giải mã với brute force hay thậm chí tiện tay dùng luôn mấy cái Crypto API function có trong Host OS.
Ai dà, đám này bắt đầu các trò bẩn bựa rồi. Cryptography thì tôi có nghiên cứu sơ qua với Series Giải ngố Cryptography rồi. Thôi tạm thời cứ vờ như tôi đã rành thể loại này đi, có gì quay lại chữa cháy sau.
#3 Oligomorphism Virus
Tên cái đệt gì mà đọc muốn quíu cả lưỡi. Tôi nghiên cứu thì thì thấy:
Dạng này còn được gọi là Semi-polymorphic Virus sử dụng một bộ các Decryption Routines để tránh bị antivirus software bắt được Signature. Do lựa ngẫu nhiên một phương án trong bộ các Decryption Routines nên nó có thể trốn tránh antivirus software ở giai đoạn ban đầu. Một khi antivirus software để bắt hết bài trong toàn bộ Decryption Routines thì nó sẽ phải lên dĩa.
Cái Decryption Routines làm tôi thấy hơi ái ngại nhưng cái cụm Semi-polymorphic Virus thì làm tôi đặc biệt chú ý. Khả năng cao tôi sẽ có nhiều thông tin hơn khi coi kỹ cái Polymorphic Virus.
#4 Polymorphism Virus
Để tôi search xem con hàng này có gì đặc sắc:
Polymorphism Virus sẽ có khả năng thay đổi Appearance mỗi khi lây nhiễm một file mới bằng cách thay đổi Decryption Routines. Thứ khiến nó lợi hại hơn Oligomorphism Virus là kích thước của Decryption Routines Pool sẽ lớn hơn rất nhiều do đó nếu chờ đến khi antivirus software bắt hết các dạng trong Decryption Routines Pool thì có khi Host chỉ còn là cái xác không hồn.
Việc xây dựng Decryption Routines Pool kích thước lớn dựa trên cái có tên gọi là Mutation Engine (tạm dịch là “Cỗ máy đột biến”). Mutation Engine sẽ chứa một mớ các bộ Code Snippet tương đồng và sẽ biến một đoạn code đầu vào thành một đoạn code khác có cùng tính năng.
Rồi, cái Decryption Routines nói trên xuất phát từ Mutation Engine. Nếu nói bình thường không làm màu thì là từ bộ Code Snippet – một bộ các đoạn code khác nhau nhưng có cùng tính năng. Thế còn Signature là cái khỉ gì? Tôi tiếp tục:
Virus Signature là chuỗi bytes dữ liệu có trong Virus Code đóng vai trò như kiểu mẫu có thể được chương trình antivirus software dùng để nhận dạng virus. Để tránh bị phát hiện, Polymorphic Virus có thể biến đổi Signature trong quá trình lây nhiễm và hoạt động mà vẫn giữ được chức năng thiết kế ban đầu.
Ngon! Thế giờ tôi đã nắm sơ bộ Signature-based Detection Tool đề cập ở Phần 1 muốn nói đến cái gì rồi. Ở đây còn hơi lấn cấn về chi tiết của cái Mutation Engine hay bộ Code Snippet nhưng tạm thời tôi để đó cái đi để không làm đứt cái mạch cảm xúc với phân hệ Obfuscation Technique Based Virus.
#5 Metamorphism Virus
Ông nội này có cái tên có vẻ giống 2 thằng trên nên tôi đoán chắc cũng có “đặc điểm di truyền” gì giống nhay đây.
Metamorphism Virus sẽ thay đổi Body (chứ không phải Appearance) thông qua việc sử dụng các đoạn mã khác nhau nhưng hướng đến cùng một tính năng. Ngoài ra, nó cũng có thể thay đổi nhẹ code sequence để biến đổi Body nhưng vẫn duy trì được code logic. Chính vì vậy, dù chức năng gần như không đổi nhưng Signature thì lại có thể quay ngoắt 180 độ. Nhân vật hay sử dụng chiêu thức này là các dạng Macro và Script Virus.
Chưa thông lắm chỗ Body và Appearance, tôi lọ mọ coi thêm:
“…The key difference between polymorphic code and metamorphic code is whether the code that is actually executed changes or not. A polymorphic virus decrypts its code, runs that code, and then when propagating itself encrypts the decrypted code with a different key. When run on a different machine the decrypted code is the same. A metamorphic virus simply runs its code and then when propagating itself mutates its code into different but functionally identical code. The executed code is different on every machine its propagated to.…”
À, thế tức là bản chất ở chỗ là khi thực thi (sau khi giải mã) Polymorphic Virus vẫn có cùng một code trong khi code của Metamorphism Virus sẽ thay đổi. Các thay đổi Appearance của Polymorphic Virus thực tế chỉ xảy ra ở dạng đã Encrypt. Hơi rối rắm nhưng thấy thế cũng tạm ổn.
Nguồn: www.pediaa.com
#6 Stealth Virus
Tôi lại mò qua dạng kế tiếp:
Stealth Virus không chơi biến hình hay giấu mặt mà ẩn đi các các tác động của quá trình lây nhiễm. Cụ thể, nó có thể ẩn các thay đổi lên file hoặc boot record bằng cách giám sát các System Function dùng để đọc file/sector và giả mạo kết quả của các function này. Do vậy kết quả vẫn cho thấy các nội dung nguyên bản dù trên thực tế hiện trường đã bấy nhầy.
Cái đệt, kiểu này thì nó một tay che trời luôn, lấy méo gì đối phó. Tôi đọc tiếp coi sao:
Để làm được vụ này, nó phải “thường trú” trong bộ nhớ khi chương trình antivirus software được thực thi do vậy vẫn còn có phương án phát hiện được sự hiện diện của con hàng này thông qua kiểm tra bộ nhớ.
Phù! May quá, ít nhất nó cũng nhân đạo chừa chỗ cho người ta bốc phốt!
#7 Tunneling Virus
Lại chuyển sang đối tượng kế tiếp, tôi đọc:
Với Tunneling Virus mỗi khi có lệnh chạy Operating System Interrup (chương trình can thiệp của OS), nó sẽ chặn lại để triển khai mã độc trước sau đó cho mới cho các OS Interrupt này chạy tiếp.
Ai dà, nếu có khả năng vô hiệu hóa các OS Interrupt thì nghĩa là antivirus software dù có nhận ra cũng chỉ ngậm ngùi cay đắng nhìn nó quẩy thôi chứ éo làm gì được à? Cái kịch bản mấy con Virus càng về sau càng lên đô như Phần 2 hình như đang lập lại hay sao ấy.
#8 Armouring Virus
Mò sang thể loại tiếp theo, tôi đọc thấy:
Armouring Virus là loại khiến cho mấy ông phân tích đau đầu vì nó có khả năng sử dụng nhiều combo bẩn bựa như Anti-debugging, Anti-heuristic, Anti-goat, Anti-VM nhằm chống lại phương án debug phân tích cơ chế, nhận diện các kiểu.
Thằng này coi bộ còn trên cơ Tunneling Virus vì có khả năng cho cả mấy ông phân tích ăn hành luôn rồi. Nhưng mà Anti-debugging, Anti-heuristic, Anti-goat, Anti-VM là cái vẹo gì nữa đây? Tôi tạm ghi sổ nợ đi rồi hẹn ngày tái đấu với nó sau vậy.
#9 Retro Virus
Rồi, đến con cuối trong Obfuscation Technique Based Virus, tôi tìm thấy:
Retro Virus này sẽ tìm cách vượt qua phương án kiểm soát của antivirus, firewall bằng cách sử dụng cơ sở dữ liệu các cơ chế nhận diện các giải pháp kiểm soát bảo mật như process name, registry key. Nhờ vậy, nó có thể chặn đứng các giải pháp kiểm soát bảo mật từ đó mở đường máu cho các huynh đệ Virus khác tràn vào. Một số dạng còn có thể chặn việc cập nhật antivirus software hay các chương trình quản lý hệ thống.
Cái đệt! Đây đích thị là trùm cuối rồi. Virus éo gì mà lại “sử dụng cơ sở dữ liệu các cơ chế nhận diện các giải pháp kiểm soát bảo mật” à? Thôi tôi nghĩ tạm thời cũng chỉ nên ghi nó vào sổ nợ như Armouring Virus rồi chờ thời cơ quay lại chiến tiếp với nó vào dịp khác thôi.
2 thoughts on “Giải ngố Malware – Phần 3: Phân hệ Obfuscation Technique Based Virus”