Tấn công APT ẩn mã đã trở lại Đông Nam Á

14:00 | 19/08/2019 | HACKER / MALWARE
Trong thời gian vừa qua, các hãng truyền thông đồng loạt đưa tin về nhóm tấn công APT có tên Platinum. Từ tháng 6/2018, nhóm chuyên gia của Kaspersky đã phát hiện ra các mẫu mã độc sử dụng kỹ thuật ẩn mã, lan rộng khắp Nam Á và Đông Nam Á, nhắm vào các tổ chức, cơ quan ngoại giao, chính phủ và quân đội. Bài viết sẽ giới thiệu một số nội dung của chiến dịch tấn công APT này.

Nhóm chuyên gia của Kaspersky gồm Andrey Dolgushev, Vasily Berdnikov, Ilya Pomerantsev (AVI) cho rằng, chiến dịch mã độc của nhóm Platinum đã bắt đầu từ năm 2012, nổi bật với cách tiếp cận nhiều giai đoạn và được đặt tên là EasternRoppels. Đứng đằng sau chiến dịch này được cho là nhóm tấn công APT Platinum nổi tiếng, đã sử dụng một kỹ thuật ẩn mã (steganography) tinh vi, chưa từng thấy trước đây để che giấu các hành vi trao đổi thông tin.

Ở giai đoạn đầu, tin tặc sử dụng các đăng ký Windows Management Instrumentation (WMI) để thực thi trình tải PowerShell khởi đầu, sau đó tải xuống cửa hậu PowerShell khác. Nhóm AVI đã thu thập nhiều tập lệnh WMI PowerShell khởi đầu và nhận thấy rằng chúng có các yếu tố khác nhau bao gồm: địa chỉ IP ra lệnh và điều khiển (C&C) được mã định dạng cứng (hardcoded), các khóa mã hóa, chuỗi mã hóa (salt) (khác nhau cho mỗi trình tải khởi đầu) và giờ hoạt động (phần mềm độc hại chỉ hoạt động trong một khoảng thời gian nhất định mỗi ngày). Các địa chỉ C&C nằm trên các dịch vụ lưu trữ miễn phí và tin tặc đã sử dụng rất nhiều tài khoản Dropbox để lưu trữ trọng tải và dữ liệu đánh cắp. Mục đích của cửa hậu PowerShell là thực hiện việc nhận dạng ban đầu của một hệ thống vì nó hỗ trợ một bộ lệnh ngắn gồm: tải về, tải lên tệp và thực thi mã lệnh PowerShell.

Vào thời điểm đó, nhóm AVI đang điều tra một mối đe dọa khác mà họ cho rằng đây là giai đoạn thứ hai của cùng một chiến dịch. Nhóm AVI đã tìm thấy một cửa hậu được hoạt động dưới dạng DLL như nhà cung cấp dịch vụ tên (name space provider) WinSock để tự duy trì khi khởi động lại. Cửa hậu này có cùng một số tính năng với cửa hậu PowerShell được mô tả ở trên: có giờ hoạt động được mã cứng, sử dụng các tên miền miễn phí làm địa chỉ C&C.... Cửa hậu này cũng có một vài tính năng riêng như có thể ẩn tất cả các giao tiếp với máy chủ C&C bằng cách sử dụng ẩn mã bằng văn bản.

Sau khi phân tích sâu hơn, nhóm AVI đã phát hiện ra hai mối đe dọa này có liên quan đến nhau. Hai cuộc tấn công sử dụng cùng một tên miền để lưu trữ dữ liệu đánh cắp và một số nạn nhân đã bị nhiễm cả hai loại mã độc cùng một lúc. Đáng chú ý, trong giai đoạn thứ hai, tất cả các tệp thực thi được bảo vệ bằng chức năng mã hóa, che giấu mã độc (crypter) theo thời gian thực. Sau khi giải mã được chúng, nhóm AVI đã tìm thấy một cửa hậu khác chưa được phát hiện trước đó, có liên quan đến nhóm Platinum.

Cửa hậu ẩn mã (steganography backdoor)

Cửa hậu nhị phân chính được cài đặt bởi một trình “nhỏ giọt” (dropper) chuyên dụng để phát tán mã độc. Khi trình được thực thi, nó sẽ giải mã các tệp được nhúng trong phần .arch.

 Tiếp theo, nó tạo các thư mục để cửa hậu hoạt động và lưu các tệp liên quan đến mã độc trong đó. Những đường dẫn mà nó sử dụng giống của các phần mềm hợp pháp. Thông thường, mã độc truyền vào hệ thống hai tệp: tệp cửa hậu và tệp cấu hình của nó.

Sau đó, trình nhỏ giọt bắt đầu thực thi cửa hậu, cài đặt mã độc để kích hoạt cơ chế dai dẳng rồi tự gỡ bỏ chính nó ra khỏi hệ thống. Tệp cấu hình luôn có phần mở rộng .cfg hoặc .dat và chứa các tùy chọn được mã định dạng và mã hóa bằng AES-256 CBC như sau:

 

Trong đó, pr - là viết tắt của cụm từ “Poll Retries”, chỉ định khoảng thời gian tính bằng phút sau khi mã độc gửi yêu cầu các lệnh mới để thực thi tới máy chủ C&C; ht - không sử dụng; sl - chỉ định ngày và giờ để mã độc bắt đầu thực thi. Tới thời điểm được chỉ định, mã độc sẽ xóa tùy chọn này; opt - là viết tắt của “Office Hours”, chỉ định giờ và phút trong ngày khi mã độc hoạt động; die - là viết tắt của từ “Eradicate Days”, xác định mã độc sẽ hoạt động trong máy tính của nạn nhân bao nhiêu ngày; Mục “p” liệt kê các địa chỉ máy chủ C&C của mã độc; Mục “t” liệt kê các URL hợp pháp sẽ được sử dụng để đảm bảo rằng máy tính được kết nối Internet.

Giai đoạn dai dẳng

Cửa hậu chính được hoạt động như một thư viện liên kết động (DLL) và xuất một hàm với tên là “NSPStartup”. Sau khi đưa cửa hậu này vào hệ thống, trình nhỏ giọt đăng ký cửa hậu là nhà cung cấp không gian tên winsock2 với sự trợ giúp của hàm API WSCInstallNameSpace, rồi thực thi nó bằng cách gọi hàm WSCEnableNSProvider.

Với quá trình cài đặt này, trong quá trình khởi tạo quy trình “svchost -k netsvcs” khi khởi động hệ thống, nhà cung cấp không gian tên đã đăng ký sẽ được tải vào không gian địa chỉ của quy trình, đồng thời hàm NSPStartup sẽ được gọi.

Tương tác C&C

Sau khi được thực hiện, cửa hậu sẽ so sánh thời gian hiện tại với các giá trị của Eradicate Days, ngày kích hoạt và Office Hours và xác định các thông tin xác thực proxy hợp lệ trong “Lưu trữ thông tin xác thực” và “Lưu trữ được bảo vệ”.

Khi tất cả các luật đã đầy đủ, cửa hậu sẽ kết nối với máy chủ độc hại và tải xuống một trang HTML. Theo giao diện của trang thì cho rằng máy chủ C&C không hoạt động:

Tuy nhiên, đây chỉ là bản ẩn mã. Trang chứa các lệnh nhúng được mã hóa bằng khóa mã hóa cũng được nhúng vào trang. Dữ liệu nhúng được mã hóa bằng hai kỹ thuật ẩn mã và được đặt bên trong thẻ <- 1234567890>:

Trên dòng 31, các thuộc tính “align”, “bgcolor”, “colspan” và “rowspan” được liệt kê theo thứ tự bảng chữ cái; trong khi đó trên dòng 32, các thuộc tính tương tự được liệt kê theo thứ tự khác. Kỹ thuật ẩn mã đầu tiên dựa trên nguyên tắc rằng HTML không phân biệt thứ tự các thuộc tính thẻ, do đó có thể mã (encode) một thông điệp bằng cách hoán vị các thuộc tính.

Dòng 31 trong ví dụ trên bao gồm bốn thẻ; số lượng hoán vị trong bốn thẻ là 4! = 24, do đó dòng đã mã hóa log2(24) = 4 bit thông tin. Cửa hậu giải mã (decode) từng dòng và thu thập khóa mã hóa cho dữ liệu đặt ngay sau các thẻ HTML cũng ở trạng thái mã, nhưng sử dụng kỹ thuật ẩn mã thứ hai.

Hình ảnh trên cho thấy dữ liệu được mã thành các nhóm riêng biệt được phân tách bằng các tab. Mỗi nhóm chứa từ 0 đến 7 khoảng trắng và số lượng khoảng trắng biểu thị 3 bit dữ liệu tiếp theo. Ví dụ, nhóm đầu tiên trên dòng 944 chứa sáu khoảng trắng, vì vậy nó sẽ được giải mã thành 610 = 1102.

Các lệnh

Cửa hậu mà nhóm AVI đã phát hiện có hỗ trợ tải lên, tài xuống và thực thi các tệp. Nó có thể xử lý các yêu cầu cho danh sách quy trình và danh sách thư mục, nâng cấp và gỡ cài đặt chính nó, sửa đổi tệp cấu hình của nó. Mỗi lệnh có các tham số riêng, ví dụ máy chủ C&C mà nó yêu cầu tải lên và tải xuống tệp hoặc tách tệp trong khi upload.

Trình quản lý cấu hình

Trong khi điều tra sâu hơn, nhóm AVI đã tìm thấy một công cụ khác mà cuối cùng được phát hiện chính là trình quản lý cấu hình - một tệp thực thi có mục đích là tạo các tệp cấu hình và lệnh cho các cửa hậu. Tiện ích này có thể cấu hình hơn 150 tùy chọn.

Trình quản lý cấu hình hỗ trợ các lệnh như Xem cấu hình, Tải lên, Tải xuống, Thực thi, Tìm kiếm, Cập nhật cấu hình, Thêm từ khóa, Thay đổi tệp tin từ khóa, Thay đổi khóa, Nâng cấp và Gỡ cài đặt. Sau khi thực hiện một trong số các lệnh trên, trình quản lý cấu hình tạo ra một tệp lệnh, được bảo vệ giống như tệp cấu hình và lưu trữ trong thư mục “CommandDir” (đường dẫn được chỉ định trong cấu hình, tùy chọn 11). Như được mô tả trong phần “Cửa hậu ẩn mã”, cửa hậu này không xử lý các tệp lệnh và không hỗ trợ các lệnh như Thay đổi tệp tin từ khóa và Thay đổi khóa, vì vậy nhóm AVI đã tìm ra một cửa hậu khác liên hệ với trình quản lý cấu hình. Mặc dù cửa hậu này thường được thực thi bên phía kẻ tấn công, nhóm AVI cũng tìm thấy một nạn nhân bị nhiễm cửa hậu tương ứng. Nhóm AVI gọi nó là một cửa hậu ngang hàng (P2P).

Cửa hậu P2P

Cửa hậu này có nhiều tính năng giống với cửa hậu trước. Ví dụ, nhiều lệnh có tên giống nhau, tệp cấu hình của cả hai cửa hậu đều có các tùy chọn có tên giống nhau và được bảo vệ theo cùng một cách, đồng thời các đường dẫn tới các tệp cửa hậu giống như đường dẫn của các tệp hợp pháp. Tuy vậy, cũng có những khác biệt đáng kể. Cửa hậu mới chủ động sử dụng nhiều tùy chọn hơn từ cấu hình, hỗ trợ nhiều lệnh hơn, có khả năng tương tác với các nạn nhân bị lây nhiễm khác và kết nối họ vào mạng, đồng thời cũng hoạt động với máy chủ C&C theo một phương thức khác. Ngoài ra, cửa hậu này tích cực sử dụng log: nhóm AVI đã tìm thấy một tệp log từ năm 2012 trên một máy tính của nạn nhân.

Cửa hậu này có khả năng theo dõi lưu lượng mạng. Sau khi cửa hậu được kích hoạt, nó sẽ khởi động trình theo dõi cho từng giao diện mạng để nhận dạng một gói tin. Gói tin này có cấu trúc đặc biệt, được gửi đến cổng ProbePort của nạn nhân mà đã được chỉ định trong cấu hình. Khi trình theo dõi tìm thấy một gói tin như vậy, nó sẽ hiểu gói tin này là một yêu cầu thiết lập kết nối, đồng thời đặt cổng TransferPort (được chỉ định trong cấu hình) sang chế độ nghe. Bên gửi yêu cầu ngay lập tức kết nối với cổng TransferPort của nạn nhân, cả hai bên thực hiện kiểm tra bổ sung và trao đổi các khóa mã hóa cho nhau. Sau đó, bên yêu cầu kết nối gửi các lệnh cho nạn nhân và bên nạn nhân xử lý chúng.

Kết luận

Nhóm AVI đã phát hiện ra tấn công mới của nhóm APT Platinum và lưu ý rằng, tin tặc vẫn đang nỗ lực cải thiện mã độc và sử dụng các kỹ thuật mới để tấn công APT được tinh vi và kín đáo hơn. Một vài năm trước, nhóm AVI đã dự đoán rằng, ngày càng nhiều tin tặc phát triển mã độc và tấn công APT sẽ sử dụng kỹ thuật ẩn mã. Phát hiện lần này chính là bằng chứng cho thấy tin tặc đã sử dụng kỹ thuật ẩn mã kép trong tấn công trong APT. Ngoài ra, tin tặc cũng sẽ triển khai các công cụ tấn công cần thiết theo một bộ cài đặt lớn. Điều này cho thấy cấu trúc tấn công APT dựa trên nền tảng ẩn mã đang ngày càng trở nên phổ biến. Dựa trên chức năng mã hóa tùy chỉnh được sử dụng bởi tin tặc, nhóm AVI đã quy kết các cuộc tấn công nêu trên có liên hệ với nhóm tin tặc Platinum khét tiếng. Điều này cho thấy rằng, nhóm tấn công APT Platinum vẫn đang hoạt động tại khu vực Nam Á và Đông Nam Á.

Nguyễn Văn Ngoan

Kaspersky

Tin cùng chuyên mục

Tin mới