Skip to main content

Command Palette

Search for a command to run...

BabbleLoader - Loader có nhiều cơ chế phòng tránh các biện pháp phát hiện xâm nhập

Published
8 min read
BabbleLoader - Loader có nhiều cơ chế phòng tránh các biện pháp phát hiện xâm nhập
T

Just a SOC Analyst ^^

1. Mã độc BabbleLoader là gì

BabbleLoader là một mã độc mới được trang bị nhiều kỹ thuật lẩn tránh tinh vi, thách thức cả hệ thống phát hiện xâm nhập truyền thống và phát hiện xâm nhập dựa trên AI.

Các tính năng chính của mã độc này bao gồm:

  • Chèn mã rác (junk code insertion)

  • Biến đổi đa hình (metamorphic transformations)

  • Phân giải API động (dynamic API resolution).

  • Bypassing sandbox

  • Reflective Code Loading

  • Anti-sandboxing và anti-analysis

2. Phân tích kỹ thuật

Junk Code/Metamorphism

BabbleLoader sử dụng mã rác (junk code) nhằm mục đích gây khó khăn cho việc phân tích. Ví dụ như sử dụng nhiều đường dẫn giả mà không bao giờ được truy cập, sử dụng các import với các chuỗi được tạo ra ngẫu nhiên,…

Hình 1. Junk code thực hiện các hàm call ngẫu nhiên

Loader cũng sử dụng nhiều lệnh ngẫu nhiên, thêm giá trị vào các biến cục bộ và di chuyển dữ liệu qua lại giữa các thanh ghi mà không có mục đích cụ thể nào.

Hình 2. Dữ liệu được ghi ngẫu nhiên

Hình 3. Số lượng mã rác được thêm vào nhiều đến mức làm sập các công cụ phân tích mã độc.

Những kỹ thuật này ảnh hướng đến kết quả của việc phân tích dựa trên AI. Sự thay đổi liên tục trong cấu trúc mã độc này buộc các mô hình AI phải liên tục học lại những dấu hiệu tấn công, dẫn đến việc bỏ lỡ hoặc đưa ra kết quả dương tính giả. Mã rác cũng tạo ra một lượng lớn thông tin nhiễu trong luồng chương trình, làm quá tải khả năng nhận dạng mẫu của AI và buộc nó phải sàng lọc qua hàng nghìn hành động không liên quan nhằm che giấu hành vi thực sự của phần mềm độc hại.

Dynamic API Resolution

Một trong những hoạt động đầu tiên của loader là bắt đầu quá trình dynamically resolving API calls. Nó sẽ thực hiện điều này thông qua hàm băm API. Đầu tiên, nó sẽ lấy một module handle cho ntdll.dll. Chuỗi cho DLL được giải mã bằng cách sử dụng rolling XOR cipher.

Hình 4. Giải mã chuỗi NTDLL

Bằng cách sử dụng returned handle, loader sẽ bắt đầu đọc PE header của ntdll.dll, xác định thư mục đầu ra và bắt đầu phân tích các giá trị mà nó sẽ cần để phân giải động các chức năng. Loader có cấu trúc code sau:

Hình 5. Cấu trúc code của loader

Các giá trị trên có thể parse và quan sát bằng cách sử dụng công cụ CFF explorer:

Hình 6. Các trường đã được parse và hiển thị trong CFF Explorer

Shellcode Loading và Payload Decryption

Sau khi loader phân giải các pointer, đầu tiên nó sẽ gọi NtCreateSection, sau đó là NtMapViewOfSection. Mục đích là để phần mềm độc hại phân bổ và sử dụng bộ nhớ mà không bị kiểm soát. Quá trình giải mã bắt đầu bằng việc loader sắp xếp lại các khối dữ liệu được encrypted, trước khi tiến hành giải mã từng khối.

Hình 7. Các giai đoạn giải mã khối dữ liệu

Nhưng trước khi giải mã, loader sẽ thực hiện một trong số các kiểm tra anti-sandboxing.

AntiSandboxing/Analysis

DirectX DLL

Một trong những kiểm tra anti-sandboxing đó là kiểm tra các trình điều khiển đồ họa xem nó có đang chạy trong môi trường sandbox hay không. Thực hiện kiểm tra này bằng cách import DLL dxgi.dll. Thư viện này là DirectX Graphics Infrastructure và là DLL cốt lõi của Windows cung cấp chức năng giao tiếp với phần cứng đồ họa.

Mã độc này sử dụng dxgi.dll để trích xuất thông tin VendorId và so sánh nó với ba giá trị ở trong danh sách whitelist:

IDVendor
8086Intel
10DENvidia
1002AMD

BabbleLoader sử dụng khóa XOR đơn giản và một vài biến đổi assembly để ẩn số VenderId. Hành vi này được làm rối với một lượng lớn mã rác để ẩn các giá trị thực sự trong quá trình dịch ngược.

Hình 8. XOR để lấy VendorID

VDLL Function

Một hình thức anti-sandbox khác là kiểm tra VDLL để chống lại Windows Defender’s Antivirus Emulator. Kiểm tra đầu tiên là BabbleLoader lấy kernel32.dll và tìm địa chỉ proc cho MpSwitchToNextThread_WithCheck. Kiểm tra thứ hai là ntdll.dll với việc export MpDispatchException.

Hình 9. Gọi hàm mô phỏng

Nếu bất kỳ lệnh call GetProcAddress nào thành công, nó sẽ đặt một biến để đánh dấu và loader thoát sau đó. Việc import các lệnh call thành công chỉ ra rằng loader đang được mô phỏng bởi Windows Defender. Điều này là do các export chỉ tồn tại trong VDLL, là các DLL hệ thống Windows đã sửa đổi chỉ có trong trình giả lập cho Defender. Kỹ thuật này đã được sử dụng trước đây và cho thấy rằng nhà hacker nghiên cứu các vấn đề xung quanh AV và sandbox rất kỹ.

Unique process count

Khi payload của shellcode được đẩy lên bộ nhớ ánh xạ của tiến trình, nó sẽ thực hiện kiểm tra anti-sandboxing một lần nữa, lần này dựa trên các tiến trình đang chạy trong máy.

Điều này được thực hiện đầu tiên bằng cách gọi NtQuerySystemInformation, từ thư viện ntdll.dll. Nó trả về class SystemProcessInformation, sau đó trả về một mảng SYSTEM_PROCESS_INFORMATION, một phần tử chứa thông tin về một tiến trình đang chạy trong hệ thống.

Tên tiến trình của mỗi phần tử trong mảng được thu thập và băm thành một checksum, và được so sánh với mã băm của tên quy trình tiếp theo. Bộ đếm được tăng lên sau mỗi lần lặp, nhưng nếu checksum khớp, bộ đếm sẽ giảm đi một. Điều này nhằm mục đích cung cấp số lượng tiến trình duy nhất đang chạy.

Hình 10. Bộ đếm checksum
Sau đó mã độc sẽ kiểm tra xem có bao nhiêu tiến trình duy nhất đang chạy trên máy tính. Nếu ít hơn 85 tiến trình, mã độc sẽ kết luận đây là sandbox bởi vì kẻ tấn công cho rằng một máy tính thực sự sẽ có nhiều tiến trình đang chạy hơn là một sandbox hoặc trình giả lập.

Khi quá trình kiểm tra sandbox đã thành công, giai đoạn tiếp theo sẽ là giải mã payload và thực thi.

Donut Loader and Payload

Giai đoạn tiếp theo trong quá trình này là Donut Loader. Loader này được sử dụng để giải nén và thực thi payload độc hại vào trong bộ nhớ. Donut Loader đã được nhiều phần mềm độc hại và nhóm hacker khác nhau sử dụng trong các hoạt động bất hợp pháp. Payload trong ví dụ này là WhiteSnake stealer.

Hình 11. WhiteSnake payload

Payload này có phương pháp giao tiếp với máy chủ Command and Control (C2) thông qua TOR.

Hình 12. Dự án mã nguồn mở được sử dụng bởi WhiteSnake

3. Khuyến nghị

Phía FPT Threat Intelligence khuyến nghị tổ chức và cá nhân một số cách để phòng chống mã độc này:

  • Sử dụng các giải pháp bảo mật nâng cao: Kết hợp giữa hệ thống phát hiện dựa trên chữ ký, phân tích hành vi, các công cụ EDR để tăng khả năng phát hiện mã độc

  • Cải thiện kỹ thuật phát hiện mã độc: Kết hợp các phương pháp phát hiện tĩnh và động để vượt qua các lớp phòng thủ của loader.

  • Đào tạo nhận thức người dùng: Nâng cao nhận thức về các mối nguy hiểm từ phần mềm crack và các tệp không rõ nguồn gốc.

  • Cập nhật thường xuyên: Cập nhật hệ điều hành và phần mềm bảo mật thường xuyên để vá các lỗ hổng.

  • Kiểm tra và theo dõi lưu lượng mạng: Phát hiện các hành vi bất thường trong lưu lượng mạng, đặc biệt là giao tiếp qua TOR hoặc các phương thức ẩn danh khác.

4. IOCs liên quan đến Babble Loader

BabbleLoader:

SHA256
052c776fdc9700dfb37f964a73d461a57efad30a01bcf54505d7abcd601e6ff3
0ad8513b62a778d7e426627be3ed2dbaf00d99b9802a1f566dc9203e3d311fc3
0f6847d33cb38b0ed6dc1d8cfe3dc5d2e293d91c4880e3b4f5ddb77fd9d4cd1f
114b868f319162c5d6ff92796e41910f54de0e89f895a066fd4980c6dba2e323
1367fb270f35512b17fe5e73cc0233ace272daafe15cf94e45f696431f52332f
1537965c7722a9886d542688fcbafecd1248b2fbd56e9a90a803a50e880e1bb8
16200bbe4646fe8cefeee5be20ce55c50300485f3356ab181fb930bd02536709
1da4de2b4b87bff7f9f1a3208c5c663a06f7f9b67f918e5a5e8e860e759b7075
200289d5a408a2e49a894228edb3324548ca5c5c0283d09486aa287df41f15bc
217d7501287ae894f47bd04253bd184d1901dd131b0cd15bcbbeba5158049d5d
22866e6ded40916de8002606f82e44ee141f27c3340fa2c4d16514624ee05a72
237812322bbbcf47feeb79b8e91b97d00453ffd5deb52c819c183b45d18b0b5a
25923b822e9a1374817caf79375170b944f2762b1e3f2add921008ffec702740
2a8a340fc9c395fe23211ac95d124b64452d49c67b069f53aaf3dbe16e95791d
2b6bff7b8c23f1fa526e116c7577c32845d5b969c68a66850c305a351adc9726
2d6b50003436ed489d1b46566eb879e317e1b9a5b6edb12f3cbb4c8a8d932a08
2eab850166944175e5fac4c89706328a58dcef55dbc22ff20342d1d246ba76b9
2ee32c46207119f6851f2869203124c104c72cfdf9622416252ae3405f485cd2
328d92b71034d74c016b1f8e70217be3f432a2ade8fe44522f84980fd0dbb1f9
33e42e7828cda7987d17342e0eb8134f590cd3d291dbc75f13334259a4908ba1
3bf5f07059a24fb803c6fefb874f000e9c300372b1b870e48b4935bd0219fe2b
401209ec9dda222984fd5cb775a6b6c2e651d88c04a506c9058cb1decdce869d
451e1bec8476a89c7d2b526071fa2918187f2f5b3ba9362e6999114993a74da5
455cd0db2de92ee348295780f8fc7a32a5406a5986a4d162761680f11b6346b1
466a8af8d0b51ed82aec35b17b845e6baf77ada259aa2fd5591024a01d8e31b5
46b355d25b95d7f9d7029f1ee1a346028e3c5bdec9e6c9245c12d1607cb1c686
46f0e190cd346d1eb6d0c27386bb3aceebf4ad44b25d253cac4063e2ccde9028
478eb22a1f1be2ef6e70625cf42ca61c716389135acbb705c0e21f0cf330bf46
47a71eb078b14a92eb5fb990f606aa48e535860af90ebc5e075c8b2e4d829633
4b7fa864007357e3e799eeb4a9630425652178551a9c37181fc6ea86660af814
4ba95478ea0ac78e038d30693fabf95244bd70e40b36b2a928f3854551d6fa78
4bed4960a896ebeafa9a9421d7ecf389205a2f0216ad911bdcd80f28237159e6
4e40aaddf718b70f397d449f8ca9a577ef0106f281ccb50f0b5cde531b758881
5305556bee271232973a9e09c4776a3b386964112785db638b225b2cc61d9af7
53e451750c099f33f80a3652d9f2a804390de0f867af13ae22ad0fbf4b15f8c3
5493fa6f2ab69da66352532b2c13e7e461bcde6cc2810a6f6af88e139dde1ae7
5665c96975c959b5e8057b7aed46f7c203335aefa35f5e290c538e9300e3e293
5b9481d9022b0efcaed04513d338048de4aa3e1328bacc0966486ef322c0d086
5eb3bb67656d990ceec07f55c78dcd8032a7cf00ac919a399e3642b177f68381
60ecef2d0a966db913bff15872c072175b895e16271351c43e5a0cf9e4018f22
643dde3f461907a94f145b3cd8fe37dbad63aec85a4e5ed759fe843b9214a8d2
69ad389722dd8b49590b2aa014f703b39737894073c7339ea44c94d296e00273
78f6c822cee2b0587df145d67478cce5bbeb76147a7846d08b7b6fd09aa36ce2
796c245c5bb1e7c1dcd52c4e8f83e1c707e391f6409ee9b5e1dd18658ff0e05f
7df313618a02e8e9961ddb1c3289956eb18361f1ca9fb639d64a00fae7568a4b
7e5ba9e3ccc1cb52d24c21c6d378a32bb540a8519789d8cf796e5dd351fc6958
8907a8454ef56d64bf788b9c8c64bbaaf187be7a9666d8d8331fd187c49c6031
8a28e457b19060678d5d007b291722e1dea92f69249e1588ca5b97eb1fe10807
8cc2e1104480875ee237bf4ca9f3d83e46ca213f5c88df95be0d78e05c7c2d71
8cf8bea6842219e565720919372e4aa530942b28d533231043ee57e7bb424cbe
8d8c3b6be212ce645566311ce95ad9ad3aad37795042882adefda9716deb2eab
8e63b1f7f8e29b9a714f796e2e8ca0cd1094086e2d0a5de21601e23e1792a906
9125c13250a14905a4fd97978a3a6dbba80df01e73d98f8d4fa2d19b49d9fda0
9314ea889f93da5cd39129840a42bd5f228538686a2345f56e757e5a5d956dee
9bf7a01254fed809e0f564f28a3cf54156ea98f85d3b633ae3a213a87f9db143
9dfb8ed499b667d782ae3a4ce40472893a789ed973f48884b47358536b6a76e8
9fa7574f35fae3d309c8cefe0e8a43d07afb6cefaee0caa3b2538263bd4a7ec5
a01ac4244102e3958296c70d71e3d951f11abcc355458d1918d081587b151d90
a08db4c7b7bacc2bacd1e9a0ac7fbb91306bf83c279582f5ac3570a90e8b0f87
a29e108e912c77ed565873bd205da01ed0e6001d18b442139c06827428d2eba1
a3b45619606d4c3c487047786e3d51a98fdcc1fdc43dc7b6f6e80974fd0a9c97
a695cb493631962a4c2fd61a094cb0b952ce708a99af714772cddd4991f32df0
ae6ee6bf2f9890ed83922e5c80770dd88faa9b32b2211462ea2eed29bf1bf6c5
b14af38c4230de20c7c4fefc1e3c5fffb1562bacedfebc56a508f55182a6fe88
b1ebe1794e091fd82a34d6806f18f64ebadb5d3b2343a661c481fb7c54cb872f
b2a91277e5fb40a0a38215142f683554b4e7c03ccd439e0d056c56b031a5bec5
b72d9ae8484b91ec9c6167e6707617f495622f3b684f6b3e30b29106891c778b
bb4f812f8bb4e7b33d7b583407370a5351d079f63b26956adc7ab317b3d90601
bdd6bd29937059dd944fb09163a24e4482c5ce420d3de749e5e46c6c25b2ea86
c2a95f22cfee1f4df67a424e30425b59c23db265bff611f2ee653d71b30a70d8
ca67f61b5f8d20ec3f45dbbfc355045a8ceee15396f1cad032850a3ee23a42b3
cd3f064d088a3a6a6ad03da148701fb6b660866b8aac2a808359505620166641
d7967661947ca835deddec30ae6e62d580718cbdeafb42cd6d0f038a407edcf0
d9cea34db0d1dc016dd4007d8cd11416f095c41b0639f13af1eb6ad675651df2
db282cae419ed5af3338f65f170ecd7b312cac2500b5cb2c8824721ba981c361
db41e032193becc097d0da85cac74cf1f519b85cf731f783ccea11c1e20ad23f
e09c36993e1c29b6ef0f1c73e02aee54686c0df49b6d87b577e70f261313acaf
e13f20752f6298728ac0463a3f4b0657d5657ca7710e63a27ac1179078ac71f6
e1448680114cb3dd06aa81a3b1037f77e6d5b3f6dce213aa38cffdec72d59e74
f2f23a963952c1a822484382bf4c68cd8b7278400ad2d8bacf3235ba2fc42a89
fa292bfcf81223bab0f79d4ce08187e37d68960005629df0241ea22f0b95d7a8
fc589aa3529a057fee52a1c9bd9bb19fa42bbfd291b7dbb3791e77eced376640
ffcae0093d509563b47b1d0cef3aa455a4358de3a1d2c2b84c298a927aa238e8

WhiteSnake Stealer

SHA256
6dce9024ec032390ca4294f62cb282a09291cf141cb003f7e0ef23bb7a34bfae

5. Tham khảo

  1. Babble Babble Babble Babble Babble Babble BabbleLoader

Newsletters

Part 1 of 50

More from this blog

F

FPT IS Security

790 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.