Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 59 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
59
Dung lượng
2,68 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM ĐỒ ÁN CHUYÊN NGÀNH TÌM HIỂU KỸ THUẬT PHÂN TÍCH MÃ ĐỘC ĐỘNG BẰNG PHƯƠNG PHÁP KERNEL DEBUGGING VỚI WINDBG Ngành: CÔNG NGHỆ THÔNG TIN Chuyên ngành: AN TỒN THƠNG TIN Giảng viên hướng dẫn : VĂN THIÊN HOÀNG Sinh viên thực : TRỊNH BẢO LONG MSSV: 1711060183 Lớp: 17DTHB1 TP Hồ Chí Minh, 2021 MỞ ĐẦU Danh mục hình ảnh: Chương 1.TỔNG QUAN: 1.1.Tên đề tài: 1.2.Tổng quan đề tài: 1.2.1.Các loại mã độc phổ biến: 1.2.1.1 Virus : 1.2.1.2 Trojan horse: 1.2.1.3 Spammer: 1.2.1.4 Flooder: .8 1.2.1.5 Keylogger: 1.3.Nhiệm vụ đồ án cấu trúc đồ án: 1.3.1 Thực trạng nay: (nguồn: báo cáo từ website CyStack.net - 2018) 1.3.2 Mục đích ý nghĩa khoa học thực tiễn: 15 1.3.3 Mục tiêu, đối tượng phạm vi nghiên cứu: 15 1.4.Cấu trúc đồ án: 15 Chương CƠ SỞ LÝ THUYẾT: 17 2.1.Phân loại mã độc,cách thức công cấu trúc loại mã độc: 17 2.1.1.Phân loại theo hình thức lây nhiễm: 17 2.1.1.1.Trap Door: .17 2.1.1.2.Logic Bombs: 17 2.1.1.3.Trojan Horses: 18 2.1.1.4.Virus: .18 2.1.1.5.Worm: 19 2.1.1.6.Zombie: 19 2.1.2.Phân loại NIST (Nation Institute of Standards and Technology- Viện Tiêu chuẩn Công nghệ Quốc gia Mỹ): 20 2.1.2.1.Virus: .20 2.1.2.2.Worm: 20 2.1.2.3.Trojan Horses: 21 2.1.2.4.Malicious Mobile Code: 21 2.1.2.5.Tracking Cookie: .22 2.1.2.6.Phần mềm gián điệp (Spyware): .22 2.1.2.7.Phần mềm quản cáo:(Adware) : 23 2.1.2.8.Attacker Tool: 23 2.1.2.9.Phishing: 24 2.1.2.10.Virus Hoax: 25 2.2.Các phương pháp phát mã độc: 25 2.2.1.Phương pháp phát dựa vào chuỗi nhận dạng: 26 2.2.2.Phương pháp phát dựa hành vi: 27 2.2.3.Phát dựa ý định: 27 2.3.Các phương pháp phòng chống mã độc: 27 2.4.Cơ phân tích mã độc- phân tích mã độc động (Dynamic Analysis): 28 2.4.1.Khái niệm 28 2.4.2.Phân loại: 28 2.4.2.1.Phân tích thơng tin sơ mã độc hại: .28 2.4.2.2.Phân tích thơng tin chi tiết hoạt động mã độc hại: 29 2.4.3.Mục đích 31 2.4.4.Một số nguồn Malware: 32 2.4.5.Môi trường cơng cụ hỗ trợ phân tích mã độc: 32 2.4.5.1Xây dựng môi trường phân tích 33 2.5.Các kỹ thuật phân tích mã độc: 33 2.5.1.Phân tích mã nguồn tĩnh: 33 2.5.1.1.Tìm chuỗi liệu 33 2.5.1.2.Đóng gói xáo trộn .34 2.5.2.Phân tích mã nguồn động: 35 2.6.Debugging: 37 2.6.1.Debugger gì?Được dùng làm gì? 37 2.6.2.Các loại Debug: 38 2.6.2.1 Các Debugger Mức Mã Nguồn Mức Hợp Ngữ (source-level assembly-level) 38 2.6.2.2 Debug Mức Nhân Debug Mức Người Dùng .38 2.6.3.Breakpoint: 39 Chương 3: KẾT QUẢ VÀ THỰC NGHIỆM (Kỹ thuật phân tích) 42 3.1.VMWare Workstation 42 3.1.1.Tổng quan: 42 3.1.2.Vì cẩn phải sử dụng VMWare : 42 3.2.Công cụ WinDbg (Windows Debugging): 42 3.2.1.Tổng quan: 42 3.2.2.Kernel 44 3.2.2.1.Khái niệm: .44 3.3 Thực nghiệm 44 3.3.1.Phân tích Tĩnh (Static Analysis) 45 3.3.2.Phân tích Động (Dynamic Analysis) 49 3.3.3.Kernel Debugging with WinDbg 52 Chương 4: Kết Luận 57 4.1 Kết đạt được: 57 4.2.Đánh giá: 57 4.2.1.Những điều làm được: 57 4.2.2.Những điều chưa làm được: 57 4.3.Hướng phát triển: 57 Tài liệu tham khảo: 58 MỞ ĐẦU Lời đầu tiên, em xin cảm ơn thầy Văn Thiên Hoàng thầy Nguyễn Hồng Duy góp ý giúp em hoàn thành đồ án Ngày việc phổ cập công nghệ trở nên phổ biến người Nhưng song song với kéo theo hiểm họa An tồn thơng tin người dùng ngày tăng lên Virus, phần mềm độc hại… gọi chung mã độc (Malware) hiểm họa lớn hệ thống máy tính Nó đến từ đâu, hoạt động nào, ngăn chặn người hiểu làm Việc phân tích mã độc điều tra số thu thập thơng tin máy tính quan trọng Việc giúp xác định tầm ảnh hưởng, mục tiêu, đối tượng phương thức xâm nhập hay cách lây lan mã độc Từ tìm cách chống khoanh vùng truy tìm thủ phạm sử dụng mã độc để trục lợi cho thân Chính mục tiêu đồ án tìm hiểu số phương pháp phân tích mã độc cụ thể kỹ thuật phân tích mã độc Động phương pháp khác thông qua công cụ hỗ trợ nhằm hiểu rõ thông tin từ mã độc số cách phân biệt phòng chống Sinh Viên Thực Hiện: Trịnh Bảo Long Danh mục hình ảnh: Hình Tên 1.1 Malware 1.2 Bản đồ cơng mạng theo thời gian thực – Cystack.net 1.3 Bản đồ công mạng theo thời gian thực – Cystack.net 1.4 Security 1.5 Thực trạng an tồn thơng tin Việt Nam 1.6 Biểu đồ Số vụ công website Việt Nam Thế Giới 1.7 Bản đồ công WannaCry 2.1 Tiến trình Process 2.2 Process Explorer 2.3 Máy ảo chạy thiết bị vật lý 2.4 Chuỗi ASCII kết thúc byte NULL 2.5 Chuỗi Unicode kết thúc byte NULL 2.6 Chương trình bên trái chương trình bình thường, Chương trình bên phải chương trình sử dụng kỹ thuật đóng gói để dấu liệu 2.7 Cơng cụ bắt gói tin WireShark 3.1 VMWare Workstation 3.2 Giao diện WinDbg 3.3 Sử dụng WinDbg để phân tích RootKit 3.4 Sơ đồ khối mô tả Kernel Hệ Điều Hành Chương 1.TỔNG QUAN: 1.1.Tên đề tài: Tìm hiểu kỹ thuật phân tích mã độc động phương pháp Kernel Debugging với WinDbg (Hình 1.1: Malware) 1.2.Tổng quan đề tài: Mã độc hay “Malicious software” loại phần mềm tạo chèn vào hệ thống cách bí mật với mục đích thâm nhập, phá hoại hệ thống lấy cắp thông tin, làm gián đoạn , tổn hại tới tính bí mật, tính tồn vẹn tính sẵn sàng máy tính nạn nhân Mã độc phân thành nhiều loại tùy theo chức năng, cách thức lây nhiễm, phá hoại: virus, worm, trojan, rootkit… Chúng ta sơ lược lại Malware: 1.2.1.Các loại mã độc phổ biến: 1.2.1.1 Virus : Là chương trình có khả phân tích nhân (replicate) thân nhiều chương trình khác thực thi Thông thường Virus thêm vào đuôi chương trình máy tính bị lây nhiễm Worm dạng đặc biệt Virus với phạm vi hoạt động mơi trường mạng máy tính 1.2.1.2 Trojan horse: Đây chương trình độc hại có khả bắt chước chương trình thơng thường Mục tiêu Trojan đánh cắp thông tin gửi liệu cho hacker Backdoor dạng đặc biệt Trojan với khả mở cổng hậu cho phép kết nối đến hệ thống 1.2.1.3 Spammer: Chương trình gửi mail đến nhóm lớn người dùng 1.2.1.4 Flooder: Tấn cơng hệ thống mạng máy tính với lượng lớn gói tin, ví dụ hình thức cơng từ chối dịch vụ (denial of service) 1.2.1.5 Keylogger: Chương trình có khả ghi lại tất trình nhấn phím (Keystroke) máy tính nạn nhân, để thu thập thơng tin nhạy cảm … Vì để tìm mã độc ta cần phải có phương pháp phân tích kỹ thuật phân tích mã độc (Malware Analysis) khác Trong đó, phương pháp phân tích mã độc Động (Dynamic Analysis) số 1.3.Nhiệm vụ đồ án cấu trúc đồ án: 1.3.1 Thực trạng nay: (nguồn: báo cáo từ website CyStack.net - 2018) Tình hình an ninh mạng thời gian qua có đáng ý? 600 tỉ đô la Mỹ, tương đương 0,8 phần trăm GDP tồn cầu bị tổn thất cơng mạng riêng năm 2017 Mỗi phút trôi qua, có thêm website bị tin tặc kiểm sốt Việt Nam đứng thứ 19 quốc gia có số website bị công nhiều giới quý 3/2018 với 1.183 website Hơn 70% số website website doanh nghiệp Malware “hot” coin-mining malware (Mã độc đào tiền ảo) – góp mặt dòng malware khiến ransomware (mã độc tống tiền) phải “giảm giá” xuống mức xấp xỉ $500 lần mở khóa liệu Những số liệu an ninh mạng có ý nghĩa gì? Trước hết, tất số trỏ chung viễn cảnh tương lai giới mạng – công mạng đã, tăng với vận tốc chóng mặt số lượng, độ tinh vi phong phú hình thức công Tuy nhiên, bạn chưa cần vội lo lắng Hãy tận dụng thời gian để tìm hiểu tình hình an ninh mạng vấn đề xoay quanh chủ đề nhức nhối này, infographic công mạng lớn nhất, hậu việc website bị gián đoạn, hay infographic bên (Hình 1.2 Bản đồ công mạng theo thời gian thực – Cystack.net) 10 Nguồn mã độc : https://drive.google.com/drive/folders/0BwIb8VrPCDKCVEstYlFjSzhGWW8 Dựa theo viết Practical Malware Analysis Andrew Honig Michael Sikorski (https://nostarch.com/malware ) Lưu ý, tất phân tích thực máy ảo hoàn toàn cách lý khỏi môi trường internet hệ thống mạng nội máy thật Để tránh bị lây nhiễm phát tán vào máy thật người sử dụng Môi trường thử nghiệm: Windows XP Professional (Máy nạn nhân- Máy ảo) : Windows 10 (Máy thật ) : WinDbg : IDA Pro, UPX, PE Header,Regshot, FakeNet Chúng ta tận dụng tất kiến thức vừa qua thực phân tích Tĩnh Malware mà khơng cần thực thi để xác định làm gì, làm gì, liên lạc với bên 3.3.1.Phân tích Tĩnh (Static Analysis) Ta cần phải phân tích tệp: Malware có icon file excel thật có exe Đầu tiên Unpack file mã độc Financials-xls.exe UPX ta giao diện sau: 45 (Hình 3.5 Khi unpack file mã độc UPX) Chúng ta sử dụng câu lệnh UPX để giải nén Malware.exe, lưu ý, file nén đặt tên Malware-unpacked.exe để khơng bị ghi đè lên file Malware.exe gốc Phân tích PE Headers tệp: 46 Đến lượt PE Header, sử dụng PE Studio, ta quan sát time-stamp từ File-header, thấy Malware tạo vào tháng 5/2007 Nhưng trường time-stamp bị làm giả để đánh lừa phần mềm diệt virus người dùng Trong phần Optional-header, subsystem, ta thấy phần GUI Header, đặc trưng cho cửa sổ giao diện, với khả cửa sổ Pop-up chạy chương trình Malware.exe Trong phần Library, Malware.exe có thư viện nạp vào Nằm danh sách bị cảnh báo, có thư viện wsock32.dll nghi vấn Khi tra cứu mạng, wsock32.dll 47 thư viện C++ nạp vào với mục đích tạo kết nối mạng, giúp Malware có khả kết nối với host chủ Recourses: Trong trường này, file Malware.exe có type icon – giả file Excel ta thấy 48 Và có ngơn ngữ Russia, đặt vấn đề file mã độc tạo từ Nga PE Studio có sẵn chế độ Virus Total tích hợp chương trình Sử dụng Virus Total phân tích, thấy phần lớn Engine AV phát định dạng Malware.exe kiểu Trojan, FakeAV lừa đảo Ngồi sử dụng thêm cơng cụ IDA Pro 3.3.2.Phân tích Động (Dynamic Analysis) Sau phân tích Tĩnh (Static Analysis) thực nghiệm thêm phương pháp phân tích Động (Dynamic Analysis) nhằm tìm hiểu thêm tác động Malware lên hệ thống 49 Tool thực hiện: : Regshot: https://sourceforge.net/projects/regshot/ :FakeNet: https://github.com/fireeye/flare-fakenet-ng Ta sử dụng RegShot để “chụp” lại file hệ thống Windows Chụp lần trước thực thi Malware.exe, chụp lần thứ hai Malware chạy xong, sau so sánh thay đổi trước sau Malware tác động lên hệ thống Thực thi Malware, ta dùng quyền Admin để theo dõi xem hành vi Malware tác động lên file Windows 50 Sử dụng FakeNet để tạo môi trường mạng ảo khiến Malware tưởng máy ảo có kết nối Sau thực thi lúc, FakeNet phát Malware kết nối với máy chủ download.bravesentry.com dự đoán ban đầu phân tích chuỗi nhúng phân tích Tĩnh RegShot sau quét xong lần thứ hai, xuất file text so sánh thay đổi trước sau thực thi Malware.exe Ta thấy hai tệp thêm vào hệ điều hành, dự đốn trước phân tích Tĩnh 51 Có thể thấy Malware cập nhập file xpupdate.exe vào đường dẫn Kết luận: Malware cố gắng thay đổi file hệ thống C:\Windows\xupdate.exe : Thêm Install.dat : Malware cố gắng kết nối dowload nội dung lạ từ dowload.bravesentry.com Gỡ bỏ: Chỉ cần xóa file Financials-xls.exe Như ta tìm hiểu phân tích Trojan Malware biết cách thức hoạt động, cấu trúc cách khắc phục 3.3.3.Kernel Debugging with WinDbg Sau xác định loại, đặc tính mã độc phương pháp phân tích Tĩnh (Static Analysis) phân tích Động (Dynamic Analysis) phương pháp Kernel Debugging với WinDbg biết áp dụng vào thực nghiệm nhằm biết thêm thay đổi bên Windows (Dưới phương pháp thực nghiệm): Khi thiết lập mơi trường debug kernel, bạn cần có hai máy tính Một máy chưa debugger, cịn lại chứa “debuggee” Cách đơn giản dùng máy ảo phần mềm gọi VirtualKD VirtualKD cho phép bạn debug qua thông qua đường ống đặt tên, giao diện nối tiếp giúp tăng tốc kết nối Nó cung cấp trình quản lý máy ảo (VM) tự động bật bạn khởi động VM 52 Bây hoàn tồn bắt đầu debug Tại vị trí bạn khơi phục trạng thái thực thi VM với lệnh “g” (Go) Tương tự, bạn khỏi trạng thái thực thi phím tắt Ctrl+Break Windbg lúc Vì WinDbg có nhiều lệnh bước đầu ta sử dụng số lệnh phục vụ việc Debug • Lệnh ‘lm’(List Module): Đây lệnh nhằm xem Module Load VmWare • Một module thú vị danh sách dó module “nt” Đây tên cho module Windows Kernel Executive Đây module chứa chức Windows kernel, chịu trách nhiệm quản lý I/O, object management, 53 security and process management Chúng ta sử dụng lệnh khác để tìm hiểu kỹ kernel tìm hiểu chức thú vị chúng đưa Lệnh “x” (Examine) cho phép truy vấn symbol cho module mà nhập vào Nó viết dạng “!” chấp nhận ký tự đại diện Tất system call truy cập bắt đầu với “Nt” Chúng ta nhận danh sách system call liên quan tới hoạt động file lệnh “x nt!Nt*File*” • Nó trả tên function vị trí chúng nhớ Hãy nhìn qua function nhớ sử dụng lệnh “u” (Unassemble) Lệnh “u”nhận vào vị trí nhớ trả câu lệnh địa Chúng ta disassemble từ bắt đầu function NtCreateFile cách đưa vào địa lấy từ danh sách “lệnh khảo sát” symbol nt!NtCreateFile, Windbg dùng để tìm địa chúng: • Nếu bạn muốn disassemble toàn function, lệnh unassmble sử dụng với cú pháp “uf” Chúng ta thêm breakpoint vào function NtCreateFile kiểm tra số lời gọi hàm Lệnh để thêm breakpoint “bp” truyền vào tham số địa nhớ (hoặc symbols hợp lệ) Khi bạn đặt breakpoint khôi phục thực thi VM với lệnh “g” Sau lúc, chương trình dừng breakpoint bạn 54 • Ở ảnh phía trên, dừng breakpoint dùng lệnh “k” (Stack) để hiển thị toàn stack điểm gọi function Phía stack, có số symbol mà Windbg nhận Điều xảy nhảy vào user mode process context chưa load Chúng ta load user mode symbol thiếu lệnh “.reload /user” Trong debug kernel, bạn phải nhớ trình user mode ánh xạ vào nhớ lúc Bởi Windows sử dụng khơng gian địa ảo nên địa user mode hợp lệ cho process context mà cấp phát Sau load lại symbol, thấy call stack hồn chỉnh • Chúng ta truy vấn địa ánh xạ process (và dĩ nhiên lời gọi hàm NtCreateFile cuối cùng) lệnh “!process -1 0”; tham số (-1) yêu cầu thông tin cho process tại, tham số thứ hai (0) lượng liệu hiển thị Nếu đặt 0, có nghĩa lượng thơng tin tối thiểu • Trong trường hợp này, thấy gọi SearchIndexer Cuối cùng, tìm thấy file ổ cứng mà việc gọi hàm NtcreateFile trỏ tới Để tìm thơng tin này, cần phải biết 55 chút tham số mà NtCreateFile nhận vào MSDN có tài liệu hầu hết hàm syscall NtCreateFile giống này: Bây giờ, sau thực xong, bỏ breakpoint đặt lúc đầu Bạn dùng “bl” (Breakpoint list) “bc” để xóa breakpoint Breakpoint thường sử dụng để dừng việc thực thi chương trình điểm đáng quan tâm hàm gọi Chúng ta dùng Windbg để lần theo thông tin cách sử dụng chuỗi lệnh breakpoint (1 ví dụ đặt breakpoint ngăn filesystem ghi liệu vào notepad) Bằng kỹ thuật biết bên Windows, hoạt động thay đổi có Malware can thiệp Từ ta tìm Bug lỗ hổng có nhìn tổng thể Windows 56 Chương 4: KẾT LUẬN 4.1 Kết đạt được: • Hiểu loại Mã độc Trojan (TrojanMalware) • Cách phịng tránh khắc phục • Hiểu phân tích Mã độc Động • Tìm hiểu Kỹ thuật phân tích Mã độc (Phân tích Động – Dynamic Analysis) • Sử dụng WinDbg • Hiểu Kernel • Hiểu sâu Kernel Debugging • Biết sử dụng VMWare • Biết cách sử dụng Tools: PE, IDA, RegShot, FakeNet, WinDbg… 4.2.Đánh giá: 4.2.1.Những điều làm được: ● Tìm hiểu phân tích mã độc Động ● Tìm hiểu WinDbg ● Phân tích mã độc Trojan ● Tìm hiểu loại mã độc phương pháp phân Động ● Tìm hiểu sâu Kernel Debugging 4.2.2.Những điều chưa làm được: • Kiến thức chưa đầy đủ chuẩn bị chưa kỹ • Chưa sâu vào Tìm hiểu chế hoạt động máy ảo • Chưa khai thác hết tính cơng cụ hỗ trợ • Chỉ phân tích mã độc chưa phức tạp 4.3.Hướng phát triển: • Tiếp tục tìm hiểu sử dụng thêm cơng cụ khác • Sẽ tìm hiểu sâu phương thức phân tích mã độc Động • Thực nghiệm Hệ điều hành khác như: Linux, Android v v 57 Tài liệu tham khảo: [1] Monnappa K A (2018) Learning Malware Analysis: Explore the concepts, tools, and techniques to analyze and investigate Windows malware Packt Publishing Ltd Livery Place, Birmingham, UK [2] EC-Council (2017) Computer Hacking Forensic Investigator version presentation slide [3] EC-Council (2012) Computer Hacking Forensic Investigator version presentation slide [3] IPSpecialist Certified Ethical Hacker Complete Training Guide EC-Council [4] https://www.sans.org/reading-room/whitepapers/malicious/ [5] https://en.wikipedia.org/wiki/EternalBlue [6] https://en.wikipedia.org/wiki/DoublePulsar [7] Hirokazu Murakami (2018) Reverse Engineering of WannaCry Worm and Anti Exploit Snort Rules SANS Institute [8] Price Waterhouse Cooper (2010) Information Security Breaches Survey 2010 [9] Michael Sikorski and Andrew Honig Foreword by Richard Bejtlich (2012) Practical Malware Analysis No Starch Press, Inc San Francisco, CA [10]https://www.Cystack.net [11]https://www.Securitybox.vn [12]Luận văn Thạc sĩ Kiều Phi Hùng (Chuyên ngành An tồn thơng tin- ĐH Quốc Gia Hà Nội - 2019) [13]Đồ án Tổng Hợp Nguyễn Lý Quan ( Chun ngành An tồn thơng tin- ĐH Cơng nghệ Tp Hồ Chí Minh- Hutech – 2019) [14]https://www.Whitehat.vn [15] Kernel Debuggin With WinDbg Cảm ơn Thầy Cô xem báo cáo em.!! 58 59 ... vi virus Usermode, WinDbg phân tích động file Kernel Mode (Hình 3.2 Giao diện WinDbg) (Hình 3.3 Sử dụng WinDbg để phân tích RootKit) 43 3.2.2 .Kernel 3.2.2.1.Khái niệm: Kernel: Kernel chương trình... triển thử nghiệm tảng 3.2.Công cụ WinDbg (Windows Debugging) : 3.2.1.Tổng quan: WinDbg công cụ Debug mạnh mẽ phát hành Microsoft Nó có khả Debug User-mode Kernel- mode WinDbg cung cấp Debug cho hạt... diện WinDbg 3.3 Sử dụng WinDbg để phân tích RootKit 3.4 Sơ đồ khối mô tả Kernel Hệ Điều Hành Chương 1.TỔNG QUAN: 1.1.Tên đề tài: Tìm hiểu kỹ thuật phân tích mã độc động phương pháp Kernel Debugging