Thiết kế đối chiếu (reverse engineering) Malware (phần 3)

Bóc trần thủ đoạn của spammer, những kẻ dưới đáy xã hội internet cùng một số kẻ khác với các nội dung che đậy, ẩn giấu malware thực bên trong.

Như đã tìm hiểu trong phần 2, bạn có thể thấy rằng không phải cái gì cũng giống như mắt ta nhìn thấy. Những kẻ phát tán thư rác (spammer), những kẻ ở dưới đáy xã hội ảo internet cùng một số kẻ khác luôn luôn tìm cách che đậy malware thực bằng vỏ bọc giả rất ư thánh thiện. Trong phần tiếp theo của loạt bài này, chúng ta sẽ tiếp tục lột bỏ và bóc trần các kiểu hành vi của chúng.

Trong phần 2, chúng ta đang dừng lại ở thời điểm nhận ra malware download về thực tế không phải là file nén zip vô hại, mà là định dạng thực thi PE. Chúng ta đã xác nhận chắc chắn điều này bằng việc mở malware trong trình soạn thảo Hex. Trình soạn thảo này cho phép kiểm tra nội dung bên trong mà không cần thực thi file. Ký tự “MZ” trong file cho biết thực sự đây là kiểu định dạng file PE đã nói ở trên.

Bạn cũng nên nhớ rằng các thông tin này là hoàn toàn thông suốt, chẳng có gì là ảo thuật hay bí ẩn về nó cả. Không phải là kinh nghiệm tích luỹ quý báu từ các tổ chức chính phủ, cũng không phải là hệ thống lý thuyết của các nhà lý luận. Điều chúng ta có được ở đây là thiết kế đối chiếu (reverse engineering) được đào sâu hơn và được áp dụng thử nghiệm để tìm hiểu về nghệ thuật ngầm trong thế giới ảo. Tài liệu tham khảo rất phong phú và hoàn toàn miễn phí. Bạn có thể tìm hiểu về định dạng PE trên website của Microsoft hay Google. Hệ thống lý thuyết thiết kế đối chiếu và các công cụ của nó có thể tìm thấy dễ dàng trên một số website như OpenRCE.

Các gói malware

sao file malware lại cần nén nhỏ kích thước lại? Có thực sự đơn giản chỉ là muốn thu gọn kích thước thực, hay quan trọng hơn là còn để tránh các bộ quét virus. Có rất nhiều chương trình anti-virus sẽ loại bỏ malware ngay cả khi nó được viết tuỳ biến. Kích thước chính là một điểm yếu của malware trước các phần mềm diệt virus. Vì thế thế giới hacker mũ đen quyết định sử dụng nhiều đường vòng khác, như tạo các trình đóng gói (packer).

Có một câu nói rằng “tạo hoá không tạo ra tất cả mọi thứ giống nhau”, và hacker cũng vậy. Mỗi kẻ có một kiểu hay mức kỹ năng khác nhau. Một số thì viết các gói tuỳ biến như Yoda, trong khi một số khác đơn giản chỉ dùng UPX để đóng gói phần mềm malware. Xem lại hình minh hoạ bên dưới, phần malware được mở trong trình soạn thảo Hex, để ý bạn sẽ thấy có các ký tự ASCII “UPX”.


Hình 1

Nếu chưa tìm thấy, bạn hãy xem bên dưới các ký tự “MZ”. Như đã nói, MZ là thể hiện cho định dạng file PE. Bên dưới nó một chút là xâu ký tự UPX. Xâu ký tự này nói cho chúng ta biết file thực thi được đóng gói bởi trình gói UPX. Thường thì việc mở một file đã đóng gói không phải là dễ dàng, nhưng với UPX thì không khó khăn lắm. Bạn có thể mở gói dễ dàng bằng chính công cụ đã đóng gói nó. Nhưng cần chú ý là một số file có thể được đóng gói bằng UPX, nhưng được mã hoá hoặc thực hiện một số thủ thuật khiến việc mở gói trở nên rất khó khăn.

Hãy để “bữa tiệc” được bắt đầu

Để mở gói file UPX, hãy bắt đầu bằng việc download một bản copy chương trình UPX và cài đặt nó vào thư mục gốc của ổ C. Sau đó viện dẫn chính chương trình và đưa thông tin dòng lệnh vào. Thông thường, cũng sẽ rất hữu ích khi copy malware vào ổ C. Xem hình minh hoạ menu trợ giúp do UPX cung cấp bên dưới sau khi gọi chương trình vào.


Hình 2

Bây giờ, hãy xem thông tin dòng lệnh trên hình.


Hình 3

Như bạn có thể thấy, việc mở gói file UPX khá bình thường, không có gì đặc biệt gọi là khó khăn. Vấn đề nằm ở chỗ bạn phải xác định được kiểu đóng gói của file malware là gì. Đó mới là cái khiến ngay cả các chuyên gia cũng phải đau đầu.

Chúng ta đang dừng tại đâu?

Chúng ta đã khởi đầu và đang dừng lại ở thời điểm quá trình phân tích thực malware có thể bắt đầu. Điều này được thực hiện theo nhiều cách khác nhau, nhưng phổ biến nhất là theo hai kiểu: phân tích tĩnh và phân tích động file thực thi malware. Động là gì mà tĩnh là gì? Phân tích tĩnh là quá trình mở chương trình malware nhưng không thực sự thực thi chúng. Kiểu phân tích này chủ yếu được dùng trong trình soạn thảo Hex như bạn đã thấy ở phần trước. Nó có thể được thực hiện thông qua một số thành phần riêng rẽ.

Các thành phần này cho phép bạn xem một cách an toàn các mã thực thi mà không phải lo lắng chúng sẽ “tác oai tác quái” trên máy tính của bạn. Đồng thời chúng cũng cho phép bạn viết một số khoảng chứa trống (offset) cho các điểm ngắt thú vị. Điểm ngắt, về cơ bản là địa chỉ của máy tính lệnh trong chương trình. Từ đó bạn có thể thực hiện từng bước các thực thi theo lệnh tại từng thời điểm. Có thể vấn đề là hơi nâng cao một chút, nhưng cũng là nền tảng thích hợp để hiểu sâu hơn về thiết kế đối chiếu.

Phân tích động là quá trình bạn tiến hành chạy thực file malware và theo dõi tác động sẽ diễn ra sau đó. Quá trình phân tích động thực ra không khó như tên gọi của nó. Có nhiều công cụ thông minh cho phép bạn quan sát các thay đổi trên máy tính sau khi malware được thực thi. Một trong số đó là filemon và regmon.

Tóm tắt

Đến nay, chúng ta đã đi vào khá chi tiết một số yếu tố bên ngoài trước khi xem xét thẳng vấn đề thiết kế đối chiếu malware. Đơn giản là vì chúng rất quan trọng. Tìm hiểu về thiết kế đối chiếu malwere tức là phải hiểu đặc điểm kỹ thuật của định dạng file, các trình gói file, sử dụng trình soạn thảo Hex, v.v…. Khi tiếp cận với những vấn đề khó khăn như thiết kế đối chiếu, chậm mà chắc, ngắn gọn nhưng đều đặn là phương thức tốt nhất. Thông tin về reverse engineering không hề ít trên Internet. Điều bạn cần làm bây giờ là “tiêu hoá”dần dần từng khối lượng byte nhỏ kiến thức. Trong phần sau chúng ta sẽ tiếp tục gặp lại nhau với quá trình mở gói chi tiết file malware. Hẹn gặp lại các bạn!

Thiết kế đối chiếu Malware (phần 4)

Thứ Tư, 14/03/2007 09:12
51 👨 528
0 Bình luận
Sắp xếp theo
    ❖ Diệt Virus - Spyware