Ứng dụng phương pháp tính Entropy thông tin trong việc phòng chống Ransomware
Bài báo trình bày phương pháp tính Entropy thông tin, tiến hành thực
nghiệm xác định giá trị Entropy của các tập tin dữ liệu nguyên bản và khi bị mã hóa
bởi mã độc tống tiền trong hệ thống mạng máy tính. Đề xuất giải pháp và xây dựng
phần mềm bảo vệ dữ liệu máy tính trước sự tấn công của Ransomware dựa trên
phương pháp tính Entropy thông tin.
Bạn đang xem tài liệu "Ứng dụng phương pháp tính Entropy thông tin trong việc phòng chống Ransomware", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Ứng dụng phương pháp tính Entropy thông tin trong việc phòng chống Ransomware
Thông tin khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san An toàn Thông tin, 05 - 2017 167 ỨNG DỤNG PHƯƠNG PHÁP TÍNH ENTROPY THÔNG TIN TRONG VIỆC PHÒNG CHỐNG RANSOMWARE Hoàng Văn Quyết*, Đoàn Văn Minh Tóm tắt: Bài báo trình bày phương pháp tính Entropy thông tin, tiến hành thực nghiệm xác định giá trị Entropy của các tập tin dữ liệu nguyên bản và khi bị mã hóa bởi mã độc tống tiền trong hệ thống mạng máy tính. Đề xuất giải pháp và xây dựng phần mềm bảo vệ dữ liệu máy tính trước sự tấn công của Ransomware dựa trên phương pháp tính Entropy thông tin. Từ khóa: Entropy thông tin, Entropy liên tục, Phần mềm độc hại, Mã hóa dữ liệu. 1. MỞ ĐẦU Ngày nay, sự thuận tiện của các phương thức thanh toán điện tử, cũng như công nghệ mã hóa hiện đại là cơ sở để mã độc tống tiền (Ransomware) bùng phát và có xu hướng ngày càng gia tăng, gây hậu quả nghiêm trọng cho người sử dụng máy tính. Chính vì vậy, bảo vệ dữ liệu điện tử khỏi Ransomware là một vấn đề rất cấp thiết. Bài báo này không đề cập đến phương pháp tiêu diệt Ransomware (một phương pháp mà các hãng bảo mật lớn trên thế giới thường làm), hay phương pháp khắc phục hậu quả khi dữ liệu đã bị mã hóa bởi Ransomware do công nghệ mã hóa ngày càng hiện đại. Tác giả chỉ tập trung vào phương pháp bảo vệ dữ liệu máy tính khi bị nhiễm Ransomware, một phương pháp hiện nay chưa có hãng bảo mật nào nghiên cứu. Đặc điểm đặc trưng của dữ liệu mã hóa bởi Ransomware đó là mức độ ngẫu nhiên lớn và để đo mức độ ngẫu nhiên đó có thể sử dụng đại lượng Entropy thông tin của C. E. Shannon [3]. Từ công thức tính Entropy của C. E. Shannon, tác giả xây dựng công thức tính Entropy cho tập tin dữ liệu được lưu trên bộ nhớ, làm cơ sở tiến hành tính thực nghiệm lượng Entropy của các tập tin dữ liệu cụ thể, từ đó rút ra ngưỡng Entropy phân biệt giữa tập tin mã hóa và chưa mã hóa. Trên những cở sở lý thuyết và thực nghiệm đó, tác giả đã phát triển chương trình bảo vệ dữ liệu máy tính khi bị nhiễm Ransomware. 2. PHƯƠNG PHÁP TÍNH ENTROPY THÔNG TIN 2.1. Khái quát về Entropy và Ransomware Năm 1927, Von Neumann đã xây dựng công thức thống kê trong nhiệt động lực học và cơ học có chứa giá trị Entropy, tuy nhiên, đến năm 1948, khái niệm Entropy thông tin mới được C. E. Shannon đưa ra trong bài báo "A Mathematical Công nghệ thông tin H. V. Quyết, Đ. V. Minh, “Ứng dụng phương pháp tính Entropy chống Ransomware.” 168 Theory of Communication". Entropy thông tin là một khái niệm mở rộng của Entropy trong nhiệt động lực học và cơ học thống kê, được áp dụng sang lý thuyết thông tin, mô tả mức độ hỗn loạn trong tín hiệu lấy từ một sự kiện ngẫu nhiên, cho phép chỉ ra số lượng thông tin (các phần không hỗn loạn ngẫu nhiên) có trong tín hiệu. Xem xét trường hợp cụ thể, một câu có ý nghĩa được viết bằng tiếng Việt và được thể hiện bởi các ký tự (chữ cái, khoảng cách và dấu câu), sẽ không hiện ra một cách hoàn toàn hỗn loạn ngẫu nhiên. Cụ thể, tần số xuất hiện của ký tự "x" sẽ không giống với tần số xuất hiện của ký tự phổ biến hơn là "t", đồng thời, nếu dòng chữ vẫn đang được viết hay đang truyền tải, sẽ khó đoán trước được ký tự tiếp theo. Việc xuất hiện ký tự tiếp theo có mức độ ngẫu nhiên nhất định, giá trị này được xác định bởi Entropy thông tin. Ransomware là một loại phần mềm độc hại sử dụng hệ thống mật mã để mã hóa dữ liệu, ngăn chặn người dùng truy cập và sử dụng máy tính, yêu cầu nạn nhân phải nộp một khoản tiền chuộc nếu muốn lấy lại dữ liệu [1]. Ransomware mã hóa dữ liệu bằng cách đọc dữ liệu lên bộ nhớ RAM, mã hóa dữ liệu, sau đó ghi ngược xuống ổ đĩa. Quá trình mã hóa thành công khi dữ liệu mã hóa trên bộ nhớ RAM được ghi ngược hoàn toàn xuống ổ đĩa. Dữ liệu mã hóa bởi Ransomware sẽ có mức độ ngẫu nhiên (mức độ hỗn loạn) của các byte lớn hơn dữ liệu chưa bị mã hóa. Mức độ phức tạp của việc giải mã các dữ liệu tỉ lệ thuận với mức độ ngẫu nhiên [2]. 2.2. Cơ sở nền tảng tính Entropy thông tin C. E. Shannon [3] đã xây dựng định nghĩa về Entropy thông tin để thoả mãn các giả định sau: - Entropy phải tỷ lệ thuận liên tục với các xác suất xuất hiện của các phần tử ngẫu nhiên trong tín hiệu. Thay đổi nhỏ trong xác suất xuất hiện sẽ dẫn đến thay đổi nhỏ trong Entropy; - Nếu các phần tử ngẫu nhiên đều có xác suất xuất hiện bằng nhau, việc tăng số lượng phần tử ngẫu nhiên phải làm tăng Entropy; - Các chuỗi tín hiệu có thể tạo ra theo nhiều bước và giá trị Entropy phải bằng tổng trọng số của các Entropy của từng bước. C. E. Shannon chỉ ra rằng, các định nghĩa Entropy cho một tín hiệu có thể nhận các giá trị rời rạc, thoả mãn các giả định trên, đều được tính theo công thức: n i ipipK 1 2 )(log)( (1) với K là một hằng số, chỉ phụ thuộc vào đơn vị đo; n là tổng số các giá trị có thể Thông tin khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san An toàn Thông tin, 05 - 2017 169 nhận của tín hiệu; i là giá trị rời rạc thứ i; p(i) là xác suất xuất hiện của giá trị i. 2.3. Xác định Entropy trong trường hợp ngẫu nhiên rời rạc Nếu một sự kiện ngẫu nhiên rời rạc x, có thể nhận các giá trị là n..1 , thì Entropy H(x) của nó được tính theo công thức (2): n i n i ipip ip ipxH 1 2 1 2 )(log)() )( 1 (log)()( (2) Như vậy, Entropy của x cũng là giá trị kì vọng của các độ ngẫu nhiên của các giá trị mà x có thể nhận. Entropy thông tin trong trường hợp phần tử tín hiệu ngẫu nhiên rời rạc còn được gọi là Entropy Shannon. Thực nghiệm kết quả tính Entropy của phép thử Bernoulli: X=1 với xác suất p và X=0 với xác suất (1-p), khi đó: )1(log)1(log)()( 22 pppppHxH (3) Hình 1. Biểu đồ giá trị Entropy rời rạc của X. 2.4. Xác định giá trị Entropy trong trường hợp ngẫu nhiên liên tục Nếu x là số thực ngẫu nhiên liên tục, thì Entropy liên tục được tính theo công thức: dxxfxffH ))()(log()( (4) với f là hàm mật độ xác suất. Entropy liên tục thường được gọi là Entropy vi phân hay Entropy Boltzmann [4]. Entropy Boltzmann không phải là giới hạn của Entropy Shannon khi n , do đó không phải là độ đo mức độ hỗn loạn của thông tin. Trường hợp một dòng chữ luôn chỉ có các ký tự "a" sẽ có Entropy bằng 0, vì ký tự tiếp theo sẽ luôn là "a". Một dòng chữ chỉ có hai ký tự 0 và 1 ngẫu nhiên hoàn toàn sẽ có Entropy là 1 bit cho mỗi ký tự. Công nghệ thông tin H. V. Quyết, Đ. V. Minh, “Ứng dụng phương pháp tính Entropy chống Ransomware.” 170 Một dòng chữ tiếng Anh thông thường có Entropy khoảng 1,1 đến 1,6 bit cho mỗi ký tự. Thuật toán nén PPM [4] có thể tạo ra tỷ lệ nén 1,5 bit cho mỗi ký tự. Trên thực tế, tỷ lệ nén của các thuật toán nén thông dụng có thể được dùng làm ước lượng cho Entropy của dữ liệu. Entropy của dòng văn bản S thông thường được định nghĩa dựa trên mô hình Markov. Nếu các ký tự tiếp theo hoàn toàn độc lập với các ký tự trước đó, Entropy nhị phân H[S] sẽ là: )(log)( 2 ipipSH (5) 2.5. Công cụ phân tích Entropy nhị phân Bintropy là công cụ phân tích mẫu, ước tính khả năng một tệp tin có chứa các thông tin nén hoặc mã hóa. Bintropy có hai chế độ hoạt động: - Chế độ thứ nhất, công cụ sẽ phân tích Entropy của mỗi đoạn thực thi có định dạng PE, được xác định trong phần đầu của tệp thực thi. Điều này giúp người phân tích xác định đoạn mã thực thi có thể bị mã hóa và nén. Một bộ biên dịch chuẩn tạo ra PE thực thi có các phần theo định dạng chuẩn (.text, .data, .reloc, .rsrc). Tuy nhiên, nhiều công cụ đóng gói biến đổi định dạng của tệp thực thi gốc, nén các đoạn mã, dữ liệu và dồn chúng vào một hay hai đoạn mới. Trong chế độ này, Bintropy tính giá trị Entropy cho mỗi đoạn nó cần. Tuy nhiên, không tính Entropy cho phần đầu tệp tin bởi vì phần này không chứa các byte dữ liệu nén hay mã hóa; - Chế độ thứ hai bỏ qua định dạng tệp, thay vào đó Bintropy phân tích Entropy của toàn bộ tệp, từ byte đầu tiên cho đến byte cuối cùng. Với tệp định dạng PE, người dùng có thể phân tích Entropy của đoạn mã và dữ liệu ẩn tại cuối tệp hoặc ở giữa các đoạn định dạng PE. Entropy của một khối dữ liệu là một phép thống kê lượng thông tin chứa bên trong. Trong bài báo “Sử dụng phân tích Entropy để tìm ra mã độc nén và mã hóa”, hai tác giả Hamrock và Lyda đưa ra một quan sát đáng chú ý là các dữ liệu nén và mã hóa trong mẫu mã dữ liệu độc hại đóng gói có mức Entropy cao. Mã chương trình và dữ liệu bình thường có mức Entropy thấp hơn nhiều. Mã độc hại sử dụng kỹ thuật đóng gói được xác định bởi mức Entropy cao trong nội dung của nó. Để đánh giá khả năng công cụ Bintropy dựa trên phân tích Entropy, Lynda và Hamrock đã tiến hành đánh giá thử nghiệm trên bốn tập dữ liệu với các phân loại tệp khác nhau: plain text, thực thi thông thường, thực thi nén và thực thi mã hóa. Mỗi tập dữ liệu gồm 100 tệp khác nhau, mỗi tệp được tính Entropy dựa trên các khối dữ liệu có độ dài 256 byte. Công cụ Bintropy tính Entropy mức trung bình của các khối và khối có mức Entropy cao nhất. Mục đích thử nghiệm này là xác Thông tin khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san An toàn Thông tin, 05 - 2017 171 định mức Entropy tối ưu để phân loại tệp thực thi thông thường và tệp thực thi đã biến đổi sử dụng kỹ thuật mã hóa hoặc kỹ thuật nén. Sau khi sử dụng tập dữ liệu training, Bintropy có khả năng phát hiện các tệp thực thi bị nén hoặc mã hóa khi đặc tính Entropy vượt qua một mức định trước. Bảng 1. Độ chính xác thống kê Entropy dựa trên tập dữ liệu. Tập dữ liệu Mức Entropy trung bình Entropy trong khoảng Mức Entropy cao nhất Plain text 4.347 4.066−4.629 4.715 Thực thi trông thường 5.099 4.941−5.258 6.227 Thực thi nén 6.801 6.677−6.926 7.233 Thực thi mã hóa 7.175 7.174−7.177 7.303 Bảng kết quả cho thấy, với độ chính xác đạt 99% và mức Entropy trong khoảng 6.677 đến 7.177, công cụ Bintropy sẽ phát hiện tệp nén hay mã hóa. Hình 2. Phân bố số lượng tệp mã độc theo đoạn (session) bị mã hóa hoặc nén. Lyda và Hamrock cũng đã thực hiện xác định xu hướng Entropy bởi công cụ Bintropy và để tạo độ tin cậy của đánh giá đã áp dụng trên một tập 21.567 mã độc Win32 - với thực thi định dạng PE từ bộ thu thập của các hãng phần mềm chống virus nổi tiếng trên thế giới trong khoảng thời gian từ tháng 01/2000 đến tháng 12/2005. Dựa trên khảo sát bởi sử dụng công cụ Bintropy để phân tích, kết quả chỉ ra rằng, UPX1 là phần được kẻ viết mã độc sử dụng kỹ thuật đóng gói phổ biến nhất, sau đó là phần text (hình 2). 2.6. Xây dựng công thức tính Entropy cho dữ liệu lưu trên RAM Dữ liệu lưu trên bộ nhớ máy tính được mô tả dưới dạng các byte nhớ, một byte Công nghệ thông tin H. V. Quyết, Đ. V. Minh, “Ứng dụng phương pháp tính Entropy chống Ransomware.” 172 có giá trị từ 1 đến 255, do đó đơn vị rời rạc i sẽ có giá trị từ 1 đến 255. Từ thực nghiệm và áp dụng công thức tính Entropy nhị phân (5), tác giả đã xây dựng công thực tính lượng Entropy cho một tập tin dữ liệu được lưu trên RAM, cụ thể như sau: 255 1 2 )(log)( i ipipKEntropy (6) với hằng số K = 1.4426950408; p(i) là xác suất xuất hiện của giá trị i (từ 1 đến 255) trên độ dài của tập tin dữ liệu được lưu trên RAM. Dựa trên công thức tính Entropy thông tin, đã tiến hành kiểm tra thực nghiệm đối với các tập tin dữ liệu, trong trạng thái nguyên bản và trạng thái bị mã hóa bởi Ransomware và được lưu trữ ở các định dạng khác nhau như .doc, .pdf, .htm, .xls. Kết quả thực nghiệm được thể hiện trong bảng 2. Bảng 2. Kết quả thực nghiệm tính Entropy cho các tập tin có định dạng khác nhau. Tập tin đã bị mã hóa Tập tin định dạng .pdf Tập tin định dạng .doc Tập tin định dạng .htm Tập tin định dạng .xls 9.230 1.631 0.101 0.104 0.097 9.408 1.178 0.039 0.104 0.107 10.000 1.458 0.039 0.109 0.097 10.000 2.928 0.068 0.098 0.109 10.000 1.055 0.067 0.097 0.109 9.454 1.648 0.071 0.100 0.109 10.000 2.108 0.119 0.082 0.076 10.000 1.468 0.070 0.105 0.102 10.000 1.155 0.039 0.104 0.098 Kết quả thực nghiệm cho thấy sự khác biệt về lượng Entropy của tập tin dữ liệu bị mã hóa bởi Ransomware so với của các tập tin dữ liệu chưa bị mã hóa. Kết quả này cho phép xác định được ngưỡng Entropy để làm cơ sở thiết lập quyền ghi dữ liệu từ Ram xuống ổ đĩa. Nếu lượng Entropy lớn hơn ngưỡng cho phép, việc ghi xuống ổ đĩa bị cấm, ngược lại việc ghi xuống ổ đĩa diễn ra như bình thường. Trên nền tảng tính toán Entropy thông tin, tác giả đã xây dựng phần mềm bảo vệ dữ liệu có tên là Firefly [6], bảo vệ người dùng trước các cuộc tấn công của Ransomware, hành động có chủ đích của tin tặc bằng cách xác định các ngưỡng Entropy của các định dạng tập tin khác nhau (hình 3). Phần mềm được phát triển có các chức năng sau: Mã hóa và giải mã dữ liệu; Phòng chống mã độc tống tiền; Thông tin khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san An toàn Thông tin, 05 - 2017 173 Thiết lập chính sách sử dụng thiết bị lưu trữ ngoài; Kiểm soát truy cập dữ liệu; Tạo và quản lý ổ đĩa ảo; Kiểm soát cài đặt; Chống thay đổi tập tin thực thi; Ghi nhật ký hệ thống; Bảo vệ dữ liệu bằng khóa cứng. Hình 3. Phần mềm chống thất thoát dự liệu và phòng chống Ransomware. 3. KẾT LUẬN Trong nhiệm vụ bảo mật, bảo đảm an ninh, an toàn thông tin, việc xây dựng các hệ thống, ứng dụng, dịch vụ ngăn cản các hành vi của mã độc là rất quan trọng. Tác giả đã giới thiệu phương pháp tính Entropy thông tin cho tín hiệu, làm cơ sở cho phương pháp tính Entropy thông tin cho dữ liệu máy tính. Kết quả nghiên cứu, thực nghiệm tính toán giá trị Entropy dữ liệu máy tính, đã xác định được ngưỡng Entropy để thiết lập quyền ghi xuống ổ đĩa, từ đó, cho phép xây dựng các phần mềm, dịch vụ nhằm ngăn chặn Ransomware mã hóa dữ liệu trên máy tính người dùng. TÀI LIỆU THAM KHẢO [1]. N. M. Abramson, “Information Theory and Coding”, McGraw-Hill, New York, 1963. [2]. M. Sikorski, “Practical Malware Analysis”, Physical model and science Journal, vol. 10, No.1 (1995), pp. 79-93. [3]. C. E. Shannon, “Prediction and Entropy of Printed English”, Bell System Technical Journal, vol.30, No. 1 (1951), pp. 50-64. [4]. C. Tom, “An introduction to information theory and Entropy”, Physical Công nghệ thông tin H. V. Quyết, Đ. V. Minh, “Ứng dụng phương pháp tính Entropy chống Ransomware.” 174 tecnology (2014), pp. 67-80. [5]. C. E. Shannon, “A Mathematical Theory of Communication”, Bell System Technical Journal, vol. 27, No.3 (1953), pp. 379-423. [6]. Firefly, Data Threat Prevention, ABSTRACT THE USAGE OF INFORMATION ENTROPY CALCULATION IN RANSOMWARE PREVENTION This article shows how to calculate information Entropy changes for the original files and the files that were encrypted by Ransomware in a computer system. It is also proposing a method using information Entropy calculation in order to develop software that protects data from Ransomware. Keywords: Information Entropy, Boltzmann’s Entropy, Malware, Data encryption. Nhận bài ngày 15 tháng 2 năm 2017 Hoàn thiện ngày 15 tháng 3 năm 2017 Chấp nhận đăng ngày 01 tháng 5 năm 2017 Địa chỉ: Cục Công nghệ thông tin, BTTM. *Email: hoangquyetik@gmail.com.
File đính kèm:
- ung_dung_phuong_phap_tinh_entropy_thong_tin_trong_viec_phong.pdf