ĐỀ TÀI ỨNG DỤNG KỸ THUẬT DỮ LIỆU LỚN CHO BÀI TOÁN NHẬN DIỆN MÃ ĐỘC VỚI XGBOOST VÀ DASK Ngành: Công Nghệ Thông Tin Giảng viên hướng dẫn: TS. Huỳnh Quốc Bảo TP. Hồ Chí Minh, 2021 MỤC LỤC MỤC LỤC 1 LỜI CẢM ƠN 4 GIỚI THIỆU 5 CHƯƠNG 1: TỔNG QUAN VỀ MÃ ĐỘC 8 1.1. Giới thiệu về mã độc 8 1.2. Phân loại mã độc 8 1.2.1. Virus. 9 1.2.2. Worm 11 1.2.3. Ransomware 12 1.2.4. Trojan 14 1.2.5. Backdoor 14 1.2.6. Rootkits 15 1.3. Mục đích phân tích mã độc 16 1.4. Phương pháp phân tích mã độc 16 1.5. Trích xuất đặc trưng và các loại đặc trưng 19 1.5.1. Trích xuất đặc trưng 19 1.5.2. Các loại đặc trưng 20 CHƯƠNG 2: THUẬT TOÁN XGBOOST và DASK 22 2.1 Giới thiệu XGBoost 22 2.2 Phương pháp XGBoost tối ưu hóa hệ thống 24 2.3 Giới thiệu DASK 26 2.4 DASK Array 27 2.5 DASK DataFrame 28 2.6 DASK Bag 28 2.7 DASK Delay 28 2.8 DASK Futures 29 CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ 30 3.1 Dữ liệu thực nghiệm 30 3.2 Chương trình thực nghiệm 30 CHƯƠNG 4: KẾT LUẬN 35 TÀI LIỆU THAM KHẢO 36 NHẬN XÉT CỦA GIẢNG VIÊN LỜI CẢM ƠN Trước tiên chúng em xin gửi lời cảm ơn sâu sắc nhất đến thầy TS. Huỳnh Quốc Bảo, đã tận tâm, tận lực hướng dẫn, định hướng phương pháp nghiên cứu khoa học cho em; đồng thời, cũng đã cung cấp nhiều tài liệu và tạo điều kiện thuận lợi trong suốt quá trình học tập và nghiên cứu để chúng em có thể hoàn thành báo cáo này. Em xin được gửi lời cảm ơn đến các thầy, cô trong Khoa Công nghệ thông tin, Trường Đại học Công nghệ Thành phố Hồ Chí Minh đã nhiệt tình giảng dạy và truyền đạt những kiến thức, kinh nghiệm quý giá trong suốt thời gian chúng em học tập tại trường. Em xin gửi lời cảm ơn đến các bạn học viên lớp 20SCT11, những người đồng hành trong suốt khóa học và có nhiều góp ý bổ ích cho chúng em. Cảm ơn gia đình, bạn bè đã quan tâm và động viên giúp chúng em có nghị lực phấn đấu để hoàn thành tốt báo cáo này. GIỚI THIỆU Trong nền kinh tế số ngày nay, hầu hết các doanh nghiệp và cá nhân đều phụ thuộc vào mạng máy tính và hệ thống thông tin để xử lý và lưu trữ dữ liệu . Không chỉ các doanh nghiệp hiện đại đang chuyển đổi nội dung trên giấy của họ thành các hình thức kỹ thuật số mà còn tạo ra các mô hình kinh doanh mới dựa trên tài sản kỹ thuật số. Facebook, Netflix và các công ty tương tự là những ví dụ điển hình về các doanh nghiệp hiện đại như vậy. Song song với sự bùng nổ mạnh mẽ của công nghệ thông tin, dữ liệu 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 đang trở nên trầm trọng và nguy hiểm hơn, trong đó mã độc hại đang là các hiểm họa hàng đầu bởi khả năng có thể lây lan phát tán trên các hệ thống máy tính và thực hiện các hành vi tấn công bất hợp pháp. Hơn nữa, mã độc đang ngày càng tiến hóa với những biến thể đa dạng, với những cách thức che dấu ngày càng tinh vi hơn. Theo AVTEST1, tính đến tháng 5 năm 2021, tổng số phát hiện mã độc mới trên toàn thế giới lên tới 826,37 triệu và 214,37 triệu phần mềm tiềm tàng các nguy cơ mất an toàn thông tin. Và cứ mỗi giây sẽ xuất hiện trung bình 4,9 mã độc mới. Với sự gia tăng nhanh, biến hóa phức tạp và nhân lực hạn chế 2, phát hiện mã độc mới là một thách thức đối với các doanh nghiệp, chính phủ và người dùng đầu cuối. Sự phụ thuộc vào phát hiện dựa trên chữ ký đã được chứng minh là không hiệu quả với các mã độc mới hoặc các biến thể mới. Các chuyên gia và nhà nghiên cứu đã cố gắng sử dụng các kỹ thuật học máy để phát hiện chính xác mã độc mới. Với sự bùng nổ mã độc yêu cầu cần có hệ thống máy tính đủ mạnh để phân tích và tính toán trong thời gian thực giúp kịp thời nhận diện các nguy cơ an ninh mới, lúc này một máy tính mạnh nhất hiện tại cũng không thể đủ tài nguyên như bộ nhớ ngoài, bộ nhớ trong, năng lực tính toán để đáp ứng yêu cầu. Trong báo cáo này chúng em sẽ tiếp cận ứng dụng kỹ thuật phân tích dữ liệu lớn vào học máy. Báo cáo xây dựng hệ thống giản lập trên 7 máy trạm có mỗi máy trạm mỗi máy có bộ nhớ trong 6GB nhằm giải quyét bài toán học máy yêu cầu bộ nhớ trong khoảng 18GB cho giai đoạn huấn luyện. Trong khuôn khổ báo cáo này chúng em chỉ nghiên cứu ứng dụng thuật toán và thư viện vào nhận diện mã độc và tính toán song song mà không đi sâu vào nghiên cứu thuật toán. Nội dung báo cáo được chia ra làm 4 phần như sau: Chương 1: Chương này nghiên cứu tổng quan về mã độc trình bày các kiến thức chung nhất liên quan đến mã độc, phân loại mã độc cũng như các kỹ thuật phân tích và phát hiện mã độc hiện nay. Chương 2: Trình bày về thuật toán XGBoost và các ưu điểm của thuật toán cũng như thư viện DASK. Chương 3: Trình bày về quá trình thực nghiệm và đánh giá, các kết quả được thực nghiệm và so sánh với các kết quả của các công trình đã công bố. Chương 4: Tổng kết, đánh giá những kết quả đạt được cũng như những vấn đề cần cải tiến và đề xuất hướng nghiên cứu tiếp theo. DANH MỤC HÌNH ẢNH Hình 2.1: Sự phát triển của thuật toán XGBoost từ cây quyết định 22 Hình 2.2: Phương pháp XGBoost tối ưu hóa thuật toán GBM tiêu chuẩn 24 Hình 2.3: XGBoost so với Các thuật toán ML khác sử dụng Bộ dữ liệu Make_Classification của SKLearn (20 thuộc tính, 1 triệu dòng) 26 Hình 2.4: Mô hình hoạt động của DASK 27 Hình 2.5: DASK Array 27 Hình 2.6: DASK Dataframe 28 Hình 2.7: Sơ đồ tác vụ trong DASK 29 CHƯƠ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ột má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ại nà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ám sá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ềm khá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ính bì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ô ý do mộ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ể được coi 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ười dù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ự sao chép bất hợp pháp nhưng đồng thời cũng thu thập thông tin về thói quen nghe nhạ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ào má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àng hình, lệnh và điểu khiển (CC), các kỹ thuật che dấu, tập hợp các hành vi đượ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ợp cá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ại phầ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 vi của chúng có thể được phân loại như sau: 1.2.1. Virus. 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 ẩn dấ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ây lan 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: 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à vectơ lây nhiễm 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 Payload: một đoạn mã được chạy trên máy nạn nhân, dùng để thực hiện mộ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: 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ình khác hoặc tệp tin hoặc dung lượng ổ đĩa vượt quá giới hạn. Không phải tất cả các virus đều có giai đoạn này. Giai đoạn nhân bản: Virus sao chép bản sao của chính nó vào chương trì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. 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ó. 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ân nhằ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ại theo 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ột bả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 được khở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
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
BÁO CÁO MÔN HỌC
PHÂN TÍCH DỮ LIỆU LỚN
Ngành: Công Nghệ Thông Tin
Giảng viên hướng dẫn: TS Huỳnh Quốc Bảo
TP Hồ Chí Minh, 2021
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
ĐỀ TÀI
ỨNG DỤNG KỸ THUẬT DỮ LIỆU LỚN CHO BÀI TOÁN NHẬN DIỆN MÃ ĐỘC VỚI XGBOOST VÀ
DASK
Ngành: Công Nghệ Thông Tin
Giảng viên hướng dẫn: TS Huỳnh Quốc Bảo
TP Hồ Chí Minh, 2021
Trang 3MỤC LỤC
Trang 4NHẬN XÉT CỦA GIẢNG VIÊN
LỜI CẢM ƠN
Trước tiên chúng em xin gửi lời cảm ơn sâu sắc nhất đến thầy TS Huỳnh Quốc Bảo, đã tận tâm, tận lực hướng dẫn, định hướng phương pháp nghiên cứu khoa học cho em; đồng thời, cũng đã cung cấp nhiều tài liệu và tạo điều kiện thuận lợi trong suốt quá trình học tập và nghiên cứu để chúng em có thể hoàn thành báo cáo này
Em xin được gửi lời cảm ơn đến các thầy, cô trong Khoa Công nghệ thông tin, Trường Đại học Công nghệ - Thành phố Hồ Chí Minh đã nhiệt tình giảng dạy và truyền đạt những kiến thức, kinh nghiệm quý giá trong suốt thời gian chúng em học tập tại trường
Em xin gửi lời cảm ơn đến các bạn học viên lớp 20SCT11, những người đồng hành trong suốt khóa học và có nhiều góp ý bổ ích cho chúng em Cảm ơn gia đình, bạn bè đã quan tâm và động viên giúp chúng em có nghị lực phấn đấu để hoàn thành tốt báo cáo này
Trang 5GIỚI THIỆU
Trong nền kinh tế số ngày nay, hầu hết các doanh nghiệp và cá nhân đều phụ thuộcvào mạng máy tính và hệ thống thông tin để xử lý và lưu trữ dữ liệu Không chỉ cácdoanh nghiệp hiện đại đang chuyển đổi nội dung trên giấy của họ thành các hình thức kỹthuật số mà còn tạo ra các mô hình kinh doanh mới dựa trên tài sản kỹ thuật số.Facebook, Netflix và các công ty tương tự là những ví dụ điển hình về các doanh nghiệphiện đại như vậy Song song với sự bùng nổ mạnh mẽ của công nghệ thông tin, dữ liệu
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 đang trởnên trầm trọng và nguy hiểm hơn, trong đó mã độc hại đang là các hiểm họa hàng đầubởi khả năng có thể lây lan phát tán trên các hệ thống máy tính và thực hiện các hành
vi tấn công bất hợp pháp Hơn nữa, mã độc đang ngày càng tiến hóa với những biếnthể đa dạng, với những cách thức che dấu ngày càng tinh vi hơn Theo AV-TEST[1],tính đến tháng 5 năm 2021, tổng số phát hiện mã độc mới trên toàn thế giới lên tới826,37 triệu và 214,37 triệu phần mềm tiềm tàng các nguy cơ mất an toàn thông tin
Và cứ mỗi giây sẽ xuất hiện trung bình 4,9 mã độc mới Với sự gia tăng nhanh, biếnhóa phức tạp và nhân lực hạn chế [2], phát hiện mã độc mới là một thách thức đối với cácdoanh nghiệp, chính phủ và người dùng đầu cuối Sự phụ thuộc vào phát hiện dựa trênchữ ký đã được chứng minh là không hiệu quả với các mã độc mới hoặc các biến thểmới Các chuyên gia và nhà nghiên cứu đã cố gắng sử dụng các kỹ thuật học máy để pháthiện chính xác mã độc mới
Với sự bùng nổ mã độc yêu cầu cần có hệ thống máy tính đủ mạnh để phân tích vàtính toán trong thời gian thực giúp kịp thời nhận diện các nguy cơ an ninh mới, lúc nàymột máy tính mạnh nhất hiện tại cũng không thể đủ tài nguyên như bộ nhớ ngoài, bộ nhớtrong, năng lực tính toán để đáp ứng yêu cầu Trong báo cáo này chúng em sẽ tiếp cậnứng dụng kỹ thuật phân tích dữ liệu lớn vào học máy Báo cáo xây dựng hệ thống giản lậptrên 7 máy trạm có mỗi máy trạm mỗi máy có bộ nhớ trong 6GB nhằm giải quyét bàitoán học máy yêu cầu bộ nhớ trong khoảng 18GB cho giai đoạn huấn luyện
Trang 6Trong khuôn khổ báo cáo này chúng em chỉ nghiên cứu ứng dụng thuật toán và thư viện vào nhận diện mã độc và tính toán song song mà không đi sâu vào nghiên cứu thuật toán Nội dung báo cáo được chia ra làm 4 phần như sau:
Chương 1: Chương này nghiên cứu tổng quan về mã độc trình bày các kiến thức
chung nhất liên quan đến mã độc, phân loại mã độc cũng như các kỹ thuật phân tích
và phát hiện mã độc hiện nay
Chương 2: Trình bày về thuật toán XGBoost và các ưu điểm của thuật toán cũng
như thư viện DASK
Chương 3: Trình bày về quá trình thực nghiệm và đánh giá, các kết quả được
thực nghiệm và so sánh với các kết quả của các công trình đã công bố
Chương 4: Tổng kết, đánh giá những kết quả đạt được cũng như những vấn đề
cần cải tiến và đề xuất hướng nghiên cứu tiếp theo
Trang 7DANH MỤC HÌNH ẢNH
Trang 8Cá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ự sao chépbất hợp pháp nhưng đồng thời cũng thu thập thông tin về thói quen nghe nhạccủ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ầnmề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ào má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ạinhật định với các đặc điểm cụ thể như: tính nhân bản, sự nhiễm độc, tàng hì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 9đượ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ợp cácchứ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ại phầ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 vi của chúng cóthể được phân loại như sau:
1.2.1 Virus.
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 ẩn dấu trongmột chương trình có vẻ vô hại, có thể tự tạo ra các bản sao và lây lan vào cácchươ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.3 Vòng đời của Virus
Vòng đời của Virus, thường bao gồm 04 giai đoạn sau:
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ình khác hoặc tệp tin hoặc dung lượng ổ đĩa vượt quá giới hạn Không phải tất cả các virus đều có giai đoạn này.
Trang 10 Giai đoạn nhân bản: Virus sao chép bản sao của chính nó vào chương trì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.
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ó.
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âynhiễm và theo phương pháp mà virus sử dụng để che dấu bản thân nhằm tránh pháthiện bởi người dùng và các phần mềm chống virus Phân loại theo mục đích bao gồmcác loại sau:
Lây nhiễm vào vùng khởi động (Boot sector infector): lây nhiễm một bả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 được khở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
Trang 11như 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òn lạ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 mã virus Khi virus nhân bản, một khóa ngẫu nhiên khác nhau được lựa chọn Bởi vì phần lớn virus được mã hóa bằng một khóa khác nhau cho mỗ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ến hó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
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ínhnà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íchhoạt và nhân bản lần nữa Ngoài việc nhân bản, worm thường thực hiện một số chứcnăng không mong muốn như thu thập thông tin hệ thống, tìm kiế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 trong máy tính, nhưng nó khôngphải là virus vì nó không được nhúng vào chương trình khác.Worm lây nhiễm từ máytính này đến máy tính khác bằng cách khai thác lổ hổng bảo mật hoặc lỗ hổng dochính tác giả tạo ra Để tự nhân bản, một worm mạng sử dụng một số phương tiệnmạng như sau:
Chức năng thư điện tử (Electronic mail facility): worm thư điện tử gửi bản sao của nó đến hệ thống khác, mã của nó được kích hoạt khi
Trang 12thư điện tử hoặc tệp đính kèm nhận được hoặc xem.
Khả năng thực thi từ xa (Remote execution capability): worm thực thi bả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.
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 Microsoft Window, phiên bảnđầu tiên của sâu Confiker được phát hiện vào tháng 10 năm 2008 và đã lây nhiễmhàng triệu máy tính trên thế giới Confiker khai thá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áy tí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à đòi hỏiphả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ệu trên ổ đĩacứng nhằm tống tiền, trong khi một vài dạng khác thì đơn giản hơn như chúngkhóa hệ thống lại và hiển thị một thông báo để thuyết phục nạn nhân trả tiền Mãđộc tống tiền thường lan truyền qua email với các file đính kèm, như các virusmáy tính khác, khi mở file đính kèm này thì máy tính của người dùng sẽ bị kiểmsoá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ên máy tính người dùng với địnhdạng doc, pdf, xls, zip sẽ không mở được nữa Để giải mã bắt buộc phải có
Trang 13khóa bí bật, mà khóa bí mật chỉ có kẻ tấn công mới có và nạn nhân sẽ nhận đượcthông báo trên màn hình (desktop) đòi tiề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 dù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ấn cô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ân của mã độc Charger sẽ yêu cầu phải trả khoảng 0.2 bitcoins (khoảng 8000$ 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ầu tiề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ệp tin của họ Nếu thông tin trên QQ là đúng thì chủ nhân của mã độc là các thanh niên
từ 16 đến 21 tuổi sẽ xuất hiện Các biến thể đầu tiên của Jisut Android/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 tin nhắ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ên vớ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
Trang 14bộ lưu trữ của thiết bị và mã hóa các tệ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ên mộ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ếng trung WannaLocker yêu cầu số tiền chuộc là 40 Renmibi Trung Quốc và cách liên lạc để thực hiện giao dịch chuyển tiền và khôi phục
dữ liệu.
1.2.4 Trojan
Trojan là một loại phần mềm giả mạo phổ biến, chúng thường ẩn náutrong chương trình phần mềm hữu ích để thực hiện các nhiệm vụ mong muốn vàhợp pháp nhưng thực chất là thực hiện một số chức năng độc hại như xóa file,thu thập thông tin hệ thống và gửi cho máy chủ điều khiển, ăn cắp thông tin tàikhoản người dùng Những chức năng mong muốn và hợp pháp chỉ là phần bề mặtgiả tạo nhằm che dấu cho các thao táo độc hại Không giống như virus, trojankhông có chức năng tự sao chép nhưng lại có chức năng phá hoại tương tự virus.Một số dạng Trojans cơ bản như sau:
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
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 độc
Trang 15hạ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ụng backdoor 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ác hoặc mã chươngtrình Backdoor thường cho phép kẻ tấn công kết nối đến máy tính từ xa với ítquyề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ìmkiế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:
Reverse Shell: là một kết nối bắt nguồn từ một máy bị nhiễm và cung cắp quyền truy cập shell cho kẻ tấn công vào máy tính đó Khi ở trong reverse shell, 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áy củ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áy tí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ục tiê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ưới zombie 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ối dịch vụ (DDoS).
• 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.
Trang 16Rootkit được thiết kế tốt có khả năng che giấu hoặc xóa bỏ bất cứ dấu vếtnà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ặc xó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ông tin các lần truycậ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ểm soát của kẻ tấn công
1.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ức năng
và mục đích của mẫu phần mềm độc hại đã cho là virus, worm, Trojan Horse 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ệc phântích mã độc bao gồm phát hiện mã độc, phân tích sự tương tự giữa các phầ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 đích của phân tích
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ào các nhóm phần mềm đọc hại khác nhau như nhóm virus, rootkit
Trang 17cả các khả năng thực hiện có thể của chương trình, tuy nhiê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íchtĩnh bao gồm:
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 dấu vân tay Chữ ký là một chuỗi các bit được người viết phần mềm độc hại chèn vào chương trình ứng dụng được viết bởi những người phát triển mã độc và cho phép nhận ra một loại mã độc cụ thể Để phát hiện phầ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ọi chươ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ân tí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ìm những lệnh và chỉ thị mà không có trong chương trình Thuận lợi chính củ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ần mề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ác hạ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ácchươ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ân tích này đó là có thể theo dõicác hành động thực sự được thực hiện bởi mã độc trong khi đối với phân tíchtĩnh, khi gặp rẽ nhánh chúng ta không thể biết mã độc sẽ đi theo nhánh nào
Trang 18Thách thức của phương pháp này là môi trường sandbox phải an toàn, tránh bịphát hiện đồng thời phải đáp ứng được các điều kiện để mã độc bộc lộ tối đahành vi của mình Có hai cách tiếp cận chính cho phương pháp phân tích độnggồm có:
Trang 19 Phân tích sự khác biệt giữa các thời điểm được xác định: với phương pháp này, mẫu phần mềm độc hại đã được phân tích trong một khoảng thời gian nhất định, sau đó thay đổi cấu hình hệ thống
và phân mềm độc hại sẽ được phân tích lại như ban đầu
Quan sát hành vi thời gian chạy: theo cách tiếp cận này, phần mềm độc hạ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
Phân tích lai (hybrid): kỹ thuật phân tích này là sự kết hợp giữa phân tí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ểm tra 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ện thì sẽ giám sát hành vi của mã này
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ĩnh hoặcphân tích động hoặc cả hai loại phân tích tĩnh và phân tích động Cách tiếp cận dựatrên phân tích tĩnh được thực hiện bằng cách xem xét nội dung của các mẫu mã độc
mà không cần chúng thực thi (không cần chạy chương trình), trong khi cách tiếp cậndựa trên phân tích động được thực hiện dựa trên cá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ôi trường thật của mã độc, trong khi các bộ giả lập (emulators) nhânbản hành vi của một hệ thống với độ chính xác cao hơn nhưng yêu cầu nhiều tàinguyên hơ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 đặcnhư: các mã disassembly và biều đồ luồng dữ liệu (dataflow) và điều khiển