Xem mẫu

  1. Tổng quan về mẫu malware Virus.Win32.Virut.ce (Phần V)
  2. Ảnh chụp màn hình file bị lây nhiễm bởi Virus.Win32.Virut.ce, với các đoạn mã đảm nhiệm chức năng khôi phục tới các entry point gốc được đánh dấu hình oval đỏ Để phân biệt rõ ràng hơn, toàn bộ các đoạn mã ví dụ trên đều không bao gồm quá trình obfuscation. Tuy nhiên, giai đoạn đó lại được sử dụng trong tất cả các section của file đã được ghép thêm vào bởi virus, có bao gồm trình giải mã Init và toàn bộ phần mã thực thi trong phần body chính. Và quá trình này hoàn toàn ngăn chặn các dấu hiệu nhận dạng virus từ các chương trình an ninh bảo mật, bằng cách thay đổi toàn bộ bề ngoài của mã dữ liệu mà không làm ảnh hưởng đến hoạt động chung. Dưới đây là 1 số ví dụ cụ thể, trong đó chúng được sử dụng để che giấu quá trình nhận dạng mà không ảnh hưởng đến các hoạt động chức năng:
  3. - XCHG reg1, reg2; XCHG reg2, reg1; (được sử dụng cùng nhau) - SUB reg1, reg2; ADD reg1, reg2; (sử dụng cùng nhau) - MOV reg, reg; OR reg, reg; AND reg, reg; XCHG reg, reg; LEA reg, [REG]; - CLD, CLC, STC, CMC, etc. Trong đó, ‘reg1’ và ‘reg2’ đại diện cho các trình đăng ký – register khác nhau, còn ‘reg’ để chỉ quá trình register giống nhau trong cùng 1 biểu thức đơn. Các toán tử logic đi liền với toán tử hạng hai tùy biến. Ngoài ra còn có ADC reg, const; SBB reg, const; XOR reg, const … Các thành phần của quá trình obfuscation được đánh dấu bằng hình oval đỏ
  4. Hình bên trái chỉ ra rất rõ rằng các chỉ dẫn theo kiểu junk chiếm tới 70 - 80% toàn bộ mã của file dữ liệu. Giải mã phần body chính Bộ phận đảm nhiệm khả năng thực thi trong các đoạn code được giải mã, sẽ khởi động sau khi virus hoàn tất các hoạt động ban đầu của nó như việc khôi phục mã gốc, khởi tạo tên đối tượng và lưu trữ địa chỉ của các hàm tương ứng được sử dụng trực tiếp từ thư viện hệ thống DLLs và anti-cycle. Nếu quá trình giải mã Main được xem là 1 phần hoặc 1 bộ phận phân tách riêng biệt, thì toàn bộ mã sinh ra bởi tiến trình này hoàn toàn vô nghĩa, ví dụ như chỉ dẫn RETN được gọi ra để quản lý, điều khiển việc thay đổi vị trí 1 cách ngẫu nhiên. Trước khi quá trình giải mã chính thức diễn ra, RETN (0C3h) sẽ được thay thế bởi hàm CALL (0E8h). Chúng ta có thể hình dung quá trình này như sau: ADD/SUB/XOR [EBP + xx], bytereg Theo đó, EBP sẽ được trỏ tới địa chỉ của hàm CALL, và bytereg chỉ là 1 trong số những giá trị byte đã được đăng ký.
  5. Do vậy, chúng ta có thể cho rằng chu trình bắt đầu thực sự sau khi quá trình giải mã RETN sẽ được thay đổi thành CALL. Theo đúng trình tự là quá trình obfuscated – phần còn lại của body của virus. Không chỉ sử dụng số lượng lớn các thuật toán, và nhiều trong số này thực sự phức tạp hơn rất nhiều so với phần còn lại với trình giải mã Init. Thông thường, sẽ có từ giữa 2 đến 6 các thuật toán được dùng để kết hợp. Và trong các thuật toán này, trình quản lý đăng ký EDX chứa key giải mã, và với EAX chứa toàn bộ địa chỉ ảo nơi bắt đầu của static body. Các ứng dụng quản lý register chứa đựng các chỉ dẫn của hàm tương ứng có thể giống như sau: MOVZX/MOV dx/edx, [ebp + const] LEA eax, [ebp + const] Các thuật toán được sử dụng chủ yếu như trong ví dụ dưới đây: ROL DX, 4 XOR [EAX], DL IMUL EDX, EDX, 13h ADD [EAX], DL ROL DX, 5 IMUL EDX, 13h
  6. XOR [EAX], DH ADD [EAX], DL XCHG DH, DL IMUL EDX, 1Fh XOR [EAX], DH XCHG DH, DL ADD [EAX], DH IMUL EDX, 1Fh XOR [EAX], DL ADD [EAX], DH IMUL EDX, 2Bh XCHG DH, DL Đương nhiên, những chỉ dẫn được sử dụng này sẽ thay đổi theo thời gian.
  7. Một phần đoạn mã được tách rời ra từ trình giải mã Main Để tiếp tục thảo luận về quá trình thực thi file dữ liệu đã bị lây nhiễm, chúng ta hãy chuyển sang phần thực hiện quá trình payload với những đoạn mã bên trong phần static body. Thông thường, quá trình này sẽ khởi động bằng hướng dẫn CALL, trước tiên là để tính toán và xác định các địa chỉ ảo, và sau đó sẽ được ứng dụng vào việc đặt địa chỉ thực. Phần static body của virus sau khi được giải mã
  8. Các dòng được đánh dấu bằng hình oval đỏ chỉ ra các phần thực hiện cơ chế payload rất rõ ràng của virus. Ví dụ: ‘JOIN’ và ‘NICK’ là các dòng lệnh IRC, ‘irc.zief.pl’ và ‘proxim.ircgalaxy.pl’ là các IRC server remote mà virus thực hiện các thao tác liên lạc qua lại, ‘SYSTEM\CurrentControlSet Services\SharedAccess\ Parameters\FirewallPolicy StandardProfile\AuthorizedApplications\ List’ là khóa registry chứa thông tin về các chương trình đáng tin cậy của Windows firewall. Kết luận Có thể nói, Virut.ce có cơ chế lây nhiễm khá đa dạng và nguy hiểm, với các công nghệ kỹ thuật đa hình và obfuscation. Tuy nhiên, cơ chế payload của nó khá phức tạp và không thể coi thường được. Và mẫu virus có thể được xem là sự kết hợp thành công nhất các công nghệ và kỹ thuật độc hại, được tin tặc tạo ra mẫu malware này. Bên cạnh đó, có 1 số mẫu chương trình độc hại ứng dụng kỹ thuật obfuscated vào những mục đích khác nhau, bao gồm công nghệ chống lại cơ chế xây dựng và mô phỏng hành động… nhưng Virut.ce là 1 bản sao hoàn hảo nhất của các tính năng trên. Có thể nói rằng, đây không phải là 1 bài viết chi tiết và đầy đủ về mẫu Virut.ce. Cho đến tháng 04 / 2010 này, vẫn chưa có biến thể mới nào của Virut.ce bị phát hiện, điều này không
  9. có nghĩa rằng quá trình tiến hóa của nó đã dừng lại. Mặt khác, tính cho tới thời điểm này tất cả các sản phẩm của Kaspersky Lab đều có khả năng phát hiện và tiêu diệt Virus.Win32.Virut.ce, ngay cả khi có biến thể mới của nó xuất hiện.
nguon tai.lieu . vn