Tải bản đầy đủ (.docx) (25 trang)

Nghiên cứu các phương pháp vượt phần mềm 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 (991.6 KB, 25 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG CAO ĐẲNG CÔNG THƯƠNG TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỀ TÀI

NGHIÊN CỨU CÁC KỸ THUẬT VƯỢT QUA
PHẦN MỀM CHỐNG MÃ ĐỘC
Giảng viên hướng dẫn:
Thực hiện:

ThS. Nguyễn Minh Trường
PHAN HỒNG LĨNH
2118110036 - CCQ1811A

TP. Hồ Chí Minh – Tháng 07/2020


2


LỜI CẢM ƠN
Để hoàn thành đề tài lời đầu tiên em xin chân thành cảm ơn đến toàn thể thầy cơ
trong trường Cao đẳng Cơng thương Tp.Hồ Chí Minh nói chung và các thầy cô trong
ngành công nghệ thông tin nói riêng, những người đã tận tình hướng dẫn, dạy dỗ và
trang bị cho em những kiến thức bổ ích trong śt q trình em học tại trường.
Đặc biệt em xin chân thành gửi lời cảm ơn sâu sắc đến giảng viên ThS. Nguyễn
Minh trường, người đã tận tình hướng dẫn, trực tiếp chỉ bảo và tạo mọi điều kiện giúp
đỡ em trong śt q trình làm đề tài.
Sau cùng em xin gửi lời cảm ơn tới gia đình, bạn bè, anh chị đóng góp ý kiến
trong q trình học tập, nghiên cứu cũng như quá trình làm đề tài.


Em xin chân thành cảm ơn!

3


MỤC LỤC

4


DANH MỤC CÁC HÌNH

Chương 1:
1.1.

MỞ ĐẦU

Lý do chọn đề tài

Trong thời đại 4.0, sức mạnh của công nghệ ngày càng lớn và càng tiến bộ hơn,
việc bảo mật thông tin, dữ liệu, … trên internet là điều vô cùng cần thiết. Bởi vì lượng
lớn thơng tin và dữ liệu đó nếu mà bị đánh cắp sẽ gây ra thiệt hại vô cùng lớn, ảnh
hưởng rất nhiều không chỉ cả nhân mà còn ảnh hưởng đến cả các tổ chức, tập đồn,
cơng ty lớn, hay thậm chí là cả mợt q́c gia. Vì vậy em chọn đề tài này để tìm hiểu
các cách mà các hacker thường sử dụng để vượt qua phần mềm phòng chớng mã đợc,
từ đó tìm ra cách phòng chớng để tạo sự an tồn thơng tin cho cá nhân hay cợng đồng.

1.2.

Mục đích


Tìm ra các phương pháp vượt qua các phần mềm chống mã độc, virus hiện có, hoặc
tìm ra các phương pháp mới để từ đó tìm ra các hướng giải quyết, chớng lại các
phương pháp đó.

1.3.

Đối tượng và phạm vi

Vì thời gian tìm hiểu khơng nhiều và bản thân khả năng cũng có hạn, nên đới tượng
em tìm hiểu lần này là các phương pháp đã được giới thiệu trên internet với phạm vi
nhỏ, chủ yếu tấn công vào cá nhân sử dụng phần mềm chống mã độc phổ biến như
kaspersky, avast,…

5


Chương 2:

CƠ SỞ LÝ THUYẾT

2.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 của người dùng, thường nhằm
phục vụ lợi ích cho bên thứ ba nào đó.
b. Phân loại
Virus, Worm, Trojan, Rootkit, Keylogger, Addware, Spyware, Browser Hijacker,
Mobile Threats,…
c. Mục đích



Trị đùa hoặc khẳng định bản thân



Học tập và 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

2.2. Cách thức lây nhiễm


Lây nhiễm theo cách cổ điển.



Lây nhiễm qua thư điện tử.



Lây nhiễm qua truy cập trang web.




Lây nhiễm qua các phần mềm cài đặt.



Lây nhiễm qua khai thác lỗi bảo mật.



Qua nhiều con đường khác,...

6


Hình 1.Minh họa cách thức lây nhiễm mã độc qua thư điện tử

Hình 2.Sự xuất hiện của các loại mã độc mới theo từng năm. – Thống kê của AV-TEST.

7


Hình 3.Việt Nam đứng thứ 2 về lượng lây nhiễm mã độc tấn công các giao dịch ngân hàng
trực tuyến (2013) - Theo TrendMicro.

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


Mã đợc sẽ tiếp nhằm vào hạ tầng trọng yếu của các quốc gia để đánh cắp và
phá huỷ dữ liệu.




Các mã đợc trên di động tăng nhanh và xuất hiện nhiều biến thể phần mềm mã
hố tớng tiền (ransomware) trên di đợng.



Qùn riêng tư của người sử dụng tiếp tục là mục tiêu của hacker.



Các dịch vụ lưu trữ dữ liệu đám mây sẽ gặp nhiều vấn đề về an ninh.



Mạng xã hội như Facebook sẽ trở thành con đường chủ yếu để kẻ lừa đảo hoạt
đợng.



Các c̣c tấn cơng mạng mang màu sắc chính trị gia tăng giữa hacker của các
q́c gia.



Doanh nghiệp đới đầu với các c̣c tấn cơng đánh cắp dữ liệu ngày càng tinh vi
(APT).

8



2.4. Các công cụ - kỹ thuật sinh mã độc tự động.

Hình 4.JPS (Virus Maker 3.0)

Hình 5.TeraBIT Virus Maker 3.1

9


Hình 6.Sonic Bat

10


Chương 3:
3.1.

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

Cấu trúc tệp tin thực thi

PE File Format (Portable Executable File Format): là định dạng tệp tin thực thi trên
Hệ điều hành Windows 32bit và Windows 64bit. Bao gồm các file .exe, .dll
(32bit), .com, .net,… ngoại trừ các file VxDs và .dll (16bit).
Cấu trúc một tệp tin thực thi bao gồm:

3.2.




DOS MZ Header



DOS Stub



PE Header



Section Table



Section

Cấu trúc PE Header
 Signature: dấu hiệu nhận biết định dạng File (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 – File 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 file
(20 bytes)
 Optional Header: chứa thông tin về sơ đồ logic bên trong của một file PE
(224 bytes)
Trong cấu trúc File Header, mợt sớ thành phần cần lưu ý đó là:
 Machine: giá trị xác định PE File 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 PE File. Thành phần này cần thay
đổi nếu như ḿn thêm hoặc xóa bất kỳ sections nào trong một PE File.
 Characteristics: là bit cờ, xác định định dạng PE File.
Giá trị 0x0102 nếu là file *.EXE
11


Giá trị 0x2102 nếu là file *.DLL
Optional Header bao gồm 31 thành phần, chiếm 224 bytes.
Trong đó, các thành phần lưu ý được mơ tả như sau:


Magic (2 bytes)




AddressOfEntryPoint (4 bytes): 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 (4 bytes)



Section Alignment (4 bytes)
nhớ



File Alignment (4 bytes) : phần liên kết của các Section trong tệp tin



SizeOfImage (4 bytes)
là tổng của tất cả các
tới Section Alignment



SizeOfHeaders (4 bytes) : 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.

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

: địa chỉ nạp được ưu tiên cho tệp tin PE.
: phần liên kết của các Section trong bộ

: tồn bộ kích thước của PE image trong bộ nhớ,
headers và sections được liên kết

Section Table chứa thơng tin về mỗi Section.


VirtualSize: là kích thước của section’s data được tính theo bytes



VirtualAddress: hay gọi là RVA (địa chỉ ảo tương đối) của section.



SizeOfRawData: kích thước của section’s data trong tệp tin trên đĩa




PointToRawData: là offset từ vị trí bắt đầu của tệp tin cho tới phần section’s
data.



Characteristics: bao gồm các cờ, cho biết thuộc tính của section.

Sections chứa nợi dung chính của tệp tin
Mợt sớ Sections thông dụng: .text, .data (.rdata, .bss), .rsrc, .edata, .idata,
.debug, .reloc

12


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

Kỹ thuật mã hóa

Là mợt cách thức phù hợp và hiệu quả, vừa làm thay đổi dấu hiệu đặc trưng của mã
đợc, vừa gây khó trong việc phân tích hoạt đợng của mã đợc.
Các kỹ thuật mã hóa:

3.3.2.




Mã hóa cơ bản



Mã hóa dòng



Mã hóa với khóa ngẫu nhiên



Mã hóa dựa trên phép hốn vị



Mã hóa phụ tḥc vào mã lệnh

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



Mã lệnh rác được thêm vào nhưng khơng ảnh hưởng đến tính logic của chương
trình.



Mợt sớ lệnh như: XCHG, NOP, “MOV ax, ax”, “SUB ax 0” …

3.3.3.


Kỹ thuật rẽ nhánh



Chương trình được tạo ra với nhiều điểm kiểm tra ngẫu nhiên bằng các lệnh
nhảy có điều kiện (JNE, JNZ…).

Hình 7.Hoạt động chương trình khi có và khơng rẽ nhánh

Sử dụng Stub để giải mã và thực thi trên bộ nhớ.
13


Hình 8.Hình ảnh tệp tin được tạo ra.

Tệp tin nhị phân mới được tạo ra có hai phần, phần thứ nhất gọi là Stub, phần này sẽ
chịu trách nhiệm cho việc giải mã và thực thi mã độc trên bộ nhớ. Phần thứ hai là
phần Payload, phần này chính là mã đợc đã được mã hóa, có rất nhiều giải thuật có thể
lựa chọn.
-

Thêm Junk code để chỉnh sửa luồng chạy.

-

Thay đổi hoặc mã hóa chuỗi.

-


Thay đổi tên biến.

-

Thay đổi thứ tự vẻ bề ngoài của mã.

-

Thêm hoặc đổi icon.

-

Mã hóa tồn bợ chuỗi biến và kể cả payload cũng với thuật tốn mã hóa dữ liệu
theo tiêu chuẩn.

-

Làm rới tồn bợ hàm gọi API khả nghi.

-

Khiến cho đợ dài của tất cả các phần tử ở phía đi thay đổi, khơng thể dự
đốn được.

-

Xóa tồn bợ những chuỗi khơng cần thiết và ẩn các nguồn có thể là dấu hiệu
nhận diện bởi Antivirus.

14



Hình 9.Tệp tin được làm rối.
3.3.4.

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

Mục đích của kỹ thuật này bảo vệ virus trước phương pháp heuristic. Ngay cả với
việc thay đổi hướng thực hiện của thủ tục giải mã.
-

Data: là địa chỉ bộ đệm bên trong chứa dữ liệu của virus.

-

Tuần tự đọc dữ liệu và tạo ra một bộ đệm mới chứa các dữ liệu được giải mã.

-

Kiểm soát mã lệnh mới được giải mã.

PRIDE bao gồm việc giải mã một cách ngẫu nhiên và không theo thứ tự, byte 10
được giải mã, byte 25 được giải mã, byte 7 được giải mã cứ như vậy. Kiểu truy cập
vào bộ nhớ như thế sẽ giống với với truy cập bộ nhớ của mợt ứng dụng bình thường.
Đồng thời kỹ thuật này sẽ củng cố hơn tính đa hình của mã lệnh giải mã.

15


Hình 10.Kỹ thuật PRIDE

3.3.5.

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

Anti-Debugger:


Sử dụng các hàm API
 Hàm IsDebuggerPresent
 Hàm CheckRemoteDebuggerPresent
 Hàm NtQueryInformationProcess



Kiểm tra cấu trúc
 Hàm NTGlobalFlag



Timing Check



Ngắt
 Int3
 Int2D

Hình 11.Chạy trực tiếp chương trình

16



Hình 12.Chạy chương trình thông qua Visual Studio 2012

Anti-Virtual Machine:
Các phần mềm ảo hóa phổ biến:


Virtual-Machine
 VMware Workstation
 Oracle VirtualBox
 Microsoft Virtual PC



Parallels Desktop



Sandboxie

Hình 13.Một số giải pháp ảo hóa, Sandbox

Anti-Virtual Machine:
Các kỹ thuật Anti-Virtual Machine
17





Timing Base



Artifacts Based

Hình 14.Phát hiện máy ảo dựa vào Timing Base

Hình 15.Phát hiện máy ảo dựa vào Artifacts Base
3.3.6.

Kỹ thuật che giấu API (Application Programming Interface).

Mục đích của kỹ thuật này là che giấu các API được gọi trong quá trình thực thi và
các API được liệt kê trong Import Directory. Khiến các AV không nghi ngờ các chức
năng thực hiện, hơn nữa còn chống Debug, chống dịch ngược phần mềm.

18


Hình 16.Che giấu API

Hình 17.Thực thi hàm MessageBox() mà không gọi API.

19


Hình 18.Thực thi hàm MessageBox() mà không gọi API.
3.3.7.


Kỹ thuật sử dụng chữ ký số.

Hình 19.Chữ ký thật

20


Hình 20.Chữ ký giả
3.3.8.

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

Lỗ hổng trên Hệ điều hành: Là những lỗi lập trình từ những chương trình hệ thớng
bên trong Hệ điều hành.
Những mã độc sử dụng lỗ hổng trên hệ điều hành thường khó phát hiện hơn so với
những mã đợc thơng thường, những loại mã đợc này có thời gian hoạt động ngầm rất
lâu trước khi chúng bị phát hiện bởi những chuyên gia phân tích mã độc.
Những lỗ hổng trên Hệ điều hành không chỉ xuất hiện trên HĐH Windows mà còn
trên Linux, Android, MAC OS – Trước đó Apple tun bớ khơng thể có mã đợc.

21


Hình 21.Sự lây lan của Stuxnet

Các lỗ hổng trên Hệ điều hành điển hình năm 2014
-

CVE-2014-414: Windows OLE Package Manager SandWorm Exploit


-

CVE-2014-4113:
Dereference

-

CVE-2014:6324: Windows Kerberos - Elevation of Privilege (MS14-068)

Windows

TrackPopupMenu

Win32k

NULL

Pointer

Một số lỗ hổng trên Hệ điều hành mới công bố năm 2015
-

CVE-2015-0004: Windows < 8.1 (32/64 bit) - Privilege Escalation (User
Profile Service) (MS15-003)

-

Windows 8.1 - Local WebDAV NTLM Reflection Elevation of Privilege

-


McAfee Data Loss Prevention Endpoint - Arbitrary Write Privilege Escalation

22


Hình 22.Khai thác CVE-2014-4113 để leo thang đặc quyền NT AUTHORITY\SYSTEM

23


KẾT LUẬN
1. Các phần mềm phòng chống mã độc Không an toàn 100%. Chỉ được coi là
“Thuốc an thần”.
2. Tuy nhiên khơng vì thế mà loại bỏ hồn tồn phần mềm phòng chống mã độc
khỏi hệ thống.
3. Hệ thống cần phải thường xuyên bảo trì, theo dõi để giảm thiểu tối đa tác hại
của mã đợc.
4. Cần xây dựng chính sách an ninh cho hệ thống, đảm bảo việc giảm thiếu tối
đa rủi do do mã độc gây ra, các biện pháp phịng chống, khắc phục hậu quả
do mã đợc.
5. Các mã độc muốn vượt được qua các phần mềm phòng chớng mã đợc thì kỹ
thuật lập trình là chính, các lá chắn bảo vệ chỉ là vỏ bọc bên ngồi, sẽ bị phát
hiện sớm hơn.
6. Cịn nhiều kỹ thuật vượt qua phần mềm phòng chống mã độc, nhưng do giới
hạn về thời gian nghiên cứu, điều kiện thực tế và tài liệu nên nhóm nghiên
cứu chưa trình bày trong nội dung nghiên cứu.

24



TÀI LIỆU THAM KHẢO
Tiếng Anh
[1]
Aditya P. Mathur and Nwokedi Idika, "A Survey of Malware Detection
Techniques".
[2]

Joshua Tully, "Introduction into Windows Anti-Debugging", 9/2008

[3]

Joshua Tully, "An Anti-Reverse Engineering Guide", 11/2008

[4]

Mark Vincent Yason, "The Art of Unpacking"

[5]

Michael Sikorski and Andrew Honig, "Praise for Practical Malware Analysis"

[6]

Moritz Jodeit, "Exploiting CVE-2014-4113 on Windows 8.1"

[7]

N. Rin, "VMDE - Virtual Machines Detection Enhanced"


[8]

Peter Szor, "The Art of Computer Virus Research and Defense"

[9]
Philippe Beaucamps, "Advanced Metamorphic Techniques in Computer
Viruses“
[10] Richard Ford, "The future of virus detection"
[11] Ronnie Johndas, "Analysis of CVE-2014-4113".
Trang web
[12] />[13] />
25


×