
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,
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.

