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

tgnd

Moderator
Thành viên BQT
18/08/2021
45
73 bài viết
Phân tích mã độc Windows cơ bản - Phần V
Xin chào các bạn, series phân tích mã độc windows cơ bản đã quay trở lại rồi đây, tiếp nối phần trước, khi chúng ta đã có một môi trường máy ảo an toàn và đầy đủ các công cụ hỗ trợ phân tích mã độc thì phần 5 này chúng ta sẽ cùng nhau phân tích động mã độc cơ bản nhé, bắt đầu ngay thôi!

Picture1.png


Trước hết thì phân tích động có thể nói là một bước rất quan trọng trong quá trình phân tích phần mềm độc hại. Ví dụ đơn giản thì qua bước phân tích tĩnh cơ bản mà tôi đã giới thiệu tại phần 3, rất có thể chúng ta sẽ rất có khả năng rơi vào tình huống khai thác được rất ít dữ liệu hoặc thậm chí là không khai thác được gì hay nói cách khác là rơi vào ngõ cụt, không biết mã độc này sẽ làm gì. Bởi vì các phần mềm độc hại thường đi kèm với các cơ chế phòng thủ như xáo trộn mã, pack,… Một số trường hợp thì vẫn có thể phân tích tĩnh bằng cách sử dụng các kỹ thuật phân tích tĩnh chuyên sâu hơn, phần này tôi sẽ giới thiệu sau nhé, còn bài viết này tôi sẽ giới thiệu tới các bạn các kỹ thuật phân tích động cơ bản. Sự hiệu quả của phân tích động đáng giá ở chỗ chúng ta có thể biết được chi tiết các hành vi của mã độc mà chỉ khi nó được thực thi mới có thể phân tích ra, chẳng hạn: địa chỉ C&C server, vị trí lưu trữ các tệp tin…

Tuy nhiên, các kỹ thuật phân tích động có thể đi kèm các rủi ro, do mã độc được thực thi trên hệ thống và nó cũng có một số điểm yếu có thể kể tới như: bị phát hiện môi trường phân tích, đối số thực thi không đúng…

Để phân tích động cơ bản và nhanh chóng nhất, tôi sẽ giới thiệu trong bài viết này trước tiên là 2 cách phân tích động tự động (sử dụng sandbox) và bán tự động (sử dụng các công cụ).

Sử dụng các hệ thống sandbox

Để vượt qua những hạn chế của phân tích tĩnh và đảm bảo hiệu quả trong việc nắm bắt chi tiết hành vi của mã độc, phân tích động thông qua việc sử dụng các hệ thống sandbox đã trở thành một công cụ quan trọng và hiệu quả.

Hệ thống sandbox là một môi trường ảo được tạo ra để chạy và theo dõi các chương trình hoặc phần mềm độc hại mà không làm ảnh hưởng đến hệ thống chính. Sandbox cho phép chúng ta theo dõi các hoạt động của mã độc mà không lo lắng về rủi ro tới hệ thống thực. Hiện nay có rất nhiều hệ thống sandbox từ miễn phí tới trả phí, đây đều là các công cụ đắc lực tự động thực thi mã độc, phân tích và tổng hợp báo cáo về các hành vi của mã độc. Một số hệ thống có thể kể tối như: Joe Sandbox, Anyrun, VMRay, Cuckoo sandbox, FireEye Sandbox, Hybrid Analysis, Sandboxie, Fortinet FortiSandbox…

Một số ưu điểm của sử dụng sandbox:
  • An toàn & tự động: Mã độc được thực thi trong một môi trường cách mạng, ngăn chặn sự lan truyền và tác động đến hệ thống chính.
  • Báo cáo chi tiết: Theo dõi mọi hành vi của mã độc từ việc gọi hàm, giao tiếp mạng, các tác động với hệ thống file, process, registry,… giúp xác định rõ ràng các tác động của mã độc. Thông tin trong báo cáo của các hệ thống này thường dễ hiểu và phù hợp giúp các nhà phân tích an ninh mạng có thể đưa ra biện pháp phòng ngừa, xử lý.
Nhưng sandbox cũng có những hạn chế khi phân tích động mã độc đó là:
  • Phát hiện môi trường phân tích: Mã độc có thể phát hiện môi trường sandbox và thay đổi hành vi để tránh bị phân tích. Hoặc mã độc có thể sử dụng các cơ chế để lẩn tránh, VD sử dụng các kỹ thuật ngủ hoặc delay execution.
  • Đối số thực thi không đúng: Một số sandbox không thể mô phỏng hoặc thực thi đúng mọi điều kiện môi trường.

Mỗi hệ thống sandbox đều có những ưu, nhược điểm khác nhau nhưng về cách thức hoạt động khá tương đồng nên tôi sẽ giới thiệu tới các bạn một cái tên đại diện đó là Cuckoo Sandbox.

Picture2.png


Nội dung báo cáo của Cuckoo Sandbox khá đầy đủ các thông tin, bao gồm:

1. Summary
  • Thông tin cơ bản: Bao gồm các thông tin như tên tệp, kích thước tệp, hash.
  • Điểm nổi bật: Tổng hợp về các điểm quan trọng và biểu hiện đặc trưng của mã độc.
  • Signatures: Thông tin về các chữ ký của mã độc được phát hiện, các chữ ký liên quan đến hành vi của mã độc, yara hoặc của antivirus, virustotal.
    Screenshots: Ảnh chụp màn hình trong quá trình thực thi mã độc.
2. Static Analysis
  • Chi tiết về các thuộc tính tĩnh của PE có nhiều ý nghĩa như section headers, PE complie time, strings, imports, exports, resources, strings, ...
  • Hashes: Tính toán các giá trị hash của tệp, bao gồm MD5, SHA1, SHA256.
3. Extracted Artifacts
  • Dữ liệu trích xuất: Các tệp, hình ảnh, hay thông tin quan trọng khác được trích xuất từ quá trình phân tích.
4. Behavioral Analysis
  • Hành vi của các tiến trình: Ghi lại mọi hoạt động của các tiến trình trong cây tiến trình khi mã độc được thực thi.
  • Giao tiếp mạng: Địa chỉ IP, cổng và giao thức mà mã độc tương tác.
  • APIs: Liệt kê các API hệ thống và arguments tương ứng mà mã độc sử dụng.
5. Network Analysis:
  • Traffic Captured: Dữ liệu về lưu lượng mạng đã ghi lại trong quá trình thực thi.
  • Địa chỉ IP: Liệt kê các địa chỉ IP mà mã độc kết nối.
6. Dropped Files:
  • Danh sách các tệp tin mới được tạo ra bởi mã độc. Có thể xem thông tin hoặc tải về để phân tích kỹ hơn.
7. Dropped Buffers:
  • Các mảng dữ liệu hoặc bộ nhớ đệm mà mã độc tạo ra trong quá trình thực thi, có thể bao gồm các buffer, shellcode...
8. Process Memory:
  • Nội dung bộ nhớ của các tiến trình được ghi lại để phân tích chi tiết hơn.
Picture3.png


Sử dụng các công cụ monitor hệ thống

Một trong những công cụ giám sát hệ thống dành cho windows rất hữu ích khi sử dụng cho phân tích động mã độc đó là Process Monitor – Procmon. Công cụ này có thể giám sát và ghi lại các hoạt động đối với hệ thống file, registry, process, thread, network.

Ngoài ra đối với từng đối tượng cụ thể, các bạn có thể sử dụng các công cụ khác như:
  • Regshot – Công cụ lưu lại và so sánh các thay đổi của registry trước và sau khi thực thi mã độc.
  • Wireshark – Công cụ bắt và ghi lại nhật ký lưu lượng mạng không thể thiếu trong “tủ đồ”.
Picture4.png


Promon có giao diện chính hiển thị từng sự kiện theo dòng, mỗi sự kiện có các thông tin về thời gian, tên, id, đường dẫn tiến trình, loại sự kiện, đường dẫn của sự kiện, kết quả. Nếu cần xem chi tiết, có thể click đúp vào dòng của sự kiện đó.

Picture5.png


Để hỗ trợ quá trình phân tích, procmon hỗ trợ sẵn chức năng lọc các sự kiện, có rất nhiều tùy chọn lọc khác nhau. Ví dụ: chúng ta có thể lọc theo tên của tiến trình “malware.exe” hoặc các tiến trình con của mã độc để xem các sự kiện, hành vi của mã độc là gì. Ngoài ra chúng ta cũng có thể tìm kiếm một hành vi mà chúng ta quan tâm như CreateFile, WriteFile

Tổng kết lại, chúng ta có thể sử dụng các công cụ, hệ thống để phân tích động mã độc một cách cơ bản nhưng vẫn thu được nhiều thông tin liên quan đến hành vi mà mã độc thực thi. Tuy nhiên để phân tích và đối phó với các mã độc mới và tiên tiến hơn, chúng ta sẽ cần thêm các kỹ thuật phân tích tĩnh và phân tích động chuyên sâu hơn nữa, hẹn các bạn trong những bài viết sau, cảm ơn các bạn đã đọc bài viết, chúc các bạn một ngày tốt lành!

Danh sách bài viết:
Phần I: Windows APIs
Phần II: Malware Behavior
Phần III: Basic Static Analysis
Phần IV: Virtual Machine
Phần V: Basic Dymamic Analysis < we are here
tgnd
 
Chỉnh sửa lần cuối:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Thẻ
mã độc windows
Bên trên