Thông tin tài liệu:
Thiết kế đối chiếu Malware.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,...
Nội dung trích xuất từ tài liệu:
Thiết kế đối chiếu MalwareThiết kế đối chiếu MalwareTrong các phần trước của bài viết này chúng tôi đã giới thiệu cho cácbạn cách nhận và mở một file UPX đã đóng gói. Trong phần tiếp theonày chúng tôi sẽ thực sự xem xét đến một mẫu malware trong định dạngkhô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étmột mẫu malware mở. Có một số mục đích khác nhau cho việc thực hiệnthiế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ànkhô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ươngtrì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ìmkiế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ạngchuỗ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ểubiết về lập trình. Để đơn giản với malware như vậy, bạn có thể sử dụng cácphươ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ốnthự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ảohex. 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íchmột malware đã được mở gói. Chúng sẽ phải thực hiện rất nhiều thủ tục, tuynhiê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 malwareBạ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êntrong 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àomalware và tùy chọn “strings” sẽ được hiển thị. Kích vào để chọn tùy chọnnà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 1Chúng ta có thể nhìn thấy trong cửa số ở trên có một số mục đầu tiên đi đôivớ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âygiờ chúng ta hãy kéo thanh cuộn xuống để nhìn thấy chuỗi đầu ra mà chúngta quan tâm xuất hiện dưới dạng nhị phân. Hình 2Một trong các mục ở đây mà tôi thấy cần chú ý đó là “shlwapi.dll”. File dllnà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 3Sau khi xem xét nó xong. Chúng tôi tiếp tục kéo thanh cuộn xuống để tìm ramalware nhị phân. Đa số chúng đều được viết, mở, lồng với các phím đăngký. Cũng có một danh sách dài các chuỗi ASCII dường như là những mẫumalware, 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ìnhdưới. Hình 4Việc đánh vần các chuỗi ASCII đó dường như không rắc rối lắm, nhưng hãythử thông qua Google để xem chúng ta có thể đưa ra một sự giải thích tốt hơnvề 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 5Cá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ảiphá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 độngTô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ântí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ìmthấ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ạitên cho malware với phần mở rộng là .exe. Tôi gọi chúng thông qua một cửasổ 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ựcsự thích thú với những chuỗi nó có thể rút ra từ nhị phân. Hình 6Khi thấy ...