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ặctì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ácphương pháp đó.Vì thời g
Trang 1BỘ 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: ThS Nguyễn Minh Trường
2118110036 - CCQ1811A
TP Hồ Chí Minh – Tháng 07/2020
Trang 3LỜ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ô trongngà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 suốt quá 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ễnMinh 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 suốt quá 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ếntrong quá 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!
Trang 4MỤC LỤC
Trang 5Tì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ặctì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ácphương pháp đó.
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 vinhỏ, 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,…
Trang 6Chươ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 đó.
• 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,
Trang 7Hì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.
Trang 8Hì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ự đoá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ã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à 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 cuộc tấn công mạng mang màu sắc chính trị gia tăng giữa hacker của cácquốc gia
• 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(APT)
Trang 92.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
Trang 10Hình 6.Sonic Bat
Trang 11Chương 3: 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
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:
• (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ư muố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
Trang 12Giá 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) : xác định là tệp tin 32 bit (0B 01) hay 64 bit (0B 20)
• 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) : địa chỉ nạp được ưu tiên cho tệp tin PE.
• Section Alignment (4 bytes) : phần liên kết của các Section trong bộ nhớ
• File Alignment (4 bytes) : phần liên kết của các Section trong tệp tin
• SizeOfImage (4 bytes) : 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 (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.
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
Trang 133.3 Các kỹ thuật vượt qua phần mềm phòng chống mã độc
• Mã hóa với khóa ngẫu nhiên
• Mã hóa dựa trên phép hoán vị
• Mã hóa phụ thuộc vào mã lệnh
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ớ.
Trang 14Hì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 toàn bộ chuỗi biến và kể cả payload cũng với thuật toán mã hóa dữ liệutheo tiêu chuẩn
- Làm rối toà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 đuôi thay đổi, không thể dựđoán được
- Xóa toàn bộ những chuỗi không cần thiết và ẩn các nguồn có thể là dấu hiệunhận diện bởi Antivirus
Trang 15Hình 9.Tệp tin được làm rối.
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ậpvà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ã.
Trang 16Hình 10.Kỹ thuật PRIDE
Trang 17Hình 12.Chạy chương trình thông qua Visual Studio 2012
Trang 18• 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.
Trang 19Hình 16.Che giấu API
Hình 17.Thực thi hàm MessageBox() mà không gọi API.
Trang 20Hình 18.Thực thi hàm MessageBox() mà không gọi API.
Hình 19.Chữ ký thật
Trang 21Hình 20.Chữ ký giả
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 tuyên bố không thể có mã độc.
Trang 22Hì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: Windows TrackPopupMenu Win32k NULL Pointer
Dereference
- CVE-2014:6324: Windows Kerberos - Elevation of Privilege (MS14-068)
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
Trang 23Hình 22.Khai thác CVE-2014-4113 để leo thang đặc quyền NT AUTHORITY\SYSTEM
Trang 244 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 ngoà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
Trang 25TÀ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] http://www.ducasec.com/an-ninh-mang-the-gioi-nhin-lai-2014-va-du-doan-2015/[13] http://itsecuritylab.eu/index.php/2010/09/03/writing-crypter-bypassing-antivirus-how-to-for-beginners/