Phân tích mã độc Windows cơ bản phần 3

Đúng vậy, phân tích mã độc sẽ bắt đầu với những bước phân tích đầu tiên, kỹ thuật được nhắc tới ở đây đó là phân tích tĩnh. Để phân tích phần mềm độc hại, chúng ta sẽ tiếp cận theo 2 cách: tĩnh và động. Cả 2 phương pháp đều có những cách phân tích từ cơ bản tới nâng cao. Vì phần này mới bắt đầu nên mình sẽ hướng dẫn các bạn phân tích tĩnh cơ bản nhé!

Phân tích tĩnh cơ bản​

Chúng ta sẽ “kiểm tra” các tệp thực thi bằng cách sử dụng các công cụ hỗ trợ để phân tích mã, cấu trúc và các thông tin. Kỹ thuật này giúp xác nhận tệp có phải mã độc hay không. Các công cụ và kỹ thuật rất đơn giản và có thể thao tác nhanh chóng nên đây được coi là bước đầu tiên khi phân tích mã độc. Tuy nhiên phương pháp này có thể không hiệu quả đối với các phần mềm độc hại, mã độc tinh vi. Ngoài ra, một số mã độc có thể lợi dụng các lỗ hổng của các công cụ kiểm tra để thực thi trái phép, các bạn nên lưu ý vấn đề này!

Quét Virus​

Bước đầu tiên khi phân tích tĩnh đó là sử dụng các chương trình, phần mềm chống virus (anti-virus) để quét tệp chúng ta nghi ngờ.

Các công cụ, phần mềm chống virus có khả năng phát hiện mã độc dựa vào các cơ sở dữ liệu, các học thuật AI để phát hiện các đoạn mã độc hại trong tệp. Từ đó chúng ta dễ dàng phát hiện và kết luận được tập tin đáng ngờ.

Mỗi một chương trình chống virus có một cơ sở dữ liệu riêng, nên để tối ưu, chúng ta có thể kiểm tra bằng cách quét nhiều phần mềm chống virus. Hoặc đơn giản là sử dụng công cụ được triển khai dưới dạng web đó là Virustotal. Virustotal cho phép tải lên tệp và tự động quét bởi nhiều phần mềm anti-virus. Ngoài ra còn cung cấp thêm nhiều thông tin hữu ích khác.

vt.png

READ  Cách kiểm tra quét Keylog trong máy tính và gỡ phần mềm gián điệp

Nhược điểm của phương pháp này là các phần mềm độc hại có thể thay đổi, làm rối hoặc che dấu các đoạn mã để vượt qua được các phần mềm diệt virus.

Kiếm tra mã băm (hash)​

Mã băm được sinh ra từ những thuật toán, mỗi tệp tương ứng được xác định bởi 1 mã băm nên chúng ta cũng có thể sử dụng mã băm như một thông tin để tìm kiếm và xác định mã độc.

image 0.png

Một công cụ đơn giản và có sẵn của windows: Certutil có thể giúp chúng ta tính toán mã băm phổ biến như: MD5, SHA…
Ngoài ra còn các công cụ miễn phí khác các bạn có thể sử dụng như: md5deep, WinMD5, CFF Explorer…

Sau khi có mã băm của tệp, các bạn có thể thực hiện tìm kiếm trực tuyến để kiểm tra các thông tin liên quan đến tệp.
Ví dụ, sau khi mình kiểm tra một tệp cài đặt bằng cách tra cứu md5 trên trang Virustotal, kết quả nhận được là file an toàn, không có phần mềm diệt virus nào phát hiện đây là mã độc.

Tìm chuỗi (string)​

Các chương trình thông thường sẽ có các chuỗi, chúng nằm trong những tiêu đề, thông báo, ghi log hay đường dẫn tệp… Tìm kiếm các chuỗi được sử dụng trong chương trình giúp chúng ta có thể hình dung ra được các tính năng của chúng. Ví dụ: trong chương trình có các chuỗi “http://abcd.com/xyz” thì rất có thể chương trình sẽ kết nối tới URL này.

Chúng ta cũng có thể sử dụng các công cụ miễn phí để tìm kiếm và phân tích chuỗi như: CFF Explorer, Strings, …
Lưu ý rằng chuỗi có thể được lưu dưới dạng ASCII và Unicode. Các phần mềm chuẩn thường sẽ có nhiều chuỗi, còn các phần mềm độc hại thường che dấu các chuỗi đáng ngờ nên chúng thường có ít chuỗi hơn.

READ  Cách Bảo Mật Website từ A-Z: Hướng dẫn cách bảo vệ hiệu quả trang web

Ví dụ:

image 1.png

Các chuỗi có giá trị có thể là các địa chỉ IP, URL, đường dẫn file hoặc các từ có nghĩa.
Từ đó ta có thể tìm kiếm thêm thông tin từ các chuỗi trên.

Kiểm tra trình đóng gói (packer)​

Một số chương trình sử dụng các trình đóng gói để giảm kích thước phần mềm, trong đó có cả các phần mềm độc hại, ngoài giảm kích thước, các phần mềm độc hại còn dùng với mục đích che dấu các đoạn mã độc hại.

Để phát hiện các trình đóng gói, chúng ta có thể sử dụng các công cụ: PEiD, CFF Explorer, ExeScan…

image 2.png

Như các bạn thấy, PEiD đã phát hiện tệp được đóng gói bằng UPX phiên bản 0.89.6. Đây là một loại trình đóng gói rất phổ biến, để phân tích mã độc ta cần giải nén trình đóng gói này.

Kiểm tra các thư viện được liên kết (import)​

Thông tin rất hữu ích khác giúp phân tích tệp thực thi đó là các thư viện và các hàm mà tệp sử dụng. Để thực hiện các hành vi độc hại, mã độc thường sẽ sử dụng các Windows API tương ứng, phần này mình đã giới thiệu ở phần I và phần II, các bạn nhớ xem lại nhé.

image 3.png

Khi biết được chương trình sử dụng thư viện hay các hàm nào chúng ta có thể đoán được hành vi của chúng. Ví dụ: Nếu chương trình import hàm URLDownloadToFile, chúng ta có thể đoán rằng nó sẽ kết nối đến một URL và tải xuống và lưu một nội dung nào đó.
Công cụ Dependency Walker giúp liệt kê các hàm liên kết động được sử dụng trong chương trình. Chức năng của các thư viện và hàm các bạn có thể tham khảo tài liệu từ Microsoft nhé.

READ  Cách mã hóa dữ liệu với công cụ Chaos Mash

Song song với kiểm tra các hàm import thì đối với tệp DLL, chúng ta có thể kiểm tra thêm các chức năng export, tên của các hàm này cũng có thể hữu ích. Ví dụ: Để chạy service, chúng thường export hàm ServiceMain.

Thông tin cấu trúc của tệp thực thi (PE format)​

Sau khi kiểm tra các thông tin mình liệt kê ở trên, chúng ta sẽ phân tích sâu hơn vào cấu trúc của tệp thực thi. Một yêu cầu không thể thiếu đề phân tích mã độc đó là nắm được định dạng của PE file. Để duyệt cấu trúc PE, chúng ta có thể dùng một số công cụ như: PEview, CFF Explorer…

image 4.png

Ví dụ: trong IMAGE_FILE_HEADER, chúng ta có trường thông tin TimeDateStamp, từ đó chúng ta có thể biết được thời điểm tệp thực thi này được biên dịch, một thông tin khá hữu ích cho công việc ứng cứu sự cố. (Đố các bạn biết giá trị trong hình là năm bao nhiêu).

Tổng kết​

Trên đây là các bước phân tích tĩnh cơ bản khi phân tích tệp thực thi, phần sau mình sẽ chia sẻ thêm về phân tích tĩnh nâng cao, các bạn nhớ đón xem nhé. Nếu thấy hữu ích, đừng quên để lại cho mình 1 like và chia sẻ nhé, cảm ơn các bạn!

Trả lời

error: Nội dung đã được bảo vệ !!
Contact Me on Zalo