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