1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc

73 1,3K 5

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 73
Dung lượng 2,53 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc

Trang 1

MỤC LỤC

DANH MỤC HÌNH ẢNH 3

TỪ VIẾT TẮT 4

LỜI MỞ ĐẦU 5

TỔNG QUAN VỀ MÃ ĐỘC 7

1.1 Giới thiệu 7

1.1.1 Khái niệm, phân loại và mục đích của mã độc 7

1.1.2 Các thức lây nhiễm mã độc 8

1.1.3 Các loại mã độc mới và dự đoán xu hướng mã độc trong tương lai 9

1.2 Các công cụ sinh mã độc tự động 10

1.2.1 Hướng tiếp cận 10

1.2.2 JPS (Virus Maker 3.0) 11

1.2.3 TeraBIT Virus Maker 3.2 16

1.2.4 Kết quả 18

TỔNG QUAN VỀ PHẦN MỀM PHÒNG CHỐNG MÃ ĐỘC 19

2.1 Giới thiệu 19

2.2 Nguyên lý phát hiện mã độc 20

2.2.1 Phát hiện mã độc dựa vào dấu hiệu đặc trưng 21

2.2.2 Phát hiện mã độc dựa vào đặc điểm bất thường 22

2.3 Các kỹ thuật phát hiện mã độc 23

2.3.1 Checksummers 23

2.3.2 Fuzzy Hashing 24

2.3.3 Scan String 26

2.3.4 Code Emulation 27

2.3.5 Static Heuristic Analysis 28

2.3.6 Behavior Blocking 29

NGHIÊN CỨU CÁC KỸ THUẬT VƯỢT QUA PHẦN MỀM PHÒNG CHỐNG MÃ ĐỘC 31

3.1 Cấu trúc tệp tin thực thi trên Hệ điều hành Windows 32bit 31

3.2 Các kỹ thuật vượt qua các phần mềm phòng chống mã độc 46

Trang 2

3.2.1 Kỹ thuật mã hóa 46

3.2.2 Kỹ thuật chèn mã rác 48

3.2.3 Kỹ thuật rẽ nhánh 49

3.2.4 Sử dụng Stub để giải mã và thực thi trực tiếp trên bộ nhớ 50

3.2.5 Kỹ thuật PRIDE (Pseudo-Random Index Decryption) 52

3.2.6 Các kỹ thuật chống phân tích mã độc 54

3.2.7 Kỹ thuật che giấu API 60

3.2.8 Kỹ thuât sử dụng chữ ký số 62

3.2.9 Khai thác lỗ hổng trên Hệ điều hành 65

3.3 Chương trình và thử nghiệm 67

KẾT LUẬN 72

TÀI LIỆU THAM KHẢO 73

Trang 3

DANH MỤC HÌNH ẢNH

Hình 1.1.1: Thống kê các loại mã độc mới xuất hiện theo năm 9

Hình 1.2.1: Thông tin về chương trình JPS (Virus Macker 3.0) 11

Hình 1.2.2: Giao diện của chương trình JPS (Virus Maker 3.0) 11

Hình 1.2.3: Mã độc được tạo ra từ chương trình 12

Hình 1.2.4: Sử dụng Exeinfor PE để xác định trình bảo vệ của mã độc 12

Hình 1.2.5: Lệnh “net user” được thực thi trong mã độc 13

Hình 1.2.6: Cứ sau 1 phút mã độc lại tự sao chép chính nó tới vị trí khác 13

Hình 1.2.7: Resource data trong chương trình JPS 14

Hình 1.2.8: Các bước thực thi của chương trình chính 15

Hình 1.2.9: Giao diện của chương trình TeraBIT virus macker 3.1 16

Hình 1.2.10: Mã độc được viết bằng MS Visual Basic 17

Hình 1.2.11: So sánh resource trong tệp tin trước và sau khi patch 17

Hình 1.2.12: Mô tả quá trình patch 18

Hình 2.1.1: Thị phần các sản phẩm Antivirus 1/2015 theo OPSWAT 20

Hình 2.2.1: Sự phân chia về các kỹ thuật phát hiện mã độc 20

Hình 2.2.2: Việc xây dựng tập signature hoàn chỉnh là vô cùng khó khăn 21

Hình 2.2.3: Phân loại hành vi trong kỹ thuật Anomaly-based Detection 22

Hình 2.3.1: Tệp chứa mã độc được quét trên trang virustotal.com 24

Hình 2.3.2: Cách tính toán giá trị hash với mỗi khối 3 ký tự 25

Hình 2.3.3: Mô tả sau khi tiến hành Rolling hash 25

Hình 2.3.4: Một đoạn mã của virus Stoned khi được phân tích 26

Hình 2.3.5: Cấu trúc của thanh ghi và cờ CPU Intel 16bit được định nghĩa lại bằng ngôn ngữ C 27

Hình 2.3.6: Kỹ thuật Heuristic nhận dạng một số virus thực tế 28

Hình 2.3.7: Phân loại ngưỡng lây nhiễm ở mức đơn lớp 28

Hình 2.3.8: Một khối ngăn chặn hành vi lừa đảo trên DOS 29

Hình 3.1.1: Minh họa cấu trúc cơ bản của một PE Tệp tin 31

Hình 3.1.2: Một tệp tin PE được mở bằng công cụ FileInSight của McAfee 32

Hình 3.1.3: Thành phần e_magic và e_flanew 33

Hình 3.1.4: Hình ảnh PE header của tệp tin test.exe 34

Hình 3.1.5: Vị trí các thành phần của PE Header trong tệp tin test.exe 37

Hình 3.1.6: Cấu trúc Data Directory 37

Hình 3.1.7: Vị trí của Data Directory trong Optional Header 38

Hình 3.1.8: Các thành phần của Data Directory 39

Hình 3.1.9: Hình ảnh minh họa việc Import Sections 43

Hình 3.1.10: Hình ảnh minh họa việc Export Sections 45

Hình 3.1.11: Trường hợp module export theo cả 2 cách 46

Trang 4

Hình 3.2.1: Trình tự hoạt động chương trình giữa có và không rẽ nhánh 49

Hình 3.2.2: Thành phần của mã độc mới được tạo ra 50

Hình 3.2.3: Cấu trúc tệp tin mới được tạo ra 51

Hình 3.2.4: Mô hình xử lý công việc đối với máy ảo 58

Hình 3.2.5: Thực thi hàm MessageBoxA mà không cần gọi API 61

Hình 3.2.6:Bảng Import Directory không có thư viện user32.dll 61

Hình 3.2.7: Sơ đồ xác thực sử dụng Chữ ký số 62

Hình 3.2.8: Chữ ký số trên tệp tin cài đặt phần mềm BKAV 64

Hình 3.2.9: Mã độc giả mạo chữ ký số giả 65

Hình 3.2.10: Sự lây lan của Stuxnet 66

Hình 3.3.1: Khi chạy trực tiếp chương trình 67

Hình 3.3.2: Khi chạy chương trình thông qua Visual Studio 2012 67

Hình 3.3.3: Khi chạy chương trình ở máy thật 68

Hình 3.3.4: Khi chạy chương trình trong máy ảo VMware Workstation 11 68

Hình 3.3.5: Lây nhiễm vào các tệp tin trong ổ đĩa E 68

Hình 3.3.6: Thực thi chương trình bị nhiễm 69

Hình 3.3.7: Tiến trình con được thực thi với quyền SYSTEM 69

Hình 3.3.8: Kích thước tệp tin thay đổi sau khi bị nhiễm 70

Hình 3.3.9: Kết quả Scan Online 70

Hình 3.3.10: Kết quả Scan sau khi ký chữ ký số 71

TỪ VIẾT TẮT

PE Portable Executable API Application Programming Interface

Trang 5

LỜI MỞ ĐẦU

Giới thiệu

Trong giai đoạn hiện nay, khi công nghệ thông tin được ứng dụng vào hầu hết các lĩnh vực của cuộc sống, yêu cầu về an toàn thông tin càng trở nên quan trọng hơn Chính vì vậy, các phần mềm phòng chống mã độc (hay phần mềm Antivirus) ngày càng được nhiều người biết đến Nhưng cũng vì lẽ đó, người sử dụng đang quên dần cách tự bảo vệ máy tính của mình, thay vào là giao phó toàn bộ sự an toàn của máy tính nói chung và các dữ liệu trong máy tính nói riêng vào các phần mềm Antivirus Theo ước tính của Trung tâm Nghiên cứu Chiến lược và Quốc tế (CSIS) Hoa Kỳ, trong năm 2014, cả thế giới tổn thất 445 tỷ USD do tội phạm mạng gây ra

và 8.500 tỷ đồng là số tiền thiệt hại mà người sử dụng Việt Nam phải hứng chịu từ các loại mã độc máy tính Liệu các phần mềm Antivirus có thực sự đem lại hiệu quả cho người sử dụng?

Thông qua nội dung đề tài: “Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua các phần mềm phòng chống mã độc”, nhóm nghiên cứu đã tìm

hiểu các kiến thức về mã độc, các kỹ thuật sinh mã độc tự động, cũng như muốn kiểm chứng tính an toàn của các phần mềm phòng chống mã độc Từ đó có cái nhìn chính xác hơn về mã độc và cách thức để tự bảo vệ máy tính của mình

Ý nghĩa, mục đích và yêu cầu

Ý nghĩa:

 Ý nghĩa khoa học:

o Tìm hiểu tổng quan về mã độc, phân loại và cách thức lây lan mã độc

o Nghiên cứu về một số công cụ sinh mã độc tự động hiện có

o Tìm hiểu một số kỹ thuật phát hiện mã độc của các phần mềm phòng chống mã độc

o Tìm hiểu một số kỹ thuật vượt qua cơ chế phát hiện của các phần mềm phòng chống mã độc

 Ý nghĩa thực tiễn:

o Có khả năng ứng dụng trong các bài toán phát hiện và nhận dạng mã độc

o Có khả năng ứng dụng vào các lĩnh vực liên quan đến an toàn thông tin

Trang 6

Mục đích:

 Nghiên cứu tổng quan về mã độc và một số công cụ sinh mã độc tự động

 Nghiên cứu, phân tích và đưa ra các giải pháp vượt qua các phần mềm phòng chống mã độc

Yêu cầu:

 Nghiên cứu tổng quan về mã độc và một số công cụ sinh mã độc tự động

 Nghiên cứu các giải pháp vượt qua các phần mềm phòng chống mã độc

 Xây dựng chương trình thử nghiệm các giải pháp vượt qua các phần mềm phòng chống mã độc

Nội dung đề tài

Nội dung của đề tài được trình bày thành 6 phần:

Lời mở đầu

Chương 1: Tổng quan về mã độc Chương 1 trình bày khái quát về mã độc,

khái niệm, mục đích, phân loại mã độc và các hình thức lây lan của mã độc Bên cạnh đó, chương 1 cũng trình bày nghiên cứu về một số công cụ sinh mã độc tự động

Chương 2: Tổng quan về phần mềm phòng chống mã độc Chương 2 giới

thiệu về các phần mềm phòng chống mã độc, nguyên lý phát hiện mã độc và một số

kỹ thuật phát hiện mã độc được sử dụng trong các phần mềm phòng chống mã độc

Chương 3: Nghiên cứu các kỹ thuật vượt qua phần mềm phòng chống mã độc Chương 3 tập trung trình bày các kỹ thuật vượt qua các phần mềm phòng chống

mã độc đã được công bố: kỹ thuật mã hóa, kỹ thuật rẽ nhánh… Bên cạnh đó, Chương

3 cũng trình bày, phân tích và áp dụng một số kỹ thuật khác như kỹ thuật sử dụng chữ ký số, khai thác lỗ hổng trên Hệ điều hành, nhằm làm tăng hiệu quả vượt qua phần mềm phòng chống mã độc

Kết luận

Tài liệu tham khảo

Trang 7

TỔNG QUAN VỀ MÃ ĐỘC 1.1 Giới thiệu

1.1.1 Khái niệm, phân loại và mục đích của mã độc

a Khái niệm:

Mã độc là một thuật ngữ dùng để ám chỉ những phần mềm được cài đặt vào máy tính, thực hiện những nhiệm vụ không mong muốn, thường nhằm phục vụ lợi ích cho bên thứ ba nào đó

Hiện nay, mã độc không chỉ xuất hiện trong các máy tính mà còn xuất hiện trong các thiết bị điện tử, thiết bị số khác như điện thoại di động, các thiết bị điều khiển từ xa…

b Phân loại:

Mã độc ngày nay đã phát triển dưới nhiều hình thái khác nhau Mã độc không chỉ tồn tại dưới một dạng đơn thuần mà còn là sự pha trộn, lai tạo dựa nhiều dạng Dưới đây là một số loại mã độc:

Virus: loại mã độc có khả năng tự nhân bản, lây lan trực tiếp vào các tệp tin

dữ liệu của máy tính Virus có thể thay đổi hoặc xóa bỏ các tệp tin dữ liệu máy tính

Worm: khác với virus, loại mã độc này không trực tiếp vào các tệp tin dữ liệu của máy tính, không cần phải gắn vào một chương trình để thực thi hoạt động Nhưng vẫn có khả năng tạo ra bản sao để đánh cắp hoặc phá hủy dữ liệu của máy tính

Trojan: loại mã độc này không có khả năng nhân bản, được che giấu hoặc tạo một vỏ bọc an toàn của những phần mềm hợp lệ Chúng bí mật kết nối Internet, đánh cắp các thông tin máy tính, hoặc phối hợp với Backdoors để tạo ra các điều khiển máy tính, lây lan các loại mã độc khác từ xa

Rootkit: loại mã độc nguy hiểm, lây nhiễm vào máy tính ở mức thấp như hệ điều hành… nên rất khó phát hiện Chúng gần như “vô hiệu” đối với các phần mềm phát hiện mã độc

Trang 8

Keyloggers: loại mã độc gián điệp có khả năng thu thập mọi thông tin (tài khoản đăng nhập, mật khẩu, thông tin cá nhân…) khi bạn gõ bàn phím máy tính Các thông tin này sẽ được chuyển ra ngoài nhằm phục vụ việc đánh cắp thông tin

Adware: loại mã độc này hiển thị những quảng cáo không mong muốn trên màn hình của người dùng Về bản chất, các quảng cáo này chỉ gây phiền nhiễu, không gây nguy hiểm tới người dùng Nhưng chúng lại được lợi dụng để thực hiện các loại

mã độc khác

Spyware: loại mã độc gián điệp có khả năng lén lút thu thập thông tin về máy tính bị lây nhiễm như thông tin hệ thống, địa chỉ IP máy tính, các websites đã ghé thăm… và gửi các thông tin đó ra ngoài

Browser Hijacker: có khả năng sửa đổi các thiết lập trên trình duyệt máy tính như trang mặc định (Home page), thanh công cụ tìm kiếm, tạo ra các phím tắt máy tính, hiển thị quảng cáo hoặc chuyển hướng liên kết trang web…

Mobile Threats: khác với các loại mã độc trên máy tính, đây là loại mã độc mới trên các thiết bị di động Mục đích chủ yếu của loại mã độc này là theo dõi, đánh cắp thông tin của người sử dụng

c Mục đích của mã độc:

- Trò đùa giữa những người lập trình mã độc

- Khẳng định bản thân

- Học tập, nghiên cứu

- Phá hủy dữ liệu, hệ thống máy tính

- Theo dõi và đánh cắp thông tin máy tính, thông tin cá nhân người dùng…

1.1.2 Các thức lây nhiễm mã độc

- Lây nhiễm theo cách cổ điển: mã độc lây nhiễm từ máy tính này sang máy tính khác, từ thiết bị này sang thiết bị khác thông qua các phương tiện lưu trữ dữ liệu như: đĩa CD, USB flash, Ổ cứng di động…

- Lây nhiễm qua thư điện tử: mã độc được gắn vào các thư điện tử, các tệp tin đính kèm, các đường link ẩn… người sử dụng khi nhận được thư điện tử đã không kiểm tra kỹ, gián tiếp thực thi mã độc

Trang 9

- Lây nhiễm qua truy cập trang web: mã độc được gắn trên các banner, quảng cáo của các trang web, người sử dùng sẽ trực tiếp hoặc gián tiếp truy cập vào các trang web bị dính mã độc và bị lây nhiễm

- Lây nhiễm qua các phần mềm cài đặt: mã độc được đính kèm trong các phần mềm cài đăt, người sử dụng sẽ bị lây nhiễm khi thực hiện quá trình cài đặt hoặc sau khi cài đặt phần mềm Các lây nhiễm này thường dựa vào sự thiếu hiểu biết hoặc không đọc kỹ các yêu cầu cài đặt của phần mềm

- Lây nhiễm qua khai thác lỗi bảo mật: thông qua việc khai thác các lỗi bảo mật trên hệ điều hành, cấu trúc tệp tin… để cài các mã độc nên máy tính nạn nhân

1.1.3 Các loại mã độc mới và dự đoán xu hướng mã độc trong tương lai

Theo AV-Test, có đến hơn 140 triệu loại mã độc mới xuất hiện trong năm

2014, nhiều hơn hẳn so với các năm trước Bên cạnh sự vượt trội về số lượng, cũng

có thể thấy năm 2014 xuất hiện nhiều mã độc có đặc điểm khác biệt so với các mã độc trước đây Các loại mã độc mới ngày càng được thiết kế tinh vi hơn, đặc biệt các

mã độc được thiết kế cho mục đích tấn công có chủ đích nhằm vào cá nhân hoặc các

tổ chức lớn

Hình 1.1.1: Thống kê các loại mã độc mới xuất hiện theo năm

Trang 10

Dự đoán trong những năm tới xu hướng phát triển của mã độc sẽ tiếp tục xuất hiện các phần mềm gián điệp tinh vi nhằm vào hạ tầng trọng yếu của các quốc gia để đánh cắp và phá huỷ Các mã độc trên di động tiếp tục tăng nhanh và sẽ xuất hiện nhiều biến thể phần mềm mã hoá tống tiền (ransomware) trên di động Quyền riêng

tư của người sử dụng tiếp tục là vấn đề nóng đặc biệt là trên các hãng sản xuất thiết

bị di động hoặc các ứng dụng di động Có thể xuất hiện nhiều vụ lọ lọt dữ liệu của người sử dụng tương tự như vụ các diễn viên nổi tiếng bị lộ ảnh nóng trên iCloud Các dịch vụ lưu trữ dữ liệu đám mây gặp phải sự nghi ngại của người sử dụng do vấn đề đảm bảo an toàn Mạng xã hội như Facebook sẽ trở thành con đường chủ yếu

để những kẻ lừa đảo hoạt động Các cuộc tấn công mạng mang màu sắc chính trị gia tăng giữa nhóm hacker của các quốc gia Hacker tiếp tục nhằm vào các giao thức mạng hoặc thư viện quan trọng với hy vọng tìm ra những lỗ hổng tương tự Heartbleed hay Shellshock Doanh nghiệp đối đầu với các cuộc tấn công đánh cắp dữ liệu ngày càng tinh vi Đặc biệt là các tổ chức tài chính và cung cấp dịch vụ internet

1.2 Các công cụ sinh mã độc tự động

1.2.1 Hướng tiếp cận

Để tiến hành nghiên cứu các công cụ sinh mã độc tự động, nhóm nghiên cứu

sử dụng kỹ thuật Dịch ngược để nghiên cứu cách thức hoạt động của công cụ

Chuẩn bị:

- Máy ảo và Sanboxie để thực thi chương trình

- Một số công cụ sinh mã độc tự động: JPS (Virus Maker 3.0), TeraBIT Virus Maker 3.2

- Công cụ Dịch ngược: IDA Pro, Ollydbg

- Các công cụ khác: CFF Explorer, Exeinfo PE…

Mục đích:

Mục đích của việc nghiên cứu là tìm ra phương pháp tự động sinh mã độc, từ

đó có thể xây dựng chương trình tự động sinh hoặc tìm hiểu đặc trưng của các loại

mã độc được sinh tự động để có thể phát hiện và phòng chống

Trang 11

1.2.2 JPS (Virus Maker 3.0)

Thông tin về chương trình:

Hình 1.2.1: Thông tin về chương trình JPS (Virus Macker 3.0)

Chương trình JPS (Virus Maker 3.0) có giao diện như hình dưới đây:

Hình 1.2.2: Giao diện của chương trình JPS (Virus Maker 3.0)

Trang 12

Sau khi lựa chọn thử các chức năng, bấm “Create Virus!” Ta nhận được một tệp tin “SENDER.EXE” như hình dưới đây

Hình 1.2.3: Mã độc được tạo ra từ chương trình

Sử dụng công cụ ExeInfoPE để kiểm tra tệp tin mới được tạo ra Kết quả cho thấy, tệp tin được nén bằng chương trình UPX

Hình 1.2.4: Sử dụng Exeinfor PE để xác định trình bảo vệ của mã độc

Tệp tin thực thi đã được nén bằng một trình nén UPX nhưng được người sử dụng chỉnh sửa Vậy nên, không thể giải nén bằng các công cụ tự động Do vậy, ta

sẽ debug các hàm trong mẫu mã độc được sinh ra để xem xét một số chức năng

Trong hình dưới đây, mã độc tiến hành kiểm tra có thực hiện việc chọn (đánh dấu) vào chức năng đổi mật khẩu Windows hay không, nếu có sẽ thực hiện đổi mật khẩu của người dùng trên Windows Bằng cách sử dụng lệnh “net user” bằng lệnh WinExec

Trang 13

Hình 1.2.5: Lệnh “net user” được thực thi trong mã độc

Dưới đây là chức năng tự động sao chép với thời gian định trước, mã độc sử dụng hàm User32.SetTimer với tham số truyển vào là 60000ms, sau mỗi lần lại tiến hành copy tệp tin tới một thư mục gần vị trí của nó bằng hàm Explorer.00459F4

Hình 1.2.6: Cứ sau 1 phút mã độc lại tự sao chép chính nó tới vị trí khác

Các chức năng của mã độc được sinh ra thực hiện đúng như mong đợi Phân tích chương trình sinh ta có được

Trang 14

Hình 1.2.7: Resource data trong chương trình JPS

Các resource trong chương trình này tương ứng là các tệp tin PE với đầy đủ các chức năng, nhưng khác nhau đối tượng ICO – được định nghĩa là biểu tượng của chương trình mã độc được sinh ra Có thể là tệp tin PDF, tệp tin nén ZIP

Phân tích chương trình sinh mã độc bằng IDA pro Chương trình được thực hiện như sau:

Trang 15

Hình 1.2.8: Các bước thực thi của chương trình chính

- Đầu tiên, nạp dữ liệu tệp tin nhị phân từ resource của chương trình vào trong

bộ nhớ

- Nạp dữ liệu về địa chỉ offset của tệp tin nhị phân về các chức năng được chọn

- Tiến hành sửa đổi các byte code trong tệp tin nhị phân trên bộ nhớ

- Xuất ra tệp tin mã độc

Trang 16

Mô tả thuật toán như sau:

1.2.3 TeraBIT Virus Maker 3.2

Giao diện chính của chương trình:

Hình 1.2.9: Giao diện của chương trình TeraBIT virus macker 3.1

Lựa chọn các “chức năng” của virus sau đó “Creat Virus” Kiểm tra chương trình được viết bằng ngôn ngữ, cũng như trình biên dịch hay trình bảo vệ bằng Exeinfo PE

Trang 17

Chương trình được viết bằng MS Visual Basic 6.0 Và không được pack hay protect bằng các trình bảo vệ khác Tiến hành dịch ngược để có được các đoạn mã của chương trình

Hình 1.2.10: Mã độc được viết bằng MS Visual Basic

Ta sử dụng “VB Decompiler Pro” – đây là một công cụ chuyên nghiệp trong việc dịch ngược lại mã của các chương trình được viết bằng MS Visual Basic 6.0

Về cơ bản, nguyên lý hoạt động của TeraBIT Virus Maker 3.2 tương tự như của JPS (Virus maker 3.0) và cũng thực hiện các bước làm tương tự

Với mỗi lựa chọn được đánh dấu tại giao diện của chương trình, dữ liệu địa chỉ bycode sẽ được nạp và thay đổi

Hình 1.2.11: So sánh resource trong tệp tin trước và sau khi patch

 Tệp tin A: là tệp tin được tạo ra với đầy đủ các chức năng

 Tệp tin B: là resource trong chương trình

Trang 18

Hai tệp tin này chỉ khác nhau một số byte trong chương trình và PE header, dữ liệu về biểu tượng hiển thị (phần dưới cùng) Chứng tỏ resource đã bị chỉnh sửa theo phương pháp đã trình bày ở trên để sinh ra được mã độc có thể thực thi

1.2.4 Kết quả

Hầu hết các công cụ tự động sinh mã độc được nghiên cứu đều sử dụng phương pháp sinh mã độc như sau:

Bước 1: Tạo ra một mã độc có đầy đủ các chức năng

Bước 2: Xây dựng một công cụ Patcher để sửa đổi một số byte code trong tệp tin nhị phân của mã độc tương ứng với mỗi lựa chọn chức năng hay cấu hình cài đặt của mã độc được sinh ra

Hình 1.2.12: Mô tả quá trình patch

Bước 3: Ghi tệp tin mã độc được sinh ra bằng Patcher

Trang 19

TỔNG QUAN VỀ PHẦN MỀM PHÒNG CHỐNG MÃ ĐỘC 2.1 Giới thiệu

Hầu hết các loại mã độc đã xuất hiện trên thế giới từ những năm 1980 hoặc thậm chí là sớm hơn Cùng với đó là những mục đích khác nhau khi mã độc được tạo ra Thế nhưng mãi đến năm 1987, hai tiện ích phòng chống virus đầu tiên được

ra đời là: Flushot Plus và Anti4us Trong khoảng từ năm 1987 đến năm 1989, một nhóm với tên gọi “Virus-L” đã chia sẻ các thông tin về vấn để bảo mật thông tin, các công cụ, cách thức giúp hạn chế sự lây nhiễm của virus Cá nhân đầu tiên đã sử dụng những thông tin này vào việc kinh doanh các sản phẩm phòng chống sự lây nhiễm virus là John McAfee Tiếp sau đó là các hãng phần mềm Kaspersky và Norton ra đời, mở ra cánh cửa mới cho ngành công nghệ sản xuất phầm mềm phòng chống sự lây lan của virus, mà nay có tên gọi là các phần mềm phòng chống mã độc

Các phần mềm phòng chống mã độc (Antivirus Software) phổ biến tại Việt Nam năm 2014:

- Kaspersky Antivirus Software

- Avast Antivirus Software

- Bitdefender Antivirus Software

- Norton Antivirus Software

- Antivirus Guard Software (AVG)

- Bach Khoa Antivirus (Bkav)

- CMC Antivirus Software

Các sản phẩm Antivirus chiếm thị phần nhiều nhất trên thế giới theo báo cáo thống kê tháng 1/2015 của OPSWAT – là một công ty phần mềm chuyên cung cấp các kỹ sư, các công cụ và dịch vụ phát triển phần mềm bảo mật)

Trang 20

Hình 2.1.1: Thị phần các sản phẩm Antivirus 1/2015 theo OPSWAT

2.2 Nguyên lý phát hiện mã độc

Hình 2.2.1: Sự phân chia về các kỹ thuật phát hiện mã độc

Như vậy, có thể thấy các kỹ thuật phát hiện mã độc được chia thành 2 nhóm chính là:

- Signature-based: dựa vào dấu hiệu đặc trưng

- Anomaly-based: dựa vào các điểm bất thường

Các kỹ thuật phân tích được sử dụng trong các kỹ thuật phát hiện mã độc là:

- Stactic: phân tích tĩnh

- Dynamic: phân tích động

- Hybrid: phân tích lai, là sử kết hợp giữa phân tích động và tĩnh

Trang 21

2.2.1 Phát hiện mã độc dựa vào dấu hiệu đặc trưng

Là việc sử dụng một tập các mẫu nhận dạng được gọi là signature để làm căn

cứ xác định mã độc Tập các signature sẽ được xây dựng bằng việc cập nhật các mẫu

mã độc đã được kiểm chứng, bằng việc sử dụng những mẫu được xây dựng chuyên biệt bởi các nhà nghiên cứu

Ưu thế:

- Phát hiện chính xác các mã độc nếu như có các signature trùng khớp với các mẫu trong tập mẫu nhận dạng

Hạn chế:

- Vậy xây dựng tập các signature hoàn chỉnh là vô cùng khó khăn

- Tập mẫu nhận dạng sẽ chạy theo sau sự phát triển của mã độc, và sẽ không phát hiện được các mã độc mới, các zero-days

- Khi số lượng signature lớn thì việc lưu trữ và đối chiếu cũng sẽ gặp khó khăn

Hình 2.2.2: Việc xây dựng tập signature hoàn chỉnh là vô cùng khó khăn

Dynamic

Xác định chính xác mã độc bằng việc chỉ sử dụng các thông tin thu thập được từ các chương trình có quyền kiểm tra (Program Under Inspection – PUI) và được đối chiếu với các tập mẫu

Trang 22

Static

Bằng cách kiểm tra chương trình dưới các mã, các đoạn code hoặc kiểm tra hành vi bằng các chuỗi mã Từ đó đối chiếu với tập mẫu để phân loại chương trình có chứa mã độc hay có phải là mã độc hay không

Điều này giúp việc xác định mã độc có xác suất rất cao, gần như là tuyệt đối mà không cần thực thi chương trình

Bù lại, cách thức này mất nhiều công sức, thời gian

Hybrid Cách thức xác định sử dụng cả 2 hình thức Dynamic và

Static

2.2.2 Phát hiện mã độc dựa vào đặc điểm bất thường

Cách phát hiện dựa vào các điểm bất thường được chia thành 2 giai đoạn:

- Giai đoạn Training  Learning: các detector sẽ cố gắng học những trạng thái bình thường Có thể học các trạng thái từ các host, PUI…

- Giai đoạn Detection  Monitoring: dựa vào các trạng thái bình thường đã được học, các detector sẽ xác định được trạng thái bất thường và đưa ra cảnh báo

Hình 2.2.3: Phân loại hành vi trong kỹ thuật Anomaly-based Detection

Ưu điểm:

- Là chìa khóa để có thể phát hiện ra các khai thác zero-day hay zero-attack

Trang 23

Hạn chế:

- Sai số giữa trạng thái bình thường và bất thường

- Sự phức tạp, rắc rối khi xác định những trạng thái được phép học

Static

Các đặc trưng về cấu trúc tệp tin của chương trình sẽ được dùng để kiểm tra và xác định có phải là mã độc hay không Đặc điểm nổi bật của cách này là có thể phát hiện mã độc nhưng không cho chương trình mã độc thực thi

Hybrid

Sử dụng một môi trường giả lập có cấu trúc giống với máy thật, có thể gọi đó là máy ảo để sử dụng phối hợp 2 kỹ thuật phân tích trên mà không làm ảnh hưởng đến máy thật

cơ sở dữ liệu của chương trình Antivirus Khi Antivirus quét tập tin để kiểm tra, nếu trùng mã hash trong cơ sở dữ liệu mẫu, thì đó là mã độc Ngược lại là không

Trang 24

Hình 2.3.1: Tệp chứa mã độc được quét trên trang virustotal.com

Ưu điểm:

- Độ chính xác gần như tuyệt đối

Nhược điểm:

- Nhận dạng thiếu Quá trình nhận dạng lâu nếu cơ sở dữ liệu mẫu lớn

- Quá trình xây dựng cơ sở dữ liệu mẫu khó khăn, phức tạp Mã độc có thể dễ dàng vượt qua nếu nhận dạng bằng mã hash

mã hash “họ hàng”, nâng cao khả năng phát hiện chương trình mã độc

Fuzzy hashing = Context Triggered Piecewise Hashing (CTPH)

= Piecewise hashing + Rolling hashing

Trang 25

Hình 2.3.2: Cách tính toán giá trị hash với mỗi khối 3 ký tự

Khi Rolling Hash tạo ra giá trị cụ thể cho từng vị trí, nó sẽ tính toán giá trị hash mã hóa của từng khối đoan tin từ điểm bắt đó cho đến vị trí đã xác định Tiếp

đó là tạo ra mã hash cho toàn bộ đoạn tin bằng cách ghép từng mã hash của từng khối đoạn tin Ngoài những đoạn tin giống nhau có mã hash giống nhau, còn có thể xác định những đoạn tin tương tự nhau

Hình 2.3.3: Mô tả sau khi tiến hành Rolling hash

Ưu điểm:

- Cải thiện tính bị động của kỹ thuật Checksummer sử dụng mã hash đơn thuần

Trang 26

- Nâng cao khả năng phát hiện mã độc với cơ sở dữ liệu mẫu bị hạn chế

Nhược điểm:

- Việc xây dựng thuật toán và lựa chọn độ dài ký tự phù hợp là khó khăn

- Có thể xảy ra cảnh bảo giả (cảnh báo sai)

2.3.3 Scan String

Scan string là cách đơn giản để phát hiện mã độc Kỹ thuật này sử dụng một chuỗi trích ngang (chuỗi bytes) là đặc trưng của tập tin mã độc và không tồn tại trong các tập tin sạch Các chuỗi này sẽ được cập nhật vào cơ sở dữ liệu mẫu dùng để nhận dạng mã độc

Hình 2.3.4: Một đoạn mã của virus Stoned khi được phân tích

Ví dụ với virus Stoned, dấu hiệu nhận dạng là 16 bytes opcode 0400 B801 020E 07BB 0002 33C9 8BD1 419C (đã được công bố trong tạp chí Virus Bulletin)

Ưu điểm:

- Nhận dạng chính xác

- Tốc độ nhận dạng nhanh hơn so với kỹ thuật Checksummers

Nhược điểm:

- Quá trình xây dựng và cập nhật cơ sở dữ liệu phức tạp

- Nhận dạng bị động, không phát hiện được khi mã chương trình bị thay đổi

Trang 27

2.3.4 Code Emulation

Code Emulation là một kỹ thuật phát hiện mã độc được đánh giá cao Bằng việc mô phỏng lại hệ thống CPU, hệ thống quản lý bộ nhớ, các chỉ thị máy ở cấp thấp… giống như máy quét thực tế Vì vậy, mã độc sẽ hoạt động trên máy ảo mà không ảnh hưởng đến bộ xử lý thật

Hình 2.3.5: Cấu trúc của thanh ghi và cờ CPU Intel 16bit được định nghĩa lại bằng

ngôn ngữ C

Hiện nay, kỹ thuật này được sử dụng kết hợp rộng rãi với các kỹ thuật phân tích khác Cùng với đó, kỹ thuật này đã trở thành một thành phần quan trọng trong công nghệ Sandbox để phát hiện mã độc

Ưu điểm:

- Mã độc hoạt động độc lập, không ảnh hưởng đến hệ thống máy thật

Nhược điểm:

- Mô phỏng lại các thông tin hệ thống CPU, bộ nhớ… là rất khó khăn

- Cập nhật và vận hành hệ thống mô phỏng yêu cầu tính kỹ thuật cao

Trang 28

2.3.5 Static Heuristic Analysis

Static Heuristic analysis là kỹ thuật thuộc nhóm Anomaly-based detection Kỹ thuật này phân tích, tính toán những thông tin từ chương trình như: PE Header, Section, các hàm API được Import… hay những dấu hiệu đáng nghi ngờ như: kích thước của một số trường không chính xác, mã điều hướng, tổ hợp các Flag…

Hình 2.3.6: Kỹ thuật Heuristic nhận dạng một số virus thực tế

Một nổi bật của kỹ thuật này là ứng dụng trong việc sử dụng trí tuệ nhân tạo trong việc phát hiện các loại mã độc Việc thu thập các đặc trưng của mã độc (feature), sau đó tính toán và đưa ra các ngưỡng lây nhiễm (threshold infected) để làm căn cứ phát hiện mã độc

Trang 29

Ưu điểm:

- Chủ động trong việc xây dựng cơ sở dữ liệu mẫu

- Nâng cao khả năng nhận dạng mã độc (bao gồm cả những loại mã độc chưa

có trong cơ sở dữ liệu mẫu)

Behavior Blocking là kỹ thuật cho phép ngăn chặn các hành vi, các khối lệnh

bị nghi ngờ là mã độc trước khi chúng có cơ hội ảnh hưởng đến hệ thống Các hành

vi bị giám sát bao gồm:

- Những nỗ lực mở, xem, sửa đổi hoặc xóa bỏ các tệp tin

- Những nỗ lực fomat ổ đĩa hay vùng hoạt động không thể khôi phục khác

- Sửa đổi các thiết lập của tệp tin thực thi và hệ thống như: thiết lập khởi động…

Hình 2.3.8: Một khối ngăn chặn hành vi lừa đảo trên DOS

Trang 30

Hệ thống phát hiện và ngăn chặn mã độc sử dụng kỹ thuật này được chia thành

2 loại là: hệ thống ngăn chặn dựa trên các chính sách và hệ thống ngăn chặn dựa trên các giám định

Ưu điểm:

- Có khả năng ngăn chặn sự ảnh hưởng của chương trình mã độc lên hệ thống

- Tùy theo năng lực phân tích để tùy chỉnh ảnh hưởng của mã độc

Nhược điểm:

- Yêu cầu người (hệ thống) phân tích phải có tính chuyên môn cao

- Có thể xảy ra cảnh báo giả (cảnh báo sai)

Trang 31

NGHIÊN CỨU CÁC KỸ THUẬT VƯỢT QUA PHẦN MỀM PHÒNG CHỐNG MÃ ĐỘC

3.1 Cấu trúc tệp tin thực thi trên Hệ điều hành Windows 32bit

Sự hiểu biết cơ bản về định dạng tệp tin thực thi là rất quan trọng cho quá trình phân tích mã độc hại hoặc viết ra một chương trình virus lây nhiễm tệp tin PE

PE File Format (Portable Executable File Format): là định dạng tệp tin của Windows 32bit và Windows 64bit Nhóm nghiên cứu sẽ tập trung tìm hiểu về tệp tin

PE trong Hệ điều hành Windows 32bit Tất cả các tệp tin có thể thực thi được trên Windows 32bit như: *.EXE, *.DLL (32 bit),*.COM,*.NET, *.CPL,… đều là định dạng PE; ngoại trừ các tập tin VxDs và *.DLL (16 bit)

Cấu trúc của một PE Tệp tin:

Hình 3.1.1: Minh họa cấu trúc cơ bản của một PE Tệp tin

Trang 32

a DOS MZ Header:

DOS MZ header (Hay DOS HEADER) là vùng bắt đầu của tệp tin PE, chiếm giữ 64 bytes đầu tiên

Hình 3.1.2: Một tệp tin PE được mở bằng công cụ FileInSight của McAfee

DOS Header là một cấu trúc được định nghĩa trong tệp tin windows.inc hoặc winnt.h DOS HEADER bao gồm 19 thành phần Trong đó có 2 thành phần đáng chú ý:

- e_magic: chứa ký tự

nhận biết DOS Header

hợp lệ (MZ) Mang giá

trị 2 bytes (WORD)

- e_lfanew: chứa địa chỉ

offset của PE Header

(điểm bắt đầu của PE

Header) Mang giá trị 4

bytes (DWORD)

Trang 33

b DOS STUB:

DOS Stub chỉ là một chương trình DOS EXE nhỏ hiển thị một thông báo lỗi,

là phần để tương thích với Windows 16bit Ví dụ như trong hình minh họa dưới đây, thông báo sẽ hiện ra như sau: “This is program cannot be run in DOS mode”

Trang 34

Hình 3.1.4: Hình ảnh PE header của tệp tin test.exe

Trong đó:

- Signature: dấu hiệu nhận biết định dạng tệp tin (4 bytes)

• (PE : 50 45 00 00 – 32 bits)

• (NE : 4E 45 00 00 – 16 bits)

• (LE : 4C 45 00 00 – trình điều khiển thiết bị ảo Window 3.x)

• (LX : 45 58 00 00 – tệp tin cho OS/2 2.0 )

- File Header: chứa thông tin về sơ đồ bố trí vật lý và những đặc tính của tệp tin (20 bytes)

- Optional Header: chứa thông tin về sơ đồ logic bên trong của một tệp tin PE (224 bytes)

Trang 35

SizeOfOptionalHeader WORD

Characteristics WORD

};

Cấu trúc File Header

Trong cấu trúc File Header, một số thành phần cần quan tâm hơn cả đó là:

- Machine: giá trị xác định tệp tin PE này được biên dịch cho dòng máy nào (dưới dạng mã trên Intel 32 bits)

- NumberOfSections: cho biết số Section của tệp tin PE Thành phần này cần thay đổi nếu muốn thêm hoặc xóa bất kỳ sections nào trong một tệp tin PE

- Characteristics: là bit cờ, xác định định dạng tệp tin PE

- Giá trị 0x0102 nếu là tệp tin *.EXE

- Giá trị 0x2102 nếu là tệp tin *.DLL

Trang 36

Trong đó, các thành phần được mô tả như sau:

- Magic (2 bytes): xác định là tệp tin 32 bit (0B 01) hay 64 bit (0B 20)

- AddressOfEntryPoint (4bytes): chứa địa chỉ ảo tương đối (RVA) của câu lệnh đầu tiên sẽ được thực thi khi chương trình PE loader sẵn sàng để chạy tệp tin

PE (.text hoặc code)

- ImageBase: địa chỉ nạp được ưu tiên cho tệp tin PE

- Section Alignment: phần liên kết của các Section trong bộ nhớ

- Tệp tin Alignment: phần liên kết của các Section trong tệp tin

- SizeOfImage: toàn bộ kích thước của PE image trong bộ nhớ, là tổng của tất

cả các headers và sections được liên kết tới Section Alignment

- SizeOfHeaders: kích thước của tất cả các headers + section table

- Data Directory: là một mảng gồm 16 phần tử, trong đó mỗi phần liên quan đến một cấu trúc dữ liệu quan trọng trong PE tệp tin

Ngày đăng: 25/04/2016, 00:39

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] Joshua Tully, "Introduction into Windows Anti-Debugging", 9/2008 [3] Joshua Tully, "An Anti-Reverse Engineering Guide", 11/2008 Sách, tạp chí
Tiêu đề: Introduction into Windows Anti-Debugging", 9/2008 [3] Joshua Tully, "An Anti-Reverse Engineering Guide
[1] Aditya P. Mathur and Nwokedi Idika, "A Survey of Malware Detection Techniques&#34 Khác
[4] Mark Vincent Yason, "The Art of Unpacking&#34 Khác
[5] Michael Sikorski and Andrew Honig, "Praise for Practical Malware Analysis&#34 Khác
[6] Moritz Jodeit, "Exploiting CVE-2014-4113 on Windows 8.1&#34 Khác
[7] N. Rin, "VMDE - Virtual Machines Detection Enhanced&#34 Khác
[8] Peter Szor, "The Art of Computer Virus Research and Defense&#34 Khác
[9] Philippe Beaucamps, "Advanced Metamorphic Techniques in Computer Viruses&#34 Khác
[10] Richard Ford, "The future of virus detection&#34 Khác
[11] Ronnie Johndas, "Analysis of CVE-2014-4113&#34 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.2.5: Lệnh “net user” được thực thi trong mã độc - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 1.2.5 Lệnh “net user” được thực thi trong mã độc (Trang 13)
Hình 1.2.7: Resource data trong chương trình JPS - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 1.2.7 Resource data trong chương trình JPS (Trang 14)
Hình 1.2.8: Các bước thực thi của chương trình chính - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 1.2.8 Các bước thực thi của chương trình chính (Trang 15)
Hình 1.2.12: Mô tả quá trình patch - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 1.2.12 Mô tả quá trình patch (Trang 18)
Hình 2.3.3: Mô tả sau khi tiến hành Rolling hash - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 2.3.3 Mô tả sau khi tiến hành Rolling hash (Trang 25)
Hình 2.3.8: Một khối ngăn chặn hành vi lừa đảo trên DOS - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 2.3.8 Một khối ngăn chặn hành vi lừa đảo trên DOS (Trang 29)
Hình 3.1.4: Hình ảnh PE header của tệp tin test.exe - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 3.1.4 Hình ảnh PE header của tệp tin test.exe (Trang 34)
Hình 3.1.5: Vị trí các thành phần của PE Header trong tệp tin test.exe - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 3.1.5 Vị trí các thành phần của PE Header trong tệp tin test.exe (Trang 37)
Hình 3.1.8: Các thành phần của Data Directory - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 3.1.8 Các thành phần của Data Directory (Trang 39)
Hình 3.1.11: Trường hợp module export theo cả 2 cách - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 3.1.11 Trường hợp module export theo cả 2 cách (Trang 46)
Hình 3.2.8: Chữ ký số trên tệp tin cài đặt phần mềm BKAV. - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 3.2.8 Chữ ký số trên tệp tin cài đặt phần mềm BKAV (Trang 64)
Hình 3.2.9: Mã độc giả mạo chữ ký số giả. - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 3.2.9 Mã độc giả mạo chữ ký số giả (Trang 65)
Hình 3.2.10: Sự lây lan của Stuxnet. - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 3.2.10 Sự lây lan của Stuxnet (Trang 66)
Hình 3.3.6: Thực thi chương trình bị nhiễm. - Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm phòng chống mã độc
Hình 3.3.6 Thực thi chương trình bị nhiễm (Trang 69)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w