Tải bản đầy đủ (.pdf) (73 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.53 MB, 73 trang )

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
1


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

2


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
3


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
Viết đầy đủ

Viết tắt
AV

Antivirus

PE

Portable Executable

API

Application Programming Interface

4



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
5


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

6


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.

7


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.
8


- 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.
9



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.


10


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)
11


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.


12


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.

13


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:

14


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.

15


Mô tả thuật toán như sau:
Begin;
Read(resource);
Read(AddressByteCode)
Patch(AddressByteCode);
ChoseIcon();
WriteFile();
End;
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.

16


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.
17


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.

18



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)

19



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.
20


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
Kỹ thuật

Nội dung

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.
21


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.
22


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
Kỹ thuật

Nội dung

Dynamic

Các thông tin thu được từ việc thực thi chương trình sẽ được
sử dụng để phát hiện mã độc.
Ở giai đoạn Detection, các detector thực hiện liên tục việc
đối chiếu giữa các trạng thái mới với các trạng thái đã học
được. Và giai đoạn Detection được triển khai trong suốt quá
trình chương trình được thực thi.

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.

2.3. Các kỹ thuật phát hiện mã độc
2.3.1. Checksummers
Về cơ bản, Checksummers là kỹ thuật phát hiện đối tượng mã độc trên cơ sở
tính toàn vẹn của chương trình. Mỗi chương trình sau khi được xác định chắc chắn
là mã độc sẽ được sử dụng để tạo ra mẫu mã hash (MD5, SHA, CRC…) tương ứng
với loại mã độc đó. Do tính chất của mã hash nên một loại mã độc chỉ tương ứng với
một mã hash nhận dạng (Xác suất trùng lặp là rất thấp). Sau đó, cập nhật mẫu đó vào
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.

23


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.
2.3.2. Fuzzy Hashing
Để cải tiến nhược điểm dựa vào mã hash của kỹ thuật Checksummers, các nhà
khoa học đã tìm ra một kỹ thuật khác có tên là Fuzzy Hashing. Kỹ thuật mới này về
cơ bản vẫn là nhận dạng chương trình mã độc qua mã hash nhưng đã được bổ sung
thêm các phân tích và tính toán để từ một mã hash của mã độc, có thể nhận ra các
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

24


Trong đó:
- Piecewise Hashing: chia nhỏ đoạn tin thành N khối và tính toán giá trị hash
cho từng khối tin.
- Rolling Hash: là một phương pháp tính giá trị hash cho mỗi khối tin một cách
nhanh chóng

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.
25


×