BÍ ẨN CẤU TRÚC DỮ LIỆU ĐƯỢC MÃ HÓA CỦA GAUSS

Diễn đàn - Ngày đăng : 08:00, 04/11/2015

Trong một nghiên cứu gần đây nhất, Kaspersky Lab đã tìm thấy một loại Trojan mới với tên gọi Gauss, một trong những gián điệp trên mạng tương tự như Stunex, Flame hay Duqu. Cấu trúc dữ liệu được mã hóa của Gauss không chỉ là tính năng độc đáo của Trojan này mà còn là sự bí ẩn đầy thách thức đối với các chuyên gia bảo mật khi mà mục đích chính của cấu trúc này vẫn chưa có câu trả lời chính xác.

Gauss là một công cụ gián điệp trên mạng phức tạp có dấu hiệu được tài trợ bởi một tổ chức hoặc quốc gia nào đó. Gauss có khả năng ăn cắp nhiều thông tin, đặc biệt tập trung vào mật khẩu của trình duyệt, thông tin tài khoản ngân hàng trực tuyến và các cấu hình hệ thống máy tính bị nhiễm. Các chuyên gia của Kaspersky Lab phát hiện ra Gauss bằng cách xác định sự tương đồng của chương trình độc hại với Flame.

Từ cuối tháng 5 năm 2012, hơn 2.500 trường hợp lây nhiễm đã được ghi nhận bởi hệ thống bảo mật dựa trên đám mây của Kaspersky Lab, với phần lớn trường hợp được tìm thấy ở Trung Đông. Các phát hiện về Gauss chỉ ra rằng có lẽ còn nhiều phần mềm độc hại khác liên quan đến gián điệp trên mạng hoạt động. Những căng thẳng hiện nay ở Trung Đông càng làm gia tăng cường độ của các chiến dịch chiến tranh không gian mạng và hoạt động gián điệp không gian mạng đang diễn ra.

Hơn 1.600 máy tính đã bị lây nhiễm ở Lebanon

Cácchuyên gia của Kaspersky Lab đã công bố nghiên cứu về Gauss đồng thời phân tích các chức năng cơ bản và đặc điểm của nó, bên cạnh cấu ​​trúc, các mô-đun độc nhất, phương pháp giao tiếp, và các số liệu thống kê của các trường hợp bị lây nhiễm. Tuy nhiên, một số bí ẩn và câu hỏi về Gauss vẫn chưa được giải đáp và cấu trúc dữ liệu được mã hóa của Gauss chính là khía cạnh hấp dẫn nhất.

Cấu trúc dữ liệu được mã hóa của Guass nằm ở module đánh cắp dữ liệu trong USB được thiết kế để nhắm vào một hệ thống nhất định có cài đặt một chương trình cụ thể. USB bị nhiễm bệnh có hai tập tin chứa một số phần được mã hóa đặt tên là "System32.dat" và "System32.bin", là phiên bản 32-bit và 64-bit của cùng một mã. Khi một thanh USB bị nhiễm được cắm vào một máy tính không được bảo mật, phần mềm độc hại được thực thi và giải mã các cấu trúc dữ liệu bằng cách tạo ra một chìa khóa để mở khóa nó. Chìa khóa này xuất phát từ cấu hình cụ thể của hệ thống trên máy tính. Ví dụ, nó bao gồm tên của một thư mục trong Program Files và phải có ký tự đầu tiên được viết bằng một bộ ký tự mở rộng như tiếng Ả Rập hay tiếng Do Thái. Nếu phần mềm độc hại xác định được các cấu hình hệ thống thích hợp, nó sẽ mở khóa và thực hiện truyển dữ liệu đánh cắp được.

Các dữ liệu được mã hóa bí ẩn được lưu trữ thành ba phần:

Dữ liệu được chia làm 3 phần

Các tập tin này cũng chứa một nguồn tài nguyên đã được mã hóa "100" có vẻ như là dung lượng thực tế, kích thước tương đối nhỏ của các phần được mã hóa. Nó rất có thể là phần ". Exsdat" có chứa chìa khóa để giải mã các nguồn tài nguyên và thực thi theo các nội dung trong đó.

Chìa khóa giải mã là phần rất phức tạp, không giống với bất kỳ thói quen thường xuyên nào chúng ta thường tìm thấy trong phần mềm độc hại. Đây là một mô tả ngắn gọn của thuật toán:


1. Tạo một danh sách của tất cả các mục từ GetEnvironmentPathW ("Path"), phân chia bởi dấu phân cách ";"


2. Thêm các danh sách với tất cả các mục trở về bởi FindFirstFileW / FindNextFileW bởi mặt nạ "% PROGRAMFILES% \ *", cFileName [0]> 0x007A (UNICODE 'z')
Các chương trình cụ thể được cài đặt trong "% PROGRAMFILES%" có tên bắt đầu hoặc với một ký tự đặc biệt như "~", hoặc sử dụng một bảng ký tự đặc biệt UNICODE, chẳng hạn như tiếng Ả Rập hay tiếng Do Thái.


3. Thực hiện tất cả các cặp có thể từ các mục của danh sách kết quả.


4. Đối với mỗi cặp, nối thêm các mã hóa cứng 16-byte đầu tiên, tính toán chia nhỏ và xáo trộn MD5.

5.Tính toán hàm “băm” MD5 chia nhỏ 10000 lần.


6. Thực hiện so sánh nếu MD5 phù hợp với giá trị mã hóa cứng. Nếu không phù hợp, nó sẽ tự thoát ra.

Ví dụ về các cặp chuỗi, chuỗi thứ haibắt đầu từ "dir" và xáo trộn đầu tiên

Aleks Gostev, Trưởng nhóm chuyên gia an ninh, thuộc Nhóm nghiên cứu và phân tích toàn cầu, Kaspersky Lab cho biết: "Mục đích và chức năng của cấu trúc dữ liệu được mã hóa hiện nay vẫn là một bí ẩn. Cách viết mật mã và các biện pháp phòng ngừa mà các tác giả đã sử dụng để che giấu cấu trúc này cho thấy mục tiêu của nó nhắm vào các cấu hình cao. Kích thước của cấu trúc dữ liệu cũng là một mối quan tâm. Nó đủ lớn để chứa mã có thể được sử dụng cho sự phá hoại trên không gian mạng, tương tự như mã SCADA của Stuxnet. Giải mã thành công cấu trúc dữ liệu này sẽ cung cấp một sự hiểu biết tốt hơn về các mục tiêu tổng thể và bản chất của mối đe dọa này."

Kaspersky Lab muốn mời bất cứ ai có quan tâm đến kỹ thuật lập trình, kỹ thuật đảo ngược, hoặc toán học để giúp tìm ra chìa khóa giải mã và mở khóa cấu trúc dữ liệu bị che giấu.

Mạnh Vỹ