Số lượng và hình thái đa dạngcủa mã độc ngày càng tăng, trong khi các phần mềm phòng chống mã độckhông thể phát hiện, ngăn chặn được hết dẫn đến hàng triệu máy tính bịnhiễm mã độc.. Các
Trang 2LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN ĐẠI THỌ
Hà Nội – 2019
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan rằng luận văn thạc sĩ công nghệ thông tin “Nâng caohiệu quả phát hiện mã độc sử dụng các kỹ thuật học máy” là công trình nghiêncứu của riêng tôi, không sao chép lại của người khác Trong toàn bộ nội dungcủa luận văn, những điều đã được trình bày hoặc là của chính cá nhân tôi hoặc
là được tổng hợp từ nhiều nguồn tài liệu Tất cả các nguồn tài liệu tham khảođều có xuất xứ rõ ràng và hợp pháp
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theoquy định cho lời cam đoan này
Hà Nội, ngày … tháng 05 năm 2019
Phạm Lê Minh
Trang 4LỜI CẢM ƠN
Trước tiên tôi xin dành lời cảm ơn chân thành và sâu sắc đến thầy giáo,
TS Nguyễn Đại Thọ – người đã hướng dẫn, khuyến khích, chỉ bảo và hỗ trợcho tôi những điều kiện tốt nhất từ khi bắt đầu cho tới khi hoàn thành côngviệc của mình
Tôi xin dành lời cảm ơn chân thành tới các thầy cô giáo khoa Côngnghệ thông tin, trường Đại học Công nghệ, ĐHQGHN đã tận tình đào tạo,cung cấp cho tôi những kiến thức vô cùng quý giá và đã tạo điều kiện tốt nhấtcho tôi trong suốt quá trình học tập, nghiên cứu tại trường
Đồng thời tôi xin cảm ơn tất cả những người thân yêu trong gia đình tôicùng toàn thể bạn bè những người đã luôn giúp đỡ, động viên tôi những khivấp phải những khó khăn, bế tắc
Cuối cùng, tôi xin chân thành cảm ơn các đồng nghiệp của tôi tại TổngCông ty Viễn thông Viettel – Tập đoàn Công nghiệp Viễn thông Quân đội đãgiúp đỡ, tạo điều kiện thuận lợi cho tôi học tập và nghiên cứu chương trìnhthạc sĩ tại Đại học Công nghệ, ĐH QGHN
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
DANH MỤC HÌNH v
TÓM TẮT vi
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ MÃ ĐỘC 4
1.1 Giới thiệu về mã độc 4
1.2 Phân loại mã độc 4
1.2.1 Virus [5] 5
1.2.2 Worm [5] 7
1.2.3 Ransomware 8
1.2.4 Trojan 10
1.2.5 Backdoor [6] 10
1.2.6 Rootkits 11
1.3 Mục đích phân tích mã độc 12
1.4 Phương pháp phân tích mã độc 12
1.5 Trích xuất đặc trưng và các loại đặc trưng 14
1.5.1 Trích xuất đặc trưng 14
1.5.2 Các loại đặc trưng 15
CHƯƠNG 2: TỔNG QUAN VỀ HỌC MÁY 17
2.1 Giới thiệu về học máy 17
2.2 Phân loại các thuật toán học máy [2] 19
2.3 Thuật toán One-class SVM 20
2.3.1 Giới thiệu thuật toán One-class SVM 20
2.3.2 Giới thiệu thuật toán SVM 21
2.3.3 Thuật toán One-class SVM theo tác giả Schölkopf 25
Trang 62.3.4 Thuật toán One-class SVM theo tác giả Tax và Duin 26
2.4 Đánh giá hiệu quả thuật toán 26
CHƯƠNG 3: PHƯƠNG PHÁP ÁP DỤNG HỌC MÁY VÀO PHÂN TÍCH MÃ ĐỘC 30
3.1 Mô hình đề xuất thực hiện gồm các bước sau: 30
3.2 Thu thập và tiền xử lý xử liệu dữ liệu 31
3.2.1 Thu thập dữ liệu gói tin mạng 31
3.2.2 Trích chọn đặc trưng trong header của gói tin 32
3.2.3 Trích chọn đặc trưng từ payload gói tin 33
3.3 Lựa chọn đặc trưng 34
3.3.1 Lựa chọn đặc trưng từ header 34
3.3.2 Lựa chọn đặc trưng từ payload 35
3.4 Xây dựng mô hình học máy 36
3.5 Thực nghiệm và đánh giá kết quả 36
3.5.1 Dữ liệu thực nghiệm 36
3.5.2 Chương trình thực nghiệm 36
3.5.3 Đánh giá hiệu quả thuật toán 37
3.5.4 Kết quả thực nghiệm 37
KẾT LUẬN 39
TÀI LIỆU THAM KHẢO 41
Trang 7DANH MỤC HÌNH
Hình 2.1: quy trình học máy 17
Hình 2.2: phân tích bài toán SVM 23
Hình 2.3: các điểm gần mặt phân cách nhất của hai class được khoanh tròn 24 Hình 3.1: mô hình phân tích mã độc 30
Hình 3.2: thông tin gói tin http 31
Hình 3.3: thông tin header của giao thức http 32
Hình 3.4: thông tin payload trong gói tin http 32
Hình 3.5: trích xuất đặc trưng từ header 32
Hình 3.6: nội dung payload được trích xuất từ file pcap 33
Hình 3.7: mô tả biểu diễn byte theo n-gram 33
Hình 3.8: payload được trích xuất theo phương pháp 2-gram 34
Trang 8TÓM TẮT
Phần mềm độc hại (mã độc) là một trong những mối đe dọa bảo mậtgây thiệt hại lớn nhất đối với Internet hiện nay Việc phát hiện chính xác phầnmềm độc hại hết sức khó khăn và nhiều thử thách do mã độc ngày càng tinh
vi trong việc che dấu bản thân bằng các kỹ thuật như mã hóa nội dung
(payload) và ngụy trang (obfucation) Ngoài ra, nhiều loại phần mềm độc hạiphát triển nhanh chóng với nhiều thể loại tiếp tục cản trở việc phát hiện mãđộc Trong học máy, lựa chọn đặc trưng và trích xuất đặc trưng là một trongnhững thành phần quan trọng ảnh hưởng đến kết quả xây dựng mô hình họcmáy Trong luận văn này chúng tôi tập trung vào hai cách trích xuất đặc trưngcủa gói tin mạng từ tiêu đề (header) và từ nội dung (payload), sau đó đánh giáhiệu quả của 02 phương pháp trích chọn đặc trưng mạng với cùng một thuậttoán học máy được áp dụng là one-class SVM để phát hiện, phân loại mã độc.Kết quả thưc nghiệm với các độ đo F1, Precision, Recall để đánh giá hiệu quảcủa thuật toán cho thấy phương pháp trích xuất từ header có độ chính xác caohơn so với phương pháp trích xuất từ payload, cụ thể: phương pháp trích xuất
từ header có kết quả với các độ đo Precision, Recall, F1 lần lượt là 95,93%,95,83%, 95,84% so với phương pháp trích xuất từ payload cho kết quả lầnlượt là là 87,78%, 71,16%, 78,60% đối với tập dữ liệu huấn luyện và kết quả95,91%, 95,73%, 95,82% so với kết quả 85,58%, 69,82%, 76,91% đối với tập
dữ liệu kiểm thử Điều này cho thấy có thể phát hiện mã độc trong các gói tinmạng một cách hiệu quả chỉ bằng cách xem xét các thông tin tiêu đề, khôngcần tiêu tốn thời gian vào quét và phân tích nội dung của từng gói tin
Trang 9MỞ ĐẦU
Ngày nay cùng với sự phát triển mạnh mẽ của công nghệ thông tin và
sự phát triển của Internet toàn cầu là các nguy cơ mất an toàn thông tin đangtrở nên nguy hiểm và khó lường hơn, trong đó mã độc hại (malware) là mộttrong những mối hiểm họa nghiêm trọng trên Internet Mã độc ngày càng tiếnhóa với những biến thể đa dạng từ virus máy tính, worm, botnet…với cáchình thức xâm nhập, che dấu ngày càng tinh vi Số lượng và hình thái đa dạngcủa mã độc ngày càng tăng, trong khi các phần mềm phòng chống mã độckhông thể phát hiện, ngăn chặn được hết dẫn đến hàng triệu máy tính bịnhiễm mã độc Ở Việt Nam, theo số liệu thống kê của BKAV thì năm 2017 cóđến 15 triệu máy tính ở Việt Nam bị nhiễm mã độc tương ứng thiệt hạikhoảng 12.300 tỷ đồng Ngoài ra, ngày nay để phát triển một mã độc mớikhông yêu cầu nhiều kỹ năng cao do tính sẵn có các công cụ tấn công trêninternet Tính sẵn sàng cao của các kỹ thuật chống phát hiện cũng như khảnăng mua phần mềm độc hại trên thị trường chợ đen dẫn đến cơ hội trở thànhmột kẻ tấn công cho bất kỳ ai, không phụ thuộc vào cấp độ kỹ năng và trình
độ chuyên môn Do đó, bảo vệ hệ thống máy tính khỏi các phần mềm độc hạitrên Intenet là một trong những nhiệm vụ quan trọng nhất về an ninh mạngcho người dùng, doanh nghiệp Một cuộc tấn công đơn lẻ có thể dẫn đến dữliệu bị xâm phạm và gây ra những hậu quả to lớn Sự mất mát lớn và các cuộctấn công thường xuyên đặt ra yêu cầu cần thiết phải có các phương pháp pháthiện chính xác và kịp thời Các kỹ thuật phân tích tĩnh và phân tích độngthường dựa vào cơ sở dữ liệu được xây dựng trước đó nên có một số hạn chếnhư khó có khả năng phát hiện ra các mã độc mới, các lỗ hổng chưa đượccông bố (zero-day) hay các biến thể của mã độc đã biết Hơn nữa, ngày nay sốlượng mã độc ngày càng tăng cao dẫn đến số lương mẫu ngày càng nhiểu đòihỏi phải có một phương pháp phù hợp để phát hiện mã độc Do đó hướng
Trang 10nghiên cứu dựa vào các mô hình học máy để phát hiện và phân loại mã độc tỏ
ra là phương pháp tìm năng và hiệu quả khi số lượng mẫu mã độc lớn và cácbiến thể của mã độc ngày càng đa dạng Tuy nhiên một trong những vấn đềchính được quan tâm là làm thế nào để xây dựng được mô hình học máy hiệuquả và mang lại kết quả chính xác cao Trong đó có một yếu tố quan trọngảnh hưởng chính đến mô hình và hiệu qủa của các thuật toán học máy là lựachọn đặc trưng và các phương pháp trích chọn đặc trưng phù hợp Trong phầnnghiên cứu của luận văn này chúng tôi lựa chọn đặc trưng mạng do đặc trưngmạng có thể nâng cao khả năng phát hiện các lỗ hổng chưa được biết (zero-day) và khắc phục được hạn chế về hiệu quả học máy đối với việc lựa choncác đặc trưng khác như đặc trưng về byte sequence, strings, API, opcode,system call được sử dụng làm đầu vào cho các thuật toán học máy thườngcho kết quả không tốt đối với các mã độc được mã hóa, được ngụy trang(obfucated), biến thể của mã độc Đồng thời, chúng tôi trình bày về 02phương pháp trích chọn đặc trưng gói tin mạng gồm phương pháp trích chọnđặc trưng từ tiêu đề (header) của gói tin mạng và phương pháp trích chọn đặctrưng từ tải (payload) của gói tin mạng dựa trên phương án 2-gram Sau đó dữliệu đặc trưng này sẽ được trích chọn ra các đặc trưng phù hợp nhất làm đầuvào cho thuật toán học máy, trong luận văn này chúng tôi lựa chọn thuật toánone-class SVM do thuật toán one-class SVM là một trong những thuật toánphân loại phổ biến nhất và có khả năng phát hiện mã độc đã biết, mã độc mới(zero-day), các biến thể của mã độc và phân loại mã độc Kết quả của luậnvăn được thực nghiệm dựa trên dữ liệu mẫu Android Malware dataset(CICAndMal2017) gồm 212788 mẫu, trong đó có 168186 mẫu sạch và 44202mẫu mã độc thuộc họ Ransomware gồm các loại Charger, Jisut, Wannalocker.Kết quả thực nghiệm với các độ đo F1, Precision, Recall để đánh giá hiệu quảcủa thuật toán cho thấy phương pháp trích xuất từ header có độ chính xác caohơn so với phương pháp trích xuất từ payload, cụ thể: phương pháp trích xuất
từ header có kết quả với các độ đo Precision, Recall, F1 lần lượt là 95,93%,
Trang 1195,83%, 95,84% so với phương pháp trích xuất từ payload cho kết quả lầnlượt là là 87,78%, 71,16%, 78,60% đối với tập dữ liệu huấn luyện và kết quả95,91%, 95,73%, 95,82% so với kết quả 85,58%, 69,82%, 76,91% đối với tập
dữ liệu kiểm thử
Nội dung tiếp theo của luận văn này được chia làm 04 phần như sau:Chương 1: Tổng quan về mã độc Chương này này sẽ giới thiệu về cácloại mã độc, phân loại mã độc, các kỹ thuật phân tích mã độc, các đặc trưng
và trích chọn đặc trưng
Chương 2: Tổng quan về kỹ thuật học máy Chương này sẽ giới thiệu
về học máy, phân loại các phương pháp học máy, thuật toán học máy svm,thuật toán one-class svm và các phương pháp đánh giá hiệu quả của học máy
Chương 3: Giải pháp áp dụng học máy vào phân tích mã độc Chươngnày sẽ trình bày về mô hình đề xuất, 02 phương pháp trích chọn đặc trưng góitin mạng, lựa chọn đặc trưng, thực nghiệm và đánh giá kết quả thực nghiệm
Kết luận và hướng phát triển của đề tài
Trang 12CHƯƠNG 1: TỔNG QUAN VỀ MÃ ĐỘC
Chương này giới thiệu khái niệm về mã độc, phân loại mã độc, mụcđích phân tích mã độc và các kỹ thuật phân tích mã độc
1.1 Giới thiệu về mã độc
Mã độc (tên tiếng anh là malware – được viết tắt từ malicious software)
là loại phần mềm bất kỳ được thiết kế có mục đích để gây tổn hại cho mộtmáy tính, máy chủ, máy khách hoặc mạng máy tính Các chương trình độc hạinày có thể thực hiện nhiều chức năng, bao gồm ăn cắp, mã hóa hoặc xóa dữliệu nhạy cảm, thay đổi hoặc chiếm đoạt các chức năng tính toán lõi và giámsát hoạt động máy tính của người dùng mà không được sự cho phép của họ
Mã độc chỉ gây thiệt hại sau khi được cấy hoặc đưa vào máy tính mục tiêu và
có thể ở dạng mã lệnh thực thi, tập lệnh, nội dung hoạt động và phần mềmkhác Mã độc có mục đích xấu, hoạt động trái phép với người dùng máy tínhbình thường vì vậy mã độc không bao gồm phần mềm gây ra tác hại vô ý domột số thiếu sót liên quan đến lỗi phần mềm
Các chương trình được cung cấp chính thức bởi các công ty có thể đượccoi là phần mềm độc hại nếu họ bí mật hành động chống lại lợi ích của ngườidùng máy tính Ví dụ, tại một thời điểm, đĩa nhạc Compact của hãng Sony đã
bí mật cài đặt một rootkit trên máy tính người mua với đích ngăn chặn sự saochép bất hợp pháp nhưng đồng thời cũng thu thập thông tin về thói quen nghenhạc của người dùng và vô tình tạo ra các lỗ hổng bảo mật Các giải pháp nhưphần mềm antivirus, tường lữa…thường được sử dụng để kiểm tra sự tồn tại,các hoạt động độc hại cũng như ngăn chặn phần mềm độc hại truy cập vàomáy tính
1.2 Phân loại mã độc
Có nhiều cách tiếp cận khác nhau để phân loại mã độc thành một sốloại nhật định với các đặc điểm cụ thể như: tính nhân bản, sự nhiễm độc, tànghình, lệnh và điểu khiển (C&C), các kỹ thuật che dấu, tập hợp các hành vi
Trang 13được thể hiện trong quá trình chạy trên hệ điều hành Hơn nữa, ngày càng khóxác định các phần mềm độc hại vì ngày nay tác giả của phần mềm độc hại cóthể dễ dàng tiếp cận mã nguồn của một số mẫu phần mềm độc hại và kết hợpcác chức năng của chúng để tạo ra các mẫu mới có cơ chế tự mở rộng khảnăng và nhỏ gọn hơn Mặc dù không có sự thống nhất chung về việc phân loạiphần mềm độc hại, các loại phần mềm độc hại dựa trên mục đích và hành vicủa chúng có thể được phân loại như sau:
1.2.1 Virus [5].
1.2.1.1 Khái niệm
Virus máy tính là một loại phần mềm độc hại phổ biến nhất, được ẩndấu trong một chương trình có vẻ vô hại, có thể tự tạo ra các bản sao và lâylan vào các chương trình khác hoặc các tệp (file) khác để thực hiện một hành
vi độc hại như xóa file, sao chép nội dung, mã hóa file
1.2.1.2 Thành phần
Một virus máy tình gồm 03 thành phần:
o Cơ chế lây nhiễm: các phương tiện mà virus lây lan, cho phép tự nhân
bản, cơ chế này gọi là vec-tơ lây nhiễm
o Bộ kích khởi (trigger): sự kiện hay điều kiện mà quyết định khi nào tải (payload) được kích hoạt
o Payload: một đoạn mã được chạy trên máy nạn nhân, dùng để thực hiệnmột số hoạt động phá hoại hoặc có thể liên quan đến hoạt động lành tính
nào đó nhưng đáng chú ý
1.2.1.3 Vòng đời của Virus
Vòng đời của Virus, thường bao gồm 04 giai đoạn sau:
o Giai đoạn ngủ đông: Giai đoạn này virus không hoạt động, Virus được
kích hoạt bởi một số sự kiện như: như ngày, sự có mặt của chương trìnhkhác hoặc tệp tin hoặc dung lượng ổ đĩa vượt quá giới hạn Không phảitất cả các virus đều có giai đoạn này
Trang 14o Giai đoạn nhân bản: Virus sao chép bản sao của chính nó vào chươngtrình khác hoặc vào các vùng của hệ thống trên ổ cứng Bản sao của nó có thểkhông giống với phiên bản lan truyền, virus thường biến hình để tránh phát hiện.Mỗi chương trình đã bị nhiễm sẽ chứa một bản sao của
virus, bản thân virus sẽ bước vào giai đoạn nhân bản
o Giai đoạn kích hoạt: Virus sẽ được kích hoạt để thực hiện chức năng mà
nó đã dự định Cũng như giai đoạn không hoạt động, giai đoạn kích hoạt có thểđược thực hiện bởi một loạt các sự kiện hệ thống, bao gồm số lần
bản sao của virus đã tạo ra các bản sao của chính nó
o Giai đoạn thực thi: Chức năng của virus được thực hiện, chức năng cóthể vô hại như một thông báo trên màn hình hoặc phá hoại chương trình và các tệp
dữ liệu
1.2.1.4 Phân loại virus:
Virus cơ bản được phân làm hai loại: theo loại mục đích mà virus cốgắng lây nhiễm và theo phương pháp mà virus sử dụng để che dấu bản thânnhằm tránh phát hiện bởi người dùng và các phần mềm chống virus Phân loạitheo mục đích bao gồm các loại sau:
Lây nhiễm vào vùng khởi động (Boot sector infector): lây nhiễm mộtbản ghi khởi động chính hoặc bản khi khởi động và lây lan khi một hệ thống đượckhởi động từ đĩa chứa virus
Lây nhiễm têp tin (file infector): lây nhiễm vào các tệp tin của hệ điều hành hoặc shell được thực thi
Macro virus: lây nhiễm các tệp tin với mã macro được biên dịch bởi một
ứng dụng
Phân loại theo phương pháp mà Virus sử dụng bao gồm các loại sau:
Virus được mã hóa (Encrypted virus): phương pháp được thực hiện nhưsau Một phần của virus tạo ra một khóa mã hóa ngẫu nhiên và mã hóa phần cònlại của virus Khóa được lưu với virus Khi một chương trình bị nhiễm được gọi,virus sử dụng khóa ngẫu nhiên được lưu trữ để giải
Trang 15mã virus Khi virus nhân bản, một khóa ngẫu nhiên khác nhau được lựachọn Bởi vì phần lớn virus được mã hóa bằng một khóa khác nhau chomỗi trường hợp dẫn đến không có mẫu bit cố định để quan sát.
Virus tàng hình (Stealth virus): một hình thức của virus được thiết kế để che dấu bản thân nó khỏi sự phát hiện của phần mềm chống virus
Virus đa hình (Polymorphic virus): một loại virus biến đổi theo mọi lây nhiễm, khiến cho việc phát hiện virus bằng chữ ký trở nên không thể
Virus biến hóa (Metamorphic virus): giống như một virus biến hình,một virus biến hóa biến đổi với mọi sự lây nhiễm Sự khác biệt là một virus biếnhóa tự viết lại hoàn toàn ở mỗi vòng lặp để tăng độ khó phát hiện Virus biến hóa
có thể thay đổi hành vi, cũng như ngoại hình của chúng
1.2.2 Worm [5]
Sâu (Worm) là một chương trình có thể tự sao chép và gửi các bản sao từmáy tính này sang máy tính khác qua các kết nối mạng Khi đến nơi, worm cóthể được kích hoạt và nhân bản lần nữa Ngoài việc nhân bản, worm thường thựchiện một số chức năng không mong muốn như thu thập thông tin hệ thống, tìmkiếm lỗ hổng bảo mật Worm là một loại phần mềm độc hại được ẩn náu trongmáy tính, nhưng nó không phải là virus vì nó không được nhúng vào chươngtrình khác.Worm lây nhiễm từ máy tính này đến máy tính khác bằng cách khaithác lổ hổng bảo mật hoặc lỗ hổng do chính tác giả tạo ra Để tự nhân bản, mộtworm mạng sử dụng một số phương tiện mạng như sau:
Chức năng thư điện tử (Electronic mail facility): worm thư điện tử gửibản sao của nó đến hệ thống khác, mã của nó được kích hoạt khi thư điện tử hoặctệp đính kèm nhận được hoặc xem
Khả năng thực thi từ xa (Remote execution capability): worm thực thibản sao của chính nó trên hệ thống khác bằng cách sử dụng một cơ chế thực thi từ
xa hoặc bằng cách khai thác lỗ hổng chương trình của một dịch vụ mạng để pháhủy hoạt động của chúng
Trang 16 Khả năng truy cập từ xa (Remote login capability): worm đăng nhập vào
hệ thống từ xa như một người dùng, sau đó sử dụng các lệnh để sao chép chính nó
từ hệ thống này đến hệ thống khác và thực thi lệnh
Ví dụ, một trong những sâu máy tính nổi tiếng nhất trong lịch sử máy tính
có tên là Confiker Confiker mục tiêu tấn công vào hệ điều hành MicrosoftWindow, phiên bản đầu tiên của sâu Confiker được phát hiện vào tháng 10năm 2008 và đã lây nhiễm hàng triệu máy tính trên thế giới Confiker khaithác một lỗ hổng về dịch vụ mạng được xây dựng trên hệ điều hành Window,bao gồm tất các các phiên bản từ Window 2008 đến Windows server 2008được nhân bản qua Internet Lỗ hổng này có tên là MS08_067, cho phép một
kẻ tấn cống thực thi mã lệnh từ xa và chiếm toàn bộ quyền điều khiển máytính từ xa
1.2.3 Ransomware
Ransomware (mã độc tống tiền) gồm nhiều lớp phần mềm độc hại vớimục đích hạn chế truy cập đến hệ thống máy tính mà nó đã lây nhiễm và đòihỏi phải trả một khoản tiền cho kẻ tấn công nhằm xóa bỏ hạn chế truy cập mà
nó đã tạo ra trước đó Một vài dạng của ransomware mã hóa tệp tin, dữ liệutrên ổ đĩa cứng nhằm tống tiền, trong khi một vài dạng khác thì đơn giản hơnnhư chúng khóa hệ thống lại và hiển thị một thông báo để thuyết phục nạnnhân trả tiền Mã độc tống tiền thường lan truyền qua email với các file đínhkèm, như các virus máy tính khác, khi mở file đính kèm này thì máy tính củangười dùng sẽ bị kiểm soát Khi đó, mã độc quét toàn bộ ổ đĩa của máy tính
và mã hóa các file bằng mã hóa công khai Hầu hết các tập tin quan trọng trênmáy tính người dùng với định dạng doc, pdf, xls, zip sẽ không mở đượcnữa Để giải mã bắt buộc phải có khóa bí bật, mà khóa bí mật chỉ có kẻ tấncông mới có và nạn nhân sẽ nhận được thông báo trên màn hình (desktop) đòitiền chuộc nếu muốn giải mã file Một số loại mã độc ransomware như sau:
Charger: mã độc này sẽ sao chép tất cả các dữ liệu từ tin nhắn dạng text,danh bạ, nhật ký và tìm kiếm quyền admin từ người dùng Nếu người
Trang 17dùng chấp nhận yêu cầu của mã độc, thì phần mềm mềm độc hại sẽ tấncông người dùng và một tin nhắn cảnh báo cho người dùng biết là thiết
bị của người dùng đã bị khóa và các dữ liệu cá nhân sẽ được bán trên thịtrường nếu người dùng không chấp nhận trả tiền chuộc Các nạn nhâncủa mã độc Charger sẽ yêu cầu phải trả khoảng 0.2 bitcoins (khoảng8000$ USD) nếu muốn mở khóa (unblock) thiết bị
Jisut: Không giống như những mã độc ransomware khác thường yêu cầutiền chuộc thì Jisut tiếp cận theo một cách khác và không quan tâm về sự nặc danh.Trên màn hình xuất hiện con ngựa con bao gồm thông tin liên quan trên mạng xãhội QQ ở Trung Quốc và thuyết phục nạn nhân liên hệ với tác giả để lấy lại các tệptin của họ Nếu thông tin trên QQ là đúng thì chủ nhân của mã độc là các thanhniên từ 16 đến 21 tuổi sẽ xuất hiện Các biến thể đầu tiên của JisutAndroid/LockScreen xuất hiện nữa đầu năm 2014, từ thời điểm 2014 đến bây giờ
đã phát hiện hàng trăm biến thể của Jisut với các hành vi khác nhau hoặc các tinnhắn đòi tiền chuộc khác nhau nhưng tất cả dựa trên cùng một mẫu mã độc Khi
mã độc Jisut được kích hoạt thì nó sẽ tạo ra một màn hình hoạt động được hiện lênvới đầy đủ màn hình với màu đen, nếu người dùng thay đổi giao diện hoặc tắt,khởi động lại thiết bị thì một thông báo sẽ được hiển thị lên hoặc một bài hát sẽđược thực thi
WannaLocker: mã độc này là một loại khác của ransomware Wannacry,ban đầu nhắm đến người dùng Android ở Trung Quốc và mở rộng ra toàn thế giới
Mã độc này lây nhiễm các tệp tin (files) trên bộ lưu trữ của thiết bị và mã hóa cáctệp tin bằng thuật toát mã hóa AES Khi các tệp tin bị mã hóa, mã độc sẽ hiện lênmột thông báo đòi tiền chuộc tương tự như WannaCry, nó cung cấp thông tin về
dữ liệu đã được mã hóa và các khả năng đê phục hội chúng bằng ngôn ngữ tiếngtrung WannaLocker yêu cầu số tiền chuộc là 40 Renmibi Trung Quốc và cách liênlạc để thực hiện giao dịch chuyển tiền và khôi phục dữ liệu
Trang 18 Remote Access Trojans: cho phép kẻ tấn công kiểm soát toàn bộ hệ thống từ xa
Data-Sending Trojans: Trojan gửi thông tin nhạy cảm của nạn nhân cho
kẻ tấn công
Destructive Trojans: Trojan phá hủy hệ thống
Denied-of-Service – DoS Attack Trojan: Trojan phục vụ tấn công Ddos
HTTP, FTP Trojans: Trojan tự tạo thành HTTP hay FTP server để kẻ tấn công khai thác lỗi
Security Software Disable Trojan: Có tác dụng tắt tính năng bảo mật trong các máy tính nạn nhân
1.2.5 Backdoor [6]
Backdoor (cửa hậu) là một loại phần mềm độc hại cung cấp cho kẻ tấncông quyền truy cập từ xa vào máy nạn nhân Backdoor là loại phần mềm độchại phổ biến nhất và chúng có đủ hình dạng, kích cỡ với khả năng khác nhau
Mã backdoor thường thực hiện đầy đủ các khả năng, vì vậy khi sử dụngbackdoor kẻ tấn công thường không cần tải thêm các phần mềm độc hại kháchoặc mã chương trình Backdoor thường cho phép kẻ tấn công kết nối đếnmáy tính từ xa với ít quyền hoặc không cần xác thực và đi kèm với một sốchức năng phổ biến như khả năng thao tác các khóa registry, liệt kê các cửa sổhiện thị, tạo thư mục, tìm kiếm tập tin, truy cập từ xa bằng tài khoản riêng,thực thi lệnh hệ thống Một số loại backdoor như sau:
Trang 19 Reverse Shell: là một kết nối bắt nguồn từ một máy bị nhiễm và cungcắp quyền truy cập shell cho kẻ tấn công vào máy tính đó Khi ở trong reverseshell, kẻ tấn công có thể thực thi các lệnh trên máy của nạn nhân ngay trên máycủa kẻ tấn công.
RATs: công cụ quản trị từ xa (RAT) được sử dụng để quản lý các máytính từ xa RAT thường được sử dụng trong các cuộc tấn công có chủ đích với mụctiêu cụ thể, chẳng hạn như đánh cắp thông tin
Botnet: là tập hợp các máy chủ bị xâm nhập, được gọi là zombie, đượcđiểu khiển bởi máy chủ botnet Mục tiêu của botnet là tạo ra một mạng lướizombie lớn để botnet phát tán mềm mềm độc hại hoặc thực hiện tấn công từ chốidịch vụ (DDoS)
1.2.6 Rootkits
Rootkit là một bộ công cụ phần mềm do kẻ xâm nhập đưa vào máy tínhnạn nhân nhằm mục đích cho phép mình quay lại xâm nhập máy tính đó vàdùng nó cho các mục đích xấu mà không bị phát hiện Một số mục đích của
kẻ xâm nhập khi sử dụng rootkit bao gồm:
Thu thập dữ liệu về các máy tính trong cùng mạng và thông tin của người dùng như mật khẩu, thông tin tài chính
Tạo hoặc chuyển tiếp spam
Gây lỗi hoặc sai trong hoạt động của máy tính.
Rootkit được thiết kế tốt có khả năng che giấu hoặc xóa bỏ bất cứ dấuvết nào của việc nó truy cập vào máy tính, sự tồn tại và hoạt động của nó Ví
dụ, nó có thể sữa nhật ký (log) của hệ thống để hệ điều hành không ghi hoặcxóa bỏ tất cả các thông tin liên quan đến việc nó đăng nhập vào máy, thôngtin các lần truy cập tiếp theo của kẻ xâm nhập, thông tin về các chương trình
mà rootkit chạy Rootkit không phải là virus do nó không tự nhân bản vàkhông có cơ chế hoạt động tự chủ Rootkit nằm hoàn toàn dưới quyền kiểmsoát của kẻ tấn công
Trang 201.3 Mục đích phân tích mã độc
Khái niệm: phân tích phần mềm độc hại là quá trình xác định chứcnăng và mục đích của mẫu phần mềm độc hại đã cho là virus, worm, TrojanHorse hay biến thể của mã độc đã biết hoặc mã độc mới
Các mục đích của phân tích mã độc: có ba mục đích chính trong việcphân tích mã độc bao gồm phát hiện mã độc, phân tích sự tương tự giữa cácphần mềm độc hại và phân loại các phần mềm độc hại Chi tiết ba mục đíchcủa phân tích mã độc như sau: [2]
Phát hiện mã độc nhằm mục đích phát hiện một tập tin có phải là mã độc hay không
Phân tích sự tương tự giữa các phần mềm độc hại nhằm mục đích kiểmtra sự giống nhau, khác nhau giữa các phần mềm độc hại để phát hiện biến thể của
mã độc đã biết hoặc lớp mã độc mới
Phân loại phần mềm độc hại: cho phép phân loại phần mềm độc hại vàocác nhóm phần mềm đọc hại khác nhau như nhóm virus, horm, rootkit
có thể biết được tất cả các khả năng thực hiện có thể của chương trình, tuynhiên đối với mã độc thì việc phân tích tĩnh thường gặp khó khăn do việc mãhóa (Encrypt), đóng gói (Packed), ngụy trang (Obfuscated) Một số kỹ thuậtđược sử dụng cho phân tích tĩnh bao gồm [8]:
Kỹ thuật phát hiện dựa trên chữ ký (signature based detection technique)còn gọi là khớp mẫu hoặc chuỗi hoặc mặt nạ hoặc kỹ thuật
Trang 21dấu vân tay Chữ ký là một chuỗi các bit được người viết phần mềm độchại chèn vào chương trình ứng dụng được viết bởi những người pháttriển mã độc và cho phép nhận ra một loại mã độc cụ thể Để phát hiệnphần mềm độc hại trong mã của chương trình, người rà soát mã độc hại
sẽ tìm kiếm một số chữ ký đã được định nghĩa trước đó trong mãchương trình Ví dụ, các từ khóa được tìm kiếm như địa chỉ IP, lời gọichương trình…
Kỹ thuật phát hiện heuristic (heuristic detection technique) được biết
như là kỹ thuật chủ động Có nhiều sự tương đồng giữa kỹ thuật phântích chữ ký số và kỹ thuật heuristic tuy nhiên có một sự khác nhau rõràng của kỹ thuật phân tích heuristic là việc thay cho tìm kiềm một chữ
ký cụ thể trong đoạn mã chương trình thì người kiểm tra mã độc sẽ tìmnhững lệnh và chỉ thị mà không có trong chương trình Thuận lợi chínhcủa kỹ thuật này là có thể dễ dàng phát hiện ra các biến thể mới của mãđộc mà chưa được phát hiện trước đây
Phân tích động là phương pháp theo dõi, phân tích hành vi thực hiện, cáctương tác của phần mềm với môi trường thông qua việc thực thi các phầnmềm đó Khi phân tích động mã độc cũng đồng nghĩa với việc ta phải chạy
mã độc đó, do vậy chúng ta cần có một môi trường an toàn để tránh các táchại đối với hệ thống cũng như bên ngoài Hộp cát (Sandbox) là một cơ chếbảo mật để chạy các chương trình không đáng tin cậy trong một môi trường
an toàn mà không sợ làm hệ thống "thực" Ưu điểm của phương pháp phântích này đó là có thể theo dõi các hành động thực sự được thực hiện bởi mãđộc trong khi đối với phân tích tĩnh, khi gặp rẽ nhánh chúng ta không thể biết
mã độc sẽ đi theo nhánh nào Thách thức của phương pháp này là môi trườngsandbox phải an toàn, tránh bị phát hiện đồng thời phải đáp ứng được các điềukiện để mã độc bộc lộ tối đa hành vi của mình Có hai cách tiếp cận chính chophương pháp phân tích động gồm có:
Trang 22 Phân tích sự khác biệt giữa các thời điểm được xác định: với phươngpháp này, mẫu phần mềm độc hại đã được phân tích trong một khoảng thời giannhất định, sau đó thay đổi cấu hình hệ thống và phân mềm độc hại sẽ được phântích lại như ban đầu [7]
Quan sát hành vi thời gian chạy: theo cách tiếp cận này, phần mềm độchại sẽ thực hiên các hành động độc hại được giám sát các hành vi bằng công cụchuyên dụng [7]
Phân tích lai (hybrid): kỹ thuật phân tích này là sự kết hợp giữa phântích tĩnh và phân tích động, thường tuân theo một quy trình đơn giản ban đầu kiểmtra bất kỳ chữ ký trong mã chương trình, nếu phát hiện bất kỳ chữ ký nào xuất hiệnthì sẽ giám sát hành vi của mã này [8]
1.5 Trích xuất đặc trƣng và các loại đặc trƣng
1.5.1 Trích xuất đặc trưng
Quá trình trích xuất đặc trưng được thực hiện bằng việc phân tích tĩnhhoặc phân tích động hoặc cả hai loại phân tích tĩnh và phân tích động Cáchtiếp cận dựa trên phân tích tĩnh được thực hiện bằng cách xem xét nội dungcủa các mẫu mã độc mà không cần chúng thực thi (không cần chạy chươngtrình), trong khi cách tiếp cận dựa trên phân tích động được thực hiện dựa trêncác mẫu mã được được thực thi để kiểm tra các hành vi của nó Mốt số kỹthuật có thể được sử dụng cho phân tích động như: trình sữa lỗi (debugger)được sử dụng cho việc phân tích các lớp chỉ thị (instruction), các bộ môphỏng (simulators) biểu diễn và hiện thị các hành vi tương tự như trong môitrường thật của mã độc, trong khi các bộ giả lập (emulators) nhân bản hành vicủa một hệ thống với độ chính xác cao hơn nhưng yêu cầu nhiều tài nguyênhơn Sandboxes là các hệ điều hành được ảo hóa cung cấp một môi trườngđánh tin cậy và cô lập để kích hoạt các mã độc Các dấu vết thực thi (excutiontraces) thường được sử dụng để trích xuất các đặc trưng khi sử dụng phân tíchđộng Ngoài ra, một số công cụ và kỹ thuật khác thường được sử dụng đểtrích xuất đặc như: các mã disassembly và biều đồ luồng dữ liệu (data-flow)
Trang 23và điều khiển (control) Mã dịch ngược assembly là thành phần quan trọngcho việc trích xuất các byte tuần tự (Byte sequence và Opcode), trong khi biểu
đồ luồng dữ liệu và điều khiển được sử dụng để trích xuất các lời gọi hệ thống(system calls) và API
1.5.2 Các loại đặc trưng
Có 8 loại đặc trưng điển hình bao gồm [2]:
Chuỗi byte (bytes sequence): phân tích các chuỗi byte cụ thể trong tệptin nhị phân được sử dụng phổ biến trong phân tích tĩnh Một số công trình sửdụng chuỗi các byte với kích thước cụ thể và đa số công trình khác sử dụng n-grams (n-grams là một chuỗi các byte)
Opcodes: opcodes xác định các hoạt động (operation) ở mức máy đượcthực thi bởi một file thực thi và có thể được trích xuất thông qua phân tích tĩnhbằng cách kiểm tra các mã assembly Chuỗi tuần tự opcode là một trong những đặctrưng phổ biến được sử dụng, nó đếm số lần xuất hiện của opcode cụ thể trongassemby
API và các lời gọi hệ thống (System calls): tương tự opcodes, API vàcác lời gọi hệ thống cho phép phân tích hành vi của mã độc nhưng ở mức cao.Chúng có thể được trích xuất bằng phân tích tĩnh hoặc phân tích động bằng cáchphân tích mã assembly được dịch ngược hoặc một danh sách các lời gọi hệ thống.Một trong những cấu trúc dữ liệu phổ biến để biểu diễn hành vi PE và trích xuấtcấu trúc chương trình là đồ thị luồng điều khiển (control flow graph)
Hoạt động mạng (Network activity): một số lượng lớn các thông tinchính có thể thu được bằng cách quan sát việc tương tác mã thực thi với mạng Địachỉ kết nối và lưu lượng được tạo ra có thể rất có giá trị như kết nối với một lệnh
và trung tâm điều khiển Một số đặc trưng được sử dụng như giao thức, cổng TCP/UDP, các yêu cầu HTTP, kết nối DNS
File system: các hành động của file được thực thi bởi các mã độc làthành phần cơ bản khi thu thập chứng cứ về sự tương tác của mã độc với
Trang 24môi trường, ví dụ loại file gì được thêm, sữa, xóa, thay đổi; file gì bị nhiễm mã độc và file chưa bị nhiễm mã độc.
Các thanh ghi CPU (CPU Registers): cách các thanh ghi trong CPUđược sử dụng có thể có giá trị như thanh ghi ẩn nào được sử dụng và các giá trị gìđược lưu trong các thanh ghi, đặc biệt là các cờ (Flasgs)
Các đặc điểm file PE (PE file characteristics): phân tích tĩnh một PE cóthể mang lại tập hợp các thông tin có giá trị như các phần (sections), các nhập(imports), các ký hiệu (symbols),
Chuỗi ký tự (Strings): một PE có thể được kiểm tra bằng cách tìm kiếm các ký tự cụ thể như dấu hiệu tác giả, tên file, thông tin hệ thống
Trang 25CHƯƠNG 2: TỔNG QUAN VỀ HỌC MÁY
2.1 Giới thiệu về học máy
Thời gian gần đây, trí tuệ nhân tạo (AI – Artificial Intelligence) và cụthể hơn là học máy (Machine Learning) đang nổi lên như một bằng chứng củacách mạng công nghiệp lần thứ tư (lần 1 – động cơ hơi nước, lần 2 – nănglượng điện, lần 3 – công nghệ thông tin) Trí tuệ nhân tạo đang len lỏi vàomọi lĩnh vực trong đời sống của chúng ta như xẹ tự lái của Google và Tesla,
hệ thống gợi ý sản phẩm của Amazon, hệ thống trợ lý ảo Siri của Apple, hệthống gợi ý phim của Netfix chỉ là một trong những ứng dụng AI/MachineLearning
Học máy là một tập con của trí tuệ nhân tạo Theo định nghĩa củaWikipedia thì, học máy là một lĩnh vực nhỏ của khoa học máy tính, nó có khảnăng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải lập trình cụ thể
Ý tưởng cơ bản của mọi quy trình học máy là xây dựng mô hình dựatrên một số thuật toán để thực hiện một nhiệm vụ cụ thể như phân loại, phânlớp, hồi quy Giai đoạn huấn luyện được thực hiện dựa trên dữ liệu đầu vào
và mô hình được xây dựng để dự đoán đầu ra Kết quả đầu ra phụ thuộc mụctiêu ban đầu và việc thực hiện Chi tiết quy trình học máy gồm các bước nhưsau [13]:
Hình 2.1: quy trình học máy