Tài liệu Nghiên cứu phương pháp phân tích phần mềm mã độc

  • Số trang: 74 |
  • Loại file: PDF |
  • Lượt xem: 1710 |
  • Lượt tải: 9
tailieuonline

Tham gia: 31/07/2015

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGÔ QUANG HƯNG NGHIÊN CỨU PHƯƠNG PHÁP PHÂN TÍCH PHẦN MỀM MÃ ĐỘC LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội – 2014 1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ---o0o--- NGÔ QUANG HƯNG NGHIÊN CỨU PHƯƠNG PHÁP PHÂN TÍCH PHẦN MỀM MÃ ĐỘC Ngành: Công nghệ thông tin Chuyên ngành: Hệ thống thông tin Mã số: 60480104 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: Hà Nội – 2014 2 TS. PHÙNG VĂN ỔN 1 LỜI CAM ĐOAN Tôi xin cam đoan những kết quả đạt được trong luận văn này là do bản thân nghiên cứu, tổng hợp và thực hiện. Toàn bộ những điều được trình bày trong luận văn là của cá nhân hoặc được tham khảo và tổng hợp từ các nguồn tài liệu khác nhau. Tất cả các tài liệu tham khảo, tổng hợp đều được trích dẫn với nguồn gốc rõ ràng. Tôi xin chịu hoàn toàn trách nhiệm về lời cam đoan của mình. Nếu có gì sai trái, tôi xin chịu mọi hình thức kỷ luật theo qui đinh. Hà Nội, tháng 10 năm 2014 Học viên Ngô Quang Hưng 2 LỜI CẢM ƠN Tôi muốn bày tỏ lòng biết ơn sâu sắc tới những người đã giúp đỡ tôi trong quá trình làm luận văn. Đặc biệt tôi xin cám ơn TS. Phùng Văn Ổn, với lòng kiên trì, thầy đã chỉ bảo tôi chi tiết, cho tôi những lời nhận xét quí báu và theo sát tôi trong từng bước làm luận văn. Đồng thời tôi cũng xin gửi lời cảm ơn tới các thầy cô giáo giảng dạy tại khoa Công nghệ thông tin – Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội đã truyền đạt các kiến thức cho tôi trong suốt thời gian học tập và nghiên cứu vừa qua. Tôi cũng xin chân thành cảm ơn cơ quan, bạn bè, đồng nghiệp, gia đình và những người thân đã cùng chia sẻ, giúp đỡ, động viên, tạo mọi điều kiện thuận lợi để tôi hoàn thành nhiệm vụ học tập cũng như hoàn thành luận văn này. Hà nội, tháng 10 năm 2014 Học viên Ngô Quang Hưng 3 MỤC LỤC LỜI CẢM ƠN .................................................................................................... 2 MỤC LỤC ......................................................................................................... 3 DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT .................................................. 5 DANH MỤC HÌNH VẼ, SƠ ĐỒ, BẢNG .......................................................... 6 MỞ ĐẦU ........................................................................................................... 7 CHƯƠNG 1-TỔNG QUAN VỀ MALWARE.................................................... 9 1.1 Khái niệm về Malware .............................................................................. 9 1.2 Phân loại Malware .................................................................................... 9 1.3 Lược sử về Malware ............................................................................... 13 1.4 Vai trò của việc phân tích Malware......................................................... 17 CHƯƠNG 2– CƠ CHẾ HOẠT ĐỘNG CỦA MALWARE .............................. 18 2.1 Tìm hiểu về cấu trúc PE file .................................................................. 18 2.2 Hình thức lây nhiễm .............................................................................. 19 2.2.1 Qua thiết bị lưu trữ ......................................................................... 19 2.2.2 Qua mạng Internet .......................................................................... 20 2.3 Đối tượng lây nhiễm.............................................................................. 22 2.3.1 Các phần mềm: ................................................................................ 22 2.3.2 Đoạn mã (Script): ............................................................................. 23 2.3.3 Shortcuts: ......................................................................................... 24 2.3.4 Một số loại tập tin khác: ................................................................... 24 2.4 Khởi động cùng hệ thống ...................................................................... 25 2.5 Phá hoại và các hoạt động khác ............................................................. 28 2.6 Cơ chế tự bảo vệ của mã độc ................................................................. 29 2.6.1 Cơ chế tạo áo giáp (Armouring): .................................................... 29 2.6.2 Cơ chế chống theo dõi (Anti Heuristic): ......................................... 29 2.6.3 Cơ chế chống phần mềm phân tích (Anti-Analysis software) ......... 30 2.6.4 Chống gỡ rối và ảo hóa (Anti debugger & Virtual Machine) .......... 30 2.7 Kỹ thuật đóng gói để che giấu mã độc ................................................... 31 2.8 Xu hướng phát triển của Malware ......................................................... 33 CHƯƠNG 3- PHƯƠNG PHÁP PHÂN TÍCH MALWARE ............................. 35 3.1 Qui trình phân tích Malware .................................................................. 35 3.2 Kiểm tra, phát hiện và lấy mẫu Malware ............................................... 35 3.2.1 Kiểm tra các phần mềm khởi động cùng hệ thống .......................... 35 3.2.2 Tiến trình trong Windows .............................................................. 36 3.2.3 Kiểm tra chuỗi (string) của các tiến trình ....................................... 37 3.2.4 Tiêm mã độc .................................................................................. 39 3.2.5 Phát hiện che giấu mã độc với phương pháp phân tích Entropy...... 39 4 3.2.6 Sử dụng hàm băm (Hash) để xác định phần mềm độc hại. ............. 41 3.2.7 Lấy mẫu Malware .......................................................................... 41 3.3 Thiết lập môi trường phân tích an toàn .................................................. 42 3.4 Phân tích tĩnh ........................................................................................ 44 3.4.1 Phân tích các hàm Windows API để phát hiện phần mềm nghi vấn 44 3.4.1.1API là gì : ....................................................................................... 44 3.4.1.2Các thành phần của Windows API ................................................. 44 3.4.1.3Tại sao phải tìm hiểu Windows API ............................................... 44 3.4.2 Dịch ngược và phân tích mã Assembly .......................................... 45 3.4.3 Unpacking ...................................................................................... 45 3.5 Phân tích động ....................................................................................... 48 3.5.1 Sử dụng các công cụ Sandbox ........................................................ 49 3.5.2 Giám sát hoạt động của tiến trình ................................................... 50 3.5.3 Sử dụng các chương trình gỡ rối (Debugger) ................................. 50 3.5.4 Sử dụng Volatility để rà quét, phân tích mã độc trên RAM ............ 52 3.6 Một số tiêu chí đánh giá an ninh tiết trình ............................................... 53 CHƯƠNG 4 – HỆ THỐNG HỖ TRỢ PHÂN TÍCH MALWARE ................ 54 4.1 Hệ thống phân tích Malware tự động Cuckoo Sandbox .......................... 54 4.1.1 Giới thiệu hệ thống........................................................................... 54 4.1.2 Cài đặt hệ thống ............................................................................... 55 4.1.3 Sử dụng Cuckoo Sandbox để phân tích Malware ............................. 56 4.2 Xây dựng phần mềm đánh giá an ninh tiến trình ..................................... 59 4.2.1 Giới thiệu phần mềm ........................................................................... 59 4.2.2 Biểu đồ Use case .................................................................................. 60 4.2.3 Một số kịch bản chính của phần mềm .................................................. 62 4.2.4 Chương trình........................................................................................ 63 KẾT LUẬN .................................................................................................. 66 TÀI LIỆU THAM KHẢO ................................................................................ 67 PHỤ LỤC: MỘT SỐ HÀM WINDOWS CẦN CHÚ Ý KHI PHÂN TÍCH MALWARE.................................................................................................. 68 5 DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT Từ viết tắt Tiếng Anh Tiếng Việt AIM AOL Instant Messenger Tin nhắn nhanh của mạng AOL AOL America Online America Online CERT Computer emergency response team Đội phản ứng nhanh về máy tính DDoS Distributed denial-of-service Từ chối dịch vụ phân tán DUMP Dump Kế xuất EIP EIP Thanh ghi trỏ lệnh HTML Virtual Machine Máy ảo IAT Import Address Table Bảng địa chỉ hàm nhập khẩu IDE Integrated development environment Môi trường phát triển tích hợp IM Instant Messaging Tin nhắn nhanh Malware Malicious software Mã độc National Institute of Standards and Viện công nghệ và tiêu chuẩn Technology quốc gia Hoa Kỳ NSRL National Software Reference Library Thư viện tham khảo phần mềm quốc gia Hoa Kỳ OEP Original Entry Point Điểm vào chương trình gốc OTP One Time Password Mậ khẩu một lần PC Personal computer Máy tính cá nhân PCAP Packet capture Bắt gói tin PE Portable Executable Thực thi khả chuyển RAT Remote Administration Tool Công cụ quản trị từ xa SMS Short Message Service Tin nhắn ngắn TCP Transmission Control Protocol Giao thức điều khiển truyền vận VCL Virus Creation Laboratory Phòng thí nghiệm tạo virus VM Virtual Machine Máy ảo VX Virus eXchange Trao đổi virus NIST 6 DANH MỤC HÌNH VẼ, SƠ ĐỒ, BẢNG Hình 2.1: Cấu trúc cơ bản của PE .............................................................................. 18 Hình 2.2 Đóng gói để che giấu mã độc ...................................................................... 32 Hình 3.1 Qui trình phân tích Malware........................................................................ 35 Hình 3.2 Kiểm tra các phần mềm khởi động cùng hệ thống ....................................... 36 Hình 3.3 Quản lý tiến trình và kiểm tra chữ ký file thực thi ....................................... 37 Bảng 3.1: Độ chính xác thống kê dựa trên Entropy .................................................... 41 Hình 3.4. Mô hình hệ thống ảo hóa ............................................................................ 42 Hình 3.5: Xác định phần mềm đóng gói với PEID ..................................................... 46 Hình 3.6: Tìm OEP của phần mềm gốc ...................................................................... 46 Hình 3.7: Lưu phần mềm gốc đã được giải đóng gói trên bộ nhớ. .............................. 47 Hình 3.8: Kết xuất file .exe từ bộ nhớ ........................................................................ 47 Hình 3.9: Sửa lại Import Address Table ..................................................................... 48 Bảng 3.2: Phát hiện tiến trình liệt kê các tập tin .doc bằng phương pháp giám sát ...... 50 Bảng 3.3: Một số tiêu chí đánh giá an ninh tiến trình ................................................. 53 Hình 4.1 Sơ đồ hệ thống phân tích mã độc Cuckoo Sandbox ..................................... 55 Hình 4.2 UC01 - Tổng quan....................................................................................... 60 Hình 4.3 UC02 – Kiểm tra tiến trình .......................................................................... 60 Hình 4.4 UC03 – Liệt kê kết nối mạng....................................................................... 61 Hình 4.5 UC04 – Kiểm tra Hash ................................................................................ 61 Hình 4.6 UC05 – Kiểm tra các hàm API .................................................................... 61 Hình 4.7 Chức năng kiểm tra tiến trình ...................................................................... 63 Hình 4.8 Xác định các kết nối mạng .......................................................................... 64 Hình 4.9 Kiểm tra mã Hash của tập tin ...................................................................... 64 Hình 4.10 Phân tích bảng Import Table và đưa ra các hàm nghi vấn .......................... 65 7 MỞ ĐẦU Thế giới đang chứng kiến những thay đổi lớn và có sự phát triển nhanh chóng về mọi mặt, nhất là trong ngành công nghệ thông tin; phần mềm mã độc cũng không nằm ngoài xu hướng đó. Từ thời điểm lý thuyết tự nhân bản của phần mềm máy tính được John von Neuman (1903-1957) đưa ra (năm 1941) đến khi xuất hiện virus đầu tiên phải mất hơn 3 thập kỷ, nhưng với sự bùng nổ của Internet mã độc cũng theo đó bùng nổ theo. Song song với việc ứng dụng công nghệ thông tin, mã độc cũng đã và đang len lỏi vào mọi mặt của đời sống, gây ra những thiệt hại vô cùng nghiêm trọng cả về kinh tế lẫn an ninh, quốc phòng. Khi nói về chống phần mềm độc hại, ta thường nói tới phần mềm chống virus nhưng không phải lúc nào phần mềm chống virus cũng có hiệu quả. Do đó, việc nâng cao ý thức cảnh giác để phòng ngừa và hơn thế nữa là phân tích, vô hiệu hoá phần mềm độc hại trở thành nhu cầu tất yếu. Vấn đề phân tích, chống phần mềm mã độc đã được vô số các hãng bảo mật trên thế giới tiến hành đầu tư nghiên cứu; từ các hãng lớn như Internet McAfee, Kaspersky, Norton … cho tới các nhóm phát triển phần mềm đơn lẻ. Một số ứng dụng điển hình có thể kể đến như: McAfee Antivirus, Kaspersky Antivirus, Norton Antivirus, Microsoft Security Essentials, AVG Anti-Virus … Tuy nhiên, do sự phát triển của phần mềm mã độc luôn đi trước các chương tình diệt virus một bước nên việc nghiên cứu, phân tích mã độc càng trở nên quan trọng và cấp thiết để làm sao hạn chế được tối đa những thiệt hại do phần mềm mã độc gây ra. Trên cơ sở kiến thức về an toàn thông tin, lý thuyết về hệ điều hành và nhu cầu thực tế, hướng tới xây dựng một chương trình đánh giá an ninh tiến trình nhằm hỗ trợ quá trình phát hiện mã độc. Ngoài ra, đề tài còn có thể được phát triển để ứng dụng phục vụ cho các cơ quan chính phủ (an ninh, quốc phòng…) cũng như các tổ chức, cá nhân có nhu cầu. Ngoài phần Mở đầu, Kết luận và Phụ lục, nội dung luận văn được chia làm 4 chương chính: Chương 1. Tổng quan về Malware: chương này giới thiệu những vấn đề cơ bản nhất về Malware, lịch sử và xu thế phát triển chúng. Chương 2. Cơ chế hoạt động Malware: chương này mô tả khái quát về các hàm API, cấu trúc file PE của Windows và một số kỹ thuật căn bản mà Malware sử dụng để lây nhiễm và duy trì sự tồn tại của chúng trên hệ thống. 8 Chương 3. Phương pháp phân tích Malware: chương này mô tả các bước trong phân tích Malware cũng như xây dựng một quy trình phân tích Malware. Chương 4. Xây dựng phần mềm hỗ trợ phân tích Malware: áp dụng lý thuyết đã đưa ra trong Chương 3 để xây dựng phần mềm hỗ trợ phân tích Malware. Giới thiệu hệ thống phân tích Malware tự động Cuckoo Sandbox. Phần Kết luận: trình bày tổng hợp các kết quả nghiên cứu của luận văn và định hướng nghiên cứu tiếp theo. Luận văn đã đạt được một số kết quả khả quan trong việc nghiên cứu kỹ thuật phân tích Malware, đưa ra được quy trình phân tích đồng thời xây dựng được một công cụ hỗ trợ phân tích hiệu quả. Tuy nhiên, luận văn không thể tránh khỏi những thiếu sót, vì vậy tôi rất mong nhận được những ý kiến đóng góp, nhận xét của thầy cô giáo và bạn đọc để kết quả nghiên cứu được ngày một hoàn thiện hơn. 9 CHƯƠNG 1-TỔNG QUAN VỀ MALWARE Các khái niệm và cách phân loại sau đây đều được trích dẫn theo định nghĩa đưa ra bởi Viện Tiêu chuẩn và Công nghệ quốc gia Hoa kỳ - National Institute of Standards and Technology (NIST). 1.1 Khái niệm về Malware Mã độc hại (Malware hay Maliciuos code) là một phần mềm được chèn một cách bí mật vào hệ thống với mục đích làm tổn hại đến tính bí mật, tính toàn vẹn hoặc tính sẵn sàng của hệ thống.[7, tr15] 1.2 Phân loại Malware Có nhiều cách phân loại mã độc khác nhau, dựa vào các tiêu chí khác nhau. Tuy nhiên, định nghĩa đưa ra bởi NIST là cách định nghĩa phổ biến nhất trong ngành khoa học máy tính ngày nay [7]. 1.2.1 Virus: Là một loại mã độc hại (Maliciuos code) có khả năng tự nhân bản và lây nhiễm chính nó vào các file, phần mềm hoặc máy tính. Như vậy, có thể suy ra virus máy tính phải luôn luôn bám vào một vật chủ (đó là file dữ liệu hoặc file ứng dụng) để lây lan. Các phần mềm diệt virus dựa vào đặc tính này để thực thi việc phòng chống/diệt virus, để quét các file trên thiết bị lưu hoặc quét các file trước khi lưu xuống ổ cứng, ... Điều này cũng giải thích vì sao đôi khi các phần mềm diệt virus tại PC đưa ra thông báo “phát hiện ra virus nhưng không diệt được” khi thấy có dấu hiệu hoạt động của virus trên PC, bởi vì “vật mang virus” lại nằm ở máy khác nên không thể thực thi việc xoá đoạn mã độc hại đó được. 1.2.2 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 là virus thuộc nhóm này, compiled virus cũng có thể được pha trộn bởi cả boot virus va file virus trong cùng một phiên bản. 1.2.3 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. Một cách đơn giản, 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, scripting virus là các virus nằm trong dạng này. Macro virus rất phổ biến trong các ứng dụng Microsoft Office khi tận dụng 10 khả năng kiểm soát việc tạo và mở file để thực thi và lây nhiễm. Chúng ta phân biệt giữa macro virus và scripting virus như sau: macro virus là tập lệnh thực thi bởi một ứng dụng cụ thể, còn scripting virus là tập lện chạy bằng một service của hệ điều hành. Melisa là một ví dụ xuất sắc về macro virus, Love Stages là ví dụ cho scripting virus. 1.2.4 Worm cũng là một phần mềm có khả năng tự nhân bản và tự lây nhiễm trong hệ thống tuy nhiên nó có khả năng “tự đóng gói”, điều đó có nghĩa là worm không cần phải có “file chủ” để chứa nó khi đã nhiễm vào hệ thống. Như vậy, có thể thấy rằng chỉ dùng các phần mềm quét file sẽ không diệt được worm trong hệ thống vì worm không “bám” vào một file hoặc một vùng nào đó trên đĩa cứng. Mục tiêu của worm bao gồm cả việc làm lãng phí nguồn lực băng thông của mạng cũng như phá hoại hệ thống (xoá file, tạo backdoor, thả keylogger,..). Worm có đặc trưng là khả năng tấn công lan rộng cực kỳ nhanh chóng do không cần tác động của con người (như khởi động máy, sao chép file hay đóng/mở file). Nhìn chung, 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ủa mạng, của hệ điều hành hoặc của ứng dụng. Sasser là ví dụ cho loại sâu này. Mass Mailing Worm: Là một dạng 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ụ cho thể loại này. Trojan Horse: Là loại mã độc hại được đặt theo sự tích “Ngựa thành 1.2.5 Troa”. Trojan horse không tự nhân bản. Nó lây vào hệ thống với biểu hiện ban đầu 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 có thể lựa chọn một trong 3 phương thức để gây hại như sau: - Tiếp tục thực thi các chức năng của phần mềm mà nó bám vào, bên cạnh đó thực thi các hoạt động gây hại một cách riêng biệt (ví dụ như gửi một trò chơi dụ cho người dùng sử dụng, bên cạnh đó là một phần mềm đánh cắp password). - Tiếp tục thực thi các chức năng của phần mềm mà nó bám vào, nhưng sửa đổi một số chức năng để gây tổn hại (ví dụ như một trojan giả lập một cửa sổ login để lấy password) hoặc che giấu các hành động phá hoại 11 khác (ví dụ như trojan che dấu cho các tiến trình độc hại khác bằng cách tắt các hiển thị của hệ thống). - 1.2.6 Thực thi luôn một phần mềm gây hại bằng cách núp dưới danh một phần mềm không có hại (ví dụ như một trojan được giới thiệu như là một trò chơi hoặc một tool trên mạng, người dùng chỉ cần kích hoạt file này là lập tức dữ liệu trên PC sẽ bị xoá hết). Malicious Mobile Code: Là một dạng mã phần mềm có thể được gửi từ xa vào 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 đó. Malicious Mobile Code được coi là khác với virus, worm do đặc điểm không nhiễm vào file và không tìm cách tự phát tán . Thay vì khai thác một điểm yếu bảo mật xác định nào đó, kiểu tấn công này thường tác động đến hệ thống bằng 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ột trong những ví dụ nổi tiếng của kiểu tấn công này là Nimda, sử dụng JavaScript. Kiểu tấn công của Nimda thường được biết đến như một tấn công hỗn hợp (Blended Atatck). Cuộc tấn công bắt đầu khi người dùng mở một email độc bằng web-browser. Sau khi nhiễm vào máy, Nimda sẽ cố gắng sử dụng sổ địa chỉ email của máy đó để phát tán tới các máy khác. Mặt khác, từ máy đã bị nhiễm, Nimda cố gắng quét các máy khác trong mạng có thư mục chia sẻ mà không bảo mật, Nimda sẽ dùng dịch vụ NetBIOS như phương tiện để chuyển file nhiễm virus tới các máy đó. Đồng thời Nimda cố gắng dò quét để phát hiện ra các máy tính có cài dịch vụ IIS có điểm yếu bảo mật của Microsoft. Khi tìm thấy, nó sẽ copy bản thân nó vào server. Nếu một web client có điểm yếu bảo mật tương ứng kết nối vào trang web này, client đó cũng bị nhiễm (lưu ý rằng bị nhiễm mà không cần “mở email bị nhiễm virus”). Quá trình nhiễm virus sẽ 1.2.7 lan tràn theo cấp số nhân. Tracking Cookie: Là một dạng lạm dụng cookie để theo dõi hành động duyệt web của người sử dụng một cách bất hợp pháp. Cookie là một file dữ liệu chứa thông tin về việc sử dụng một trang web cụ thể nào đó của web-client. 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. Tuy nhiên tính năng này lại bị lạm dụng để tạo thành các phần mềm gián điệp (spyware) nhằm thu thập thông tin riêng tư về hành vi duyệt web của cá nhân. 12 1.2.8 Attacker Tool: Là những bộ công cụ tấn công có khả năng đẩy các phần mềm độc hại vào trong hệ thống. Các bộ công cụ này giúp kẻ tấn công truy nhập bất hợp pháp vào hệ thống hoặc làm cho hệ thống bị lây nhiễm mã độc hại. Khi được tải vào trong hệ thống bằng các đoạn mã độc hại, attacker tool có thể chính là một phần của đoạn mã độc đó (ví dụ như trong một trojan) hoặc nó sẽ được tải vào hệ thống sau khi nhiễm. Attacker tool thường gặp là backdoor và keylogger Backdoor là một thuật ngữ chung chỉ các phần mềm độc hại thường trú và đợi lệnh điều khiển từ các cổng dịch vụ TCP hoặc UDP. Phần lớn các backdoor cho phép kẻ tấn công thực thi một số hành động trên máy bị nhiễm như truyền file, dò mật khẩu, thực hiện mã lệnh,... Backdoor cũng có thể được xem xét dưới 2 dạng: Zoombie và Remote Administration Tool. - - Zoombie (có thể đôi lúc gọi là bot): là một phần mềm được cài đặt lên hệ thống nhằm mục đích tấn công hệ thống khác. Kiểu thông dụng nhất của Zoombie là dùng các agent để tổ chức một cuộc tấn công DDoS. Kẻ tấn công có thể cài Zoombie vào một số lượng lớn các máy tính rồi ra lệnh tấn công cùng một lúc. Trinoo và Tribe Flood Network là hai Zoombie nổi tiếng. Remote Administration Tool là các công cụ có sẵn của hệ thống cho phép thực hiện quyền quản trị từ xa. Tuy nhiên hacker cũng có thể lợi dụng tính năng này để xâm hại hệ thống. Tấn công kiểu này có thể bao gồm hành động theo dõi mọi thứ xuất hiện trên màn hình cho đến tác động vào cấu hình của hệ thống. Ví dụ về công cụ RAT là: Back Orifice, SubSeven,... Keylogger là phần mềm được dùng để bí mật ghi lại các phím đã được nhấn bằng bàn phím rồi gửi tới hacker. Keylogger có thể ghi lại nội dung của email, của văn bản, user name, password, thông tin bí mật...Một số ví dụ về keylogger: KeySnatch, Spyster, ... 1.2.9 Rootkits là tập hợp của các file được cài đặt lên hệ thống nhằm biến đổi các chức năng chuẩn của hệ thống thành các chức năng tiềm ẩn sự tấn công nguy hiểm. Ví dụ như trong hệ thống Windows, rootkit có thể sửa đổi, thay thế file, hoặc thường trú trong bộ nhớ rồi thay thế, sửa đổi các lời gọi hàm của hệ điều hành. Rootkit thường được dùng để cài đặt các công cụ tấn công như cài backdoor, cài keylogger. Ví dụ về rootkit là: LRK5, Knark, Adore, Hack Defender. 13 1.2.10 Web Browser Plug-in: là phương thức cài mã độc hại thực thi cùng với trình duyệt web. Khi được cài đặt, kiểu mã độc hại này sẽ theo dõi tất cả các hành vi duyệt web của người dùng (ví dụ như tên web site đã truy nhập) sau đó gửi thông tin ra ngoài. Một dạng khác là phần mềm gián điệp có chức năng quay số điện thoại tự động, nó sẽ tự động kích hoạt modem và kết nối đến một số điện thoại ngầm định mặc dù không được phép của chủ nhân. 1.2.11 Email Generator: là những phần mềm cho phép tạo ra và gửi đi một số lượng lớn các email. Mã độc hại có thể gieo rắc các email generator vào trong hệ thống. Các phần mềm gián điệp, spam, mã độc hại có thể được đính kèm vào các email được sinh là từ email generator và gửi tới các địa chỉ có trong sổ địa chỉ của máy bị nhiễm. 1.2.12 Attacker Toolkit: là các bộ công cụ có thể được tải xuống và cài vào hệ thống khi hệ thống đã bị khống chế bởi phần mềm độc hại. Các công cụ như các bộ dò quét cổng (port scanner), bộ phá mật khẩu (password cracker), bộ dò quét gói tin (Packet Sniffer) chính là các Attacker Toolkit thường hay được sử dụng. 1.2.13 Phishing là một hình thức tấn công thường có thể xem là kết hợp với mã độc hại. Phishing là phương thức dụ người dùng kết nối và sử dụng một hệ thống máy tính giả mạo nhằm làm cho người dùng tiết lộ các thông tin bí mật về danh tính (ví dụ như mật khẩu, số tài khoản, thông tin cá nhân...). Kẻ tấn công phishing thường tạo ra trang web hoặc email có hình thức giống hệt như các trang web hoặc email mà nạn nhân thường hay sử dụng như trang web của Ngân hàng, của công ty phát hành thẻ tín dụng, ... Email hoặc trang web giả mạo này sẽ đề nghị nạn nhân thay đổi hoặc cung cấp các thông tin bí mật về tài khoản, về mật khẩu... Các thông tin này sẽ được sử dụng để trộm tiền trực tiếp trong tài khoản hoặc được sử dụng vào các mục đích bất hợp pháp khác. 1.2.14 Virus Hoax là các cảnh báo giả về virus. Các cảnh bảo giả này thường núp dưới dạng một yêu cầu khẩn cấp để bảo vệ hệ thống. Mục tiêu của cảnh báo virus giả là cố gắng lôi kéo mọi người gửi cảnh báo càng nhiều càng tốt qua email. Bản thân cảnh báo giả là không gây nguy hiểm trực tiếp nhưng những thư gửi để cảnh báo có thể chữa mã độc hại hoặc trong cảnh báo giả có chứa các chỉ dẫn về thiết lập lại hệ điều hành, xoá file làm nguy hại tới hệ thống. Kiểu cảnh báo giả này cũng gây tốn thời gian và quấy rối bộ phận hỗ trợ kỹ thuật khi có quá nhiều người gọi đến và yêu cầu dịch vụ. 1.3 Lược sử về Malware Có nhiều quan điểm khác nhau về lịch sử phát triển của Malware, trong luận 14 văn này sẽ chỉ nêu vắn tắt những điểm chung nổi bật nhất. Năm 1949: Lý thuyết đầu tiên về phần mềm tự sao chép ra đời. John Von Neuman (1903-1957) phát triển nền tảng lý thuyết tự nhân bản của một phần mềm cho máy tính. Vào cuối thập niên 1960 đầu thập niên 1970, trên các máy Univax 1108 xuất hiện một phần mềm “Pervading Animal” mà tự nó có thể nối với phần sau của tập tin thực thi. Lúc đó chưa có khái niệm virus. Năm 1981: Các Malware đầu tiên xuất hiện trong hệ điều hành của máy tính Apple II. Đây cũng là những virus đầu tiên xuất hiện trên hệ điều hành của hãng Apple, chúng lây lan khắp hệ thống máy tính của công ty Texas A&M, thông qua các trò chơi không có bản quyền trên đĩa mềm. Những người đầu tiên phát hiện đã gọi chúng là Elk Cloner. Năm 1983: Fred Cohen đưa ra khái niệm đầu tiên về Virus: “Là một phần mềm máy tính có thể tác động những phần mềm máy tính khác bằng cách sửa đổi chúng dùng phương pháp đưa vào một bản sao của nó”. Fred Cohen luôn là cái tên đầu tiên được nhắc đến khi nói về lịch sử của Malware. Năm 1986: Virus “Brain” được phát hiện, đây là virus đầu tiên được phát hiện trên máy tính cá nhân. Virus này được tạo ra tại Pakistan bởi hai anh em lập trình viên là Basit Farooq Alvi và Amjad Farooq Alvi. Phần mềm này thay thế các mã thực hiện (Executable code) trong rãnh ghi khởi động (boot sector) của một đĩa mềm 360Kb bằng mã riêng của nó, với mục đích làm lây nhiễm tất cả các ổ đĩa mềm. Đây cũng là Virus MS-DOS xuất hiện sớm nhất. Năm 1987: Lehigh, một trong những Virus file đầu tiên xâm nhập các tập lệnh Command.com (Virus này sau đó tiến hóa thành Virus Jerusalem). Cũng trong năm này, Virus IBM Chrismast cũng được phát hiện, với tốc độ lây nhiễm cực nhanh tới hàng nghìn bản sao trên giờ, đây là cơn ác mộng thực sự đối với các máy tính lớn (mainframe) của Big Blue. Năm 1988: Virus Jerusalem, một trong những Virus phổ biến nhất xuất hiện, nó tấn công đồng loạt các trường đại học và các công ty trên nhiều quốc gia vào đúng thứ 6 ngày 13, Virus này tác động lên các file có đuôi .exe và .com, đây là loại virus hoạt động theo đồng hồ máy tính. Cùng năm này, Virus “MacMag and the Scores” gây ra đợt bùng phát lớn đầu tiên trên các máy Macintosh. Đây cũng là cuộc khủng hoảng Internet đầu tiên khiến một số lượng lớn máy tính bị tê liệt. Cũng từ đó, trung tâm điều phối phản ứng nhanh (CERT) đã ra đời để đối phó với những sự cố tương tự. 15 Năm 1989: Xuất hiện phần mềm Trojan có tên AIDS. Trojan này nổi tiếng vì có khả năng khống chế dữ liệu giống như con tin. Nó được gửi đi dưới dạng một phần mềm thông tin về bệnh suy giảm miễn dịch AIDS. Khi được kích hoạt Trojan AIDS sẽ mã hóa ổ cứng của nạn nhân và yêu cầu người sử dụng phải nộp tiền nếu muốn được giải mã. Năm 1990: Symantec phát triển công cụ Norton AntiVirus, một trong những phần mềm diệt Virus đầu tiên do công ty lớn phát triển. Cũng trong năm này, thị trường trao đổi mã độc đầu tiên (VX) được tung lên mạng từ Bulgaria. Tại đây, các tin tặc có thể buôn bán mã và giao lưu các ý tưởng về mã độc. Cuốn sách về Virus máy tính của tác giả Mark Ludwig được xuất bản cùng thời gian này. Năm 1991: Malware đa hình (Polymorphic Malware) ra đời, đầu tiên là Sâu “Tequilla”. Malware dạng này có khả năng tự thay đổi hình thức của nó, gây khó khăn cho các phần mềm chống Virus, nó khiến cho việc phát hiện và truy quét trở nên rất phức tạp. Năm 1992: Trong vòng 2 năm, đã ghi nhận được tổng số hơn 1.300 Malware đang tồn tại, tăng 420% so với tháng 12 năm 1990. Xuất hiện DAME (Dark Avenger Mutation Engine) - một bộ công cụ cho phép chuyển những mã độc thông thường thành những phần mềm có khả năng thay đổi hình dạng. Sau đó là VCL (Virus Creation Laboratory), một công cụ chế tạo Malware thực sự ra đời. Sự xuất hiện của Virus MichelLangelo làm dấy lên lời cảnh báo về thiệt hại quy mô lớn trên toàn cầu, mặc dù cuối cùng sự phá hoại của Virus này đã không xảy ra như lo ngại. Năm 1994: Xuất hiện OneHalf, đây là một virus máy tính đa hình trên nền DOS. Năm 1995: Macro Virus đầu tiên xuất hiện, có tên gọi “Concept”, chúng lây lan qua các ứng dụng MS-Office. Năm 1996: “Ply” - Virus đa hình phức tạp được xây dựng dựa trên công cụ hoán vị. Năm 1998: Phiên bản đầu tiên của virus CIH xuất hiện. Đây là virus đầu tiên được biết đến có khả năng xóa nội dung trong ROM BIOS. Năm 1999: Sâu Melissa đã được phát hiện, nhắm vào mục tiêu Microsoft Word và các hệ thống dựa trên Outlook, nó đã tạo ra mạng lưới lây nhiễm đáng kể. Cũng trong năm này, sâu Kak được phát hiện, đây sâu máy tính dùng mã Javascript và lây lan bằng cách khai thác một lỗi trong Outlook Express 16 Năm 2000: Sâu ILOVEYOU, còn được gọi là Love Letter hay Love Bug, sâu này được tạo ra bởi một sinh viên ngành khoa học máy tính của Philippines. Được viết bằng VBScript, nó lây nhiễm hàng triệu máy tính Windows trên toàn thế giới trong vòng vài giờ phát hành. Năm 2001: Trong năm này, phải kể đến Sâu Nimda (còn được gọi là quái vật đa đầu) vì nó là sự kết hợp hoàn hảo những điểm mạnh của 5 loại Malware khác nhau. Ngoài ra còn phải kể đến Virus Anna Kournikova, sâu Sadmind, sâu Sircam, sâu Code Red. Năm 2003: Sâu Slammer ra đời, đến nay sâu này vẫn được coi là sâu có sự phát tán nhanh nhất, hơn 75.000 máy tính bị nhiễm chỉ trong 10 phút. Năm 2005: Trojan Zlob, Trojan này giả dạng một video codec cần thiết trong các thành phần ActiveX của Microsoft Windows. Năm 2006: Lần đầu tiên phần mềm độc hại cho Mac OSX được phát hiện, Trojan OSX / Leap-A hoặc OSX / Oompa-A. Năm 2007: Storm Worm được xác định. Nó tấn công và tạo ra một mạng botnet Storm. Trong vòng 3 tháng, từ tháng 6 đến tháng 9/2007 đã có hơn 10 triệu máy tính bị nhiễm. Cùng năm này, Trojam Zeus được phát hiện, mục tiêu của nó là ăn cắp thông tin ngân hàng của người dùng trên Windows. Năm 2008: Phát hiện sâu Conficker, nó lây nhiễm đến hơn 15 triệu máy chạy hệ điều hành Windows, từ Windows 2000 đến Windows 7 Beta và được phát hiện ở khắp nơi, từ máy cá nhân đến máy chủ, từ bệnh viện Sheffield đến tàu ngầm của hải quân Anh. Microsoft đặt ra mức tiền thưởng $ 250,000 USD cho thông tin dẫn đến việc bắt giữ tác giả của sâu này. Năm biến thể chính của sâu Conficker được biết đến và đã được đặt tên là Conficker A, B, C, D và E. Năm 2009: Một cuộc tấn công mạng tầm cỡ quốc gia đầu tiên đã được diễn ra, công cụ là W32.Dozer và được nhắm vào hai nước Hoa Kỳ và Hàn Quốc. Năm 2010: Stuxnet được phát hiện. Đây là một ví dụ điển hình về malware được sử dụng như một thứ vũ khí ảo. Lây lan qua các thiết bị USB và một số phương pháp khác, virus này được thiết kế nhằm chiếm quyền điều khiển hoạt động của các hệ thống điều khiển công nghiệp chuyên dụng (nhắm trực tiếp đến hệ thống của hãng Siemen thiết kế). Mặc dù chưa có kết luận cuối cùng, nhưng chứng cứ mà các nhà nghiên cứu thu thập được cho thấy Stuxnet nhằm vào các máy ly tâm làm giàu Uranium trong phần mềm hạt nhân của Iran, sâu này làm cho máy ly tâm hoạt động 17 quá công suất thiết kế. Điều đặc biệt, đây cũng là lần đầu tiên một Malware có được chữ ký số hợp lệ, chữ ký đó là từ Realtek. Năm 2011: SpyEye và Zeus kết hợp để trở thành công cụ hiệu quả đánh cắp thông tin thanh toán ngân hàng hiệu quả, nó đánh cắp được cả mật khẩu ngân hàng và mật mã xác thực một lần (OTP – One Time Password) được gửi qua tin nhắn điện thoại, để tiến hành chuyển tiền một cách hợp lệ. Năm 2012: Flame, đây là phần mềm mà Kaspersky Lab đánh giá là Malware phức tạp nhất mà họ từng phân tích. Mục tiêu của phần mềm này là hoạt động gián điệp tại các nước trung đông. Một điều đáng nói là mặc dù được phát hiện năm 2012 nhưng người ta đã đưa ra một số bằng chứng cho thấy Flame lại là tiền thân của sâu gián điệp Stuxnet được phát hiện năm 2010 ở Iran. Năm 2013: CryptoLocker, đánh dấu sự trở lại của phần mềm bắt cóc dữ liệu (ransomeware), chúng mã hóa dữ liệu khi lây được vào hệ thống và ra điều kiện đòi tiền chuộc để giải mã dữ liệu đó. 1.4 Vai trò của việc phân tích Malware Với sự phát triển mạnh mẽ của Internet, vấn đề an ninh, bảo đảm an toàn cho các hệ thống thông tin ngày càng trở nên cấp thiết khi các hệ thống thông tin được kết nối với nhau và kết nối với mạng Internet, chúng ta 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 phương thức tấn công phá hoại hệ thống thông tin và mạng, các phần mềm độc hại là một trong các dạng gây nhiều thiệt hại nhất do khả năng lan truyền nhanh chóng. Câu hỏi đặt ra là liệu có cần phân tích mã độc không khi càng ngày những phần mềm đảm bảo an ninh máy tính càng phát triển. Câu trả lời luôn là có, vì các phần mềm độc hại được phát triển ngày càng tinh vi và rất khó phát hiện. Phần mềm đảm bảo an ninh mạnh nhất và được cập nhật cũng không thể loại bỏ được hết mã độc. Kết quả của quá trình phân tích Malware sẽ phát hiện được những phương thức lây lan, phá hoại, đánh cắp dữ liệu mới; đồng thời hạn chế sự lây lan, giảm thiểu thiệt hại do Malware gây ra bằng cách đưa các cảnh báo tới cộng đồng; là nguồn thông tin quan trọng để cập nhật mẫu cũng như chức năng cho phần mềm đảm bảo an ninh máy tính. 18 CHƯƠNG 2– CƠ CHẾ HOẠT ĐỘNG CỦA MALWARE 2.1 Tìm hiểu về cấu trúc PE file Một bước rất quan trọng khi tìm hiểu về mã độc là tìm hiểu về file PE vì gần như mọi mã thực thi được nạp bởi Windows đều có định dạng PE. Đây là dạng phổ biến bậc nhất của Malware và cũng là định dạng hay bị lây nhiễm mã độc nhất. Định dạng file PE được dùng cho những file thực thi, mã đối tượng và các DLL của Windows. Định dạng này là một cấu trúc dữ liệu bao gồm thông tin cần thiết để Windows OS Loader quản lý được mã thực thi trong nó. Để có thể thực thi trên máy tính, nội dung file PE được chia thành các thành phần và có mối liên hệ mật thiết với nhau. Nắm rõ cấu trúc PE sẽ giúp chúng ta hiểu được cơ chế thực thi của một phần mềm, từ việc tổ chức tới việc nạp lên bộ nhớ, các tài nguyên sử dụng… Hơn nữa, khi chúng ta muốn sửa đổi một file, ví dụ như thêm vào một số đoạn mã, chỉnh sửa một số thành phần nhưng vẫn muốn phần mềm thực thi bình thường, ví dụ trong trường hợp cần chỉnh sửa các công cụ phân tích để tránh bị phát hiện bởi Malware thì chúng ta cần phải nắm rõ cấu trúc PE file cũng như mối liên hệ giữa các thành phần trong file để có thể nhanh chóng thay đổi file và thoả mãn yêu cầu đề ra mà không ảnh hưởng tới chức năng cũng như hoạt động của file. Mặt khác, đối với các Malware sử dụng kỹ thuật tiêm mã vào các tiền trình đang có để che giấu sự tồn tại trên hệ thống, nếu chúng ta không hiểu rõ cấu trúc của file PE sẽ rất khó tìm ra tiến trình bị tiêm mã độc. Hình 2.1: Cấu trúc cơ bản của PE
- Xem thêm -