Mã độc là một trong những mối đe dọa nghiêm trọng đối với an toàn của hệ thống công nghệ thông tin. Sự phát triển cả về hình thức lây nhiễm và kỹ thuật che giấu hành vi của mã độc gây nhiều khó khăn cho việc điều tra, phân tích chúng. Mã độc thường sử dụng các kỹ thuật phòng chống điều tra (anti-forensics) để tránh bị phát hiện trong quá trình điều tra số.
Việc thu thập và phân tích lượng lớn dữ liệu hay các phần mềm có chứa mã độc sử dụng cơ chế gây nhiễu thường tốn thời gian, công sức và đòi hỏi nhiều kỹ thuật khác nhau.
Vì vậy, việc nghiên cứu, đề xuất phương pháp phát hiện mã độc hiệu quả, nhanh chóng là hết sức cần thiết.
Phương pháp phát hiện, phân tích mã độc
Quá trình phát hiện, phân tích mã độc trong điều tra số có thể dẫn đến một trong ba kết quả là dương tính giả (false positive), âm tính giả (false negative) hoặc tỷ lệ tìm thấy (hit ratio).
- Dương tính giả xảy ra khi hệ thống phát hiện mã độc tồn tại trong một tệp tin mà thực tế tệp tin này không bị nhiễm mã độc. Nguyên nhân dẫn đến dương tính giả là do dấu hiệu (signature) nhận biết mã độc được xây dựng chưa chính xác, nên dấu hiệu này xuất hiện trong tệp tin không bị nhiễm.
- Âm tính giả xảy ra khi hệ thống không thể phát hiện được mã độc trong một tệp tin bị nhiễm. Nguyên nhân do, cơ sở dữ liệu mẫu mã độc của hệ thống không có đủ mẫu dấu hiệu của nhiều loại mã độc cụ thể.
- Tỷ lệ tìm thấy là kết quả có được khi hệ thống phát hiện được mã độc một cách chính xác. Tức là, dấu hiệu của mã độc phù hợp với một mẫu đã lưu trữ trong cơ sở dữ liệu của hệ thống.
Điều tra số sử dụng hai phương pháp phát hiện mã độc là dựa trên dấu hiệu và sự bất thường.
Phát hiện dựa trên dấu hiệu
Dấu hiệu là một chuỗi các byte chỉ có trong mã độc mà không có trong các chương trình bình thường khác. Phương pháp phát hiện mã độc dựa trên dấu hiệu nhằm xác định sự tồn tại của mã độc bằng cách so sánh các byte dấu hiệu khả nghi trích xuất được từ một chương trình với cơ sở dữ liệu các dấu hiệu của mã độc đã biết, gọi là danh sách đen (blacklist).
Tuy vậy, phương pháp này đặt ra một số vấn đề như: Việc trích xuất dấu hiệu rất phức tạp nên điều tra viên phải thực hiện nghiên cứu và phân tích các xâm nhập bằng phương pháp thủ công trong một môi trường có kiểm soát. Việc dấu hiệu bị bỏ qua trong quá trình điều tra là rất phổ biến, do đó, các dấu hiệu cần phải được cập nhật thường xuyên trước khi tiến hành phân tích. Điều này dẫn đến việc cơ sở dữ liệu chứa các dấu hiệu ngày càng tăng, gây khó khăn cho việc quản lý dữ liệu.
Phát hiện dựa trên sự bất thường
Đây là phương pháp phát hiện mã độc dựa trên các đặc tả của việc thực hiện và triển khai một ứng dụng, hoặc hệ thống tệp tin cụ thể. Phương pháp này hoạt động bằng cách xây dựng một hồ sơ các hành vi bình thường của chương trình. Bất kỳ sai lệch nào so với hồ sơ đã lưu trữ đều được xác định là bất thường và giả định rằng mọi dấu hiệu bất thường đều có chứa mã độc. Ví dụ, trong quá trình hoạt động bình thường, một chương trình không thực hiện thao tác ghi dữ liệu lên một số thư mục nhất định của hệ thống. Nếu các thông báo từ hệ thống giám sát chỉ ra hành động ghi dữ liệu vào các thư mục của chương trình này, hệ thống phát hiện sẽ xác định đó là hành vi bất thường.
Hạn chế của phương pháp này là độ chính xác không cao. Việc xác định hành vi bình thường của các chương trình lớn là rất phức tạp, vì vậy một hồ sơ về các hành vi bình thường không đầy đủ có thể dẫn đến trường hợp dương tính giả. Ngoài ra, phương pháp này cũng tạo ra cơ sở để có thể thực hiện các tấn công bắt chước (mimicry attack). Trong một cuộc tấn công bắt chước, kẻ tấn công thực hiện các biện pháp làm cho tấn công của mình được cho phép trong hồ sơ của các chương trình. Tuy nhiên, để làm được điều này, kẻ tấn công phải có thông tin về hồ sơ các hành vi bình thường của chương trình.
Mô hình tối ưu hóa phát hiện mã độc
Dựa trên các vấn đề mà điều tra viên phải đối mặt, cần phải xây dựng một Mô hình phân tích và phát hiện mã độc tối ưu trong quá trình điều tra số. Mô hình đề xuất bao gồm 3 giai đoạn: Xác nhận lây nhiễm, phân tích mã độc và xây dựng hồ sơ mã độc (Hình vẽ).
Hình: Ba giai đoạn của Mô hình phân tích phát hiện mã độc
Giai đoạn 1: Xác nhận lây nhiễm
Giai đoạn này nhằm mục tiêu xác nhận sự tồn tại của mã độc trong dữ liệu, gồm cả việc phát hiện lây nhiễm chủ động và bị động trong các hệ thống liên kết. Giai đoạn này bao gồm các thành phần sau:
- Thông báo: Chức năng chính của thành phần này là thu thập các thông báo được gửi từ bên thứ ba (chẳng hạn như hệ thống quản lý tiền mặt CMS hay bộ xử lý thanh toán trực tuyến) hoặc cảnh báo đến từ một số thiết bị đầu cuối. Thành phần này hoạt động như một nền tảng để xác định có hay không các vấn đề xảy ra bên trong hệ thống.
- Cách ly: Thành phần này có chức năng thu thập các tệp tin bị hư hại từ hệ thống và sau đó tách biệt tệp tin đó với các tệp tin liên quan. Điều này có thể ngăn chặn sự lây nhiễm của mã độc tới các tệp tin không bị nhiễm khác.
- Phân loại: Tiến trình này hoạt động nhằm xác định mức độ quan trọng của các vấn đề xảy ra do sự lây nhiễm mã độc, từ đó phân loại các vấn đề theo từng cấp độ nghiêm trọng khác nhau.
- Xác nhận lây nhiễm: Đến thời điểm này, hệ thống đã thu thập đủ thông tin để xác định dữ liệu có bị nhiễm mã độc hay không và tiến hành lựa chọn hành động thực hiện tiếp theo thích hợp. Tùy thuộc vào kết quả thu được ở các thành phần trước, các hành động sau đây có thể được thực hiện:
+ Trường hợp dữ liệu được chọn không bị lây nhiễm, toàn bộ quá trình phát hiện có thể dừng lại và việc điều tra số được tiếp tục thực hiện.
+ Trường hợp phát hiện có sự lây nhiễm của mã độc, hai phương án sẽ được thực hiện là tiếp tục phân tích dữ liệu hoặc chuyển sang các xử lý tại CSDL. Nếu tiếp tục phân tích dữ liệu, phải đảm bảo việc phân tích là đúng để có thêm thông tin về sự lây nhiễm chuyển cho giai đoạn sau (giai đoạn 2). Nếu đã xác định được sự lây nhiễm và khả năng gia tăng mã độc, cần kiểm tra xem dấu hiệu mã độc có phù hợp với các thông tin có trong cơ sở dữ liệu hay không. Trong trường hợp chưa xác định được, cần thực hiện một số hành động để có thêm các thông tin mới nhằm cập nhật hồ sơ mã độc hiện có (chuyển sang giai đoạn 3).
Giai đoạn 2: Phân tích mã độc
Dựa trên kết quả thu được từ giai đoạn 1, có thể khẳng định các tập tin bị nhiễm bởi mã độc hay không. Tuy nhiên, sẽ rất khó xác định chính xác mức độ nguy hiểm của mối đe dọa vì không đủ thông tin về những hoạt động mà cuộc tấn công đã thực hiện trên hệ thống (có thể bao gồm việc lấy cắp mật khẩu và khai thác tính bí mật của dữ liệu). Cần tiến hành phân tích toàn bộ tập tin bị nhiễm, nhằm tìm hiểu chính xác hoạt động của mã độc và xác định rõ các dấu hiệu. Việc xác định các dấu hiệu mã độc sẽ hỗ trợ cho sự cập nhật và hoàn thiện cơ sở dữ liệu mã độc (được đề cập ở giai đoạn 3). Vì thế, giai đoạn này tập trung vào quá trình phân tích mã độc, bao gồm các tiến trình:
- Xây dựng môi trường kiểm soát: Trước khi thực hiện bất kỳ một phân tích nào, cần phải xây dựng một môi trường có kiểm soát để thực hiện một cuộc điều tra kỹ lưỡng. Cần tiến hành thực hiện các bước sau: cách ly tệp tin nhiễm mã độc; xây dựng một mạng riêng biệt; sử dụng các công cụ thử nghiệm; duy trì tệp tin nhật ký hay triển khai môi trường giả lập Sandbox.
- Phân tích tĩnh: nhằm thực hiện quá trình phân tích tệp tin khả nghi để lấy kết quả bổ sung vào CSDL về hồ sơ mã độc. Việc phân tích các tệp tin thực thi có thể được thực hiện nhằm xác định các mối đe dọa trong tương lai đối với hệ thống. Để tối ưu hóa quá trình phân tích tĩnh, cần thực hiện các công việc như: tiền phân tích, phân loại định dạng tệp tin, phân tích chuỗi ký tự và gỡ rối mã nguồn (debugging).
- Phân tích động: Quy trình phân tích động thường thu thập các thông tin từ: bộ nhớ, registry, các tiến trình và dịch vụ đang chạy...: Phân tích động bao gồm phân tích mạng, dò quét thiết bị và phân tích nội dung tệp tin.
Giai đoạn 3: Xây dựng hồ sơ mã độc
Từ kết quả của các phân tích được thực hiện trong giai đoạn 2 (phân tích tĩnh và phân tích động), có thể xây dựng hồ sơ mã độc bằng những thông tin đã biết về cuộc tấn công của mã độc. Việc mô tả chi tiết hoạt động của một mã độc cụ thể sẽ tạo điều kiện cho quá trình xây dựng các mẫu mã độc về sau.
Việc quản lý cơ sở dữ liệu mã độc để đảm bảo các dấu hiệu và thông tin về mã độc luôn được cập nhật và sẵn sàng phục vụ cho quá trình phát hiện và phân tích cơ chế hoạt động của mã độc. Những sai sót trong các cảnh báo mã độc ở giai đoạn 1 có thể được chuyển tiếp đến giai đoạn này để theo dõi sự tái nhiễm mã độc trên hệ thống.
Việc tạo lập hồ sơ mã độc bao gồm những nội dung như: Bổ sung thêm các thông tin tổng hợp; Đóng gói hồ sơ để tăng độ tin cậy của hồ sơ, phục vụ cho việc kiểm tra, dò quét; Phân loại hồ sơ để thuận lợi cho quá trình truy cập của hồ sơ, tra cứu thông tin; Xem xét hồ sơ mã độc định kỳ để ngăn ngừa sự tái nhiễm mã độc.
Mã độc luôn có xu hướng phát triển, thay đổi để thích nghi cao với môi trường lây nhiễm và tránh bị phát hiện. Vì vậy, cần phải cập nhật các hồ sơ mã độc thường xuyên để tìm kiếm những thay đổi trong các dấu hiệu cũng như hoạt động của chúng.
Kết luận
Bằng cách nhận biết các lỗi xảy ra trên hệ thống hiện có, mô hình được đề xuất có thể khắc phục các hạn chế, hỗ trợ điều tra viên trong việc thu thập chứng cứ số liên quan đến mã độc đạt được kết quả tối ưu. Các công cụ mã nguồn mở cũng có thể được sử dụng trong việc trích xuất, điều tra và phân tích dữ liệu. Trong tương lai, cần tập trung nghiên cứu ứng dụng kỹ thuật phát hiện mã độc trong điều tra số.