Tài liệu Nghiên cứu phương pháp phát hiện mã độc dựa trên các kỹ thuật học máy

  • Số trang: 56 |
  • Loại file: PDF |
  • Lượt xem: 455 |
  • Lượt tải: 0

Mô tả:

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --------------------------------------- NGUYỄN THỊ NGỌC ANH NGHIÊN CỨU PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC DỰA TRÊN CÁC KỸ THUẬT HỌC MÁY LUẬN VĂN THẠC SĨ KỸ THUẬT HÀ NỘI - 2019 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --------------------------------------- NGUYỄN THỊ NGỌC ANH NGHIÊN CỨU PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC DỰA TRÊN CÁC KỸ THUẬT HỌC MÁY Chuyên ngành: Hệ thống thông tin Mã số: 8.48.01.04 LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. HOÀNG XUÂN DẬU HÀ NỘI - 2019 i LỜI CAM ĐOAN Tôi cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được công bố trong bất kỳ công trình nào khác. Hà Nội, tháng 10 năm 2018 Tác giả luận văn Nguyễn Thị Ngọc Anh ii LỜI CẢM ƠN Tôi xin trân trọng cảm ơn các thầy cô trong Khoa công nghệ thông tin đã tạo điều kiện cho tôi một môi trường học tập tốt, đồng thời truyền đạt cho tôi một vốn kiến thức quý báu, một tư duy khoa học để phục vụ cho quá trình học tập và công tác của tôi. Tôi xin gửi lời cảm ơn đến các bạn trong lớp Cao học Hệ thống thông tin M17CQIS01-B khóa 2017- 2019 đã giúp đỡ tôi trong suốt thời gian học tập vừa qua. Đặc biệt, tôi xin được bày tỏ lòng biết ơn sâu sắc đến TS. HOÀNG XUÂN DẬU đã tận tình chỉ bảo cho tôi trong suốt quá trình học tập và nghiên cứu, giúp tôi có nhận thức đúng đắn về kiến thức khoa học, tác phong học tập và làm việc, tạo điều kiện thuận lợi để tôi hoàn thành luận văn này. Cuối cùng, tôi xin được gửi lời cảm ơn tới gia đình, đồng nghiệp, người thân đã động viên, giúp đỡ tôi trong quá trình hoàn thành luận văn. Hà Nội, tháng 10 năm 2018 Tác giả luận văn Nguyễn Thị Ngọc Anh iii MỤC LỤC LỜI CAM ĐOAN ....................................................................................................... i LỜI CẢM ƠN ............................................................................................................ ii MỤC LỤC ................................................................................................................. iii DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ................................................v DANH MỤC BẢNG BIỂU ...................................................................................... vi DANH MỤC HÌNH VẼ ........................................................................................... vii MỞ ĐẦU .....................................................................................................................1 CHƯƠNG 1 - TỔNG QUAN VỀ MÃ ĐỘC VÀ PHÁT HIỆN MÃ ĐỘC ................3 1.1 Tổng quan về mã độc.....................................................................................3 1.1.1 Khái niệm mã độc ...................................................................................3 1.1.2 Các dạng mã độc .....................................................................................5 1.2 Các phương pháp phát hiện mã độc ..............................................................8 1.2.1 Phương pháp phát hiện dựa trên chữ ký .................................................8 1.2.2 Phương pháp phát hiện dựa trên hành vi ..............................................10 1.3 Sự cần thiết của học máy trong phát hiện mã độc .......................................11 1.4 Các nghiên cứu liên quan ............................................................................12 1.5 Kết luận chương ..........................................................................................13 CHƯƠNG 2 - PHÁT HIỆN MÃ ĐỘC DỰA TRÊN HỌC MÁY ............................14 2.1 Khái quát về các kỹ thuật học máy ..............................................................14 2.1.1 Tổng quan về học máy ..........................................................................14 2.1.2 Một số kỹ thuật học máy.......................................................................18 2.2 Mô hình phát hiện mã độc dựa trên học máy ..............................................27 2.3 Kết luận chương ..........................................................................................32 iv CHƯƠNG 3 - CÀI ĐẶT VÀ THỬ NGHIỆM ..........................................................33 3.1 Thu thập và tiền xử lý dữ liệu......................................................................33 3.1.1 Dữ liệu mẫu...........................................................................................33 3.1.2 Cuckoo Sandbox ...................................................................................34 3.1.3 Trích xuất đặc trưng ..............................................................................34 3.1.4 Lựa chọn đặc trưng ...............................................................................36 3.2 Huấn luyện và kiểm thử mô hình phát hiện mã độc ....................................36 3.3 Kết quả và đánh giá .....................................................................................38 3.3.1 K-Nearest Neighbors ............................................................................38 3.3.2 Support Vector Machines .....................................................................39 3.3.3 J48 Decision Tree .................................................................................40 3.3.4 Naïve Bayes ..........................................................................................41 3.3.5 Random Forest ......................................................................................42 3.4 Nhận xét .......................................................................................................42 3.5 Kết luận chương ..........................................................................................43 KẾT LUẬN VÀ KIẾN NGHỊ...................................................................................44 TÀI LIỆU THAM KHẢO .........................................................................................45 v DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt KNN K-Nearest Neighbors K láng giềng gần nhất SVM Support Vector Machines Máy vector hỗ trợ vi DANH MỤC BẢNG BIỂU Bảng 2.1 Ví dụ dữ liệu huấn luyện của cây quyết định ............................................23 Bảng 3.1 Độ chính xác của thuật toán KNN .............................................................39 Bảng 3.2 Độ chính xác của thuật toán SVM .............................................................40 Bảng 3.3 Độ chính xác của thuật toán Decision Tree ...............................................40 Bảng 3.4 Độ chính xác của thuật toán Naive Bayes .................................................41 Bảng 3.5 Độ chính xác của thuật toán Random Forest .............................................42 Bảng 3.6 Kết quả thực nghiệm ..................................................................................43 vii DANH MỤC HÌNH VẼ Hình 1.1 Thống kê số lượng mã độc trên điện thoại di động 2016-2017 ...................4 Hình 2.1 Quy trình học máy......................................................................................15 Hình 2.2 Bộ cơ sở dữ liệu của chữ số viết tay ..........................................................17 Hình 2.3 Ví dụ về KNN ............................................................................................18 Hình 2.4 Mô hình SVM ............................................................................................20 Hình 2.5 Bài toán SVM với không gian hai chiều ....................................................21 Hình 2.6 Ví dụ về cây quyết định .............................................................................24 Hình 2.7 Sơ đồ thuật toán Random Forest ................................................................27 Hình 2.8 Mô hình tổng quan .....................................................................................29 Hình 2.9 Kiến trúc Cuckoo Sandbox ........................................................................30 Hình 3.1 Tỉ lệ các dạng mã độc trong tập dữ liệu mẫu .............................................33 Hình 3.2 Sơ đồ quá trình trích xuất dữ liệu ...............................................................35 Hình 3.3 Mô hình quá trình phân loại .......................................................................37 Hình 3.4 Kết quả dự đoán của thuật toán KNN ........................................................38 Hình 3.5 Kết quả dự đoán của thuật toán SVM ........................................................39 Hình 3.6 Kết quả dự đoán của thuật toán J48 ...........................................................40 Hình 3.7 Kết quả dự đoán của thuật toán Naive Bayes ............................................41 Hình 3.8 Kết quả dự đoán của thuật toán Random Forest ........................................42 1 MỞ ĐẦU 1. Lý do chọn đề tài Hiện nay, sự phát triển nhanh chóng của công nghệ thông tin và không gian mạng đã đem lại rất nhiều lợi ích trong đời sống xã hội. Tuy nhiên, bên cạnh những lợi ích mà không gian mạng mang lại, vẫn còn nhiều nguy cơ gây ảnh hưởng đến các hệ thống thông tin và người dùng – điển hình là sự xuất hiện và gia tăng nhanh chóng của các loại mã độc nhằm đánh cắp thông tin, tống tiền, do thám,... các cá nhân và tổ chức trên không gian mạng. Các loại mã độc ngày càng đa dạng và tinh vi hơn, có khả năng lẩn tránh các phần mềm anti-virus thông qua các kỹ thuật nén, xáo trộn mã, tự thay đổi mã nguồn,... dẫn đến việc sử dụng phương pháp rà quét phát hiện dựa trên chữ ký không thực sự hiệu quả. Hơn nữa, để tạo được chữ ký của một mẫu mã độc, các chuyên gia phải tiêu tốn rất nhiều thời gian và công sức, khiến cho việc cập nhật các phần mềm anti-virus chậm hơn, khó có khả năng phát hiện mã độc kịp thời. Để cải thiện khả năng nhận dạng và phát hiện các mẫu mã độc mới, các phương pháp phát hiện mã độc dựa trên hành vi được nghiên cứu và triển khai. Theo đó, mã độc được thực thi trong môi trường có giám sát và các hành vi của mã độc như truy nhập các tệp tin, truy nhập mạng, thay đổi tham số hệ thống,… được ghi nhận và phân tích làm cơ sở cho xây dựng hồ sơ phát hiện mã độc. Hơn nữa, để nâng cao hiệu quả của quá trình xây dựng hồ sơ phát hiện mã độc, các phương pháp học máy được sử dụng để huấn luyện các đặc trưng hành vi của mã độc cho việc xây dựng bộ phát hiện. Ưu điểm của việc ứng dụng học máy trong phát hiện mã độc là có thể tự động hóa quá trình xây dựng hồ sơ phát hiện và cải thiện khả năng phát hiện các dạng mã độc mới. Theo hướng nghiên cứu này, đề tài luận văn “Nghiên cứu phương pháp phát hiện mã độc dựa trên các kỹ thuật học máy” tiến hành nghiên cứu ứng dụng các kỹ thuật học máy để tìm ra phương pháp phát hiện mã độc cho hiệu quả cao nhất. Luận văn bao gồm 3 chương: Chương 1: Tổng quan về mã độc và phát hiện mã độc Chương này sẽ giới thiệu tổng quan về mã độc, bao gồm khái niệm, các dạng mã độc, lịch sử phát triển và tác hại của mã độc. Bên cạnh đó, chương cũng giới thiệu 2 về các phương pháp phát hiện mã độc, sự cần thiết của học máy trong việc phát hiện mã độc và chỉ ra một số nghiên cứu liên quan. Chương 2. Phát hiện mã độc dựa trên học máy Giới thiệu tổng quát về học máy, trình bày một số kỹ thuật học máy cụ thể và đưa ra mô hình phát hiện mã độc dựa trên học máy. Chương 3. Cài đặt và thử nghiệm Tiến hành thử nghiệm mô hình phát hiện mã độc ở chương 2. Bao gồm: thu thập và tiền xử lý dữ liệu, huấn luyện và kiểm thử, cuối cùng là đưa ra kết quả và đánh giá. 2. Mục đích nghiên cứu - Nghiên cứu các phương pháp trích chọn đặc trưng dùng trong việc trích xuất đặc trưng hành vi của mã độc để làm đầu vào cho các thuật toán học máy. - Thử nghiệm và đánh giá một số thuật toán học máy dùng để phân loại, phát hiện mã độc. 3. Đối tượng và phạm vi nghiên cứu - Đối tượng:  Các kỹ thuật học máy: K-Nearest Neighbors (KNN), Cây quyết định, Naïve Bayes, Support Vector Machine (SVM) và Random Forest.  Công cụ sử dụng: Cuckoo Sandbox  Tập dữ liệu mẫu bao gồm các mẫu mã độc thu thập được từ Internet. - Phạm vi:  Giới hạn trong việc phân loại các mẫu mã độc trong tập dữ liệu mẫu.  Tập trung nghiên cứu các kỹ thuật học máy K-Nearest Neighbors (KNN), Cây quyết định, Naïve Bayes, Support Vector Machine (SVM) và Random Forest. 4. Phương pháp nghiên cứu Phương pháp nghiên cứu là nghiên cứu lý thuyết kết hợp với thực nghiệm và phân tích, đánh giá kết quả. 3 CHƯƠNG 1 - TỔNG QUAN VỀ MÃ ĐỘC VÀ PHÁT HIỆN MÃ ĐỘC Nội dung chương 1 đề cập đến khái niệm mã độc và tác hại của nó, lịch sử hình thành và phát triển của mã độc, các dạng mã độc phổ biến hiện nay. Ngoài ra cũng nêu lên các phương pháp phân tích và phát hiện mã độc, sự cần thiết của học máy trong việc phát hiện mã độc và giới thiệu một số nghiên cứu liên quan. 1.1 Tổng quan về mã độc 1.1.1 Khái niệm mã độc Mã độc là các phần mềm được thiết kế một cách có chủ đích, dùng để gây thiệt hại tới máy tính cá nhân, máy chủ hoặc hệ thống mạng máy tính. Mục đích của mã độc là thực thi các hành vi bất hợp pháp như: truy cập trái phép, đánh cắp thông tin người dùng, lây lan thư rác, thậm chí thực hiện các hành vi tống tiền, tấn công và gây tổn thương cho các hệ thống máy tính… nhằm chuộc lợi cá nhân, hoặc các lợi ích về kinh tế, chính trị hay đơn giản chúng có khi được tạo ra chỉ là một trò đùa ác ý nào đó. Kể từ khi Internet bắt đầu phát triển, các phần mềm độc hại cũng nhắm đến lợi ích nhiều hơn. Từ năm 2003, mục đích chính của việc phát tán virus và worm là chiếm quyền điều khiển máy tính người dùng một cách bất hợp pháp. Các máy bị lây nhiễm có thể được dùng để gửi email rác, lưu trữ các nội dung không lành mạnh, hoặc tham gia vào tấn công từ chối dịch vụ phân tán. Năm 2017 là năm bùng nổ của các loại mã độc tống tiền (ransomware) và các loại mã độc đào tiền ảo. Theo thống kê từ Symatec [26], số lượng mã độc đào tiền ảo được phát hiện trong năm 2017 tăng 8,500% so với các năm trước. Liên quan tới đào tiền ảo, các thiết bị IoT cũng là một mục tiêu được nhắm đến. Cũng theo Symatec, số lượng các cuộc tấn công nhằm vào thiết bị IoT tăng 600%, tức là tội phạm mạng có thể lợi dụng mối liên kết giữa các thiết bị này để đào tiền ảo trên diện rộng. 4 Mối đe dọa của mã độc đối với các thiết bị di động cũng đang ngày càng gia tăng. Hình 1.1 thể hiện số lượng mã độc trên thiết bị di động được phát hiện trong năm 2017 tăng 54% so với năm 2016 [26]. Hình 1.1 Thống kê số lượng mã độc trên điện thoại di động 2016-2017 Vậy mã độc xuất hiện từ khi nào? Theo [30], ý tưởng về virus máy tính đã xuất hiện từ năm 1949, khi nhà khoa học máy tính John von Neumann nêu lên trong bài báo của ông về một chương trình máy tính có thể tự nhân bản nó. Đến những năm 1950, ý tưởng của Von Neumann đã được các thành viên tại Bell Labs biến thành hiện thực với một trò chơi tên là “Core Wars”. Trong trò chơi, người lập trình sẽ thả các “sinh vật” để cạnh tranh quyền điều khiển máy tính. Tài liệu đầu tiên về virus máy tính xuất hiện vào đầu những năm 1970, trình bày về “Creeper Worm”, một chương trình có khả năng tự nhân bản được viết bởi Bob Thomas [9]. Creeper lấy quyền truy cập thông qua ARPANET, tự nhân bản nó tới các hệ thống từ xa và hiển thị đoạn tin nhắn: “I’m the creeper, catch me if you can!”. Quá trình phát triển của mã độc có thể được chia làm 3 giai đoạn chính [23]: - Những năm đầu (1971 – 1999): thời kỳ này mã độc vẫn còn sơ khai, chủ yếu lây lan qua đĩa mềm truyền từ máy tính này sang máy tính khác một cách thủ công. Khi mạng và internet phát triển, người viết mã độc cũng nhanh chóng 5 thích nghi và tận dụng phương tiện truyền thông mới này. Một số mã độc nổi tiếng trong thời kỳ này: Creeper (1971), Wabbit (1974), Brain Boot Sector Virus (1986), Morris Worm (1988), Melissa Virus (1999),… - Tỉ lệ lây nhiễm bắt đầu gia tăng (2000 – 2010): trong khoảng thời gian này, mã độc đã gia tăng đáng kể, về cả số lượng và tốc độ lây lan. Toolkits bắt đầu xuất hiện, các bộ công cụ nhắm vào các websites cũng trở nên phổ biến, khiến cho số lượng websites bị tấn công ngày càng nhiều. Một số mã độc đáng chú ý: ILOVEYOU Worm (2000), SQL Slammer Worm (2003), Conficker Worm (2008),… - Được chính phủ tài trợ, tinh vi hơn và hướng đến lợi nhuận (2010 – nay): kể từ năm 2010 đến nay, mã độc đã và đang tiến hóa ngày một tinh vi hơn. Các nhóm tội phạm có tổ chức và được tài trợ bởi chính phủ vẫn đang tiếp tục phát triển các loại mã độc tiên tiến, có khả năng vượt qua các hệ thống diệt virus thông thường. Mã độc được sử dụng để tấn công các doanh nghiệp, hệ thống quân sự, và việc kiếm tiền từ các phần mềm độc hại này cũng đang gia tăng nhanh chóng, thông qua ransomware và các phần mềm bất hợp khác. Một số mã độc có tác hại đáng kể trong giai đoạn này: Stuxnet Worm (2010), Zues Trojan (2011), Cryptolocker (2013), WannaCry Ransomware (2017),… Từ những khởi đầu đơn giản và vô hại, mã độc đã trở thành mối đe dọa vô cùng lớn cho người dùng trên toàn thế giới. Mặc dù ngành công nghiệp an ninh mạng đang nỗ lực hết sức mình để kiểm soát mã độc – và đã thành công phần nào, tội phạm mạng vẫn không có dấu hiệu ngừng lại mà ngày càng nguy hiểm và đa dạng hơn. 1.1.2 Các dạng mã độc Để hiểu rõ hơn về phương thức và logic hoạt động của mã độc, người ta phân loại mã độc thành các lớp, dựa theo mục đích của chúng. a) Virus máy tính Đặc điểm chính của virus máy tính là có khả năng tự nhân bản. Nó thường tấn công và lây nhiễm vào các tệp tin trên hệ thống nạn nhân. Sau khi lây nhiễm vào tệp tin, virus sẽ tự động tải và chạy mà không cần quyền từ người dùng. Khi được thực 6 thi nó sẽ cố gắng sao chép chính nó vào bên trong một mã thực thi khác. Các mã lây nhiễm khi chạy có thể tiếp tục lây nhiễm sang các mã mới. Sự tự sao chép này là một đặc tính quan trọng của virus. Khi virus được lây nhiễm nó có thể thực hiện một loạt các hành vi như thay đổi, xóa, hay sao chép các tệp tin cũng như phát tán chúng trên các hệ thống máy tính. Ngoài khả năng đánh cắp và làm hỏng dữ liệu, virus còn tiêu tốn tài nguyên hệ thống – khiến cho hệ thống máy chủ trở nên chậm chạp hoặc thậm chí bị vô hiệu hóa. Một đặc điểm thường gặp ở virus là chúng được che giấu khá kĩ, khiến cho chúng khó có thể bị phát hiện. b) Worm Cũng như virus, worm có khả năng tự nhân bản chính nó. Tuy nhiên, worm không cần phải lây nhiễm vào một tệp tin cụ thể. Worm có thể phát tán thông qua hệ thống mạng, dựa vào lỗi bảo mật để truy cập vào máy tính của nạn nhân, sau đó đánh cắp hoặc xóa dữ liệu. Nhiều worm được thiết kế chỉ để tự phát tán chính nó mà không gây tổn hại đến hệ thống mà nó đi qua. c) Trojan Mã độc Trojan Horse là một cái tên được xuất phát từ một điển tích “Con ngựa thành Troy” trong thần thoại Hy Lạp. Tội phạm mạng sẽ cải trang trojan thành các phần mềm hữu ích và thuyết phục người dùng cài đặt nó. Do vậy, cách phát tán chính của trojan là sử dụng social engineering. Payload của trojan thường có dạng cửa hậu, cho phép kẻ tấn công truy cập bất hợp pháp vào máy tính của nạn nhân. Kẻ tấn công có thể thu thập thông tin cá nhân của người dùng như địa chỉ IP, mật khẩu và thông tin thanh toán ngân hàng. Chúng thường cài đặt keylogger cùng với trojan để lấy thông tin tài khoản và mật khẩu, hoặc dữ liệu thẻ tín dụng. Hầu hết các cuộc tấn công ransomware đều sử dụng trojan, bằng cách nhúng đoạn mã độc hại vào trong một chương trình vô hại. d) Adware 7 Adware là chương trình được thiết kế để hiển thị quảng cáo trên máy tính của người dùng, sau đó chuyển hướng yêu cầu tìm kiếm của người dùng tới các website quảng cáo và thu thập dữ liệu tiếp thị của người dùng. Ví dụ, adware sẽ thu thập thông tin về các website mà người dùng truy cập, sau đó hiển thị quảng cáo phù hợp với nhu cầu của người dùng. Adware thường được coi như là một nhánh con của spyware và không gây nhiều thiệt hại nghiêm trọng. e) Spyware Spyware là phần mềm dùng để theo dõi người dùng. Spyware được thiết kế để giám sát và chặn bắt lịch sử duyệt web cũng như các hoạt động khác của người dùng, sau đó bán các thông tin này cho các nhà quảng cáo hoặc bên thứ ba. Spyware có nhiều chức năng hơn so với adware, ví dụ, thu thập các dữ liệu nhạy cảm như tài khoản ngân hàng, mật khẩu, hoặc thông tin thẻ tín dụng. f) Rootkit Rootkit là một bộ các công cụ phần mềm độc hại cho phép một người dùng trái phép có quyền truy cập vào máy tính. Khi rootkit được cài đặt, kẻ tấn công có thể điều khiển từ xa để thực thi các tệp tin và thay đổi cấu hình hệ thống trên máy nạn nhân. Rootkit không có khả năng tự nhân bản. Chúng phải được cài đặt và thực thi ở lớp thấp của hệ điều hành, ở kernel, hoặc trong hệ thống vào ra của thiết bị (BIOS) với quyền truy cập đặc quyền, do đó, chúng rất khó để phát hiện và gỡ bỏ. Khi phát hiện rootkit, các chuyên gia khuyến cáo nên xóa sạch ổ cứng và cài lại hệ điều hành từ đầu. g) Backdoor Backdoor là một dạng malware cung cấp cho kẻ tấn công một “cổng vào” bí mật tới hệ thống. Backdoor không bao giờ được sử dụng một cách riêng lẻ. Nó thường hỗ trợ cho các dạng tấn công khác. Đôi khi các lập trình viên cũng tạo ra một backdoor trong chương trình của mình nhằm bỏ qua bước xác thực khi debug trên máy chủ. h) Keylogger 8 Keylogger sẽ ghi lại tất cả những phím được bấm trên một máy tính mà người dùng không hề biết. Keylogger được công nhận là một công cụ giám sát chuyên nghiệp hợp pháp. Tuy nhiên, keylogger thường được sử dụng với mục đích xấu, như thu thập thông tin nhạy cảm, bao gồm tài khoản, mật khẩu, câu trả lời của các câu hỏi bảo mật và thông tin tài chính. i) Ransomware Ransomware là một dạng mã độc sẽ khóa tất cả dữ liệu trên máy tính nạn nhân, thường là bằng cách mã hóa. Nạn nhân sẽ phải trả tiền để kẻ tấn công giải mã dữ liệu và trả lại quyền truy cập. Động cơ chính của tấn công ransomware là tiền. Một khi bị tấn công, máy tính sẽ bị “đóng băng”, người dùng không thể truy cập bất cứ tệp tin nào, và không như các dạng tấn công khác, người dùng sẽ được thông báo và được hướng dẫn cách thanh toán để khôi phục lại dữ liệu về bình thường. Phương thức thanh toán thường là các loại tiền ảo, như Bitcoin, nhằm giữ kín danh tính của kẻ tấn công. Trên đây chỉ liệt kê danh sách một số loại mã độc thường gặp. Trên thực tế, có rất nhiều loại và biến thể của mã độc, và chúng vẫn đang được phát triển nhiều hơn, mặc dù hầu hết chỉ là ứng dụng kỹ thuật mới để thực hiện các mục tiêu đề cập ở trên. 1.2 Các phương pháp phát hiện mã độc Các phương pháp phát hiện mã độc hiện nay được chia thành hai loại chính là phát hiện dựa trên chữ ký và phát hiện dựa trên hành vi. 1.2.1 Phương pháp phát hiện dựa trên chữ ký Cơ sở của phương pháp này là phân tích tĩnh, phân tích mã nguồn mà không cần thực thi tệp tin. Phân tích tĩnh tức là đọc mã nguồn của mã độc và cố gắng suy luận các tính chất của nó từ mã nguồn. Một số kỹ thuật dùng trong phân tích tĩnh bao gồm [21]: 9 1. Kiểm tra định dạng tệp: metadata của tệp tin có thể cung cấp các thông tin hữu ích. Ví dụ, các tệp Windows PE có thể cung cấp các thông tin như thời gian thực thi, các chức năng nhập và xuất,… 2. Trích xuất chuỗi: liên quan đến việc kiểm tra đầu ra của phần mềm (thông điệp trạng thái hoặc thông điệp báo lỗi) và suy luận về hoạt động của mã độc. 3. Lưu vết: trước khi thực hiện phân tích cần tính toán giá trị băm của tệp tin, nhằm xác minh xem tệp tin đã bị chỉnh sửa chưa. Thuật toán băm thường được sử dụng là MD5, SHA1, SHA256. Ngoài ra có thể tìm kiếm các thông tin trong mã nguồn như tên người dùng, tên tệp, chuỗi registry. 4. Quét bằng phần mềm diệt virus: nếu tệp tin đang phân tích là một mã độc đã biết, hầu hết phần mềm diệt virus có thể phát hiện được nó. Cách này thường được dùng để kiểm tra lại kết quả phân tích. 5. Disassembly: liên quan đến việc đảo ngược mã máy thành hợp ngữ (assembly language) và từ đó biết được logic và mục đích của phần mềm. Đây là phương thức thường dùng và đáng tin cậy nhất trong phân tích tĩnh. Ưu điểm của phân tích tĩnh là có thể tìm ra tất cả kịch bản thực thi có thể có của mã độc mà không bị hạn chế về bất kỳ điều kiện gì. Hơn nữa, phân tích tĩnh an toàn hơn phân tích động bởi không cần thực thi mã độc trực tiếp, vì thế sẽ không gây nguy hiểm cho hệ thống. Tuy nhiên phân tích tĩnh lại tốn rất nhiều thời gian, vì thế phân tích tĩnh thường không được sử dụng trong thực tế mà thường dùng để nghiên cứu, ví dụ khi nghiên cứu chữ ký cho các mã độc zero-day [21]. Phát hiện dựa trên chữ ký là phương pháp tĩnh dựa trên các chữ ký đã được định nghĩa sẵn. Chữ ký có thể là chuỗi băm của tệp tin mã độc (MD5 hoặc SHA1), một chuỗi cố định hoặc metadata của tệp tin. Khi một nhà cung cấp giải pháp antimalware xác định một đối tượng là độc hại, chữ ký của nó sẽ được thêm vào cơ sở dữ liệu. Khi kiểm tra một tệp tin bất kỳ trong hệ thống, phần mềm anti-virus sẽ phân tích tệp tin đó, nếu phát hiện chữ ký khớp với cơ sở dữ liệu sẽ thông báo đây là tệp 10 tin đáng ngờ. Phương pháp phát hiện này chỉ phù hợp với các dạng mã độc phổ biến, có chữ ký cố định được lưu trong cơ sở dữ liệu. Các loại mã độc hiện đại thường tấn công và tồn tại trong khoảng thời gian ngắn. Ví dụ, Jigsaw bắt đầu xóa dữ liệu trong vòng 24 giờ, HDDcryptor lây nhiễm hơn 2000 hệ thống tại Cơ quan giao thông thành phố San Fransisco trước khi nó được phát hiện [6]. Theo báo cáo năm 2017 của Cisco, 95% mã độc chưa đủ một ngày tuổi khi được phát hiện. Vì thế việc chờ đợi chữ ký của mã độc là một việc rất mạo hiểm. Ngoài ra, các loại mã độc hiện nay còn có khả năng thay đổi chữ ký nhằm tránh bị phát hiện; chữ ký được tạo ra bởi việc kiểm tra các thành phần bên trong, và mã độc chỉ cần thay đổi các phần này mà không làm ảnh hưởng đến chức năng và hành vi của nó. Một số kỹ thuật biến hình của mã độc gồm hoán vị mã, đổi tên register, mở rộng hoặc thu hẹp mã, chèn các đoạn mã rác,… 1.2.2 Phương pháp phát hiện dựa trên hành vi Phân tích động không giống với phân tích tĩnh ở chỗ, các hành vi của mã độc được giám sát trong khi nó đang thực thi, từ đó có thể tìm hiểu được thuộc tính và mục đích của mã độc. Thông thường mã độc sẽ được thực thi trong môi trường ảo (vd. Sandbox). Trong quá trình phân tích sẽ phát hiện tất cả hành vi của mã độc, như mở tệp tin, tạo mutexes, … và kiểu phân tích này sẽ nhanh hơn phân tích tĩnh rất nhiều. Tuy nhiên, phân tích động chỉ biết được hành vi của mã độc trong hệ thống ảo dùng để kiểm tra, ví dụ kết quả thu được khi thực thi hai mã độc giống nhau trong môi trường Windows 7 và Windows 8.1 sẽ khác nhau [8]. Từ phương pháp phân tích động, người ta đã định nghĩa phương pháp phát hiện dựa trên hành vi. Phương pháp phát hiện dựa trên hành vi (hay còn gọi là dựa trên heuristics) sẽ đánh giá một đối tượng dựa trên hành vi của nó. Khi một đối tượng cố gắng thực thi các hành vi bất thường hoặc không được cấp quyền biểu thị đối tượng đó độc hại hoặc đáng ngờ. Có một số hành vi được coi là nguy hiểm như vô hiệu hóa các điều khiển bảo mật, cài đặt rootkits, autostart, sửa tệp tin host, thiết lập các kết nối đáng ngờ,… Mỗi hành vi có thể không nguy hiểm nhưng kết hợp với nhau có thể 11 làm tăng độ đáng ngờ của đối tượng. Có một ngưỡng được xác định sẵn, nếu bất kỳ tệp tin nào vượt qua ngưỡng này sẽ được cảnh báo là mã độc [11]. Phương pháp này được áp dụng để phát hiện các loại mã độc có khả năng thay đổi chữ ký (đa hình) hoặc các loại mã độc mới (zero-day). Mức độ chính xác của phát hiện dựa trên heuristics dựa vào quá trình thực thi. Tốt nhất là sử dụng môi trường ảo, ví dụ như sandbox, để chạy tệp tin và giám sát hành vi của nó. Mặc dù phương pháp này tốn nhiều thời gian hơn, nhưng nó an toàn hơn, do tệp tin được kiểm tra trước khi chạy thực tế. Ưu điểm chính của phát hiện dựa trên heuristics là nó không chỉ phát hiện các mã độc đã biết mà còn phát hiện được các cuộc tấn công zero-day và các loại virus đa hình. Tuy nhiên, một số loại mã độc có khả năng phát hiện môi trường ảo, nó sẽ không thực thi các hành vi độc hại trong môi trường sandbox. Hơn nữa, trên thực tế, với lượng mã độc đang ngày một gia tăng, phương pháp này không thực sự hiệu quả trước các loại mã độc mới. 1.3 Sự cần thiết của học máy trong phát hiện mã độc Như đã đề cập ở trên, phương pháp phát hiện mã độc dựa trên chữ ký chỉ phù hợp với các mã độc phổ biến, đã được phát hiện bởi các nhà phát triển phần mềm diệt virus. Nó không thể phát hiện các mã độc đa hình – mã độc có khả năng thay đổi chữ ký, cũng như các mã độc mới chưa có chữ ký. Ngược lại, phương pháp phát hiện dựa trên heuristics có thể phát hiện các loại mã độc này, nhưng độ chính xác không cao, thường đưa ra kết quả dương tính sai và âm tính sai [3]. Trước sự phát triển nhanh chóng của các loại mã độc đa hình, việc phát triển một phương pháp phát hiện mới là rất cần thiết. Một trong các giải pháp là kết hợp phát hiện dựa trên heuristics với các kỹ thuật học máy để tăng độ chính xác. Khi sử dụng phương pháp heuristics, cần phải có một số ngưỡng để xác định mã độc, định ra một số lượng heuristics cần để một phần mềm được coi là độc hại. Ví dụ, có thể định nghĩa một các hành vi đáng ngờ, như “thay đổi registry key”, “thiết lập kết nối”, “thay đổi quyền”,… Bất kỳ phần mềm nào thực hiện ít nhất năm trong số các hành vi này có thể được coi là độc hại. Tuy nhiên việc này không phải lúc nào cũng chính xác. Một số hành vi có thể nguy hiểm hơn các hành vi khác, ví dụ, “thay
- Xem thêm -