Phân tích phần mềm độc hại và ứng dụng trong phòng chống hack game
BÁO CÁO THỰC TẬP Page 1 BÁO CÁO THỰC TẬP ĐỀ TÀI THỰC TẬP Phân tích phần mềm độc hại và ứng dụng trong phòng chống hack game Giảng viên hướng dẫn: Đỗ Xuân Chợ LỜI CẢM ƠN Lời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc tới thạc sĩ Đỗ Xuân Chợ, người thầy đã tận tình hướng dẫn chỉ bảo em trong suốt thời gian thực tập. Nhờ sự quan tâm và định Page 2 BÁO CÁO THỰC TẬP hướng của thầy, em đã có nhiều thong tin bổ ích cũng như phương pháp hoàn thành tốt báo cáo thực tập này. Tiếp đến em xin chân thành cảm ơn các thầy, cô khoa công nghệ thông tin, Học viện Công nghệ Bưu chính Viễn thông Hà Nội đã tận tình dạy dỗ, trang bị những kiến thức bổ ích trong những năm học vừa qua. Em xin cảm ơn các anh, chị trong công ty VTC Intecom nói chung và các anh chị bên phòng RD sản phẩm nói riêng, những người đã giúp đỡ nhiệt tình cho em trong thời gian thực tập ở công ty. Em xin chân thành cảm ơn! Hà Nội, ngày 25 tháng 07 năm 2015 MỤC LỤC Page 3 BÁO CÁO THỰC TẬP MỞ ĐẦU Với sự phát triển mạnh mẽ của Internet, vấn đề an ninh, an toàn các hệ thống máy tính ngày càng trở nên cấp thiết khi các hệ thống máy tính được kết nối với nhau và với mạng Internet, chúng phải đối diện với nhiều nguy cơ bị tấn công lấy cắp thông tin hoặc phá hoại hệ thống. Trong số các tác nhân tấn công phá hoại các hệ thống máy tính và mạng, các phần mềm độc hại là một trong các tác nhân gây nhiều thiệt hại nhất do khả năng lan truyền nhanh chóng. Các phần mềm độc hại được phát triển ngày càng tinh vi, nên rất khó phát hiện với các kỹ thuật nhận dạng thông thường, như kỹ thuật phân tích tĩnh và phân tích động. Các kỹ thuật phân tích tĩnh và phân tích động giúp chúng ta phân tích, nhận dạng được các phần mềm độc hại dựa trên các đặc trưng của chúng dưới dạng các mẫu hoặc chữ kí. Tuy nhiên, khi các kỹ thuật viết chương trình ngày càng phát triển, các phần mềm độc hại có khả năng tự biến đổi thành một dạng mới rất khó phân tích, nhận dạng. Dựa trên các đặc tính, tính chất của các phần mềm độc hại, phương pháp phân tíchhành vi tỏ ra có lợi thế trong nhận dạng và phòng ngừa các nguy cơ do các phần mềmđộc hại Page 4 BÁO CÁO THỰC TẬP gây ra, đặc biệt khi có những sự biến đổi của kỹ thuật viết chương trình phầnmềm độc hại để tránh các phương pháp phân tích nhận dạng truyền thống. Đề tài thực tập này tập trung nghiên cứu phương pháp phân tích, nhận dạng các phần mềm độc hại dựa trên hành vi với mục đích nâng cao khả năng nhận dạng các phần mềm độc hại. Đề tài bao gồm 3 chương với các nôi dung chính sau: • Chương 1: Tổng quan về phần mềm độc hại. Giới thiệu tổng quan về các phần mềm độc hại, định nghĩa phần mềm độc hại, phân loại chúng theo NIST, tác hại của phần mềm độc hại đối với hệ thống và người dùng, lịch sử hình thành và phát triển của các phần mềm độc hại. • Chương 2: Các phương pháp phân tích phần mềm độc hại. Trình bày các phương pháp phân tích phần mềm độc hại: phân tích tĩnh, phân tích động và phân tích hành vi. Các bước thực hiện các phương pháp phân tích kể trên. So sánh ưu nhược điểm của các phương pháp phân tích phần mềm độc hại. • Chương 3: Xây dựng công cụ chống hack game ứng dụng phương pháp phân tích và nhận dạng phần mềm độc hại dựa trên hành vi. Phương pháp phân tích và nhận dạng phần mềm độc hại dựa trên hành vi. Chương này trình bày tổng quan về games, hành vi hack game cũng như kỹ thuật hack game cơ bản. Ứng dụng phương pháp phân tích nhận dạng phần mềm độc hại dựa trên hành vi để xây dựng một công cụ chống hack game. Page 5 BÁO CÁO THỰC TẬP CHƯƠNG I – TỔNG QUAN VỀ PHẦN MỀM ĐỘC HẠI Chương 1 giới thiệu tổng quan về các phần mềm độc hại, định nghĩa phần mềm độc hại, phân loại chúng theo NIST, tác hại của phần mềm độc hại đối với hệ thống và người dùng, lịch sử hình thành và phát triển của các phần mềm độc hại. 1. Định nghĩa về phần mềm độc hại Phần mềm độc hại (tên tiếng anh là Malware viết tắt của từ Malicious Software) được định nghĩa là một loại phần mềm hay chương trình thường được bí mật đưa vào hệ thống với mục đích làm ảnh hưởng đến tính bí mật, tính toàn vẹn và tính sẵn sàng của dữ liệu, ứng dụng, hay hệ điều hành (OS). Trong những năm 80 của thế kỷ trước, phần mềm độc hại viết ra đôi khi gây khó chịu hoặc bất tiện cho các cá nhân và tổ chức nhưng đến ngày hôm nay, phần mềm độc hại là mối đe dọa bên ngoài nguy hiểm nhất đối với hầu hết các hệ thống, gây thiệt hại trên diện rộng và đòi hỏi sự nỗ lực làm việc phòng chống, phục hồi của hầu hết các tổ chức. Không chỉ vậy các phần mềm độc hại tấn công vào các dữ liệu thông tin nhậy cảm, vi phạm quyền riêng tư của người dùng cũng đã trở thành một mối quan tâm lớn cho các tổ chức Page 6 BÁO CÁO THỰC TẬP 2. Phân loại phần mềm độc hại Đề tài này sẽ phân loại phần mềm độc hại theo NIST (National Institute of Standards and Technology : viện tiêu chuẩn và công nghệ quốc gia Hoa Kỳ) [1, pp. 15 - 23]. Theo đó các phần mềm độc hại được chia thành tám nhóm chính, bao gồm: Virus, Trojan horse, Worm, Malicious mobile code, Blended attack, Tracking cookies, Attacker tools và Non- Malware Threats. Lọai phần mềm độc hại Ví dụ Malicious Software Virus Compiled Virus Michelangelo,Stoned, Jerusalem Interpreted Virus Melisa Worm Network Service Worm Sasser Mass Mailing worm Netsky, Mydoom Trojan Horse Malicious Mobile Code Nimda Blended attacks Nimda Tracking Cookies Backdoor Back Orifice,NetBus Page 7 BÁO CÁO THỰC TẬP Attacker tools Keylogger KeySnatch, KeyLogger Pro Rootkits Hack Defender, Adore Web browser plus-in Attacker toolkit Post scanner,Password cracker,Attacks Non-malware Threats Phishing Virus Hoaxes Bảng 1.2. Phân loại phần mềm độc hại theo NIST 2.1. Virus Virus hay virus máy tính được định nghĩa là những chương trình hay đoạn mã được thiết kế để tự nhân bản và sao chép chính nó vào các đối tượng lây nhiễm khác (file, ổ đĩa, máy tính, ). Virus được chia làm 2 loại: • Compiled Virus: là virus mà mã thực thi của nó đã được dịch hoàn chỉnh bởi một trình biên dịch để nó có thể thực thi trực tiếp từ hệ điều hành. Các loại boot virus như Michelangelo và Stoned, file virus như Jerusalem rất phổ biến trong những năm 80 của thế kỉ trước là virus thuộc nhóm này. Ngoài ra compiled virus cũng có thể là pha trộn bởi cả boot virus và file virus trong cùng một phiên bản. • Interpreted Virus: là một tổ hợp của mã nguồn mã chỉ thực thi được dưới sự hỗtrợ của một ứng dụng cụ thể hoặc một dịch vụ cụ thể trong hệ thống. Virus kiểu này chỉ là một tập lệnh, cho đến khi ứng dụng gọi thì nó mới được thực thi. Macro Virus và scripting Virus là những Virus thuộc loại này. Virus Melisa là một đại diện nôi bật cho loại Virus này. Page 8 BÁO CÁO THỰC TẬP 2.2. Worm Worm hay sâu máy tính tương tự như virus cũng là một chương trình có khả năng tựnhân bản và tự lây nhiễm trong hệ thống. Tuy nhiên điểm khác biệt là worm có thể hoạt động mà không cần có sự tác động của người dùng, điều đó có nghĩa là worm không cần phải có file chủ để mang nó khi nhiễm vào hệ thống. Mục tiêu của worm bao gồm làm lãng phí nguồn lực băng thông của mạng và phá hoại hệ thống như xoá file, tạo backdoor, cài đặt keylogger Tấn công của Worm có đặc trưng là lan rộng cực kỳ nhanh chóng do không cần tác động của con người. Worm có thể chia làm 2 loại: • Network Service Worm lan truyền bằng cách lợi dụng các lỗ hổng bảo mật củamạng, của hệ điều hành hoặc của ứng dụng. Một ví dụ điển hình cho loạiworm này là Sasser. • Mass Mailing Worm là loại worm tập trung tấn công qua dịch vụ mail, tuy nhiên nó tự đóng gói để tấn công và lây nhiễm chứ không bám vào vật chủ là email. Khi sâu này lây nhiễm vào hệ thống, nó thường cố gắng tìm kiếm sổ địa chỉ và tự gửi bản thân nó đến các địa chỉ thu nhặt được. Việc gửi đồng thời cho toàn bộ các địa chỉ thường gây quá tải cho mạng hoặc cho máy chủ mail. Netsky, Mydoom là ví dụ điển hình cho loại worm này. 2.3. Trojan Horse Trojan Horse là loại mã độc hại, tên của nó xuất phát từ điển tích nổi tiếng con ngựathành Troy trong thần thoại Hi Lạp. Khác với Virus hay Worm, Trojan horse không tựnhân bản, nó lây vào hệ thống với biểu hiện rất ôn hoà nhưng thực chất bên trong có ẩn chữa các đoạn mã với mục đích gây hại. Trojan thường ẩn mình dưới dạng một chương trình hữu ích và có những chức năng mong muốn, hay ít nhất chúng trông như có các tính năng này. Một cách bí mật, nó lại tiến hành các thao tác khác không mong muốn. Những chức năng mong muốn chỉ làphần bề mặt giả tạo nhằm che giấu cho các thao tác này. Trong thực tế, nhiều Trojan horse chứa đựng các phần mềm gián điệp nhằm cho phép máy tính thân chủ bị điều khiển từ xa qua hệ thống mạng. 2.4. Malicious Mobile Code Malicious Mobile Code là một dạng mã phần mềm có thể được gửi từ xa vào để chạytrên một hệ thống mà không cần đến lời gọi thực hiện của người dùng hệ thống đó. Điểm khác biệt của malicious mobile code với virus, worm là nó không nhiễm vào file và cũng không tìm cách tự phát tán. Loại phần mềm độc hại này lại tập trung khai thác vào cácđiểm yếu bảo mật của hệ thống, kiểu tấn công này thường tác động đến hệ thống bằng Page 9 BÁO CÁO THỰC TẬP cách tận dụng các quyền ưu tiên ngầm định để chạy mã từ xa. Các công cụ lập trình như Java, ActiveX, JavaScript, VBScript là môi trường tốt cho malicious mobile code. Mộttrong những ví dụ nổi tiếng của kiểu tấn công này là Nimda, sử dụng JavaScript. 2.5. Blended attacks Blended attacks là dạng tấn công hỗn hợp, nó sẽ sử dụng pha trộn nhiều hình thức tấncông, nhiều phương thức lây nhiễm hay nhiều phương thức truyền dẫn từ các loại phần mềm độc hại khác nhau để sử dụng. Sâu Nimda thực sự là một ví dụ kinh điển của loại phần mềm độc hại này, tuy được gọi là sâu Nimda nhưng thực tế nó là sự kết hợp củaworm, virus và malicious mobile code. 2.6. Tracking Cookies Tracking cookie là một phần mềm độc hại thông qua cookie để thực hiện việc theo dõi nắm bắt các hành vi duyệt web của người sử dụng. Như đã biết cookie là một file dữ liệu được tạo ra bởi web browser lưu thông tin liên quan đến sử dụng trình duyệt web của người dùng như thông tin tài khoản, mật khẩu, lịch sử truy cập Cookie được chia thành 2 loại: • Session cookies: Loại tạm thời này chỉ có giá trị cho 1 phiên làm việc duy nhất. Khi bạn tắt trang web: session cookie mất hiệu lực. • Persistent cookies: Là loại cookies lưu trữ lâu dài trên máy của bạn (cho tới khi bạn xóa). Mục tiêu của việc duy trì các cookie trong hệ thống máy tính nhằm căn cứ vào đó để tạo ra giao diện, hành vi của trang web sao cho thích hợp và tương ứng với từng web-client, mục đích để phục vụ người dùng được tốt hơn. 2.7. Attacker Tools Attacker Tools đúng như cái tên nó là tập hợp các công cụ được sử dụng bởi attackernhằm mục đích tấn công vào hệ thống của người dùng sau đó gài phần mềm độc hại lên đó. Các công cụ này thể giúp cho attacker có thể truy nhập vào hệ thống một cách bất hợp pháp làm cho hệ thống bị lây nhiễm mã độc hại Attacker tool có thể nằm trong một đoạn mã nào đó của một phần mềm độc hại (ví dụ như được built-in trong một trojan) hoặc được tải vào sau khi phần mềm độc hại nằm trong hệ thống. Dưới đây là một số loại attacker tools thường gặp: • Backdoor là một thuật ngữ chung chỉ các phần mềm độc hại thường trú và đợilệnh điều khiển từ bên ngoài thông qua các port dịch vụ như TCP, UDP Đaphần các loại Backdoors sẽ cho phép một attacker thực thi các hành vi bất Page 10 [...]... phần mềm độc hại, các phương pháp phân tích phần mềm độc hại: phân tích tĩnh, phân tích động và phân tích hành vi Các bước thực hiện phương pháp phân tích trên So sánh ưu nhược điểm của các phương pháp phân tích phần mềm độc hại 1.Khái quát về phân tích phần mềm độc hại Phân tích phần mềm độc hại là quá trình thực hiện các biện pháp nghiệp vụ để thu thập, tìm hiểu nghiên cứu mọi thông tin về mã độc. .. sâu nghiên cứu và tìm hiểu về phương pháp phân tích và nhận diện phần mềm độc hại dựa trên hành vi • Ứng dụng phương pháp phân tích phần mềm độc hại dựa trên hành vi vào xâydựng công cụ chống hack game 5 Kết chương Chương 1 đề cập đến các khái niệm cơ bản về phần mềm độc hại, định nghĩa và phân loại phần mềm độc hại, quá trình hình thành và phát triển của phần mềm độc hại cũng như tác hại của chúng... pháp phân tích và nhận dạng phần mềm độc hại dựa trên hành vi Phương pháp này đầu tiên sẽ tập trung phân tích phần mềm nghi ngờ là phần mềm độc hại từ đó xác định các hành vi, phân cụm chúng và tạo thủ tục xử lý vùng nhiễm độc 2.Các phương pháp phân tích phần mềm độc hại 2.1 Phương pháp phân tích tĩnh 2.1.1.Giới thiệu Phân tích tĩnh là phương pháp thu thập thông tin hữu ích về các phần mềm độc hại thông... dụng trong đó Page 31 BÁO CÁO THỰC TẬP CHƯƠNG III – XÂY DỰNG CÔNG CỤ CHỐNG HACK GAME ỨNG DỤNG PHƯƠNG PHÁP PHÂN TÍCH VÀ NHẬN DẠNG PHẦN MÊM ĐỘC HẠI DỰA TRÊN HÀNH VI Chương 3 giới thiệu tổng quan về games, lịch sử phát triển của game trên thế giới và hành vi hack game cũng như kỹ thuật hack game cơ bản Ứng dụng phương pháp phân tích nhận dạng phần mềm độc hại dựa trên hành vi để xây dựng một công cụ chống. .. với phương pháp phân tích tĩnh Các bước trong quá trình thực hiện phân tích động: • Thiết lập môi trường ảo phân tích • Sử dụng Sandbox • Thực thi phần mềm nghi ngờ độc hại • Giám sát tiến trình của phần mềm nghi ngờ độc hại • Giám sát mạng khi chạy phần mềm nghi ngờ độc hại 2.2.2 Các bước trong quá trình phân tích động a Thiết lập môi trường phân tích Một trong những nhược điểm của phân tích động là... để phân tích phần mềm độc hại: phân tích tĩnh và phân tích động (static and dynamic analysis) Đúng như tên gọi, phân tích tĩnh sử dụngcác phương pháp kiểm tra danh sách các chuỗi kỹ tự, xác định các thuộc tính, sinh chữký cho phần mềm để thu thập thông tin liên quan đến các phần mềm độc hại mà không cần chạy nó Ngược lại phân tích động tìm hiểu phần mềm độc hại thông qua việc chạy nó Ngoài ra trong. .. của phần mềm độc hại thiệt hại đến hệ thống khi chính xác khi thực hiện thực thi phần mềm độc hại chúng + Khó khăn trong quá trình + Đánh giá được các ảnh thực thi phần mềm độc hại hưởng thực tế đến hệ thống do không có tham số đầu vào + Xây dựng môi trường ảo có thể bị phát hiện và vượt qua Phân tích hành vi + Giám sát các tác động của + Cũng cần thực hiện phần phần mềm độc hại nên hệ mềm độc hại. .. Cuckoo sandbox, và Comodo Instant đa phần là các phần mềm miễn phí Norman SandBox và GFI Sandbox là 2 phần mềm phổ biến nhất trong các Sandbox bảo mật máy tính Hình 2.2-5 Sử dụng Cuckoo Sandbox phân tích mã độc Page 24 BÁO CÁO THỰC TẬP c Thực thi phần mềm nghi ngờ độc hại Thực thi phần mềm độc hại là một trong những bước quan trọng trong quá trình phân tích động Trong quá trình chạy EXE và DLL là các... qua quá trình phân tích mã hoặc cấu trúc của một chương trình từ đó xác định chức năng của chúng, đây thường là bước đầu tiên trong việc nghiên cứu phần mềm độc hại 2.1.2.Các kỹ thuật phân tích tĩnh cơ bản a Sử dụng các công cụ Anti-virus quét chữ ký của phần mềm độc hại Quét chữ ký phần mềm độc hại dựa trên các công cụ Anti-virus là bước đầu tiên trongquá trình phân tích phần mềm độc hại nhằm mục đích... phẩm game cảm ứng có giá rẻ để cung cấp cho chiếc điện thoại Iphone 2 .Hack game và các kỹ thuật cơ bản trong hack game Các phần mềm độc hại sử dụng trong hack games là những công cụ được thiết kế để can thiệp bất hợp pháp vào game tạo ra những sai lệch so với nguyên bản, để giúp người chơi có được lợi thế khi chơi game Ngoài việc can thiệp vào game các phần mềm độc hại này còn có thể được sử dụng để làm . phần mềm độc hại. • Chương 3: Xây dựng công cụ chống hack game ứng dụng phương pháp phân tích và nhận dạng phần mềm độc hại dựa trên hành vi. Phương pháp phân tích và nhận dạng phần mềm độc hại. cứu và tìm hiểu về phương pháp phân tích và nhận diện phần mềm độc hại dựa trên hành vi. • Ứng dụng phương pháp phân tích phần mềm độc hại dựa trên hành vi vào xâydựng công cụ chống hack game. 5 QUAN VỀ PHẦN MỀM ĐỘC HẠI Chương 1 giới thiệu tổng quan về các phần mềm độc hại, định nghĩa phần mềm độc hại, phân loại chúng theo NIST, tác hại của phần mềm độc hại đối với hệ thống và người