Phân tích mã độc gồm hai phương pháp chính là phân tích tĩnh và phân tích động. Trong bài này, chúng ta sẽ tìm hiểu về những công cụ, phương pháp phân tích mã độc, dựa trên nền tảng cụ thể là Windows.
Phân tích động mã độc là gì?
Nó là phương pháp phân tích cách hoạt động của mã độc khi mã độc được thực thi, xem xét mã độc hoạt động ra sao, lây lan như thế nào, nó kết nối đến đâu, cài đặt những gì vào hệ thống, thay đổi thành phần nào nhằm mục đích ngăn chặn việc lây nhiễm, tạo ra các dấu hiệu nhận dạng hiệu quả.
Việc phân tích mã độc đòi hỏi quá trình theo dõi liên tục và lặp đi lặp lại. Nếu thực hiện trên hệ thống thiết bị thật sẽ mất rất nhiều công sức và thời gian. Nó cũng có thể gây thiệt hại lớn cho cả hệ thống của bạn. Vì thế, bạn cần phải thiết lập một môi trường an toàn cho việc chạy mã độc để có thể thu thập thông tin về mã độc một cách tốt nhất.
>> Độc giả có thể tìm hiểu Case Study Phân Tích Mã Độc << Tại đây
Các công cụ phân tích các mã độc điển hình
Process Monitor
Process Monitor là một công cụ giám sát tiên tiến cho Windows hiển thị hệ thống tập tin theo thời gian thực, hoạt động của Registry và process / thread. Nó kết hợp các tính năng của hai tiện ích Sysinternals là Filemon (giám sát file) và Regmon (giám sát registry), Process Monitor có cơ chế lọc khá phức tạp mà không sử dụng cơ chế lọc đơn giản theo chuỗi . Các tính năng mạnh mẽ độc nhất của nó sẽ làm cho Process Monitor trở thành một tiện ích cơ bản trong bộ công cụ xử lý sự cố và bộ công cụ tìm kiếm phần mềm độc hại.
Xem thêm: Những lỗi bảo mật website thường gặp
WireShark
Wireshark là một công cụ theo dõi , kiểm tra và phân tích các loại mã độc, thông tin mạng được phát triển bởi Gerald Combs. WireShark vượt trội về khả năng hỗ trợ các giao thức (khoảng 850 loại). Giao diện của Wireshark là một trong những giao diện phần mềm phân tích gói dễ dùng nhất do đó nó thân thiện với người dùng. Vì nó có thể bắt đường đi của gói tin, nên nosconf được ứng dụng vào quá trình phân tích lỗ hổng, mã độc.
Tuy nhiên, điểm yếu lớn nhất của nó khi phân tích các mã độc là không cho biết chính xác ứng dụng nào tạo ra gói tin gửi đi, mà chỉ biết gói tin đó có thành phần gì, gửi từ đâu, và đến đâu… Vì thế, cần kết hợp với những công cụ khác như Process Monitor.
OllyDBG
OllyDBG hay còn gọi tắt là Olly là công cụ debug 32-bit rất phổ biến cho Microsoft Windows. Nhấn mạnh vào phân tích mã nhị phân làm cho nó đặc biệt hữu ích trong trường hợp nguồn không có sẵn. Bạn có thể tải về và sử dụng nó miễn phí.
Nhờ giao diện trực quan và dễ sử dụng nên Olly phù hợp với người dùng ở mọi trình độ khác nhau. Nó hỗ trợ debug file thực thi và file thư viện. Thêm vào đó, script và bộ plug-in của nó rất phong phú vì có một cộng đồng sử dụng đông đảo. Một số plug-in quan trọng đó là Olly Advanced, PhantOm,StrongOD. Chúng cung cấp các cơ chế anti-anti debug, hook vào một số hàm quan trọng, ẩn tiến trình-tên cửa số Ollydbg … nhằm làm cho chương trình bị debug không biết mình đang bị debug.
Immunity Debugger
Cũng giống như OllyDbg, tuy nhiên ngôn ngữ kịch bản mà Immunity Debugger hỗ trợ là Python, một ngôn ngữ rất mạnh, tự động debug và được giới bảo mật, phân tích thường dùng. Nó giảm nhẹ và debug nhanh để tránh bị fail trong quá trình phân tích mã độc phức tạp. Immunity Debugger cũng có giao diện đơn giản, dễ hiểu.
Windbg
Windbg: là một công cụ debug mạnh mẽ được phát hành bởi Microsoft. Nó có khả năng debug trên cả user-mode và kernel-mode . WinDbg cung cấp debug cho hạt nhân Windows, trình điều khiển chế độ hạt nhân, và dịch vụ hệ thống, cũng như các ứng dụng chế độ người dùng và trình điều khiển.
WinDbg có thể xem mã nguồn, thiết lập các điểm ngắt, xem các biến (bao gồm cả các đối tượng C ++), ngăn xếp dấu vết, và bộ nhớ. Cửa sổ Debugger Command của nó cho phép người dùng thực hiện nhiều lệnh. Tuy nhiên để sử dụng được WinDbg đòi hỏi có nhiều kinh nghiệm về Reverse Engineering cũng như programming.
GDB
GDB, trình gỡ lỗi Dự án GNU, cho phép bạn xem những gì đang diễn ra bên trong một chương trình khác trong khi nó thực hiện – hoặc một chương trình khác đang làm gì vào lúc nó rơi.
GDB có thể thực thi bốn bước (cộng với những thứ khác để hỗ trợ những điều này) để giúp bạn bắt lỗi trong quá trình phân tích các mã độc
– Bắt đầu chương trình của bạn, xác định bất cứ điều gì có thể ảnh hưởng đến hoạt động của nó.
– Hãy dừng chương trình của bạn theo các điều kiện quy định.
– Kiểm tra những gì đã xảy ra, khi chương trình của bạn đã dừng lại.
– Thay đổi mọi thứ trong chương trình của bạn, do đó bạn có thể thử nghiệm với việc điều chỉnh hiệu ứng của một lỗi và tiếp tục tìm hiểu về một lỗi khác.
Chương trình được debug có thể được viết bằng Ada, C, C ++, Objective-C, Pascal (và nhiều ngôn ngữ khác). Những chương trình này có thể được thực hiện trên cùng một máy như GDB hoặc trên một máy khác (từ xa). GDB có thể chạy trên phổ biến nhất của UNIX và Microsoft Windows biến thể
Với sự phát triển không ngừng của các ngành công nghệ thông tin như hiện nay việc bảo vệ thông tin cá nhân, tổ chức, quốc gia, các hệ thống máy tính trong công nghiệp… khỏi mã độc trở nên rất cấp thiết. Bài viết này đã giới thiệu với về các phương pháp, công cụ phân tích mã độc. Nhờ những phương pháp ấy, bạn có thể hiểu rõ hơn về các loại mã độc. Từ đó rút ra cách phòng chống và diệt chúng. Hi vọng nó giúp ích được cho bạn.