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à mmộ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 phn 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 hp của chúng ta đang thực hiện phân tích malware thì nhng 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 ttrong các phn 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à bn 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. Nhng 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 hng về mã liên quan tới nó. Để thực hiện điều này bn thực sự
phải đi từng tn 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 thi 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ể sdụng các
phương pháp động và tĩnh thiết kế đối chiếu để giải quyết.
Như nhng gì bn thấy, có một số lý do kc nhau như tại sao bn lại muốn
thực hiện thiết kế đi chiếu và nhiu mục đích khác nhau khác. Các công c
cho công việc này gm 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ủ tc, tuy
nhiên chúng tôi sẽ trình bày cho các bn những thông tin tương đi dễ hiểu.
Tìm malware
Bạn có thể xem phần chúng tôi đã đề cập phần trước vcài đặt MAP
(Malcode Analyst Pack) từ Idefense. Những gì chúng ta thc 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 chn “strings” sẽ được hiển thị. ch vào để chọn tùy chọn
này. Khi lnh được thực thi, một cửa skhá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. Vi một danh sách dàic l
hổng liên quan đến dll này và như vậy đây chắc chắn là mt 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 schú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 chui ASCII dường như là những mẫu
malware, khi được thực thi sẽ xuất hin người dùng với mt 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.