Phương pháp phân tích mã độc (Phần 1)
Chào mừng bạn đến với Case Study “ Phân Tích Mã Độc “. Ở phần 1 trong bài viết này, chuyên gia Bùi Đình Cường sẽ chia sẻ với các bạn về Phương pháp phân tích mã độc. Nội dung gồm: 1.TÌm hiểu tổng quan về mã độc. 2.Công nghệ phân tích mã độc 3. Sự khác nhau giữa ...
Chào mừng bạn đến với Case Study “Phân Tích Mã Độc“. Ở phần 1 trong bài viết này, chuyên gia Bùi Đình Cường sẽ chia sẻ với các bạn về Phương pháp phân tích mã độc. Nội dung gồm:
1.TÌm hiểu tổng quan về mã độc.
2.Công nghệ phân tích mã độc
3. Sự khác nhau giữa các kỹ thuật phân tích về mã độc
4.Một số quy tắc chính khi phân tích mã độc (malware analysis)
Sau đây là thông tin chi tiết:
1.Tìm hiểu tổng quan về mã độc
Mã độc hay “Malicious software” là một loại phần mềm được tạo ra và chèn vào hệ thống một cách bí mật với mục đích thâm nhập, phá hoại hệ thống hoặc lấy cắp thông tin, làm gián đoạn, tổn hại tới tính bí mật, tính toàn vẹn và tính sẵn sàng của máy tính nạn nhân.
>> Xem thêm: Lỗ hổng nguy hiểm trong phần mềm Dnsmasq của Router
Mã độc được phân thành nhiều loại tùy theo chức năng, cách thức lây nhiễm, phá hoại: virus, worm, trojan, rootkit … Để tìm được mã độc ta cần phải có phương pháp phân tích và kỹ thuật phân tích mã độc, ở bài viết này hãy cùng chuyên gia an ninh mạng Bùi Đình Cường tìm hiểu về mục tiêu, công nghệ và những quy tắc chính khi phân tích mã độc.
PHẦN 1 – MỤC TIÊU PHÂN TÍCH MÃ ĐỘC
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.
Trước tiên cần xác định được chính xác chuyện gì đã xảy ra với toàn bộ hệ thống, tìm được toàn bộ các thiết bị, tệp, ứng dụng đã bị lây nhiễm.
Khi quy trình phân tích mã độc, chúng ta cần xác định được chính xác những gì mã độc có thể thực hiện, cách thức phát hiện mã độc trong hệ thống mạng, phương pháp đo lường thiệt hại nó có thể gây ra. Và quan trọng nhất cần tìm ra qui luật đặc trưng (Mã nhận diện – signatures) để nhận diện mã độc, diệt mã độc và khôi phục hệ thống.
> Tìm hiểu phương pháp phân tích mã độc – Phần 2
> Cách phân tích các loại mã độc – Phần 3
Có hai loại mã nhận diện chính:
- Host-based signatures: Là các mã nhận diện được sử dụng để phát hiện mã độc trên máy tính.
- Network signatures: Là các mã nhận diện được sử dụng để phát hiện mã độc khi giám sát hệ thống mạng.
Để hiểu khái niệm về mã độc, chi tiết các loại mã độc, bạn nên xem tại viết CHI TIẾT này:” Mã độc là gì – Malware Analysis“
2.Công nghệ phân tích mã độc
Hầu hết mã độc ở dạng các chương trình, dịch vụ (dạng binary) không thể đọc thông thường. Cách phân tích mã độc chính là: sử dụng các công cụ và các kĩ thuật phân tích. Có hai kĩ thuật phân tích chính:
+ Phân tích tĩnh (Phân tích mà không cần mã độc chạy trong hệ thống)
+ Phân tích động (Phân tích mã độc chạy thật trong hệ thống).
=> Cả hai kĩ thuật này đều yêu cầu các mức phân tích cơ bản và phân tích nâng cao.
3. Sự khác nhau giữa các kỹ thuật phân tích về mã độc
-
- [Cơ bản] Phân tích tĩnh: Mục tiêu xác định một tệp/ứng dụng có phải mã độc hay không, cung cấp các thông tin cơ bản nhất về các hàm đặc trưng. Có thể hỗ trợ viết các mã nhận diện (Network signatures) mức cơ bản. Đặc trưng của phương pháp này là khả năng phân tích nhanh, không yêu cầu kiến thức chuyên sâu nhưng hạn chế là bỏ qua nhiều đặc tính quan trọng của mã độc.
- [Cơ bản] Phân tích động: Mục tiêu là chạy mã độc, theo dõi hành vi mã độc thực hiện trên hệ thống từ đó có phương pháp loại bỏ mã độc và tạo ra các mã nhận diện. Tuy nhiên trước khi phân tích cần thiết lập môi trường phân tích riêng để tránh bị lây nhiễm vào hệ thống thật (Xem chi tiết phương pháp tạo môi trường vào bước tiếp theo). Đặc trưng của phương pháp này cũng tương tự phương pháp phân tích tĩnh ở mức cơ bản: Không yêu cầu nhiều kĩ thuật và kiến thức chuyên môn, nhanh nhưng hiệu quả không cao và có thể bỏ qua nhiều tính năng quan trọng.
- [Nâng cao] Phân tích tĩnh: Thực hiện việc dịch ngược mã độc bằng các công cụ Disassembler, xem nội dung và cấu trúc mã nguồn để xác định xem mã độc làm gì. Đặc trưng của phương pháp này yêu cầu kiến thức về dịch ngược, hệ thống, tập lệnh.
- [Nâng cao] Phân tích động: Sử dụng các trình debugger để nghiên cứu và xem cách thức thực thi của mã độc trong môi trường thật. Từ đó trích xuất thông tin chi tiết về mã độc: nguồn gốc, cách thức lây nhiễm, các đoạn mã, các hàm quan trọng. Để có thể thực hiện được phương pháp này cần trang bị kiến thức chuyên sâu về kĩ thuật, thành thạo việc sử dụng các công cụ và nhiều kĩ năng để có thể vượt qua các kĩ thuật của mã độc.
4.Một số quy tắc chính khi phân tích mã độc
Có một số quy tắc cần ghi nhớ để quá trình phân tích hiệu quả hơn.
- Không nên tập trung quá vào những tiểu tiết, hầu hết các mã độc đều có lượng mã nguồn rất lớn, phức tạp và có chứa nhiều mã rác. Do đó, chúng ta nên tập trung vào các tính năng chính để tránh mất nhiều thời gian chi tiết hóa các thông tin không cần thiết.
- Mỗi công cụ hỗ trợ phân tích có những chức năng riêng, cần vận dụng linh hoạt và hiệu quả dựa trên điểm mạnh của từng công cụ để quá trình phân tích nhanh hơn, chính xác hơn.
- Có nhiều chiến thuật phân tích khác nhau, do đó cần thay đổi chiến thuật một cách linh hoạt để hiệu quả phân tích tốt hơn.
- Việc phân tích mã độc (malware analysis) giống như một trò chơi đuổi bắt, người viết mã độc thì luôn cố che giấu còn người phân tích thì luôn cố tìm ra các thông tin chi tiết nhất. Các kĩ thuật mới được tạo ra mỗi ngày, do đó cần luôn luôn cập nhật các kĩ thuật phân tích và công nghệ mới nhất, ngoài ra cũng cần có sự sáng tạo để quá trình phân tích nhanh, hiệu quả hơn.
Hi vọng bài viết này sẽ giúp bạn học tốt hơn trong chuyên đề Malware Analysis. Đón đọc phần tiếp theo của chủ đề Phương Pháp Phân Tích Mã Độc tại Blog Security bạn nhé : https://securitybox.vn/blog/