Mã độc (Malware) là một trong những mối đe dọa nghiêm trọng đối với bảo mật của hệ thống máy tính, thiết bị thông minh và nhiều ứng dụng. Nó có thể gây nguy hiểm cho dữ liệu quan trọng, nhạy cảm bằng cách đánh cắp, sửa đổi, mã hoá hoặc phá hủy dữ liệu. Theo báo cáo của AV-TEST [1-3], trung bình mỗi ngày có khoảng 350.000 mã độc mới được tạo ra (Hình 1 mô tả tổng số mã độc được phát hiện từ năm 2012 đến năm 2021 (cập nhật ngày 12/03/2021) của tổ chức AV-TEST). Điều này cho thấy mã độc là vấn đề nóng, có tốc độ phát triển nhanh.
Hình 1. Tổng số mã độc được phát hiện từ năm 2012 đến đầu năm 2021 của AV-TEST
Phương pháp dựa trên dấu hiệu nhận dạng được sử dụng trong các phần mềm antivirus khó có khả năng phát hiện chính xác mã độc mới. Mặt khác, dấu hiệu nhận dạng của mã độc phải được lưu trữ trước để thực hiện so sánh mẫu. Do vậy, cần chi phí cho việc lưu trữ chữ ký và thời gian so sánh. Ngoài ra, khả năng phát hiện của phần mềm antivirus không hiệu quả với mã độc loại đa hình, biến hình, hay mã độc được sửa đổi.
Việc phát hiện và phân loại phần mềm độc hại hiệu quả có thể được thực hiện dựa trên việc phân tích tiêu đề PE (Portable Executable) Header của các tệp thực thi (EXE, DLL), kết hợp với các kỹ thuật học máy khác nhau.
Phương pháp học máy đóng một vai trò quan trọng trong việc phát hiện mã độc tự động. Nhiệm vụ thách thức nhất là chọn một bộ đặc trưng phù hợp từ một tập dữ liệu lớn để có thể xây dựng mô hình phân loại trong thời gian ngắn hơn với độ chính xác cao hơn. Mục đích của công việc này trước hết là để thử nghiệm đánh giá, xem xét tổng thể các phương pháp phân loại, phát hiện mã độc và thứ hai là phát triển một hệ thống tự động để phát hiện mã độc dựa trên PE Header các file thực thi (EXE, DLL) với độ chính xác cao và thời gian thực hiện nhanh chóng.
Trên cơ sở đó, bài báo cũng tiếp cận việc phân tích mã độc theo cấu trúc tiêu đề của file thực thi PE Header và sử dụng một số kỹ thuật học máy để phát hiện, phân loại các file mã độc với file sạch. Tuy nhiên, có điểm mới là thông tin đặc trưng PE Header được lựa chọn theo khảo sát thống kê giữa các file mã độc và file sạch. Làm thế nào để phát hiện mã độc nhanh chóng và chính xác là vấn đề được các chuyên gia quan tâm nghiên cứu.
Để thực hiện, nhóm tác giả đã thu thập một tập 5.000 file thực thi EXE đa dạng, gồm 2.500 file mã độc và 2.500 file sạch. Nhóm tác giả thực hiện phân tích các thông tin từ PE Header. Sau đó thực hiện khảo sát thống kê và lựa chọn thông tin đặc trưng quan trọng từ PE Header. Tiếp theo là áp dụng các kỹ thuật học máy khác nhau để phân loại và phát hiện mã độc. Sau cùng là tiến hành thử nghiệm, đánh giá độ chính xác và so sánh kết quả nghiên cứu so với các kết quả hiện hành.
Các Header của tệp tin thực thi cấu trúc PE có thể cung cấp nhiều thông tin giá trị hơn là các hàm Import. Định dạng của PE Header chứa Header và các chuỗi các Section quan trọng. Header chứa các siêu dữ liệu (Metadata) về bản thân tệp tin thực thi. Nội dung phía dưới Header là các Section thực tế, mỗi Section chứa các thông tin liên quan chức năng của tệp thực thi.
Cấu trúc dữ liệu PE Header [4] được thiết kế bởi Microsoft từ năm 1993, dành cho các file thực thi EXE và thư viện liên kết động DLL trên Windows.
Hình 2. Cấu trúc định dạng PE Header [5]
Cấu trúc dữ liệu PE Header [5] được mô tả như Hình 2, trong đó:
(1) DOS Header: Tất cả các file PE được bắt đầu với DOS Header có kích thước 64 byte, trong đó 4 byte cuối mô tả định vị điểm bắt đầu phần NT Header. Phần này được định nghĩa như một cấu trúc IMAGE_DOS_HEADER. Dấu hiệu nhận biết các file thực thi EXE/DLL là 2 byte đầu tiên 0x5A4D (“MZ”). Nếu file được thực thi trong hệ điều hành DOS thì DOS Header có thể xác định nó như một file thực thi hợp lệ. Phần DOS Header kiểm tra thực tế khi một file thực thi hợp lệ.
(2) MS-DOS Stub: Sau DOS Header là phần MS-DOS Stub. Hiện nay, phần này được biên dịch chỉ để xuất ra thông báo “This program cannot be run in DOS mode”.
(3) PE Header (NT Header): được mô tả một cấu trúc IMAGE_NT_HEADERS, gồm 3 trường chính: PE-Signature, File Header và Optional Header.
(4) File Header: được xem như cấu trúc IMAGE_FILE_HEADER.
(5) Optional Header: được xem như cấu trúc IMAGE_OPTIONAL_HEADER.
(6) Section Table (Section Headers): gồm một mảng các cấu trúc IMAGE_SECTION_HEADER.
Kiểm tra tệp tin thực thi với công cụ PEView
Phần PE Header lưu trữ thông tin quan trọng của tệp tin thực thi. Ta có thể sử dụng công cụ PE Explorer hay PEView để xem các thông tin này như minh hoạ ở Hình 3.
Trên Hình 3, ta thấy phần được chọn là IMAGE_FILE_HEADER, hai phần đầu thuộc về quá khứ là IMAGE_DOS_HEADER và MS-DOS Stub Program. Qua phân tích khảo sát thống kê, cấu trúc IMAGE_DOS_HEADER có thể có thông tin liên quan đến mã độc.
Kế tiếp là IMAGE_NT_HEADER, cho thấy Header của NT (PE). Chữ ký không đổi (“PE”) có thể bỏ qua. Mục IMAGE_FILE_HEADER được chọn và hiển thị nội dung ở cửa sổ bên phải chứa các thông tin cơ bản về tệp tin này. Tại trường Description, tiểu mục Time Date Stamp cho ta biết thời điểm biên dịch tệp tin này. Thông tin này khá quan trọng, nếu thời điểm biên dịch là cũ (19/6/2008) so với hiện tại, ta có thể dùng các chương trình antivirus để dò quét, phát hiện bằng dấu hiệu và tiêu diệt; nếu thời điểm biên dịch là mới thì cần phải phân tích thêm.
Phần IMAGE_OPTIONAL_HEADER bao gồm một số thông tin quan trọng. Các mô tả của hệ thống con (Subsystems) chỉ ra là giao diện dòng lệnh (Console) hay đồ hoạ (GUI) của chương trình: kiểu Console chạy trong cửa sổ dòng lệnh của Windows có giá trị IMAGE_ SUBSYSTEM_CUI; kiểu GUI chạy trong môi trường đồ hoạ của Windows có giá trị IMAGE_ SUBSYSTEM_GUI.
Các thông tin khác từ Section Table, gồm mảng các cấu trúc IMAGE_SECTION_HEADER như: .text, .data, .rdata, .bss, .idata, .didat, .edata, .rsrc,...
Hình 3. PEView với tệp Vir58b.exe tại mục IMAGE_FILE_HEADER
Mục tiêu của phần này là khảo sát thống kê, trích chọn tập đặc trưng quan trọng từ PE Header. Tập đặc trưng này sẽ được thử nghiệm với một số mô hình học máy tiêu biểu như Mô hình NB (Naive Bayes), Mạng Nơ-ron nhân tạo ANN (Artificial Neural Network), Cây quyết định DT (Decision Tree) và Rừng ngẫu nhiên RF (Random Forest) nhằm thử nghiệm phát hiện mã độc.
Quy trình thực hiện như sau:
Bước 1: Thu thập các mẫu file thực thi (*.EXE) để thống kê so sánh PE Header, bao gồm 5.000 file trong đó có 2.500 file sạch và 2.500 file mã độc.
Bước 2: Thực hiện tiền xử lý dữ liệu với các kỹ thuật: đọc các bộ đặc trưng DOS Header, File Header, Optional Header từ PE Header của các file sạch và các file mã độc.
Bước 3: Khảo sát thống kê đặc trưng PE Header qua đồ thị để trích chọn ra tập đặc trưng rút gọn. Để dùng cho huấn luyện và thử nghiệm, tác giả thêm một nhãn class gán cho phân lớp ở cuối mỗi bản ghi tập đặc trưng: class = 1 ứng với bản ghi của file mã độc; class = 0 ứng với bản ghi của file sạch.
Để thống kê, ta tạo tập dữ liệu khảo sát: thực hiện liệt kê toàn bộ 2.500 bản ghi các đặc trưng PE Header của file sạch trước và ghép với 2.500 bản ghi các đặc trưng PE Header của file mã độc sau.
Trong phạm vi bài báo, chọn 3 cấu trúc trong PE Header gồm 55 đặc trưng (Tập 1, gốc).
a) IMAGE_DOS_HEADER: 19 đặc trưng.
b) IMAGE_FILE_HEADER: 7 đặc trưng.
c) IMAGE_OPTIONAL_HEADER: 29 đặc trưng.
Tiến hành phân tích, thống kê toàn bộ tập dữ liệu khảo sát với 5.000 bản ghi (2.500 bản ghi đầu là sạch, 2.500 bản ghi sau là mã độc) để trích chọn đặc trưng từ 55 đặc trưng gốc. Trong đó, lựa chọn các đặc trưng có giá trị phân biệt giữa mã độc và file sạch cao, còn các đặc trưng có giá trị phân biệt thấp hoặc không đổi cần loại bỏ.
a) Thống kê lựa chọn trong 19 đặc trưng của IMAGE_DOS_HEADER:
Hai đặc trưng e_cparhdr và e_sp tương quan chặt với nhau trên toàn bộ tập dữ liệu, cho phép phân biệt giữa file sạch và mã độc. Do vậy ta chỉ cần chọn 1 là đủ (e_sp).
+ Chọn 2 đặc trưng có giá trị phân biệt cao trên đồ thị nửa đầu (file sạch) và nửa cuối (mã độc) là e_sp và e_lfanew (xem các Hình 4a, 4b).
Hình 4a. Đặc trưng s_sp Hình 4b. Đặc trưng e_lfanew
+ Các đặc trưng còn lại có giá trị phân biệt kém hoặc không đổi, cần loại bỏ (xem các Hình 5a, 5b).
Hình 5a. Đặc trưng e_magic có giá trị không đổi Hình 5b. Đặc trưng e_crlc có giá trị không đổi
b) Khảo sát thống kê lựa chọn trong 07 đặc trưng của IMAGE_FILE_HEADER: Bằng cách khảo sát tương tự như mục (a):
+ Chọn 02 đặc trưng có giá trị phân biệt cao là NumberOfSections và Characteristics (xem các Hình 6a, 6b).
+ Số các đặc trưng còn lại có giá trị phân biệt kém hoặc không đổi, cần loại bỏ.
Hình 6a. Đặc trưng NumberOfSections Hình 6b. Đặc trưng Characteristics
c) Khảo sát thống kê lựa chọn trong 29 đặc trưng của IMAGE_OPTIONAL_HEADER: Cũng bằng cách thống kê tương tự như các mục (a), (b) ta thu được:
+ Chọn 10 đặc trưng có giá trị phân biệt cao giữa nửa đầu (file sạch) và nửa cuối (mã độc) gồm: MinorLinkerVersion, MajorOperatingSystemVersion, SizeOfUninitializedData, MajorSubsystemVersion, AddressOfEntryPoint, ImageBase, CheckSum, Subsystem, DllCharacteristics, SizeOfStackReserve (xem các Hình 7a, 7b).
Hình 7a. Đặc trưng ImageBase Hình 7b. Đặc trưng SizeOfStackReserve
+ Số các đặc trưng còn lại có giá trị phân biệt kém hoặc không đổi, cần loại bỏ. Cuối cùng, sau khi phân tích thống kê, ta trích chọn được 14 đặc trưng (Bảng 1).
Bảng 1. Mô tả 14 đặc trưng rút gọn (Tập 2)
Thông qua phân tích, khảo sát thống kê tác giả đã trích chọn được 14 đặc trưng quan trọng có giá trị phân biệt cao, loại bỏ các đặc trưng dư thừa có giá trị phân biệt thấp, không đổi hoặc tương tự nhau. Điều đó sẽ làm giảm kích thước tập đặc trưng và làm giảm thời gian tính toán nhưng vẫn đảm bảo độ chính xác cao khi áp dụng các mô hình học máy để phát hiện file sạch hay mã độc.
(Kỳ tiếp theo: Thử nghiệm một số mô hình học máy với các tập đặc trưng từ PE Header cho phát hiện mã độc).
Trần Ngọc Anh (Bộ tư lệnh 86), Võ Khương Lĩnh (Đại học Nguyễn Huệ)
10:00 | 15/08/2021
13:00 | 05/09/2022
09:00 | 18/08/2021
08:00 | 23/08/2021
14:00 | 26/10/2021
08:00 | 25/01/2024
Tháng 12/2023, các nhà nghiên cứu của hãng bảo mật Fortinet xác định được ba gói độc hại mới trong kho lưu trữ nguồn mở Python Package Index (PyPI) có khả năng triển khai tệp thực thi CoinMiner để khai thác tiền điện tử trên các thiết bị Linux bị ảnh hưởng. Các nhà nghiên cứu cho rằng các chỉ số xâm phạm (IoC) của các gói này có điểm tương đồng với gói PyPI Culturestreak được phát hiện vào đầu tháng 9/2023. Bài viết này sẽ phân tích các giai đoạn tấn công của ba gói PyPI độc hại này, trong đó tập trung vào những điểm tương đồng và sự phát triển của chúng so với gói Culturestreak.
10:00 | 22/09/2023
Internet robot hay bot là các ứng dụng phần mềm thực hiện các tác vụ lặp đi lặp lại một cách tự động qua mạng. Chúng có thể hữu ích để cung cấp các dịch vụ như công cụ tìm kiếm, trợ lý kỹ thuật số và chatbot. Tuy nhiên, không phải tất cả các bot đều hữu ích. Một số bot độc hại và có thể gây ra rủi ro về bảo mật và quyền riêng tư bằng cách tấn công các trang web, ứng dụng dành cho thiết bị di động và API. Bài báo này sẽ đưa ra một số thống kê đáng báo động về sự gia tăng của bot độc hại trên môi trường Internet, từ đó đưa ra một số kỹ thuật ngăn chặn mà các tổ chức/doanh nghiệp (TC/DN) có thể tham khảo để đối phó với lưu lượng bot độc hại.
13:00 | 18/09/2023
Một trong những tham luận thu hút sự quan tâm lớn của giới bảo mật tại Hội nghị bảo mật hàng đầu thế giới Black Hat USA 2023 là tấn công TSSHOCK của nhóm nghiên cứu mật mã đến từ công ty Verichains (Việt Nam). Đáng lưu ý, tấn công này cho phép một node ác ý có thể đánh cắp on-chain tài sản mã hoá giá trị hàng triệu đến hàng tỉ USD trên các dịch vụ này.
14:00 | 14/09/2023
NFT (Non-fungible token) là một sản phẩm của thời đại công nghệ mới và đang phát triển như vũ bão, ảnh hưởng sâu rộng đến nhiều lĩnh vực. Thị trường NFT bùng nổ mạnh mẽ vào năm 2021, tăng lên khoảng 22 tỷ USD và thu hút ước tính khoảng 280 nghìn người tham gia. Nhưng khi thị trường này phát triển, phạm vi hoạt động của tin tặc cũng tăng theo, đã ngày càng xuất hiện nhiều hơn các báo cáo về những vụ việc lừa đảo, giả mạo, gian lận và rửa tiền trong NFT. Bài báo sau sẽ giới thiệu đến độc giả tổng quan về NFT, các hành vi lừa đảo NFT và cách thức phòng tránh mối đe dọa này.
Lược đồ chữ ký số dựa trên hàm băm là một trong những lược đồ chữ ký số kháng lượng tử đã được Viện Tiêu chuẩn và Công nghệ Quốc gia Mỹ (NIST) chuẩn hóa trong tiêu chuẩn đề cử FIPS 205 (Stateless Hash Based Digital Signature Standard) vào tháng 8/2023. Bài báo này sẽ trình bày tổng quan về sự phát triển của của lược đồ chữ ký số dựa trên hàm băm thông qua việc phân tích đặc trưng của các phiên bản điển hình của dòng lược đồ chữ ký số này.
09:00 | 01/04/2024
Mới đây, Cơ quan An ninh mạng và Cơ sở hạ tầng Hoa Kỳ (CISA) đã phát hành phiên bản mới của hệ thống Malware Next-Gen có khả năng tự động phân tích các tệp độc hại tiềm ẩn, địa chỉ URL đáng ngờ và truy tìm mối đe dọa an ninh mạng. Phiên bản mới này cho phép người dùng gửi các mẫu phần mềm độc hại để CISA phân tích.
13:00 | 17/04/2024