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

Một số kỹ thuật gây rối, che dấu mã độc Macro

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 (1.08 MB, 9 trang )

Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XI về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR); Hà Nội, ngày 09-10/8/2018
DOI: 10.15625/vap.2018.00046

MỘT SỐ KỸ THUẬT GÂY RỐI, CHE DẤU MÃ ĐỘC MACRO
Võ Văn Hoàng1, Nguyễn Nam Hải1, Nguyễn Ngọc Hố2
1
Ban Cơ yếu Chính phủ
2
Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội
, ,
TĨM TẮT: Tấn cơng mạng ngày càng diễn biến phức tạp, đa dạng về hình thức và chủng loại. Đặc biệt đối với các đối tượng người
dùng khi sử dụng hệ thống thư điện tử để trao đổi, là một trong những mục tiêu mà tin tặc (Hacker) hướng đến. Các văn bản được
giao dịch ngày càng nhiều thông qua hệ thống thư điện tử, nó dường như khơng thể thiểu trong thời buổi cơng nghệ Chính phủ điện
tử hiện nay, đó cũng là một trong những điểm yếu dẫn đến các cuộc tấn công mạng vào người dùng, khi tin tặc sử dụng các kỹ thuật
che dấu mã độc vào tệp (file) văn bản để tấn công máy tính người dùng thơng qua hệ thống thư điện tử. Đây cũng là một trong
những hình thức tấn cơng phổ biến hiện nay được tin tặc sử dụng, kẻ tấn công không cần phải tạo ra những chủng loại mã độc mới,
phức tạp, mà chỉ cần thay đổi làm rối các dấu hiệu nhận dạng, để tránh sự phát hiện của các chương trình, thiết bị an ninh. Bài báo
này đề xuất phương pháp mới gây rối mã độc và kết hợp các kỹ thuật gây rối nhằm mục đích che dấu mã độc để lẩn tránh sự trước
sự phát hiện của các chương trình bảo vệ như IDS/IPS, AV,… được sử dụng thơng qua tính năng macro có trong chương trình
Office của Microsoft. Đây là một trong những trình soạn thảo văn bản phổ biến nhất và được sử dụng rộng rãi trong việc giao dịch
qua hệ thống thư điện tử. Đó là sự kết hợp các kỹ thuật làm rối mã độc macro, khi kết hợp các kỹ thuật này, cho phép kẻ tấn công
che dấu mã độc trước phần lớn sự phát hiện của các chương trình, thiết bị bảo vệ, đặc biệt là các thiết bị phát hiện và ngăn chặn
mã độc như Anti-virus. Các kỹ thuật này được chúng tôi sử dụng trong việc đánh giá an tồn thơng tin (Penetration testing) cho các
hệ thống thư điện tử của các cơ quan, đơn vị nhà nước, từ đó giúp người dùng và người quản trị mạng có cái nhìn rõ hơn, đồng thời
có những giải pháp phịng tránh trước các dạng tấn cơng này.
Từ khóa: Che dấu mã độc macro, macro obfuscation, kỹ thuật làm rối mã độc macro.

I. GIỚI THIỆU
Trong các phần mềm văn phịng, chẳng hạn như Microsoft Office, macro là cơng cụ cho phép tự động hóa các
tác vụ và thêm chức năng vào biểu mẫu, báo cáo, bảng tính,… Điều này được thực hiện thông qua việc khai thác các
hàm được cung cấp trong bộ VBA (Visual Basic for Applications) để khai thác, điều khiển toàn bộ các thành phần


trong tài liệu cũng như ứng dụng OLE (Object Linking & Embedding) và thư viện động DLL (Dynamic Link Library).
Với những khả năng đó, vơ tình macro lại trở thành một phương thức để các đối tượng xấu (chẳng hạn như hacker) tiến
hành nhúng các mã độc (malware) vào và sử dụng với mục đích khơng tốt như là cơ sở để tấn cơng vào máy tính người
dùng. Thơng thường, với phương thức này, các hacker sẽ sử dụng macro để chạy các mã độc hại hoặc tải về các mã
độc hại và thực thi trên máy người dùng. Và con đường lây lan, phát tán của nó thơng thường và phổ biến nhất là thông
qua hệ thống thư điện tử.
Đối với hình thức sử dụng thư điện tử để phát tán mã độc, khi người dùng nhận được thư có văn bản đính kèm
bị chèn mã độc hại, đã được che dấu, khi văn bản đính kèm này được người dùng mở ra thì mã macro bên trong sẽ
được thực thi trên máy người dùng. Các mã thực thi này, tùy thuộc vào mục đích của từng cuộc tấn cơng, nó có thể mã
hóa máy tính người dùng, có thể chiếm quyền điều khiển và biến máy tính người dùng thành một máy tính ma tham gia
các cuộc tấn cơng DDoS,... Mặc dù hiện nay trên các phiên bản mới của phần mềm Microsoft Office đã được bỏ đi tính
năng tự động chạy mã macro, nhưng đây vẫn là một trong những dạng tấn công phổ biến những năm gần đây vào đối
tượng người dùng thư điện tử thông qua việc sử dụng phương thức đánh lừa người dùng để kích hoạt mã macro.
Hiện nay, trong cơng tác phịng chống mã độc, đảm bảo an tồn cho các hệ thống nói chung, đã có rất nhiều các
phần mềm phịng chống virus (antivirus) có khả năng phát hiện và loại bỏ được các mã độc macro trong các tệp văn
bản, chẳng hạn như những tệp Word. Tuy nhiên, cũng có rất nhiều phương pháp, kỹ thuật khác nhau đã được các tin
tặc sử dụng để che dấu mã độc macro. Các kỹ thuật gây rối được sử dụng để làm thay đổi các đoạn mã macro. Từ đó
đánh lừa được các phần mềm antivirus khi tiến hành so khớp dấu hiệu nhận dạng mã độc (malware signature), và coi
như qua mặt (bypass) được các phần mềm đó, gây tổn hại cho hệ thống của người dùng.
Trong bài báo này, chúng tôi sẽ giới thiệu và đưa ra một số kỹ thuật mới che dấu mã độc macro, từ đó đi sâu
vào phân tích phương pháp kết hợp nhiều kỹ thuật che dấu mã độc dựa trên việc khai thác dịch vụ của Virus Total đã
tập hợp hầu hết các engine phòng chống mã độc hiện nay trên thế giới. Những kết quả thu được có thể làm cơ sở để
đánh giá các phần mềm antivirus, các hệ thống thư điện tử của đối tượng người dùng, giúp họ có những cái nhìn nhận
tốt hơn về việc truyền tải văn bản và cách phòng chống, nhận diện để ngăn chặn các nguy cơ từ mã độc macro.
Phần còn lại của bài báo được tổ chức như sau: Phần II sẽ trình bày về các kỹ thuật che dấu, phát hiện mã độc
macro được biết đến; phần III sẽ đặc tả kỹ thuật che dấu mã độc macro, trong đó đề xuất 2 kỹ thuật mới để gây rối mã
độc macro; trước khi kết luận, phần IV sẽ trình bày về che dấu macro dựa trên kỹ thuật kết hợp.


Võ Văn Hồng, Nguyễn Nam Hải, Nguyễn Ngọc Hố


345

II. LÝ THUYẾT LIÊN QUAN
2.1. Mã độc và kỹ thuật phát hiện mã độc
Mã độc (malicious software - malware) là phần mềm được thiết kế cố ý để gây tổn hại, mất an tồn thơng tin
cho hệ thống máy tính, máy chủ hoặc hạ tầng mạng (gọi chung là hệ thống CNTT) [1]. Mã độc gây tổn thương hệ
thống CNTT sau khi được cấy hoặc xâm nhập theo cách nào đó vào máy tính của mục tiêu. Mã độc thường được chia
làm nhiều loại như virus máy tính, worm, Trojan horse, ransomware, spyware, adware và scareware, …
Để đối phó với các dạng mã độc, các phương pháp phân tích tĩnh, phân tích động được sử dụng phổ biến với các
kỹ thuật và cơng nghệ có mức độ khác nhau trên các sản phẩm antivirus [1], một số công nghệ phát hiện mã độc đươc
biết đến phổ biến như sau:
- Phát hiện dựa trên dấu hiệu mẫu: được sử dụng bởi nhiều hãng phát triển các chương trình antivirus hiện tại,
thực hiện thơng qua việc dò quét tệp để phát hiện các dấu hiệu của mã độc. Các sản phẩm antivirus có các cơ sở dữ liệu
về các dấu hiệu nhận dạng mã độc, khi dò quét kiểm tra các tệp, các dấu hiệu thu được sẽ được so sánh với cơ sở dữ
liệu mẫu để đưa ra cảnh báo, ngăn chặn nếu phát hiện có dấu hiệu mã độc. Tuy nhiên, khi sử dụng cơ chế này thì cơ sở
dữ liệu mẫu cần được cập nhật thường xuyên để kịp thời phát hiện các dạng mã độc mới và phương pháp này giúp phát
hiện, nhận dạng nhanh chóng các dạng mã độc đã được biết đến nếu dấu hiệu nhận dạng có trong cơ sở dữ liệu mẫu [1].
- Phát hiện dựa trên heuristic: không giống như việc phát hiện dựa trên mẫu, phương pháp này phân tích hành
vi về cấu trúc và các thuộc tính được nghi ngờ giống với mã độc để đưa ra cảnh báo, ngăn chặn. Kỹ thuật này, có khả
năng phát hiện các lỗ hỗng chưa được biết đến (zero-day) được các mã độc sử dụng để khai thác. Khả năng phát hiện
của nó được đánh giá có độ tin cậy khoảng 70 đến 80 %. Bên cạnh phương pháp này cho nhiều cảnh báo phỏng đoán
sai thì ưu điểm của nó cho phép phát hiện mã độc sớm trước khi nó phát tán mơi trường phạm vi rộng [2].
- Phát hiện dựa trên phân tích hành vi khi thi hành: không giống với phương pháp phát hiện dựa trên mẫu, việc
phát hiện mã độc chỉ có được khi tiến hành thi hành tệp cần kiểm tra trên hệ thống. Phương pháp này sử dụng kỹ thuật
phân tích các hành vi bất thường khi thực thi, từ đó đưa ra các cảnh báo mã độc [3], [4].
- Phát hiện dựa trên phân tích trên mơi trường ảo: khác với phương pháp phát hiện dựa trên hành vi khi thực
thi, tệp kiểm tra sẽ được đưa vào môi trường ảo để phân tích. Thu thập các hành vi đối với hệ thống, môi trường khi
thực thi tệp để đưa ra cảnh báo hành vi nghi ngờ mã độc [4].
2.2. Một số kỹ thuật gây rối mã độc

Dựa trên những kỹ thuật phát hiện mã độc nêu trên, các phần mềm antivirus có thể phát hiện được những mã
độc trong hệ thống máy tính. Tuy nhiên, bên cạnh những ưu điểm của các phương pháp trên, thì với mỗi kỹ thuật phát
hiện đều có những điểm yếu cho phép tin tặc lợi dụng để qua mặt được các chương trình antivirus. Chẳng hạn như mã
độc có khả năng nhận dạng mơi trường máy ảo, để khi các chương trình antivirus đưa vào mơi trường ảo để phân tích
thì mã độc sẽ không thực thi, hay các kỹ thuật làm rối được sử dụng rộng rãi để sinh ra các dịng họ mã độc bởi tính
đơn giản và hiệu quả của nó.
Kỹ thuật gây rối (obfuscation) nói chung là phương pháp che dấu thơng tin, làm q trình tìm ý nghĩa thực sự
của thơng tin trở nên khó khăn, và thậm chí là khơng thể tìm được. Các nhà sản xuất phần mềm, tìm mọi cách để gây
rối che dấu thơng tin chống lại q trình dịch ngược (reverse engineer) để đảm bảo mã nguồn sản phẩm an toàn. Tương
tự như vậy, tin tặc sử dụng kỹ thuật gây rối để chống lại sự phát hiện của các chương trình antivirus nhằm mục đích
che dấu mã độc được tạo ra [2].
Một số kỹ thuật gây rối đươc biết đến chẳng hạn như: thêm các dịng vào mã lệnh mà khơng ảnh hưởng đến
chương trình (Dead-Code insertion); sắp xếp lại cấu trúc của code mà không thay đổi chúng (Code Transposition); thay
đổi thứ tự các chương trình con trong mã độc (Subroutime reordering) [2], [10], …

Hình 1. Thống kê mã độc macro của Symantec năm 2017


MỘT SỐ KỸ THUẬT GÂY RỐI, CHE DẤU MÃ ĐỘC MACRO

346

Theo thống kê của Symantec, trong năm 2017 số lượng các cuộc tấn công mạng sử dụng các đoạn mã độc hại và
tải mã độc macro được hãng này phát hiện thông qua các thiết bị lọc Email, IDS/IPS, các công nghệ học máy,… tăng
khoảng 92 % so với năm 2016. Mục đích chính của các cuộc tấn cơng này của tin tặc là cài đặt mã độc Ransomware và
các mã độc đánh cắp tài khoản ngân hàng lên máy người dùng, làm tổn hại máy người dùng [5].
Các cuộc tấn công bằng mã độc macro tương đối nhiều, như hình 1 và các hình thức và phương pháp cũng tinh
vi, phức tạp hơn. Một số phương pháp gây rối mã độc macro được biết đến như sau:
Gây rối mã độc macro sử dụng hàm chrW(). Hàm này cho phép tin tặc thay các giá trị ký tự bằng các giá trị ký
tự trong bảng ASCII, từ đó cho phép bypass một số chương trình antivirus [6].

Một phương pháp gây rối khác khá phổ biến đó là gây rối tên biến, với kỹ thuật này tin tặc sẽ thay đổi toàn bộ
các tên biến, hàm bằng các giá trị bất kỳ cho phép lẩn tránh sự phát hiện của các chương trình antivirus có cơ chế phát
hiện đơn giản với các từ khóa “nhạy cảm” được cho là có dấu hiệu của mã độc [8].
Công cụ Vbad, cho phép làm rối và mã hóa các phần trong mã độc macro, thậm chí là mã hóa tồn bộ các ký tự
trong mã độc macro. Một số tính năng khác cho phép của nó như: làm rối tên hàm, mã hóa, sử dụng python để ẩn các
đoạn mã, tự động mở, loại bỏ VBA định dạng, hay xóa hết metadata từ tệp để giúp lẩn tránh sự phát hiện các chương
trình antivirus [7].
Các kỹ thuật được sử dụng nhiều để làm rối chẳng hạn như: xóa bỏ các nhận xét, bỏ khoảng cách lề so với mặc
định trong code; chia nhỏ các đoạn code macro thành nhiều dịng khác nhau; xóa các thủ tục, hàm, module bằng cách
sử dụng các tùy chỉnh trong macro; thêm các phần giả mạo nhận xét trên code macro để làm rối nội dung macro [10].
Có thể thấy, kẻ tấn cơng ln tìm cách tạo ra những phương pháp mới, tinh vi hơn để che dấu mã độc, những
biến thể của nó, việc nghiên cứu các kỹ thuật này là cần thiết để từ đó có những giải pháp phịng chống thích hợp nhằm
giảm thiểu, ngăn chặn và phịng chống lại các nguy cơ do nó gây ra.
III. MỘT SỐ KỸ THUẬT CHE DẤU MÃ ĐỘC MACRO
Trong phần này, chúng tơi sẽ trình bày ba phương pháp kỹ thuật che dấu mã độc macro, trong đó có hai phương
pháp mới được đề xuất đó là kỹ thuật truyền biến vào shellcode và làm rối tên các hàm API của Windows. Mã độc
macro được tạo ra ban đầu, bao gồm code và shellcode được viết trên macro của Office Microsoft và có khả năng qua
mặt 32/59 các chương trình phát hiện và phịng chống mã độc khi kiểm tra trên dịch vụ Virus Total.

Hình 2. Kết quả kiểm tra trên Virus Total của mã độc macro khi chưa sử dụng các kỹ thuật bypass

Dựa trên cơ chế phát hiện mã độc dựa trên mẫu của các chương antivirus, các chương trình này sẽ tiến hành
kiểm tra và xác định các từ khóa “nhạy cảm” như tên hàm, tên biến, các giá trị đường đẫn được các hàm gọi tới, được
xác định là nguy cơ cao có dấu hiệu mã độc như Process, PROCESS_INFORMATION… Để qua được công cụ phát
hiện của các chương trình antivirus, việc thay đổi tồn bộ các tên biến, các hàm được gọi bằng những giá trị bất kỳ
không theo một quy luật nào là một trong nhưng phương pháp có hiệu quả và đã được sử dụng.
Bảng 1. Một số giá trị hàm, tên biến được làm rối

Tên ban đầu
Private Type PROCESS_INFORMATION

hProcess As Long
hThread As Long
dwProcessId As Long
dwThreadId As Long

Tên đã được làm rối
Private Type Ajajhsdh2uhgshdhgashgdasytudygqwlksad
Basjhagdyqwoieqowjhoashjdasjdhalkhdasda As Long
Calkjjhqwhqwjehlkjhnasdjhlkasdadasdqw As Long
Dasjhkashdkjhwqhklqhkwleqweqweqweqw As Long
Easkjdasjdlkasjdlkahjsdhasldhkwqjhgaksdad As Long

Bảng 1, thể hiện các giá trị của tên hàm và biến được sử dụng để thay thế bằng giá trị bất kỳ để tránh sự kiểm
tra của các chương antivirus, chẳng hạn như tên hàm “PROCESS_INFORMATION” được thay thế bằng chuỗi có giá


Võ Văn Hồng, Nguyễn Nam Hải, Nguyễn Ngọc Hố

347

trị là “Ajajhsdh2uhgshdhgashgdasytudygqwlksad” hay tên biến “hProcess” được thay thế bằng chuỗi có giá trị là
“Basjhagdyqwoieqowjhoashjdasjdhalkhdasda” mà khơng làm thay đổi đi tính năng của nó.
Sau khi tiến hành thay đổi tồn bộ các tên hàm, tên biến, đường dẫn được cho là có khả năng là đặc điểm nhận
dạng của các chương trình anrivirus, bằng các giá trị bất kỳ, sau đó kiểm tra trên dịch vụ Virus Total cho kết quả là
17/59, so với kết quả kiểm tra ban đầu thì phương pháp này có khả năng qua mặt 15 chương trình antivirus
( />n). Điều này cho thấy, nhiều chương trình phát hiện mã độc hiện tại vẫn còn sử dụng các kỹ thuật phát hiện cổ điển dựa
trên các tên nhạy cảm, để đưa ra các dấu hiệu nghi ngờ mã độc, dựa trên cơ chế này sẽ cho phép tin tặc có khả năng sử
dụng kỹ thuật thay thế các tên tương ứng nhằm mục đích làm rối để che dấu mã độc.

Hình 3. Kết quả kiểm tra trên Virus Total với phương pháp gây rối tên hàm và biến.


Kỹ thuật thứ nhất được đề xuất là truyền biến vào các shellcode của mã độc macro. Một mã độc hại được xây
dựng trên macro có nhiều dạng khác nhau, với các cơ chế thực thi khác nhau, code của nó có thể được chia làm nhiều
phần khác nhau, tùy thuộc độ phức tạp của từng mã độc, mỗi phần làm một nhiệm vụ cụ thể để phục vụ cho việc thực
thi mã độc trên máy người dùng. Các mã độc macro có chứa thành phần shellcode thực thi thì rất dễ dàng có thể bị phát
hiện bởi các chương trình antivirus thơng qua cơ chế dị qt shellcode. Do vậy, để giảm thiểu khả năng bị phát hiện
dựa trên việc dị qt các shellcode có chứa trên macro nói riêng và các dạng mã độc khác nói chung thì cần làm thay
đổi đi việc hiển thị shellcode thông thường, để khi các chương trình anrivirus kiểm tra sẽ khơng nhận dạng được
shellcode, nhưng khơng được làm thay đổi tính chất của nó.

Hình 4. Shellcode trên macro khi chưa được làm rối

Hình 4 thể hiện shellcode khi chưa được áp dụng kỹ thuật làm rối trên macro, đối với các chương trình diệt mã
độc, có thể dễ dàng nhận biết được được mẫu shellcode bởi đặc tính phổ thơng của nó. Phương pháp thay đổi cách hiển
thị shellcode này, cho phép lẩn tránh sự phát hiện của các chương trình phát hiện mã độc có cơ chế phát hiện cổ điển
dựa trên việc dò quét các shellcode, nhưng vẫn đảm bảo không làm thay đổi chức năng của shellcode.
Thông thường, các giá trị shellcode này là các giá trị số và có giá trị nhỏ hơn 255, phương pháp gây rối được
thực hiện ở đây bằng cách thay các giá trị số này bằng các chuỗi thơng qua hình thức gắn các biến cho giá trị của mảng
shellcode, chẳng hạn như giá trị 255 sẽ được thay bằng chuỗi “Aasdkwnqljhla” thông qua việc gọi thêm biến số và
truyền biến số này vào trong mảng của shellcode. Truyền biến để thay một số giá trị số trên mảng của shellcode cho kết
quả thể hiện như hình 5 và khơng làm mất đi tính năng vốn có của nó.

Hình 5. Shellcode trên macro được làm rối bằng cách gắn và truyền biến vào shellcode


348

MỘT SỐ KỸ THUẬT GÂY RỐI, CHE DẤU MÃ ĐỘC MACRO

Khi tiến hành gọi biến và truyền vào cho một số các giá trị khác trên mảng của shellcode, cho một mảng mới

với các nội dung mới mà khi thể hiện nó sẽ khác với cách thể hiện các shellcode gốc thơng thường. Áp dụng phương
pháp này sau đó tiến hành kiểm tra trên dịch vụ của Virus Total cho kết quả là 22/58, như vậy phương pháp này có khả
năng qua mặt được hơn 10 loại chương trình antivirus so với kết quả ban đầu trước khi áp dụng kỹ thuật gây rối.

Hình 6. Các giá trị biến đã được gắn và truyền vào trên shellcode

Hình 7. Kết quả kiểm tra trên Virus Total sau khi truyền biến vào thay thế một số giá trị shellcode

Kỹ thuật thứ hai được đề xuất là làm rối tên các hàm API được gọi trong mã độc macro, việc thực hiện phương
pháp này dựa trên tính năng gọi hàm và cơ chế phát hiện của các chương trình antivirus. Các chương trình này khi
kiểm tra các tệp, nếu phát hiện dấu hiệu các hàm hệ thống được gọi trong mã độc thì sẽ nhận định là một trong các dấu
hiệu mã độc. Từ đó, để tránh sự phát hiện có thể thay đổi cách gọi các tên hàm này.
Đối với cơ chế gọi hàm trên macro, thông thường khi gọi các hàm có thể gọi thơng qua tên của hàm hoặc tên
thư viện trong Windows, chẳng hạn như có thể gọi thơng qua tên của thư viện là kernel32 hoặc kernel32.dll. Một số
chương trình antivirus chỉ dựa trên tên của thư viện và phân biệt giữa chữ hoa, chữ thường để làm dấu hiệu nhận dạng
mã độc. Như vậy, nếu thay tên các hàm này bằng các tên thư viện của nó và đồng thời thay đổi các kiểu chữ của các
hàm này chẳng hạn như “kernel32” thay bằng “kERNel32.dll” thì vừa làm thay đổi nội dung thể hiện và làm mất đi
kiểu gọi thơng thường của nó nhưng khơng thay đổi chức năng của nó.

Hình 8. Thay đổi tên thư viện gọi và kiểu chữ hoa, thường

Khi áp dụng kỹ thuật này cho các tên hàm và thư viện được gọi trong code của mã độc macro và kiểm tra trên
dịch vụ Virus Total, chúng tôi thu được kết quả là 15/59 đã qua mặt được 17 chương trình antivius so với kết quả ban
đầu. Như vậy có thể thấy, cơ chế phát hiện dựa trên những thành phần gọi tên hàm “nhạy cảm” của Windows của các
chương trình diệt mã độc vẫn chiếm phần nhiều và nó chính là những điểm yếu cho phép tin tặc tạo ra những mã độc
có khả năng lẩn tránh sự phát hiện.

Hình 9. Kết quả kiểm tra trên Virus Total khi thay đổi kiểu chữ và kiểu gọi thư viện API



Võ Văn Hồng, Nguyễn Nam Hải, Nguyễn Ngọc Hố

349

Tóm lại, ba phương pháp gây rối được đề cập để nhằm che dấu mã độc trong macro ở đây, bao gồm kỹ thuật
gây rối bằng phương pháp thay tên biến đã được sử dụng; hai phương pháp mới là: kỹ thuật gắn và truyền các tên biến
bằng các chuỗi vào shellcode mã độc; làm rối các hàm API bằng các kiểu chữ hoa, thường khác nhau và kiểu gọi các
hàm này. Các phương pháp này có kết quả tốt nhất là qua mặt được 17 loại antivirus so với mã độc ban đầu và 44 trên
tổng 59 chương trình antivirus bị qua mặt khi kiểm tra trên dịch vụ Virus Total.
IV. KẾT HỢP CÁC KỸ THUẬT GÂY RỐI
Ở phần III, chúng tơi đã trình bày các phương pháp gây rối với các kết quả kiểm tra thông qua dịch vụ Virus
Total. Trong phần này, chúng tơi sẽ trình bày về việc kết hợp các kỹ thuật gây rối để cho kết quả tốt hơn trong việc che
dấu mã độc, nhằm phục vụ cơng tác đánh giá an tồn thơng tin cho các hệ thống thư điện tử cơ quan nhà trước sự bùng
nổ phát tán mã độc và thư rác (spam) qua hệ thống thư điện tử, cũng như để có các giải pháp phòng tránh.
Khi áp dụng kết hợp giữa kỹ thuật gắn và truyền tên biến bằng các chuỗi vào các giá trị shellcode và phương
pháp gây rối bằng tên biến cho code mã độc macro, khi kiểm tra trên dịch vụ Virus Total cho kết quả là 16/591.

Hình 10. Kết quả kiểm tra khi kết hợp phương pháp truyền biến vào shellcode và gây rối tên hàm, biến

Tiếp đến, kết quả kiểm tra khi kết hợp giữa phương pháp gây rối tên biến và thay tên chữ hoa, chưa thường và
kiểu gọi các hàm API trong mã độc macro, tiến hành kiểm tra trên dịch vụ Virus Total cho kết quả là 16/592.

Hình 11. Kết quả khi kết hợp giữa gây rối tên biến và thay đổi kiểu gọi hàm API

Thực nghiệm tương tự, khi kết hợp chéo các phương pháp này lại với nhau cho ta kết quả như bảng 2, trong đó:
K1: Phương pháp truyền biến vào shellcode;
K2: Phương pháp gây rối tên biến;
K3: Phương pháp gây rối thay đổi cách gọi hàm và định dạng kiểu chữ.
Bảng 2. Kết quả kiểm tra khi kết hợp 2 phương pháp với nhau qua dịch vụ Virus Total


K1
K2
K3

1

K1
22/58
16/59
17/59

K2
16/59
17/59
16/59

K3
17/59
16/59
15/59

Chi tiết xem tại trang
/>2
Chi tiết có tại trang
/>

MỘT SỐ KỸ THUẬT GÂY RỐI, CHE DẤU MÃ ĐỘC MACRO

350


Kết quả cho thấy, sau khi tiến hành kết hợp ba phương pháp gây gối trên macro lại với nhau, cho kết quả cuối
cùng khi kiểm tra trên dịch vụ Virus Total là 12/59, so với kết quả kiểm tra ban đầu trước khi áp dụng các kỹ thuật gây
rối là 32/59, thì việc kết hợp các giải pháp này cho phép lẩn tránh, che dấu được trước sự phát hiện của 20 chương trình
diệt antivirus phổ biến, ngồi ra các hệ thống IDS/IPS, các hệ thống Mail Gateway cũng khơng phát hiện ra3. Sơ đồ kết
quả và q trình kết hợp các giải pháp gây rối mã độc macro như hình dưới, trong đó:
K0: Kết quả ban đầu khi chưa sử dụng các kỹ thuật làm rối;
K1, K2, K3: Tương ứng là các kỹ thuật làm rối trình bày trong bảng 2.
K1=22/58
16/59
K0=32/59

K2=17/59

17/59

12/59

16/59
K3=15/59
Hình 12. Sơ đồ kết quả khi kết hợp các phương pháp làm rối mã độc macro

Hình 13. Kết quả sau khi kết hợp các kỹ thuật làm rối trên macro

Khi áp dụng các phương pháp này nó có khả năng lẩn tránh được sự phát hiện của Gmail. Một trong những hệ
thống thư điện tử lớn nhất với các hệ thống phòng chống mã độc được cho là tốt.

Hình 14. Khả năng lẫn tránh sự phát hiện của Gmail

Bên cạnh đó, phương pháp này đã được sử dụng để đánh giá an tồn thơng tin cho một số hệ thống thư điện tử
tại một số cơ quan, đơn vị nhà nước, kết quả cho thấy nó có khả năng qua mặt được các lớp bảo vệ an ninh chẳng hạn

như IDS/IPS, Mail Gateway và các chương trình antivirus trên các máy người dùng. Đối với dạng mã độc này, đặc
điểm của nó là khơng ghi tệp mã độc lên ổ đĩa, toàn bộ mã macro được chèn vào dịch vụ Office của Microsoft trên bộ
3

Chi tiết xem tại trang
/>

Võ Văn Hồng, Nguyễn Nam Hải, Nguyễn Ngọc Hố

351

nhớ RAM, nên khả năng phát hiện rất khó, dẫn đến nó có khả năng chạy trên máy người dùng nhưng các chương trình
antivirus, mà nó có khả năng qua mặt, khơng thể phát hiện ra.

Hình 15. Khả năng lẩn tránh sự phát hiện khi pentest cho hệ thống mail các đơn vị nhà nước

V. KẾT LUẬN
Trong bài báo này, chúng tôi đã giới thiệu và đề xuất mới một số những kỹ thuật làm mờ, che dấu mã độc macro
trong các tài liệu văn bản dạng sử dụng Office của Microsoft. Với việc kết hợp nhiều các kỹ thuật che dấu, chẳng hạn
với 3 kỹ thuật (i) gây rối tên biến, (ii) truyền biến vào shellcode và (iii) gây rối cách gọi hàm-kiểu chữ, nhiều phần
mềm phòng chống virus (iv) đã bị “qua mặt” không phát hiện được mã độc macro trong tệp văn bản có chứa mã độc
được che dấu thông qua kỹ thuật kết hợp gây rối. Điều đáng nói hơn là đa phần các phần mềm dị qt virus, mã độc
được sử dụng trong các hệ thống thư điện tử tại Việt Nam lại đa phần bị qua mặt với những mã độc sử dụng kỹ thuật
che dấu này.
Qua thực nghiệm đánh giá an tồn thơng tin thực tế cho một số cơ quan đơn vị nhà nước đã được sử dụng kỹ
thuật này cho thấy, khi tin tặc sử dụng kết hợp các kỹ thuật che dấu này để thực hiện các chiến dịch tấn công mạng vào
các đối tượng cơ quan, doanh nghiệp thì hậu quả của nó rất nghiêm trọng. Trong phần đa tình huống, nó được xem như
là một trong những dạng tấn cơng APT (Advanced Persistent Threat) tinh vi và phức tạp. Đối với những mã độc phức
tạp macro được che dấu, một khi máy người dùng bị chiếm quyền điều khiển, nó sẽ âm thầm đánh cắp thông tin, dữ
liệu người dùng và nguy hiểm hơn nữa là nó sẽ sử dụng máy người dùng như là một “bàn đạp” để có thể tấn cơng các

máy tính nội bộ, các đối tượng liên quan.
Do vậy, việc phịng chống các dạng tấn cơng này là hết sức cần thiết đối với các cơ quan, doanh nghiệp. Để làm
được điều đó, cần có sự kết hợp các giải pháp kỹ thuật công nghệ, con người và quy trình chính sách tổng thể. Trong
đó, việc nâng cao nhận thức người dùng, thông qua các lớp đào tạo, để giúp họ có thể phịng tránh và nhận dạng được
các dạng tấn công này là quan trọng và cần thiết. Bên cạnh đó, cần có các hệ thống chống giả mạo và chống thư rác
cho hệ thống thư điện tử, để giảm thiểu tối đa hình thức phát tán mã độc đến các đối tượng người dùng. Thêm vào đó,
cần có hệ thống giám sát an ninh mạng để phát hiện sớm nguy cơ tấn công mạng cho các hệ thống mạng công nghệ
thông tin của cơ quan nhà nước nói riêng và doanh nhiệp nói chung nhằm giảm thiểu và có phương án xử lý, phịng
chống kịp thời trước các nguy cơ mã độc nói riêng và trước các cuộc tấn cơng mạng nói chung.
TÀI LIỆU THAM KHẢO
[1] Sergio De los Santos, José Torres. “Macro Malware Detection using Machine Learning Techniques A New
Approach”. 2016.
[2] Kamlesh Joshi, Himanshu Sangrola, Rahul Palaria. “The Threat of Obfuscated Malware”. International Journal on
Emerging Tecnilogies, 2017.
[3] Gandotra, E., et al. (2014). Malware Analysis and Classification: A Survey. Journal of Information Security. 5, 5664. />[4] Ilsun You, Kangbin Yim. “Malware Obfuscation Tecniques: A Brif Survey”. 2010 International Conference on
Broadband, Wireless Computing, Communication and Applications.
[5] Symantect. />[6] Pastebin. />[7] VBad. />[8] Excel-Pratique. />[9] Spreadsheet1. />[10] M. Schiffman. “A Brief History of Malware Obfuscation: Part 2 of 2”. Feb. 2010.


352

MỘT SỐ KỸ THUẬT GÂY RỐI, CHE DẤU MÃ ĐỘC MACRO

MALWARE OBFUSCATION TECHNIQUES FOR HIDING MALICIOUS MACROS
Vo Van Hoang, Nguyen Nam Hai, Nguyen Ngoc Hoa
ABSTRACT: Nowadays, network attacks are significantly complex, varied in form and type. Especially, one of the targets that
hackers exploit is the process of data exchange by using email systems. In e-government, documents are being transfer through the
e-mail system, which is one of the vulnerabilities that hackers can embed malicious macros. led to cyberattacks. Normally, in order
to bypass the antivirus software, a lot of obfuscation techniques are recently used. Its main ideas are based on the change of
malicious codes to avoid being detected by the antivirus program. In this paper, we propose two new techniques in order to

obfuscate the malicious macros embedded in MS Office documents. First one is based on the technique to marshal the variables to
shell-code and the second is to obfuscate names of the Windows API functions. We also propose a combination approach to
obfuscate the malicious macros by combining different techniques. Our experiment performed on VirusTotal allows to validate the
proposed techniques, and therefrom to help the users and network administrators to both provide and improve the network security
solutions in order to prevent these types of attacks.
Keywords: malicious macro hiding, macro obfuscation, obfuscation technique combination.



×