- Thiết kế đối chiếu Malware (phần 1)
- Thiết kế đối chiếu Malware (phần 2)
- Thiết kế đối chiếu Malware (phần 3)
Trong các phần trước của bài viết này chúng tôi đã giới thiệu cho các bạn cách nhận và mở một file UPX đã đóng gói. Trong phần tiếp theo này chúng tôi sẽ thực sự xem xét đến một mẫu malware trong định dạng không nén của nó.
Trong phần cuối cùng về thiết kế đối chiếu này chúng ta sẽ đi vào xem xét một mẫu malware mở. Có một số mục đích khác nhau cho việc thực hiện thiết kế đối chiếu và cũng có một số phương pháp khác nhau. Tuy nhiên, trong trường hợp của chúng ta đang thực hiện phân tích malware thì những gì muốn rút ra từ phân tích này là những hiểu biết kỹ hơn, sâu hơn về những gì mà malware thực hiện và cả một số phạm vi khác. Chúng ta vẫn sử dụng cả nguyên lý động và tĩnh như đã được miêu tả trong các phần trước.
Việc thực hiện reverse engineering để triển khai cho một ví dụ hoàn toàn không có hại. Với mỗi một ví dụ mà bạn thực hiện phân tích trên một chương trình đang tồn tại ví dụ như Windows XP hoặc một số chương trình máy chủ FTP khác. Những gì bạn tìm kiếm cũng khác khác nhau. Có thể bạn sẽ tìm kiếm bất kỳ ví dụ nào có thể gây ra việc tràn bộ đệm, các vấn đề định dạng chuỗi và lỗ hổng về mã liên quan tới nó. Để thực hiện điều này bạn thực sự phải đi từng toán hạng một trong các chương trình con. Vấn đề này nghe có vẻ khó khăn và tốn thời gian và ngoài ra nó cũng yêu cầu một sự khá hiểu biết về lập trình. Để đơn giản với malware như vậy, bạn có thể sử dụng các phương pháp động và tĩnh thiết kế đối chiếu để giải quyết.
Như những gì bạn thấy, có một số lý do khác nhau như tại sao bạn lại muốn thực hiện thiết kế đối chiếu và nhiều mục đích khác nhau khác. Các công cụ cho công việc này gồm có bộ gỡ rối debugger, disassembler, và bộ soạn thảo hex. Với các công cụ đó chúng ta hoàn toàn có thể bắt tay vào việc phân tích một malware đã được mở gói. Chúng sẽ phải thực hiện rất nhiều thủ tục, tuy nhiên chúng tôi sẽ trình bày cho các bạn những thông tin tương đối dễ hiểu.
Tìm malware
Bạn có thể xem phần mà chúng tôi đã đề cập ở phần trước về cài đặt MAP (Malcode Analyst Pack) từ Idefense. Những gì chúng ta thực hiện trước tiên trong phân tích là chạy một lệnh “strings” từ công cụ MAP đối với malware đã được mở gói. Tất cả những thứ bạn cần thực hiện là kích chuột phải vào malware và tùy chọn “strings” sẽ được hiển thị. Kích vào để chọn tùy chọn này. Khi lệnh được thực thi, một cửa sổ khác sẽ xuất hiện như hình dưới đây.
Hình 1
Chúng ta có thể nhìn thấy trong cửa số ở trên có một số mục đầu tiên đi đôi với MZ header và một số các phần khác ví dụ như .text, .data và .idata. Cũng được liệt kê ở đây là một mớ linh tinh file MD5 và kích thước của nó. Bây giờ chúng ta hãy kéo thanh cuộn xuống để nhìn thấy chuỗi đầu ra mà chúng ta quan tâm xuất hiện dưới dạng nhị phân.
Hình 2
Một trong các mục ở đây mà tôi thấy cần chú ý đó là “shlwapi.dll”. File dll này thực sự khó hiểu do vậy tôi vào Microsoft Technet để tìm kiếm nó và xác định xem đó có phải là malware hay không. Với một danh sách dài các lỗ hổng liên quan đến dll này và như vậy đây chắc chắn là một malware.
Hình 3
Sau khi xem xét nó xong. Chúng tôi tiếp tục kéo thanh cuộn xuống để tìm ra malware nhị phân. Đa số chúng đều được viết, mở, lồng với các phím đăng ký. Cũng có một danh sách dài các chuỗi ASCII dường như là những mẫu malware, khi được thực thi sẽ xuất hiện người dùng với một số kiểu cửa sổ. Tôi đã đưa ra giả định này đối với chuỗi “CreateWindowExA” như hình dưới.
Hình 4
Việc đánh vần các chuỗi ASCII đó dường như không rắc rối lắm, nhưng hãy thử thông qua Google để xem chúng ta có thể đưa ra một sự giải thích tốt hơn về nó là cái gì. Đó là những gì tôi đã làm như hình dưới. Sự nghi ngờ của tôi đã được xác nhận, một cửa sổ sẽ hiện ra đối với người dùng khi malware được thực thi.
Hình 5
Các chuỗi còn lại gồm có một số từ khác cũng cần thiết nhanh chóng phải phát hiện ra xem chúng có phải là malware không và là malware gì. Các hành động này được thực hiện trong giai đoạn tĩnh. Như bạn có thấy, có một số lượng lớn các thông tin có thể tích cóp được từ malware nhị phân.
Từ tĩnh tới động
Tôi thực sự muốn tìm ra những thứ khá thú vị và đi đến phần cốt lõi của vấn đề. Điều đó làm cho tôi chuyển sang tiếp tục nghiên cứu phần động của phân tích. Bạn sẽ phải cài đặt và chạy cả regmon và filemon. Khi đã cài đặt và chạy phải đảm bảo rằng bạn đã loại trừ tất cả các thứ đang chạy được tìm thấy trong hai ứng dụng. Điều đó sẽ giúp bạn có thể bắt được tất cả các hành động xảy ra khi malware phát tác. Ở đây tôi thực hiện đơn giản việc đặt lại tên cho malware với phần mở rộng là .exe. Tôi gọi chúng thông qua một cửa sổ lệnh DOS. Khi thực hiện điều đó, một cửa sổ sẽ xuất hiện ra. Bạn có thực sự thích thú với những chuỗi nó có thể rút ra từ nhị phân.
Hình 6
Khi thấy chuỗi ASCII CreateWindowExA và sau đó là sử dụng Google, chúng ta sẽ có được mục đích của mình. Đây là phần mã được sử dụng để tạo cửa sổ hiện ra mà chúng ta nhìn thấy ở trên. Bây giờ làm gì với những thứ đã xảy ra trong regmon và filemon sau khi tôi gọi malware nhị phân? Hãy quan sát hai cửa sổ phía dưới.
Hình 7
Hình 8
Như những gì chúng ta tưởng tượng, malware tạo ra một cụm những thay đổi đối với các phím đăng kí, viết vào một số file và một số thành phần khác mà chúng ta liên kết với nó. Để phân tích một cách chính xác những gì cho ra trong regmon và filemon sẽ tốn kém nhiều thời gian. Điều này sẽ được thực hiện bằng việc kiểm tra để bất cứ thứ gì bị chèn vào ổ đĩa cứng. Hành động này khá cũ với malware, thông thường chúng vẫn sử dụng trojan để duy trình sự truy cập của máy tính. Hoặc bạn đã download Spyware, hoặc loại malware khác từ website hoặc máy chủ ftp. Không có gì ở đây là mới thực sự, bởi vì nó đã được ghi chép rất tốt trên các trang về bảo mật máy tính.
Kết luận
Trong phần này bạn đã thấy được việc thực hiện thiết kế đối chiếu cho nhiều mục đích là không cần đến quá nhiều cố gắng phức tạp. Tất cả những thứ cần thực hiện là xem xét và truy cập vào một số trang trên Internet có malware và làm thế nào để phân tích được nó. Qua bài viết này, chúng tôi hy vọng nó sẽ hữu ích đối với bạn và luôn mong có được các phản hồi góp ý của các bạn về vấn đề này.