Malware Analysis

Sau khi đã có những kiến thức cơ bản về malware. Với những người có niềm đam mê với công nghệ sẽ đặt ra nhiều câu hỏi. Nó đã làm gì trên máy tính, thiết bị của chúng ta khi xâm nhập? Tại sao chúng có thể vượt qua được lớp bảo mật? v.v Để giải quyết những vấn đề, câu hỏi đặt ra, một công việc có vẻ khó khăn đòi hỏi nhiều kiến thức chuyên ngành như: lập trình ngôn ngữ bậc thấp, lập trình ngôn ngữ bậc cao, am hiểu về kiến trúc hệ điều hành, kiến thức vi xử lí trên nhiều nền tảng khác nhau,…

Malware Analysic – phân tích mã độc, hiểu mã độc như những người tạo ra nó.

Phân tích mã độc là một bước quan trọng trong để có thể ngăn chặn và tiêu diệt hoàn toàn mã độc ra khỏi máy tính và hệ thống mạng; khôi phục lại hiện trạng của mạng như ban đầu; truy tìm nguồn gốc tấn công.

Kiến thức nền tảng cần phải có:

Để có thể phân tích hiệu quả, yêu cầu cơ bản là có kiến thức về lập trình đặc biệt là lập trình hợp ngữ và lập trình C.

Lý do cần hiểu hợp ngữ và C vì đa số mã độc trên windows (nền tảng phát triển mạnh mẽ của malware) thường tồn tại dưới dạng file .exe. Khi phân tích các mẫu malware chúng ta chỉ có thể nhờ sự hỗ trợ của các công cụ dịch ngược như IDA, Ollydbg để hiểu source code của chúng. Đây được gọi là quá trình phân tích tĩnh (tôi sẽ đề cập chi tiết sau này).

( Source code dưới dạng hợp ngữ – Babuk Ransomware 2021 – IDA Pro)

( Source code dưới dạng code C – Babuk Ransomware 2021 – IDA Pro)

Ngoài ra, việc am hiểu kiến trúc máy tính, nguyên lý các hệ điều hành sẽ mang nhiều hiệu quả trong quá trình phân tích. Các bạn nên thật sự nghiêm túc khi tìm hiểu nó, chúng thật sự rất thú vị.

Các bước để tiến hành phân tích một mẫu malware cơ bản:

Thông tin cơ bản về mẫu

  • Phân tích sơ lược

    Tiến hành kiểm tra sơ lược file bằng cách thu thập thông tin từ CFF Explorer, Detect It Easy,… hoặc từ các trang web online như Virustotal, Hybird Analysis.

  • Phân tích chi tiết
  •  Phân tích tĩnh:

    Cơ bản: Hàm băm, hàm và thư viện liên kết, tìm kiếm strings, kiểm tra định dạng, thông tin tệp, packing và obfuscation.

    Nâng cao: Disassembly/Reverse (sử dụng IDA, Ghidra).

  • Phân tích động:

    Một số công cũ hỗ trợ việc phân tích động chẳng hạn như Proces Monitor (Procmon), Process Explorer, Autoruns, TCPview, Regshot, Wireshark, …

Process Monitor, hay procmon là một công cụ giám sát nâng cao dành cho Windows cung cấp một cách để giám sát hoạt động registry, file system, network, process và thread nhất định. Nó kết hợp và nâng cao chức năng của hai công cụ kế thừa: FileMon và RegMon.

Process Explorer là phần mềm miễn phí của Microsoft quản lý tác vụ cực kỳ mạnh mẽ sẽ chạy khi thực hiện phân tích động. Nó có thể cung cấp cái nhìn chi tiết về các tiến trình hiện đang chạy trên hệ thống. Process Explorer có thể liệt kê các tiền trình đang hoạt động, các tập tin DLL được tải bởi một tiến trình, các thuộc tính quy trình khác nhau và thông tin hệ thống tổng thể. Cũng có thể sử dụng nó để hủy một quy trình, trích xuất một tiến trình đang chạy,…

TCPView là công cụ có giao diện, thân thiện với người dùng, nó cung cấp được nhiều thông tin chi tiết về các kết nối.

Công cụ phổ biến để kiểm tra thông tin startup là Autoruns được Microsoft cung cấp trong bộ Sysinternal Suite.

Regshot là một công cụ so sánh registry mã nguồn mở cho phép tạo và so sánh hai registry snapshot. Để sử dụng Regshot để phân tích phần mềm độc hại, Regshot sẽ so sánh hai snapshot trước và sau khi thực thi phần mềm độc hại.

Debug (OllyDbg, WinDbg, IDA Pro): cho phép kiểm tra mã ở cấp độ chi tiết hơn và cung cấp toàn quyền kiểm soát các hành vi có thể xảy ra trong thời gian chạy.

Wireshark là một công cụ phân tích mạng mạnh mẽ và phổ biến được sử dụng để kiểm tra và phân tích gói tin trên mạng.

Sandbox: để hạn chế các rủi ro trong thực thi mã độc thì phân tích động thường được thực hiện trên môi trường ảo, cách li với môi trường chính. Có khá nhiều phần mềm Sandbox khác nhau, phổ biến nhất có thể kể đến Cuckoo Sandbox. Các thông tin có thể được trích xuất từ báo cáo Cuckoo: Registry, Thông tin về tệp tin, Tiến trình, Địa chỉ IP và truy vấn DNS, Dlls, API calls.

Đây là quy trình phân tích cơ bản trong thực tế có thể không cần phải qua tất cả các quá trình. Tuy nhiên, phân tích cần được thực hiện một cách cụ thể, rõ ràng và hiệu quả để đáp ứng các yêu cầu sau:

  • Hiểu rõ về mã độc: Cần phải nắm bắt sâu sắc về cách hoạt động của mã độc, bao gồm cách thức lây lan, tác động đến hệ thống, và các mối đe dọa tiềm ẩn. Điều này giúp xác định cách tốt nhất để ngăn chặn và loại bỏ nó.
  • Phân loại mức độ nghiêm trọng: Dựa trên thông tin thu thập từ phân tích, mã độc được phân loại theo mức độ nguy hiểm và ảnh hưởng đến hệ thống. Việc này giúp ưu tiên xử lý các vấn đề quan trọng trước, giảm thiểu tác động tiềm ẩn và rủi ro.
  • Cải thiện khả năng phát hiện và loại bỏ: Dựa trên hiểu biết về mã độc và các mối đe dọa, cần phát triển và cải thiện các công cụ và quy trình phát hiện và loại bỏ. Điều này bao gồm việc áp dụng các biện pháp bảo mật hiệu quả, cập nhật phần mềm định kỳ và triển khai các giải pháp phòng ngừa.

Cảm ơn và hẹn gặp lại.

                                  (dt97_Malware_Analysis)

Chia sẻ