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í
Trang 1ĐỀ 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
Trang 2Lờ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à địnhhướ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ốtbá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ọcviệ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ếnthứ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ờigian 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
LỜI CẢM ƠN 2 MỤC LỤC 2
Trang 3MỞ ĐẦU 3
CHƯƠNG I – TỔNG QUAN VỀ PHẦN MỀM ĐỘC HẠI 3
1 Định nghĩa về phần mềm độc hại 3
2 Phân loại phần mềm độc hại 3
2.1 Virus 3
2.2 Worm 3
2.3 Trojan Horse 3
2.4 Malicious Mobile Code 3
2.5 Blended attacks 3
2.6 Tracking Cookies 3
2.7 Attacker Tools 3
3 Tác hại của phần mềm độc hại 3
4 Mô tả bài toàn giải quyết 3
5 Kết chương 3
CHƯƠNG II – CÁC PHƯƠNG PHÁP PHÂN TÍCH PHẦN MỀM ĐỘC HẠI 3
1.Khái quát về phân tích phần mềm độc hại 3
2.Các phương pháp phân tích phần mềm độc hại 3
2.1 Phương pháp phân tích tĩnh 3
2.1.1.Giới thiệu 3
2.1.2.Các kỹ thuật phân tích tĩnh cơ bản 3
2.2 Phương pháp phân tích động 3
2.2.1 Giới thiệu 3
2.2.2 Các bước trong quá trình phân tích động 3
2.3 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 3
2.3.1.Giới thiệu 3
2.3.2.Các bước xây dựng hệ thống phân tích nhận dạng phần mềm độc hại dựa trên hành vi 3
2.4.So sánh các phương pháp phân tích phần mềm độc hại 3
2.5 Kết chương 3
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 3
1 Game và lịch sử phát triển game 3
2.Hack game và các kỹ thuật cơ bản trong hack game 3
Trang 42.1 Hack game và lý do hack game 3
2.2 Kỹ thuật cơ bản trong hack game 3
3 Xây dựng công cụ chống hack game 3
KẾT LUẬN 3
TÀI LIỆU THAM KHẢO 3
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
Trang 5khó 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 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 trungnghiê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
Trang 6CHƯƠ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
Trang 7hô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
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
Interpreted Virus Melisa
Worm
Sasser
Mass Mailing worm
Netsky, Mydoom
Trojan Horse
Trang 8KeyLogger Pro Rootkits Hack Defender,
Adore
Web browser plus-inAttacker toolkit Post
scanner,Password cracker,Attacks Non-malware
Threats
Phishing
Virus HoaxesBả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
Trang 9 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.
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ânbả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ạiwormnà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 Khisâ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ànhTroy 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
Trang 102.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ácbiệ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ằngcá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
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
Trang 11Dướ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 hợppháp trên hệ thống của nạn nhân như truyền file, dò mật khẩu, thực hiện mãlệnh,
Keylogger hay có tên đầy đủ là Keystroke logger Keylogger được sử 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 attacker, phầnmềm này có thể ghi lại toàn bộ hoặc có chọn lọc những thông tin mà nạn nhânđã nhập, ngoài ra một số keyloggers còn có khả năng ghi lại các thông tin bổsung khác, như ảnh chụp màn hình Các keylogger nổi tiếng là KeySnatch,KeyLogger Pro
Rootkits là tập hợp của các files được cài đặt lên hệ thống nhằm biến đổi cácchức năng chuẩn của hệ thống thành các chức năng tiềm ẩn các nguy cơ tấncông nguy hiểm
Web Browser Plug-In là các phần mềm độc hại được cài đặt và thực thi tronglòng trình duyệt web Attacker sẽ lợi dụng các plug-in có thể được nạp tự độnglên web browser khi chúng khởi động sau đó mã độc hại sẽ được cài đặt lên web browser Nhờ loại mã độc hại này attacker sẽ có thể đánh cắp thông tin bímật thông qua việc theo dõi tất cả các hành vi duyệt web của người dùng
Email Generators là một dạng chương trình cho phép tạo ra và gửi đi một sốlượnglớn các email Sau khi Email Generators được cài đặt vào hệ thống chúng sẽ làm nhiệm vụ gửi một lượng lớn các loại email nguy hiểm tới một vài địa chỉ định sẵn nào đó hoặc có thể là các địa chỉ trong máy tính nạn nhân.Trên email đó cũng có thể chứa các loại mã độc hại khác như worm, chươngtrình gián điệp
Attacker Toolkit là tập hợp các công cụ có sẵn (có thể download được ở
trênmạng) hoặc do chính attacker lập trình nên trước đó (để tiện dùng cho
nhữnglần sau)
Non-malware Threats :Phần này tập trung nói về 2 mối nguy cơ tiềm ẩn là
phishing và virus hoaxes,tuy bản chất chúng không phải là một phần mềm độc hại, nhưng khi kết hợpvới phần mềm độc hại sự ảnh hưởng của nó là rất lớn Hai hiểm họa này có tên gọi kỹ thuật chung gọi là Social Engineering, một thuật ngữ
ám chỉ kẻ tấn công dùng các phương thức để lừa mọi người tiết lộcác thông tin nhạy cảm hoặc thực hiện một hành động nào đó chẳng hạn nhưmở một email có chứa worm, một file một đường dẫn có chữa mã độc …
Trang 123 Tác hại của phần mềm độc hại
Như đã nêu ở phần định nghĩa mục tiêu chung của tất cả các loại phần mềm độc hại là gây tổn hại đến tính bí mật, tính toàn vẹn và tính sẵn sàng của hệ thống Một cách cụ thể hơn:
Tiêu tốn tài nguyên, giảm hiệu năng hệ thống
Đa phần các máy tính bị nhiễm phần mềm độc hại đều gây tiêu tốn tài nguyên nhưCPU, RAM, bộ nhớ dũng lượng đĩa cứng, từ đó làm giảm hiệu năng xử lý, chương trình hệ điềuhành bị treo, báo lỗi lập đi lập lại Không mở được task manager, CPU RAM luôn bị sửdụng ở mức 80, 90%, thông báo lỗi hiện lên khắp nơi là dấu hiệu hiển nhiên cho thấy máy tính bạn đang bị nhiễm phần mềm độc hại Rõ ràng việc làm tiêu tốn tài nguyên, giảm hiểu năng hệ thống gây ảnh hưởng không nhỏ đến tínhsẵn sàng của hệ thống Nguy hiểm hơn một số phần mềm độc hại còn được thiết kếvới mục đích phá hoại hoặc làm ngưng hoạt động của hệ thống máy tính
Phá hủy hệ thống, dữ liệu
Ở một mức độ nguy hiểm hơn một số loại phần mềm độc hại cố tình phá hủy hệ thống (phá hủy BIOS, làm giảm tuổi thọ của ổ cứng, ), một số khác khi được xâydựng thì người thiết kế nó không cố ý đưa vào các đoạn mã làm hỏng hệ thống, tuynhiên quá trình hoạt động của phần mềm độc hại trong thực tế đôi lúc ngoài dự kiếncủa họ, Phần mềm độc hại bắt đầu hoạt động bất ổn, thậm chí sinh ra những lỗi làm tê liệt hệ thống Từ đó, dẫn tới dữ liệu thông tin quan trong lưu trong hệ thống của bạn cũng có thể bị phá hủy, tính toàn vẹn và sẵn sàng của hệ thống cũng bị ảnh hưởngnghiêm trọng Tuy nhiên các loại phần mềm độc hại hiện nay thường không đơn giảnchỉ có vậy nó có thể thực hiện cáchành vi tinh vi hơn và thậm chí nạn nhân còn không hay biết là mình đã bị nhiễm phần mềm độc hại
Đánh cắp dữ liệu thông tin bí mật
Như đã nói ở trên một trong những hành vi cực kì nguy hiểm gây hậu quả vô cùng tolớn
đó là đánh cắp thông tin qua các phần mềm độc hại Vô số phần mềm độc hạiđược thiết
kế với mục đích bí mật truy cập máy tính của bạn đánh cắp thông tin bímật Thông tin tài khoản mật khẩu, số chứng minh thư, tài khoản ngân hàng và vô vàn các thông tin nhạy cảm khác đều có thể bị đánh cắp Các hành vi trộm cắp thôngtin như vậy thường có lý do tài chính, nhưng kẻ trộm cũng có thể làm chứng minh thư giả với thông tin cá nhân của bạn Thông tin cá nhân trộm cắp có thể được sử dụng để xin hưởng các phúc lợi xã hội, khai hồ sơ thuế gian lận hoặc đơn giản là một ID giả để qua mặt cảnh sát khi bị bắt Từ
đó có thể thấy tính bí mật và toàn vẹn của hệ thống cũng sẽ không được đảm bảo Ở đây
Trang 13chúng ta cũng nhận thấy một điềuhết sức rõ ràng, ban đầu các phần mềm độc hại chỉ nhằm mục đích chứng tỏ bản thân, rồi tiêu tốn tài nguyên, phá hủy hệ thống từ đó gây thiệt hại cho nạn nhân, nhưng saunày nó đã có một bước tiến mới không chỉ là gây thiệt hại cho nạn nhân mà còn có thể làm giàu cho kẻ tấn công.
Thiệt hại tài chính
Hiển nhiên từ các tác hại trên dù trực tiếp hay gián tiếp chúng đều gây nên thiệt hại tài chính đối với nạn nhân, các công ty tổ chức và xã hội Theo thống kê của Bkav trong vòng 12 tháng từ cuối năm 2012 đến cuối năm 2013, người sử dụng ở Việt Namđã phải chịu tổn thất lên đến gần 8 nghìn tỷ đồng, khoảng 40 triệu USD [2] Đây không phải là một con số nhỏ với một nước đang phát triển như chúng ta, thiệt hại vềmặt tài chính mà phần mềm độc hại đem lại là vô cùng to lớn
4 Mô tả bài toàn giải quyết
Với sự phát triển mạnh mẽ của phần mềm độc hại cũng như tác hại to lớn mà chúng gây
ra, việc nghiên cứu các kỹ thuật phân tích nhận diện phần mềm độc hại là vô cùng quan trọng Đồ án này tập trung giải quyết các phần việc sau:
Giới thiệu các phương pháp phân tích phần mềm độc hại tiêu biểu và đặc biệt sẽ đisâ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ạiphầ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áchại của chúng đối với hệ thống và người dùng Từ đó giúp cho chúng ta cónhững nhìn nhận ban đầu về phần mềm độc hại, sự nguy hiểm của nó đến chính chúng ta những người đã và đang hằng ngày sử dụng hệ thống máy tính, cũng như định hướng giải quyết,phòng ngừa và khắc phục hậu quả do phần mềm độc hại gây ra
Trang 14CHƯƠNG II – CÁC PHƯƠNG PHÁP PHÂN TÍCH PHẦN MỀM
ĐỘC HẠI
Chương 2 trình bày khái quát về phân tích phần mềm độc hại, các phương pháp phân tíchphầ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 từ đó xác định đặc tính, hành vi của mãđộc, cũng như ảnh hưởng và tác hại của nó để đưa ra các biện pháp phòng chống và ngăn chặn
Mục đích của phân tích mã độc là để cung cấp các thông tin đầy đủ nhất về mãđộc, từ đó xây dựng biện pháp xử lý Cụ thể, phân tích phần mềm độc hại để xác địnhchính xác những gì đã xảy ra, chúng làm việc gì, gây ảnh hưởng thế nào đến hệ thốngđến máy tính
Các phương pháp phân tích phần mềm độc hại:
Trang 15Có hai phương pháp cơ bản để 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 đồ án này còn tập trung nghiên cứu một phương pháp thứ 3 là 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 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 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 thu thập các thông tin ban đầu về phần mềm độc hại nếu có Tuy nhiên, như chúng ta đã biết các công cụ chống virus chủ yếu dựa trên việc so sánh chữ ký của các phần mềm độc hại nằm trong bộ cơ sở dữ liệu nhận dạng của phần mềm Rõ ràng việc xác định phần mềm độc hại dựa trên các công cụ chống virus là không hoàn hảo, nó phụ thuộc quá nhiều vào cơ sở dữ liệu nhận dạng của phần mềm chưa kể đến việc các phần mềm độc hại ngày nay càng ngày càng tinh vi và được tích hợp khả năng biến hình từ đó việc thu thập một cơ sở dữ liệu chữ ký đầy đủ và cập nhật thường xuyên là không hề đơn giản
b Sử dụng hàm băm sinh chữ ký cho phần mềm được phân tích
Như đã nói ở trên mỗi một phần mềm độc hại thì sẽ có chữ ký tương ứng để nhận biết và phát hiện ra nó Hàm băm (hashing) là một phương pháp phổ biến được sử dụng
trongchương trình chống Virus để tạo ra chữ ký cho phần mềm độc hại Các nhà phân tích sẽ sử dụng một chương trình băm nào đó để tạo chữ ký cho phần mềm độc hại Một trong những thuật toán băm phổ biến nhất được sử dụng để lấy chữ ký phần mềm độc hại
Trang 16là MD5 (The Message - Digest Algorithm 5) WinMD5 là ví dụ điển hình cho một
chươngtrình băm sử dụng thuật toán MD5
Hình 2.2-1 Chương trình hàm băm WinMD5
c Các kỹ thuật đóng gói và xáo trộn mã của phần mềm độc hại và các phương pháp vượt qua nó
Đa số các phần mềm chương trình hiện này đều được đóng gói hoặc xáo trộn (Packedand Obfuscated) để nhằm giảm thiểu các nguy cơ như là bị crack, bị hack, đánh cắp ýtưởng Tương tự các phần mềm độc hại cũng thường sử dụng đóng gói hoặc xáo trộn để tránh bị phát hiện cũng như gây khó khăn hơn trong việc phân tích thu thập thông tin Xáo trộn chương trình là cách thực hiện trộn lẫn các thông tin để làm khó, ẩn thông tin cần phân tích Chương trình đóng gói là một tập hợp con của chương trình xáo trộn mà trong đó
Trang 17các chương trình độc hại được nén và không thể phân tích được Thông qua hai kỹ thuật này hiệu quả của phương pháp phân tích tĩnh giảm đi đáng kể.
Một điểm đáng chú ý là các phần mềm độc hại đã được đóng gói hoặc được xáo trộn chứa rất ít chuỗi, đôi khi là còn quá ít kể cả đối với một chương trình rất nhỏ Thông thường ta sẽ chỉ thấy được một phần của chuỗi Muốn phân tích và thu thập được nhiều thông tin hơn ta cần phải giải mã chương trình đó PEiD là một chương trình phát
hiệnđóng gói nổi tiếng và rất hiệu quả, nhưng nó đơn thuần sẽ chỉ làm nhiệm vụ phát hiện
và cho chúng ta một cái tên Sau đó việc giải mã chương trình còn phụ thuộc vào trình độcủa người phân tích cũng như là độ khó của thuật toán đóng gói và xáo trộn Tuy nhiênkể cả đối với những người không có nhiều kinh nghiệm trong việc giải mã chương trình cũng có thể thông qua google để tìm kiếm những công cụ được xây dựng sẵn hỗ trợ giải mã
d Thu thập thông tin về các hàm, các thư viện liên kết của phần mềm độc hại
90% các loại phần mềm độc hại được viết trên môi trường windows việc thu thập
cácthông tin về các hàm (function), các thư viện liên kết tĩnh (Static linking library), thưviện liên kết động (Dynamic Link Library), các hàm imports, các hàm exports là bướcrất quan trong trọng quá trình phân tích tĩnh Để thực hiện được bước này người phân tíchcần có kiến thức về nền tàng windows, cấu trúc tập tin PE file cũng như các thư viện liên kết, các hàm import,export
Trang 18 Cấu trúc cơ bản PE file
Cấu trúc PE có thể gồm nhiều section, trong đó tối thiểu cần 2 section: data và code.Một số section thông dụng hay được gặp ở các chương trình:
Executable Code Section, có tên là text (Micro$oft) hoặc là CODE
Trang 19 Export Data Section, có tên là edata.
Import Data Section có tên là idata
Debug Information Section, có tên là debug
Cấu trúc các section trên bộ nhớ và trên ổ đĩa là như nhau, tuy nhiên khi được nạplên bộ nhớ, các Windows loader sẽ quyết định thứ tự và vị trí nạp các phần, do đó vị trí các phầntrên ổ đĩa và trên bộ nhớ sẽ có sự khác biệt
Hàm và thư viện liên kết
Để hiểu rõ hơn về các hàm trong windows chúng ta cần tìm hiểu một số khái niệm cơ bảnliên quan
API - Application Programming Interface tạm dịch là giao diện lập trình ứng dụng API cung cấp hầu hết các tính năng thông dụng cho tất cả các chương trình chạy trên nền Window Hầu hết các hàm API thường được chứa trong file DLL trong thư mục hệ thốngWindow thường là C:\Windows\System
Các hàm (Function) là thành phần chính của Windows API, chúng được chứa trong các file DLL, và có thể được truy xuất một các dễ dàng bởi các chương trình trênnền
Window Hàm được chia làm 2 loại:
Hàm import (Imported Functions): Các tiêu đề tập tin PE cũng bao gồm thông tin về các hàm cụ thể được sử dụng thực thi ở một chức năng trong chương trình Tên của các hàm Windows có thể cung cấp cho ta một ý tưởng về những gì chương trình thực thi Microsoft cung cấp tài liệu API Windows thông qua thư viện MSDN
Hàm export (Exported Functions): Giống như các hàm imports, các hàm exports để tương tác với các chương trình khác Thông thường, một DLL thực hiện một hoặc nhiều hàm và exports để một tập tin thực thi có thể imports và sử dụng chúng
Ở đây có một khái niệm mới DLL nó là viết tắt của Dynamic linking library hay được dịch là thư viện liên kết động Trong lập trình windows hỗ trợ thư viện mã có thể liên kết tĩnh khi biên dịch, hoặc liên kết động khi thực hiện Thư viện liên kết là một trong những phần tử cấu trúc quan trong nhất trong windows Khi phân tích tĩnh phần mềm độc hại thư viện liên kết cũng là một phần rất quan trong hiểu rõ về nó chung ta có thể thu thập được những thông tin hết sức quan trong từ đó có thể xác định được các hàm (vì các hàm