Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
1,89 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG BÁO CÁO THỰC TẬP TỚT NGHIỆP CHUN NGÀNH: AN TỒN THƠNG TIN Đề tài: TÌM HIỂU VỀ PHÂN TÍCH MÃ ĐỘC Sinh viên thực hiện: Đỗ Nhật Anh MSSV: 1021040059 Lớp: D10ATTTM Giáo viên hướng dẫn: TS Hoàng Xuân Dậu Hà Nội – 8/2014 1|TÌM HIỂU VỀ PHÂN TÍCH MÃ ĐỘC SVTT: ĐỖ NHẬT ANH GVHD: TS HOÀNG XUÂN DẬU MỤC LỤ MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG, BIỂU .3 LỜI MỞ ĐẦU Chương 1: Kỹ quản trị hệ thống 1.1 Cài đặt, cấu hình hệ điều hành dịch vụ cho máy chủ 1.2 Cài đặt cấu hình máy chủ quản trị CSDL 1.3 Cài đặt, cấu hình sử dụng phần mềm rà quét virus phát cơng .6 Chương 2: Tìm hiểu phần tích mã độc 2.1 Phân tích mã độc điều cần biết 2.1.1 Malware Analysis - Phân tích mã độc .7 2.1.2 Malware Analysis Techniques - Kỹ thuật phân tích phần mềm độc hại 2.1.3 Type of malware - Phân loại phần mềm độc hại .8 2.2 Basic static analysis - Kỹ thuật phân tích tĩnh 2.2.1 Antivirus Scanning: A Useful First Step 2.2.2 Hashing: A Fingerprint for Malware 2.2.3 Packed and Obfuscated Malware 2.2.4 Linked Libraries and Functions 2.2.5 The PE File Headers and Sections 10 2.3 Basic dynamic analysis .10 2.3.1 Malware analysis in virtual machines: 10 2.3.2 Using sandbox 11 2.3.3 Monitoring with Process Monitor 12 2.3.4 Viewing Processes with Process Explorer 12 2.3.5 Faking a Network - Kiểm tra kết nối mạng .12 2.4 Advanced static analysis - Phân tích tĩnh nâng cao 13 1|TÌM HIỂU VỀ PHÂN TÍCH MÃ ĐỘC SVTT: ĐỖ NHẬT ANH GVHD: TS HOÀNG XUÂN DẬU 2.4.1 Advanced static analysis Techniques - Kỹ thuật phân tích tĩnh nâng cao 13 2.4.2 IDA PRO 17 2.4.3 Recognizing C codeconstructs in assembly 19 2.5 Advanced dynamic analysis 20 2.5.1 Debugging 20 2.5.2 Ollydbg 22 KẾT LUẬN 24 TÀI LIỆU THAM KHẢO 25 2|TÌM HIỂU VỀ PHÂN TÍCH MÃ ĐỘC SVTT: ĐỖ NHẬT ANH GVHD: TS HỒNG XN DẬU DANH MỤC HÌNH Ả Hình 1.1-1: Giao diện quản lý user group Hình 1.1-2 Giao diện quản lý DNS Hình 1.1-3: Kiểm tra dịch vụ DNS Nslookup Hình 1.3-1: Cài đặt Avast AV máy tính Hình 2.2-1: Xem thơng tin file qua virustotal.com .8 Hình 2.2-2: Sử dụng PEID phát packed file .8 YHình 2.2.1-1: Xem thơng tin file qua virustotal.com Hình 2.2.3-1: Sử dụng PEID phát packed file Hình 2.2.4-1: Sử dụng Dependency walker lấy thông tin functions libraries từ file Hình 2.3.3-1: Cơng cụ Process Monitor 10 Hình 2.3.5-1: Wireshark 11 Hình 2.4.1-1: Ví dụ Code Level .12 Hình 2.4.2-1: Giao diện IDA free 5.0 .15 Hình 2.5.2-1: Giao diện Ollydbg 18 DANH MỤC BẢNG, BIỂU Bảng 2.4.1-1: The x86 registers .13 Bảng 2.4.1-2: Một số lệnh x86 13 3|TÌM HIỂU VỀ PHÂN TÍCH MÃ ĐỘC SVTT: ĐỖ NHẬT ANH GVHD: TS HOÀNG XUÂN DẬU LỜI MỞ ĐẦU Với phát triển mạnh mẽ internet công nghệ thông tin ngày xuất nhiều mối nguy hại gây ảnh hưởng xấu đến người dùng phá hoại, đánh cắp thu thâp thông tin Mã độc - Malware mối nguy hại tiềm tàng gây hâu nghiêm đến hệ thống người sử dụng Mã độc xuất ngày nhiều với hình thái ngày phức tạp, chúng xuất đâu môi trường thiết bị điện tử máy tính smart phone, máy tính …,qua Internet, phần mềm miễn phí Ngăn chặn phịng ngừa khắc phục hâu malware yêu cầu thiết Cũng lẽ việc tìm hiểu phân tích nghiên cứu mà độc bước vơ quan trọng để đẩy lùi giảm bớt hậu malware Trong báo cáo em xin trình bày tìm hiểu ban đầu phân tích phần mềm độc hại – malware analysis Nội dung báo cáo bao gồm chương lớn yếu tâp trung chương Chương 1: Kỹ quan trị hệ thống Chương 2: Tìm hiểu phân tích mã độc 4|TÌM HIỂU VỀ PHÂN TÍCH MÃ ĐỘC SVTT: ĐỖ NHẬT ANH GVHD: TS HOÀNG XUÂN DẬU Chương 1: Kỹ quản trị hệ thống 1.1 Cài đặt, cấu hình hệ điều hành dịch vụ cho máy chủ a Cài đặt hệ điều hành: cài đặt thành công windows server 2008 CentOS Linux b Quản trị người dùng nhóm người dùng Hình 1.1- 1: Giao diện quản lý user group c Quản trị quyền truy nhập đến files thư mục d Cài đặt cấu hình dịch vụ danh mục: cài đặt cấu hình thành cơng Active Directory Windows e Cài đặt cấu hình dịch vụ web: IIS với Windows Apache CentOS thành công f Cài đặt cấu hình dịch vụ DNS Windows Bind/Named CentOS thành cơng 5|TÌM HIỂU VỀ PHÂN TÍCH MÃ ĐỘC SVTT: ĐỖ NHẬT ANH GVHD: TS HỒNG XN DẬU Hình 1.1-2 Giao diện quản lý DNS Hình 1.1- 3: Kiểm tra dịch vụ DNS Nslookup 1.2 Cài đặt cấu hình máy chủ quản trị CSDL Cài đặt cấu hình máy chủ CSDL thơng dụng: MS SQL Server 2008 MySQL 1.3 Cài đặt, cấu hình sử dụng phần mềm rà quét virus phát cơng Cài đặt, cấu hình sử dụng phần mềm rà quét virus: Avast AV, Norton AV, Symantec AV… 6|TÌM HIỂU VỀ PHÂN TÍCH MÃ ĐỘC SVTT: ĐỖ NHẬT ANH GVHD: TS HỒNG XN DẬU Hình 1.3-4: Cài đặt Avast AV máy tính Chương 2: Tìm hiểu phần tích mã độc 2.1 Phân tích mã độc điều cần biết 2.1.1 Malware Analysis - Phân tích mã độc Trước hết để hiêu khái niêm hiểu malware Malware viết tắt từ malicious software gọi phần mềm độc hại hay phần mềm ác ý Phần mềm độc hại định nghĩa loại phần mềm hay chuong trình có đoạn mã thiết kế để thực hành vi công hệ thống, đánh cắp thông tin, xâm nhập vào hệ thống, gây tổn hại đến tính bí mật, tính tồn vẹn tính sẵn sang hệ thống Cũng loại virus nhiễm bệnh người malware gây tác hại lướn đến hệ thống máy tính bạn việc phịng chống ngăn chặn điều cần thiết Malware Analysis hay cịn gọi phân tích mã độc hay phân tích phần mềm độc hại bước quan trọng Phân tích mã độc việc thực biện pháp nghiệp vụ để thu thập, tìm hiểu nghiên cứu thơng tin mã độc từ xác định đặc tính, hành vi mã độc, ảnh hưởng tác hại để sau đưa biện pháp phịng chống ngăn chặn 7|TÌM HIỂU VỀ PHÂN TÍCH MÃ ĐỘC SVTT: ĐỖ NHẬT ANH GVHD: TS HỒNG XN DẬU Mục đích phân tích mã độc để cung cấp thông tin đầy đủ mã độc từ xây dựng biện pháp pháp xử lý chúng Mục tiêu người phân tích thường xác định xác xảy ra, chúng làm việc gì, gây ảnh hưởng đến hệ thống đến máy tính bạn … 2.1.2 Malware Analysis Techniques - Kỹ thuật phân tích phần mềm độc hại Có hai 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 (static and dynamic analysis) Đúng tên phân tích tĩnh sử dụng phương pháp kiểm tra phần mềm độc hại mà không cần chạy Phân tích động tìm hiểu mã đơc thông qua việc chạy phần mềm độc hại Cả hai kỹ thuật tiếp tục phân loại thành nâng cao (basic and advanced analysis) 2.1.3 Type of malware - Phân loại phần mềm độc hại Để phân tích mã độc cách hiệu cần hiểu rõ chúng gồm loại, biến thể Hiện phần mềm độc hại vô đa dạng bao gồm nhiều loại khác nhau: Virus, Worm, Trojan horse, Exploit kit, Rootkit, Keylogger, Spyware, Adware 2.2 Basic static analysis - Kỹ thuật phân tích tĩnh Phân tích tĩnh bước q trình phân tích phần mềm độc hại Ở bước đa phần sử dụng công cụ tool để thu thâp thơng tin 8|TÌM HIỂU VỀ PHÂN TÍCH MÃ ĐỘC SVTT: ĐỖ NHẬT ANH GVHD: TS HOÀNG XUÂN DẬU 2.2.1 Antivirus Scanning: A Useful First Step Có thể sử dụng công cụ antivirus vào website http://www.virustotal.com/ để scan kiểm tra thông tin file nghi ngờ từ nắm bắt thơng tin ban đầu Hình Hình2.2.1-1: 2.2-5: Xem Xemthông thôngtin tinvề vềmột mộtfile filequa qua virustotal.com 2.2.2 Hashing: A Fingerprint for Malware Mỗi loại malware virus khác có mã hash xác định thơng thường từ mã hash mà phần mềm anti scan virus… Sử dụng công cụ winMD5 để hash file malware thành mã MD5 2.2.3 Packed and Obfuscated Malware Malware thường packing Hình Hình2.2.32.2- 6:1:Sử Sửdụng dụngPEID PEIDphát pháthiện hiệnpacked packed file obfuscation để che dấu thông tin làm cho người phân tích khó khăn việc phân tích thu thâp thơng tin 9|TÌM HIỂU VỀ PHÂN TÍCH MÃ ĐỘC SVTT: ĐỖ NHẬT ANH GVHD: TS HỒNG XN DẬU Malware thường phát running máy ảo, máy ảo bị phát hiện, malware dùng việc running trở mặt cư xử khác Không phải tất sandboxes giải vấn đề Một vài malware yêu cầu diện registry keys định files hệ thống mà thứ khơng tìm thấy sandbox Nhiều yêu cầu chứa liệu hợp lệ, ví dụ commands encrytion keys Nếu malware DLL, lượng định exported functions khơng invoked cách thích hợp, DLL không run dễ dàng excutable 2.3.3 Monitoring with Process Monitor Process Monitor hay Hình 2.3.3- 2: Cơng cụ Process Monitor gọi ProcMon, công cụ giám sát tiên tiến cho Windows cung cấp cách để theo dõi registry, file system, network, process and thread activity Công cụ tương tự windows là: FileMon RegMon 12 | T Ì M H I Ể U V Ề P H Â N T Í C H M Ã Đ Ộ C SVTT: ĐỖ NHẬT ANH GVHD: TS HOÀNG XUÂN DẬU 2.3.4 Viewing Processes with Process Explorer Công cụ Process Explorer (một công cụ miễn phí từ Microsoft) cơng cụ mạnh mẽ thưc chức quản lý cung cấp thông tin thông số process properties, thông tin hệ thống, DLL nạp prosess chạy… Cũng tương tư task manager chức view process người sử dụng hồn tồn loại bỏ tắt process muốn, log out users, khởi động and xác nhận processes … 2.3.5 Faking a Network - Kiểm tra kết nối mạng Một số loại malware không tác động vào thống cịn kết nối thơng qua mang interner ngồi đánh cắp thơng tin, kết nối với máy chủ … Using ApateDNS ApateDNS cơng cụ miễn phí từ Mandiant (www.mandiant.com/products/research/ mandiant_apatedns), cách nhanh để xem yêu cầu DNS thực malware phần mềm độc hại ApateDNS hoạt động dựa việc lắng nghe gói tin UDP với port tương ứng 53 để lấy ip Packet Sniffing with Wireshark Wireshark công cụ mạnh mẽ việc theo dõi bắt giám sát packet Thơng qua wireshark hồn tồn làm nhiều việc Người phân tích hồn tồn dựa fiter wireshark để bắt packet phù hợp thu thâp thơng tin Sử dụng Hình 2.3.5-3: Wireshark Follow TCP Stream để xem nội dung TCP section … 13 | T Ì M H I Ể U V Ề P H Â N T Í C H M Ã Đ Ộ C SVTT: ĐỖ NHẬT ANH GVHD: TS HOÀNG XUÂN DẬU 2.4 Advanced static analysis - Phân tích tĩnh nâng cao Như phân nêu việc phân tích tĩnh thu thâp thơng tin từ có nhìn nhận phong đốn ban đầu malware Muốn phân tích malware tĩnh cách cụ thể rõ ràng cần sâu vào đọc phân tích code 2.4.1 Advanced static analysis Techniques - Kỹ thuật phân tích tĩnh nâng cao Các ứng dụng phần mềm loại malware viết ngôn ngữ lâp trình Như phần mềm ứng dụng viết Java hay trang web viêt asp, php … malware viết môt loại ngơn ngữ cụ thể C, Vitual basic, assembly… Muỗn phân tích code tất nhiên cần show code malware lên rõ ràng malware không cung cấp source code cho bạn (trừ loại virus cũ chị phục vụ mục đích học tâp cung cấp source code) Vây làm để đoc code malware? Hình 2.4.1-4: Ví dụ Code Level Như hình vẽ bên đoạn code ban đầu viết ngôn ngữ lâp trình C – loại ngơn ngữ lâp trình bậc cao (High-Level Language) Khi Compiler ngôn ngữ CPU mã ASCII sau Disassenbler 14 | T Ì M H I Ể U V Ề P H Â N T Í C H M Ã Đ Ộ C SVTT: ĐỖ NHẬT ANH GVHD: TS HỒNG XN DẬU dạng ngơn ngữ lâp trình bậc thấp Muốn phân tích tĩnh malware cần đọc hiểu loại ngơn ngữ lâp trình bâc thấp Để tìm hiểu ngơn ngữ lâp trình bậc thấp cần hiểu kiến trúc x86, main memory, Registers, Flags, functions call… Kiến trúc x86 Thuật ngữ x86 đến họ kiến trúc tập lệnh dựa vi xử lý 8086 Thuật ngữ x86 lấy từ hai số cuối họ 8086 Rất nhiều thay đổi mở rộng thêm vào kiến trúc x86 qua nhiều năm Kiến trúc thực vi xử lý từ Intel, AMD, VIA nhiều tổ chức khác Như thuật ngữ trở thành phổ biến sau giới thiệu 80386, thường hàm ý nhị phân tương đương với tập lệnh 32 bit 80386 Điều khẳng định x86-32 tách biệt với gốc 16 bit x86-16 từ 64 bit x86-64 Mặc dù vi xử lý x86 sử dụng máy tính cá nhân máy chủ Registers Register ghi thưc nhiệm vụ lưu trữ liệu có sẵn CPU, mà nơi dụng truy câp cách nhanh lưu trữ nơi khác Registers gồm loại: General registers sử dụng CPU trình thưc Segment registers sử dụng để theo dõi phần nhớ Status flags sử dụng để đưa định Instruction pointers sử dụng để theo dõi lệnh để thưc Bảng 2.4.1-1: The x86 registers 15 | T Ì M H I Ể U V Ề P H Â N T Í C H M Ã Đ Ộ C SVTT: ĐỖ NHẬT ANH GVHD: TS HOÀNG XUÂN DẬU Flags EFLAGS registers ghi cờ trang thại Trong kiến trúc x86 có kích thước 32 bit bit flag Trong trình thực hiện, flag có trang thái set (1) cleared (0) để kiêm soát hoạt động CPU kết hoạt động CPU Một số flag quan trong phân tích mã độc: ZF, CF, SF, TF Bộ tâp lệnh Bộ vi xử lý x86 bao gồm nhiều tâp lệnh thực chức khác ước lượng có khoảng 100 tên lệnh hợp ngữ Bảng 2.4.1-2: Một số lệnh x86 Ví dụ: int main(int argc, char* argv[]) { if (argc != 3) {return 0;} if (strncmp(argv[1], "-r", 2) == 0){ DeleteFileA(argv[2]); } return 0; 16 | T Ì M H I Ể U V Ề P H Â N T Í C H M Ã Đ Ộ C SVTT: ĐỖ NHẬT ANH GVHD: TS HOÀNG XUÂN DẬU } Đoạn code c dịch mã assem 004113CE cmp [ebp+argc], (1) 004113D2 jz 004113D4 xor eax, eax 004113D6 jmp short loc_411414 004113D8 mov esi, esp 004113DA push 004113DC push offset Str2 004113E1 mov eax, [ebp+argv] 004113E4 mov ecx, [eax+4] 004113E7 push ecx 004113E8 call strncmp (2) 004113F8 test eax, eax 004113FA jnz 004113FC mov esi, esp 004113FE mov eax, [ebp+argv] 00411401 mov ecx, [eax+8] 00411404 push ecx 00411405 call short loc_4113D8 ; MaxCount ; "-r" ; Str1 short loc_411412 ; lpFileName DeleteFileA Xem xét đoạn mã ta thấy gồm đoạn code C đoạn code assembly 32 bit, đoạn code assem đoạn code dịch ngược từ source code c, thực chất thực phân tích tĩnh khơng có soure code người viết malware tất nhiên dấu (trừ malware cũ cơng bố mục đích học tâp) Ở chủ yếu xem xét đoạn code thứ Từ đoạn code ta có số nhận xét: đa phần ghi register dùng ghi 32bit eax, ecx, esp… kết hợp với hàm assembly hàm so sánh cmp phép xor hàm nhẩy jz jnz jmp, hàm push mov call… 17 | T Ì M H I Ể U V Ề P H Â N T Í C H M Ã Đ Ộ C SVTT: ĐỖ NHẬT ANH GVHD: TS HOÀNG XUÂN DẬU Chú ý chỗ đánh dấu số 1: câu lệnh cmp thực chất tướng ứng với câu lệnh if(argc != 3) đoạn code c tiến hành so sánh biến argc với số Ở vị trí đánh dấu số tương ứng với hàm gọi strncmp code c hàm gọi kèm theo số biến đầu vào phần biến đầu vào nhập vào trước thông qua hàm push 2.4.2 IDA PRO The Interactive Disassembler Professional (IDA Pro) công cụ mạnh mẽ hỗ trợ việc dịch ngược mã disassemble, phân tích tĩnh phần mềm độc hại IDA lưa chọn hàng đầu nhà phân tích mã độc Hình 2.4.2-5: Giao diện IDA free 5.0 IDA cung cấp nhiều chức đa dạng trực quan với người dùng Bạn lựa chọn nhiều loại file đuôi khác để disassemble Một số cửa sổ quan trọng IDA: Function Windows: Cửa sổ liệt kê tất hàm chương trình Sau q trình phân tích, IDA liệt kê đưa danh sách hàm với địa bắt đầu, kết thúc, tham số đặc tính hàm Output Windows: Cửa sổ hiển thị số thông tin đầu q trình xử lý IDA, cửa sổ khơng cần quan tâm nhiều tiến hành làm việc IDA 18 | T Ì M H I Ể U V Ề P H Â N T Í C H M Ã Đ Ộ C SVTT: ĐỖ NHẬT ANH GVHD: TS HOÀNG XUÂN DẬU IDA View: Cửa sổ có hai chế độ hiển thị: Hiển thị dạng mã Asembly chia thành khối lệnh có liên kết khối lệnh để thực cấu trúc lặp, rẽ nhánh Graph Overview: Cửa sổ xuất cửa sổ IDA View chế độ hiển thị theo khối Cửa sổ cung cấp cho người dùng nhìn tổng quan hàm tồn chương trình Thơng qua cửa sổ người dùng biết mức độ đơn giản/phức tạp hàm/chương trình theo dõi, đồng thời di chuyển nhanh tới vị trí tồn hàm/chương trình để quan sát tổng quan chi tiết module Khi di chuyển Graph Overview, chúng xem khối lệnh vị trí tương ứng cửa sổ IDA View Hex View: Cửa sổ cung cấp thông tin dạng mã HEX, phần cho phép người dùng có khả chỉnh sửa trực tiếp mã HEX Import View: Cửa sổ cho biết module mà chương trình sử dụng module cụ thể load lên từ thư viện Ý nghĩa sử dụng IDA phân tích, dịch ngược IDA cung cấp nhiều thơng tin tính hỗ trợ cho người phân tích, nhiên khơng biết cách sử dụng cách hợp lý hiệu dễ làm cho người dùng bị nhiễu thơng tin cảm thấy khó khăn Mục đích IDA để người phân tích có nhìn tổng quan tồn chương trình, đó, người dùng thấy cấu trúc chi tiết module chương trình, mối quan hệ module, khối lệnh nằm hàm Kết hợp với q trình sử dụng OllyDBG, người phân tích biết luồng chương trình tương ứng với giá trị loại liệu Đồng thời với q trình đó, người phân tích xác định chức hàm, tạo ghi nhớ cho khối lệnh để làm việc hiệu 2.4.3 Recognizing C codeconstructs in assembly Dịch ngược code c assembly Chúng ta xem xét ví dụ đơn giản sau: 19 | T Ì M H I Ể U V Ề P H Â N T Í C H M Ã Đ Ộ C ... Analysis hay gọi phân tích mã độc hay phân tích phần mềm độc hại bước quan trọng Phân tích mã độc việc thực biện pháp nghiệp vụ để thu thập, tìm hiểu nghiên cứu thơng tin mã độc từ xác định đặc... Symantec AV… 6|TÌM HIỂU VỀ PHÂN TÍCH MÃ ĐỘC SVTT: ĐỖ NHẬT ANH GVHD: TS HOÀNG XUÂN DẬU Hình 1.3-4: Cài đặt Avast AV máy tính Chương 2: Tìm hiểu phần tích mã độc 2.1 Phân tích mã độc điều cần biết... Chương 2: Tìm hiểu phần tích mã độc 2.1 Phân tích mã độc điều cần biết 2.1.1 Malware Analysis - Phân tích mã độc .7 2.1.2 Malware Analysis Techniques - Kỹ thuật phân tích phần