1. Trang chủ
  2. » Công Nghệ Thông Tin

Sử dụng phương pháp hình thức để nhận dạng Packer

10 66 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 713,8 KB

Nội dung

Bài viết đề xuất việc sử dụng phương pháp hình thức nhằm nhận dạng packer bằng cách kết hợp giữa hai công cụ BE-PUM và công cụ NuSMV. Mời các bạn cùng tham khảo bài viết để nắm chi tiết hơn nội dung nghiên cứu.

Kỷ yếu Hội nghị Khoa học Quốc gia lần thứ IX “Nghiên cứu ứng dụng Công nghệ thông tin (FAIR'9)”; Cần Thơ, ngày 4-5/8/2016 DOI: 10.15625/vap.2016.00086 SỬ DỤNG PHƯƠNG PHÁP HÌNH THỨC ĐỂ NHẬN DẠNG PACKER Nguyễn Minh Hải 1, Đỗ Duy Phong1, Quản Thành Thơ1 Khoa Khoa học Kỹ thuật máy tính, Trƣờng Đại học Bách Khoa Thành phố Hồ Chí Minh hainmmt@cse.hcmut.edu.vn, doduyphongbktphcm@gmail.com, qttho@cse.hcmut.edu.vn TĨM TẮT— Hiện nay, an tồn thơng tin vấn đề vô quan trọng thu hút quan tâm lớn Những phần mềm độc hại (malware) dần trở thành mối đe doạ thực quốc gia Năm 2006, theo thống kê Computer Economics 2007 Malware Report, khoảng 13.3 tỉ đô la tiêu tốn để khắc phục hậu malware số tiếp tục gia tăng mức độ độc hai tinh vi malware ngày lớn Để phân tích phát malware, đa phần phần mềm công nghiệp sử dụng kỹ thuật nhận dạng chữ ký Trong kỹ thuật này, malware biểu diễn dạng chuỗi bit nhị phân đặc trưng cho malware Tuy nhiên, với việc malware ngày sử dụng phần mềm đóng gói (packer) để tạo nhiều biến thể khiến kỹ thuật nhận dạng chữ ký trở nên không hiệu Hơn nữa, phân tích malware đóng gói, kỹ thuật dịch ngược vốn xem kỹ thuật hiệu để phát malware trở nên khó khăn nhiều thách thức packer sử dụng nhiều kỹ thuật rắc rối hóa, kỹ thuật chống dịch ngược chống gỡ lỗi Xuất phát từ khó khăn thực tế đó, báo đề xuất việc sử dụng phương pháp hình thức nhằm nhận dạng packer cách kết hợp hai công cụ BE-PUM công cụ NuSMV Chúng phát triển công cụ BE-PUM (Binary Emulator for PU shdown Model generation) với mục tiêu xây dựng mơ hình xác chương trình mã nhị phân xử lý kỹ thuật obfuscation đặc trưng packer lệnh nhảy không trực tiếp, code tự thay đổi Hiện tại, BE-PUM xử lý kỹ thuật sử dụng 28 packer khác Bằng cách biểu diễn hành vi kỹ thuật dạng công thức CTL cung cấp đầu vào cơng cụ kiểm tra mơ hình NuSMV, chúng tơi nhận diện 28 packer Chúng tơi thí nghiệm hướng tiếp cận 3250 malware khác để nhận diện packer sử dụng Kết phân tích hướng tiếp cận khả thi sinh kết xác so với kỹ thuật nhận diện packer thơng qua chữ ký truyền thống Từ khóa— Phân tích virus, an tồn thơng tin, phương pháp hình thức, packer I GIỚI THIỆU Malwares chƣơng trình máy tính độc hại xâm nhập vào hệ thống cách trái phép với mục tiêu ăn cắp thông tin, phá hủy hay làm hƣ hỏng hệ thống [1] Những chƣơng trình malware gây thiệt hại to lớn mặt tiền bạc cá nhân, tổ chức quan phủ Malware đƣợc chia thành nhiều loại khác nhƣ: virus, trojan horse, spammer…Có phƣơng pháp để phát malware, kể đến phƣơng pháp nhận diện chữ ký (signature recognition) mơ (emulation) q trình thực thi chƣơng trình mơi trƣờng có kiểm sốt, thƣờng hộp cát (sandbox) Signature recognition kỹ thuật nhận diện malare thông qua cấu trúc mẫu bit đặc trƣng malware Kỹ thuật đƣợc áp dụng rộng rãi công nghiệp đạt đƣợc thành công to lớn Tuy nhiên, signature detection gặp phải khó khăn lớn virus hệ áp dụng kỹ thuật rắc rối hóa (obfuscation technique) để làm thay đổi chữ ký đặc trƣng [2] Ý tƣởng emulation xây dựng sandbox để khám phá hành vi malware, cách mơ tồn trình thực thi hệ thống đặc biệt hoạt động APIs [3,15] Tuy nhiên, kỹ thuật phức tạp, tốn thời gian địi hỏi chi phí lớn Hầu hết malware đƣợc đóng gói chƣơng trình đóng gói (packer) [4] Packer chƣơng trình chuyển đổi mã nhị phân chƣơng trình thành chƣơng trình thực thi khác Chƣơng trình thực thi gìn giữ tính ngun nhƣng có nội dung hoàn toàn khác đƣợc lƣu trữ Chính điều làm cho kỹ thuật qt signature liên kết phiên Theo thống kê [4], 80% malware đƣợc nén nhiều loại packers khác Những packer thông dụng kể đến UPX1, PECOMPACT2, TELOCK3, FSG4 YODA‟s Crypter5 Đa phần chƣơng trình nhận dạng packer nhƣ Peid6 dựa chữ ký để kiểm tra Tuy nhiên, hacker tùy chỉnh (modify) chữ ký packer, phƣơng pháp dễ dàng bị đánh bại đƣợc áp dụng phân tích malware thực Trong báo này, chúng tơi đề xuất hƣớng tiếp cận để nhận diện packer Chúng tơi sử dụng phƣơng pháp hình thức nhằm nhận dạng packed malware cách kết hợp hai công cụ, BE-PUM để xây dựng CFG công cụ kiểm tra mơ hình NUSMV Để kiểm chứng tính hiệu hƣớng tiếp cận này, tiến hành thí nghiệm tập 3250 malware khác Cấu trúc báo đƣợc mô tả nhƣ sau Phần giới thiệu ngắn gọn kiến thức tảng Packer, BE-PUM cơng cụ NuSMV Phần trình bày phƣơng pháp đề xuất để nhận dạng packer Trong phần 4, chúng tơi giới thiệu thí nghiệm phần trình bày kết luận số hƣớng nghiên cứu tƣơng lai http://upx.sourceforge.net https://bitsum.com/pecompact http://www.telock.com-about.com http://fsg.soft112.com http://www.yodas-crypter.com-about.com http://www.secretashell.com/codomain/peid SỬ DỤNG PHƢƠNG PHÁP HÌNH THỨC ĐỂ NHẬN DẠNG PACKER 688 II KIẾN THỨC NỀN TẢNG A Giới thiệu Packer Packer [5, 6] cơng cụ phần mềm dùng để đóng gói tập tin Packer có mục tiêu cụ thể đƣợc mơ tả nhƣ sau  Giảm kích thƣớc tập tin: mục tiêu mà nhiều packer hƣớng tới, việc áp dụng kỹ thuật đóng gói mã hóa Kích thƣớc tập tin đƣợc đóng gói qua giảm cách đáng kể Tuy nhiên, packer đại ngày khơng cịn đặt tiêu chí giảm kích thƣớc tập tin lên hàng đầu Ngun nhân giảm kích thƣớc đồng nghĩa với việc sử dụng kỹ thuật bảo mật khác bị loại bỏ độ tin cậy packer giảm Thậm chí packer có chế bảo mật tốt nhƣ Themida hay TELOCK làm tăng kích thƣớc tập tin lên nhiều lần  Chống dịch ngƣợc: packer đƣợc sử dụng nhƣ công cụ chống dịch ngƣợc hiệu giải thuật đóng gói tập tin phức tạp packer khiến việc dịch ngƣợc mã nhị phân trở nên vô khó khăn  Bảo vệ quyền phần mềm: mục tiêu yếu mà packer ngày hƣớng tới Bằng cách nâng cao độ phức tạp giải thuật đóng gói, đồng thời áp dụng kỹ thuật chống sửa lỗi, chống dịch ngƣợc, packer giúp bảo vệ phần mềm khỏi việc đánh cắp thông tin bất hợp pháp Malware lợi dụng điểm mạnh packer nhằm che dấu trình thực thi Packer sử dụng nhiều kỹ thuật làm rắc rối hóa (obfuscation technique) nhằm mục tiêu làm cho q trình phân tích trở nên khó khăn Chúng tơi phân loại obfuscation technique [7,13] thành nhóm kĩ thuật nén-giải nén (packing-unpacking), ghi đè (overwriting), lệnh nhảy động (indirect jump), bất biến rối rắm (obfuscated constant), chẻ code (code chunking), mƣợn byte (stolen byte), kiểm tra (checking), bẫy lỗi ngoại lệ (SEH), API đặc biệt (2API), chống sửa lỗi (anti-debugging), code tự thay đổi (dynamic code), hàm lồng (overlapping function), khối lồng (overlapping block), chống ghi đè (anti-rewriting) kiểm tra thời gian (timing check) Chi tiết cách phân loại, trình bày [13] Bảng trình bày tóm tắt kỹ thuật đƣợc hỗ trợ số packer Ví dụ nhƣ, bảng 1, packer UPX hỗ trợ kĩ thuật, packing-unpacking, overwrting, indirect jump, obfuscated constants, checksumming, 2API, dynamic code, code layout, overlapping blocks anti-rewriting Bảng Các obfuscation techniques đƣợc hỗ trợ packer Name UPX ASPACK FSG NPACK PECOMPACT PETITE YODA Packing-Unpacking x x x x x x x Overwriting x x x x x x x Indirect Jump x x x x x x x Obfuscated Constants x x x x x x x Code Chunking x x x x x Stolen Bytes x x Checksumming x x x x x x x x x x SEH 2API x x x x x Anti-Debugging x Dynamic Code x x x x x x x Code Layout x x x x x x x X x x x x x Overlapping Function Overlapping Blocks x X x x x x x Anti-Rewriting x X x x x x x Timing Check B BE-PUM Giới thiệu BE-PUM BE-PUM (Binary Emulation for Pushdown Model generation of Malware) [8,9] công cụ xây dựng luồng điều khiển tập tin thực thi dựa kỹ thuật thực thi ký hiệu động [9] BE-PUM sử dụng thƣ viện mã nguồn mở Jackstab [10, 11, 14] để dịch ngƣợc mã nhị phân cho câu lệnh hợp ngữ tƣơng ứng với câu lệnh thực thi tập tin chƣơng trình SMT Z3.4.47 để giải điều kiện, từ tìm đƣờng có tính khả thi https://z3.codeplex.com/ Nguyễn Minh Hải, Quản Thành Thơ, Đỗ Duy Phong 689 Hình Kiến trúc BE-PUM Kiến trúc hệ thống BE-PUM bao gồm thành phần chính: symbolic execution, binary emulation CFG storage Hình mơ tả kiến trúc hệ thống BE-PUM Trong đó, vai trị thành phần đƣợc mô tả nhƣ sau  Thành phần symbolic execution sử dụng Jackstab để dịch ngƣợc chuyển đổi thành mã nhị phân thành câu lệnh hợp ngữ tƣơng ứng Trong trƣờng hợp câu lệnh hợp ngữ câu lệnh tác động tới môi trƣờng thực thi, cụ thể câu lệnh tính tốn, câu lệnh ghi đọc nhớ, bao gồm stack, môi trƣờng thực thi đƣợc thay đổi tƣơng ứng Ngồi ra, vị trí câu lệnh đƣợc xác định vị trí câu lệnh cộng kích thƣớc câu lệnh Nếu câu lệnh câu lệnh điều khiển, cụ thể câu lệnh gọi hàm, câu lệnh trả từ hàm, câu lệnh nhảy câu lệnh nhảy có điều kiện, câu lệnh đƣợc tính tốn thơng qua trình thực thi ký hiệu  Thành phần binary emulation thành phần quan trọng tổng thể kiến trúc BE-PUM Để xử lý câu lệnh hợp ngữ, hệ thống BE-PUM giả lập thành phần hệ thống, cụ thể mô hình nhớ BE-PUM Mơ hình bao gồm tập cờ đƣợc sử dụng hệ thống (AF, CF, DF, IF, OF, PF, SF, TF, ZF), tập 20 ghi (EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP, CS, DS, ES, FS, GS, SS, EIP, EFLAGS ghi debug DRO, DR1, DR2, DR3, DR4, DR5, DR6, DR7, DR8), tập giá trị nhớ đƣợc lƣu trữ phần nhớ cho stack đƣợc giới hạn ghi esp ghi ebp Bộ nhớ đƣợc giả lập BE-PUM đƣợc lƣu trữ dƣới dạng byte Ngoài việc giả lập câu lệnh hợp ngữ, API đƣợc giả lập thông qua sử dụng JNA8 (Java Native Access) cho phép gọi trực tiếp từ thƣ viện liên kết động, giá trị trả API đƣợc lƣu trữ ghi tƣơng ứng Đối với API đặc biệt tác động trực tiếp đến môi trƣờng thực, sandbox đƣợc xây dựng cho q trình xử lý API Hình mơ tả kiến trúc xử lý câu lệnh thực thi hệ thống BE-PUM Sau đƣợc nạp vào nhớ, câu lệnh đƣợc giải mã, lấy tốn hạng tiến hành mơ q trình thực thi Kết câu lệnh đƣợc ghi lại vào nhớ https://jna.java.net/ SỬ DỤNG PHƢƠNG PHÁP HÌNH THỨC ĐỂ NHẬN DẠNG PACKER 690 Hình Kiến trúc xử lý API BE-PUM  Thành phần CFG storage đƣợc sử dụng để lƣu trữ CFG node CFG edge sau đƣợc tính tốn xác CFG storage đƣợc sử dụng để xây dựng mơ hình q trình thực thi cuối tập tin đƣợc phân tích Ví dụ hoạt động BE-PUM Kết q trình phân tích tập tin thực thi mơ hình q trình thực thi Mơ hình đƣợc sinh hệ thống BE-PUM đƣợc biểu diễn dƣới dạng Control Flow Graph hay CFG chƣơng trình Một CFG tập đỉnh cạnh Trong đỉnh CFG bao gồm địa câu lệnh câu lệnh hợp ngữ địa đó, cạnh CFG cạnh nối node CFG Xem xét đoạn code sau 00401000 pushl 0x00401007 00401005 xor eax, eax 00401007 jne 0x00401005 0040100B call ss:[esp] Code 1: Code ví dụ BE-PUM Hình CFG đƣợc xây dựng BE-PUM Kết trình phân tích hệ thống BE-PUM sinh đƣợc CFG chƣơng trình thực thi đƣợc mơ tả hình C NuSMV NuSMV [12] cơng cụ kiểm tra mơ hình dạng ký hiệu mã nguồn mở Đây dự án kết hợp ITCIRST, viện nghiên cứu phía Đơng Trento, Ý Đại học Carnegie Mellon Trong báo này, thay đổi mã nguồn NuSMV để cung cấp thêm nhiều tính hỗ trợ tốt hơn, nâng cao hiệu suất kiểm tra mơ hình hệ thống có số trạng thái hữu hạn Đầu vào NuSMV mơ hình cần đƣợc kiểm tra đƣợc sinh BE-PUM tính chất đƣợc mơ tả dƣới dạng cơng thức luận lý có yếu tố thời gian để thực việc kiểm tra mơ hình Mơ hình NuSMV đƣợc biểu diễn dƣới dạng ngơn ngữ SMV Ngoài ra, NuSMV hỗ trợ CTL model checking LTL model checking Nguyễn Minh Hải, Quản Thành Thơ, Đỗ Duy Phong 691 III PHƢƠNG PHÁP NHẬN DẠNG PACKER A Phát triển hệ thống BE-PUM để xử lý packer Để xử lý 14 kỹ thuật packer [7,15], hệ thống BE-PUM đƣợc thực giả lập môi trƣờng thực thi bao gồm nhớ ghi:  PEB TIB: Process Environment Block (PEB) dùng để lƣu trữ thông tin Process Thread Information Block (TIB) dùng để lƣu trữ thông tin Thread hành Mỗi lần thực thi câu lệnh tác động vào địa TIB chƣơng trình TIB PEB đƣợc cập nhật tƣơng ứng  LDR Data: Loader Data đƣợc giả lập để lƣu trữ thông tin thƣ viện liên kết động đƣợc nạp vào trình thực thi để gọi API Song song với trình cập nhật TIB PEB, với lần thƣ viện liên kết động đƣợc nạp vào chƣơng trình thơng qua lệnh gọi API LoadLibrary, LDR Data đƣợc cập nhật tƣơng ứng  Trap Flag: để xử lý kỹ thuật SEH sử dụng Trap Flag Packer hệ thống BE-PUM đƣợc hỗ trợ lớp để lƣu trữ giá trị địa hàm xử lý ngoại lệ, hệ thống BE-PUM đƣợc hỗ trợ thêm ghi gồm: DRO, DR1, DR2, DR3, DR4, DR5, DR6, DR7  Virtual Memory Block: để xử lý kỹ thuật Stolen Bytes packer Một lớp đƣợc thực để quản lý q trình mở gói đƣợc thực vùng nhớ ảo B Kết hợp hệ thống BE-PUM NuSMV Để kết hợp hai công cụ này, tiến hành bƣớc, trình xây dựng mơ hình NuSMV thứ hai mơ tả kỹ thuật packer thông qua biểu thức CTL Thiết kế xây dựng NuSMV Model Việc thiết kế xây dựng mơ hình NuSMV để kiểm tra với cơng cụ NuSMV bao gồm giai đoạn chính, thứ chuyển đổi mơ hình BE-PUM thành liệu JSON để dễ lƣu trữ sử dụng, thứ hai q trình chuyển đổi liệu JSON thành mơ hình NuSMV a) Chuyển đổi mơ hình BE-PUM qua liệu JSON Mục tiêu q trình chuyển đổi mơ hình hệ thống BE-PUM sang liệu JSON để đảm bảo không tốn nhiều thời gian để hiểu đƣợc cấu trúc CFG BE-PUM Ngoài ra, trình đƣợc sử dụng nhƣ đầu vào cho cơng cụ kiểm tra mơ hình khác Một liệu JSON mơ tả cho mơ hình BE-PUM bao gồm tập node edge đƣợc biểu diễn nhƣ mảng JSON Trong node edge đối tƣợng JSON đƣợc định nghĩa địa câu lệnh node nội dung câu lệnh đó, edge đƣợc định nghĩa source destination, với source destination địa node Hình mơ tả ví dụ cấu trúc lƣu trữ JSON BEPUM { "model":{ "nodes":[ {"loc":"0x00401000", "inst" : "inc %eax"}, { "loc" : "0x00401001", "inst" : "jne 0x00401000"}, { "loc" : "0x00401006", "inst" : "pushl %eax"} ], "edges":[ { "src" : "0x00401000", "dest" : "0x00401001"}, { "src" : "0x00401001", "dest" : "0x00401006" }], Hình Ví dụ cấu trúc lƣu trữ chữ ký b) Chuyển đổi liệu JSON qua mơ hình NuSMV Trong thực tế, packer có nhiều phiên sử dụng nhiều biến thể kĩ thuật rắc rối hóa Hình mơ tả ví dụ sử dụng kỹ thuật SEH tiêu chuẩn packer biến thể SEH, theo thay việc PUSH giá trị constant vào stack, packer thiết lập giá trị cho ghi EAX push trực tiếp ghi EAX vào stack SỬ DỤNG PHƢƠNG PHÁP HÌNH THỨC ĐỂ NHẬN DẠNG PACKER 692 Hình Các biến thể kỹ thuật SEH Chính đa dạng đó, mà q trình chuyển đổi liệu JSON sang mơ hình NuSMV địi hỏi phải thực trình phân loại register, segment register, giá trị immediate lệnh gọi API Mô tả kỹ thuật packer thông qua biểu thức CTL Những kỹ thuật rắc rối hóa đƣợc mơ tả thơng qua biểu thức CTL Do kỹ thuật này, q trình nhận dạng thơng qua ngữ nghĩa đƣợc kết hợp với hệ thống BE-PUM để tiến hành nhận dạng giải thuật On-the-fly Các kỹ thuật đƣợc mô tả qua biểu thức CTL bao gồm: Anti-Debugging, Indirect Jump, Obfuscated Constants, SEH, Stolen Bytes, Timming Check, Two APIs, Checksumming, Code Chunking, Overlapping Block, Overlapping Function, Overwritting, Packing/Unpacking Hardware Breakpoint Các kỹ thuật đƣợc nhận dạng qua phƣơng pháp phân tích trình xây dựng mơ hình cơng cụ BE-PUM Các công thức CTL dƣới mô tả số kỹ thuật obfuscation techniques thông dụng packer  Công thức CTL mô tả kỹ thuật SEH EF((state(pushl,IMM,NULL,NULL)|state(pushl,REG,NULL,NULL)) & EF(state(pushl,s_fs$0$,NULL,NULL) & EF(state(movl,r_esp, s_fs$0$,NULL)))) EF((state(pushl,IMM,NULL,NULL)|state(pushl,REG,NULL,NULL)) & EF(state(pushl,s_fs$REG$,NULL,NULL) & EF(state(movl,r_esp, s_fs$REG$,NULL)))) EF((state(call,IMM,NULL,NULL)|state(call,REG,NULL,NULL)) & EF( state(pushl,s_fs$0$,NULL,NULL) & EF(state(movl,r_esp,s_fs$0$ ,NULL)))) EF((state(call,IMM,NULL,NULL)|state(call,REG,NULL,NULL)) & EF( state(pushl,s_fs$REG$,NULL,NULL) & EF(state(movl,r_esp, s_fs$REG$,NULL)))) Công thức CTL mô tả kỹ thuật Anti-Debugging EF(state(call,api_IsDebuggerPresent,NULL,NULL)) Công thức CTL mô tả kỹ thuật Obfuscated Constants EF(state(OPT,IMM,NULL,NULL) | state(OPT,NULL,IMM,NULL) | state( OPT,NULL,NULL,IMM)) Công thức CTL mô tả kỹ thuật Stolen Byte EF(state(call,api_VirtualAlloc,NULL,NULL)) Công thức CTL mô tả kỹ thuật Timing Check EF(state(rdtsc,NULL,NULL,NULL) | state(call,api_GetTickCount, NULL,NULL)) Công thức CTL mô tả kỹ thuật Two APIs EF(state(call,api_LoadLibrary,NULL,NULL) & EF(state(call, api_GetProcAddress,NULL,NULL))) Nguyễn Minh Hải, Quản Thành Thơ, Đỗ Duy Phong 693 IV THÍ NGHIỆM A Mơ tả thí nghiệm Chúng tơi tiến hành thí nghiệm nhận diện packer hệ thống WinXP SP3, Intel Core i5 - 2450M 2.5GHz, 2GB RAM, JDK 1.8 Các công cụ đƣợc sử dụng để thực kiểm tra mơ hình NuSMV 2.6.0 BE-PUM 2.0 Chúng so sánh phƣơng pháp phƣơng pháp nhận diện packer truyền thống sử dụng công cụ CFF Explorer9 3250 mẫu malware khác Theo kết kiểm tra Virus Total Web service10, số 978 mẫu downloaders, 2010 worms, số lại trojans B Kết thí nghiệm BE-PUM nhận diện đƣợc 28 packer Kết thí nghiệm phân tích packer hệ thống BE-PUM đƣợc thể bảng Trong bảng 2, cột Packer thể tên packer cách tiếp cận nhận điện đƣợc, số câu lệnh luồng điều khiển nối câu lệnh đƣợc mô tả cột Nodes Edges tƣơng ứng Cột Time mô tả thời gian xử lý phân tích packer Bảng Kết thí nghiệm Packer Nodes Edges Time ASPACK 1047 1112 58969 BJFNT 2061 2126 2810453 EXEPACK 323 353 6719 EXESTEALTH 735 770 238438 1172 1233 76797 FSG 244 268 4000 LAME 235 244 10062 MEW 110 131 3187 MORPHNAH 228 232 3593 MPRESS 459 489 101391 NOODLECRYPT 706 757 33922 NPACK 602 639 9609 1127 1178 30891 511 517 26750 1568 1635 49593 RLPACK 467 501 265937 SCRAMBLEv1.0 266 292 3984 SCRAMBLEv1.2 244 268 3922 TELOCK 2105 2237 6276360 UPACK 443 490 19625 UPX 323 353 6875 WINUPACK 443 490 19734 WWPACK32 329 360 3219 XCOMP 650 724 224734 YODAv1.2 625 659 130500 YODAv1.3 924 960 120516 PELOCK 2032 2033 36903693 PESPIN 431 452 4860547 EXPRESSOR PECOMPACT PEECRYPT PETITE Kết thí nghiệm nhận dạng 14 kỹ thuật 28 packer qua việc kết hợp hệ thống BE-PUM công cụ NuSMV đƣợc thể bảng Những ô kỹ thuật đƣợc đánh dấu "x" tƣơng ứng với packer có sử dụng kỹ thuật Ví dụ, bảng 3, packer ASPACK sử dụng kĩ thuật antidebugging, checksumming, codechunking, indirect jump, obfuscated constant, overlapping function, overwriting packing/unpacking http://www.ntcore.com/exsuite.php https://www.virustotal.com/en/ 10 SỬ DỤNG PHƢƠNG PHÁP HÌNH THỨC ĐỂ NHẬN DẠNG PACKER 694 Bảng Kết nhận dạng obfuscation technique 28 packer AntiDeb ugging Checksu mming CodeCh unking Indi rect Jum p Obfus cated Const ants Overla pping Block Overla pping Functio n Overwr itting ASPACK x x x x x x x x Packi ng/ Unpac king x BJFNT x x x x x x EXEPAC K x x x x x x x EXESTEA LTH x x x x x x x x x EXPRESS OR x x x x x x x x FSG x x x x x x x x LAME x x x MEW x x x x x x x x MORPHN AH MPRESS x x x x x x x x x NOODLE CRYPT NPACK x x x x x x x x x x x x x x x x x x x Packer PECOMP ACT SE H Stolen Bytes x x Tim ming Chec k Two APIs Hardw are Breakp oints x x x x x x x x x x PEENCR YPT PETITE x x x x x x x x x x x x x x RLPACK x x x x x x x x SCRAMB LEv0.1 x x x x x x x x x x x x SCRAMB LEv0.2 TELOCK x x x x x x x x x x x x x x x x x UPACK x x x x x x x x UPX x x x x x x x WINUPA CK x x x x x x x x WWPAC K32 x x x x x x XCOMP x x x x x x x x x YODAv1 x x x x x x x x x x YODAv1 PELOCK x x x x x x x x x x x x x x x PESPIN X x x x x x x x x x x x x x x x x x Để kiểm tra tính xác, chúng tơi so sánh hƣớng tiếp cận sử dụng phƣơng pháp hình thức kỹ thuật nhận diện packer truyền thống sử dụng chữ ký nhị phân sử dụng công cụ CFF Explorer Kết thí nghiệm 3250 mẫu virus đƣợc mơ tả hình 1600 1400 1200 1000 800 600 400 200 Our approach Binary Signature Hình Thống kê trình nhận dạng packer tập 3250 malware Nguyễn Minh Hải, Quản Thành Thơ, Đỗ Duy Phong 695 Trong hình 6, trục tung thể số lƣợng mẫu packer nhận diện tƣơng ứng với phƣơng pháp (cột màu xanh) phƣơng pháp truyền thống (cột màu đỏ) Trục hoành thể hiển loại packer khác Có thể nhận thấy, cách tiếp cận chúng tơi cho kết xác so với cách làm truyền thống Trong số trƣờng hợp nhƣ packer UPX, khác biệt lớn Nguyên nhân phƣơng pháp tiến cận chúng tơi khơng bị ảnh hƣởng kĩ thuật rối rắm hóa làm thay đổi chữ kí packer Ví dụ, xem xét mẫu malware “034f9d2dc5627296141bb7d0a22032b1e8c7e47f266ada4a1da7f8dad05668b” Chữ ký mẫu “60 BE 00 E0 95 00 8D BE 00 30 AA FF C7”, nhƣng chữ ký UPX “60 BE ?? ?? ?? 00 8D BE ?? ?? ?? FF 57” với „ ?‟ biểu thị kí tự Hai chữ kí khác kí tự cuối “C7” “57” Do đó, cách làm truyền thống sử dụng chữ ký nhận diện đƣợc packer này, nhƣng cách tiếp cận dựa ngữ nghĩa nên sinh kết xác V KẾT LUẬN Bài báo đề xuất hƣớng tiếp cận để nhận diện packer phƣơng pháp hình thức Phƣơng pháp kết hợp cơng cụ BE-PUM để xây dựng mơ hình cơng cụ kiểm tra mơ hình NuSMV Kết thí nghiệm tập 3250 malware cho thấy hƣớng tiếp cận có kết xác so với hƣớng tiếp cận truyền thống Tuy nhiên, mặt hạn chế phƣơng pháp thời gian xử lý khác lâu Để giải vấn đề này, áp dụng giải thuật song song hóa để giảm thời gian thực thi Đây hƣớng nghiên cứu tƣơng lai Ngoài ra, hƣớng khác tăng số lƣợng packer cần nhận dạng để sinh kết xác VI LỜI CẢM ƠN Nghiên cứu báo đƣợc tài trợ Vietnam National Foundation for Science and Technology Development (NAFOSTED), số 102.01 -2015.16 TÀI LIỆU THAM KHẢO P Szor, The Art of Computer Virus Research and Defense Addison-Wesley Professional, 2005 A Mori, T Izumida, T Sawada, and T Inoue, “A tool for analyzing and detecting malicious mobile code,” in ICSE 2006, pp 831–834, 2006 Anti-virus technology whitepaper Technical report, BitDefender, 2007 G Jeong, E Choo, J Lee, M Bat-Erdene, and H Lee Generic Unpacking using Entropy Analysis In Malware, pp.114-121, 2010 Nguyen Minh Hai and Quan Thanh Tho An Experimental Study on Identifying Obfuscation Techniques in Packer, 5th World Conference on Applied Sciences, Engineering & Technology, 02-04 June 2016, HCMUT, Vietnam, ISBN 978-81930222-2-1 M H Nguyen, T B Nguyen, T T Quan, and M Ogawa A hybrid approach for control flow graph construction from binary code In IEEE APSEC, pp.159-164, 2013 M H Nguyen, M Ogawa, and T T Quan and Obfuscation code localization based on CFG generation of malware In FPS, pp.229-247, 2015 LNCS 9482 E Filiol, “Malware pattern scanning schemes secure against black-box analysis,” Journal in Computer Virology, vol 2, pp 35–50, 2006 R Isawa, M Kamizono, and D Inoue Generic Unpacking Method Based on Detecting Original Entry Point In NIP, pp.593-600, 2013 LNCS 8226 10 J Kinder, F Zuleger, and H Veith An abstract interpretation-based framework for control flow reconstruction from binaries In VMCAI, pages 214–228, 2009 LNCS 5403 11 J Kinder and D Kravchenko Alternating control flow reconstruction In VMCAI, pages 267–282, 2012 LNCS 7148 12 A Cimatti, E M Clarke, E Giunchiglia, F Giunchiglia, M Pistore, M Roveri, R Sebastiani and A Tacchella NuSMV 2: An OpenSource Tool for Symbolic Model Checking In Proceeding of International Conference on Computer-Aided Verification (CAV 2002) Copenhagen, Denmark, July 27-31, 2002 13 K A Roundy and B P Miller Binary-code obfuscations in prevalent packer tools In ACM Comput Surv, 46, pages 4:1– 4:32, 2013 14 J Kinder, F Zuleger, and H Veith, “An abstract interpretation-based framework for control flow reconstruction from binaries,” in VMCAI 2009, pp 214–228, 2009 214–228 15 T Izumida, K Futatsugi, and A Mori A generic binary analysis method for malware In International Workshop on Security, pages 199–216, 2010 LNCS 6434 SỬ DỤNG PHƢƠNG PHÁP HÌNH THỨC ĐỂ NHẬN DẠNG PACKER 696 APPLYING FORMAL METHOD FOR PACKER DETECTION Nguyen Minh Hai, Do Duy Phong, Quan Thanh Tho ABSTRACT— Nowadays, malware has been becoming a real threat to each nation In 2006, according to a report by Computer Economics 2007 Malware Report, more than 13.3 billion dollars has been spent on the war against malware and its destruction To detect and analyze malware, most of industrial anti-virus software tends to focusing on identifying malware via signature based technique However, since most of the modern popular malwares are either packed or obfuscated, malwares can easily defeat this weak technique Packed malware also increases the difficulty of the reverse engineering technique which is inherently efficient and available for exploring the malware techniques The reason is that it often takes a very long time for unpacking or detecting a packed file which causes much trouble for reverse engineering For counter solution, most of anti-virus software choose the other way is to detect packer signature for verifying the packed malware However, since hacker can easily modify header signature of packed file, this solution cannot determine precisely whether a malware is packed or not This paper proposes a formal method approach for packer detection using a combination BE-PUM tool and symbolic model checker NuSMV BE-PUM (Binary Emulator for PUshdown Model generation) is designed for generating a precise control flow graph (CFG), which handles many of typical obfuscation techniques of malware, e.g., indirect jump, self-modification code, and structured exception handler, which are adopted in most of modern packers Currently, BE-PUM can cover the patterns for 14 techniques mainly used in supported 28 packers Applying the CTL, LTL formula for that patterns as properties of proposed model checker tool NuSMV, it can detect completely all the malwares which are packed by these packers We have performed the experiments on 3250 real-world malwares for checking the accuracy of our approach and the result is very promising ...SỬ DỤNG PHƢƠNG PHÁP HÌNH THỨC ĐỂ NHẬN DẠNG PACKER 688 II KIẾN THỨC NỀN TẢNG A Giới thiệu Packer Packer [5, 6] công cụ phần mềm dùng để đóng gói tập tin Packer có mục tiêu cụ... lại vào nhớ https://jna.java.net/ SỬ DỤNG PHƢƠNG PHÁP HÌNH THỨC ĐỂ NHẬN DẠNG PACKER 690 Hình Kiến trúc xử lý API BE-PUM  Thành phần CFG storage đƣợc sử dụng để lƣu trữ CFG node CFG edge sau đƣợc... http://www.ntcore.com/exsuite.php https://www.virustotal.com/en/ 10 SỬ DỤNG PHƢƠNG PHÁP HÌNH THỨC ĐỂ NHẬN DẠNG PACKER 694 Bảng Kết nhận dạng obfuscation technique 28 packer AntiDeb ugging Checksu mming CodeCh unking

Ngày đăng: 26/11/2020, 00:04

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w