Hệ thống giám sát, chống thất thoát và diệt phần mềm gián điệp dựa trên truy vấn tên miền độc hại

09:20 | 23/02/2018

Phòng thí nghiệm trọng điểm An toàn thông tin đã đề xuất xây dựng một hệ thống giám sát, chống thất thoát dữ liệu và diệt các PMGĐ, bao gồm phần cứng và phần mềm. Phần cứng là máy chủ DNS Sinkhole với nhiệm vụ kiểm soát, điều khiển các kết nối độc hại về địa chỉ IP an toàn (IP Sinkhole). Phần mềm là AV-DLP (antivirus - chống thất thoát dữ liệu) với 3 chức năng: giám sát, cảnh báo máy tính trạm có truy vấn đến tên miền độc hại; ngăn chặn các hành vi đánh cắp thông tin trong máy tính rồi gửi đến máy chủ C&C; phát hiện và tiêu diệt PMGĐ dựa trên hành vi khi chúng hoạt động.

Khi đã nhiễm vào máy tính, phần mềm gián điệp (PMGĐ) thường liên lạc với máy chủ ra lệnh và điều khiển (Command & Control - C&C) trên Internet. Dù sử dụng bất kỳ giao thức truyền tin nào, thì các máy chủ C&C đều phải có địa chỉ trực tiếp hoặc thông qua tên miền. Do sử dụng các địa chỉ IP dễ bị phát hiện, nên các máy chủ C&C thường sử dụng một hoặc nhiều tên miền khác nhau. Sau khi nhiễm vào máy tính, PMGĐ sẽ truy vấn đến máy chủ DNS để lấy địa chỉ IP của máy tính điều khiển, sau đó, lấy cắp thông tin cá nhân và dữ liệu trong máy tính rồi gửi đến máy chủ C&C thông qua địa chỉ IP. Nhiều phần mềm antivirus (AV) đang được sử dụng trên thế giới vẫn không thể ngăn chặn được hoàn toàn PMGĐ, đặc biệt là các PMGĐ mới. Nếu phát hiện được PMGĐ thì việc cập nhật cũng mất nhiều thời gian do phải phân tích tại phòng thí nghiệm.

Để ngăn chặn máy tính trong mạng LAN, WAN truy vấn đến máy chủ DNS, viện SANS (Mỹ) đã đề xuất kỹ thuật DNS SinkHole, trong đó có một máy chủ DNS Sinkhole sẽ đặt trước máy chủ DNS của Internet, nhằm trả các truy vấn tên miền về một địa chỉ IP an toàn. Kỹ thuật này đã được sử dụng trong các hệ thống tường lửa thế hệ mới của hãng an ninh mạng Palo Alto (Mỹ) và các hệ thống máy chủ cấp quốc gia. Tuy nhiên, kỹ thuật DNS SinkHole do viện SANS đề xuất chỉ có thể ngăn chặn thất thoát dữ liệu, mà chưa có giải pháp phát hiện máy tính có truy vấn đến tên miền độc hại hay không, đồng thời ngăn chặn hành vi và diệt các PMGĐ.

Vì vậy, Phòng thí nghiệm trọng điểm An toàn thông tin đã đề xuất xây dựng một hệ thống giám sát, chống thất thoát dữ liệu và diệt các PMGĐ, bao gồm phần cứng và phần mềm. Phần cứng là máy chủ DNS Sinkhole với nhiệm vụ kiểm soát, điều khiển các kết nối độc hại về địa chỉ IP an toàn (IP Sinkhole). Phần mềm là AV-DLP (antivirus - chống thất thoát dữ liệu) với 3 chức năng: giám sát, cảnh báo máy tính trạm có truy vấn đến tên miền độc hại; ngăn chặn các hành vi đánh cắp thông tin trong máy tính rồi gửi đến máy chủ C&C; phát hiện và tiêu diệt PMGĐ dựa trên hành vi khi chúng hoạt động.

Phân tích hành vi của PMGĐ

Các PMGĐ hoạt động dựa trên tên miền độc hại có thể chia thành 2 giai đoạn: Truy vấn tới máy chủ DNS và làm việc với máy chủ C&C (Hình 1).


Hình 1. Hành vi của phần mềm gián điệp

Trong giai đoạn 1, máy tính bị nhiễm PMGĐ mở cổng và truy vấn bằng gói tin UDP đến máy chủ DNS để lấy địa chỉ IP theo cổng 53. Máy chủ DNS gửi trả địa chỉ IP của máy chủ C&C tới máy bị nhiễm cũng trên cổng 53. Trong giai đoạn này, nếu nhận diện được tên miền độc hại và bắt được gói tin truy vấn, thì có thể biết máy tính bị nhiễm PMGĐ hay không. Tuy nhiên, vì PMGĐ sẽ đóng cổng khi gửi xong gói tin truy vấn DNS, nên rất khó phát hiện tiến trình nào của máy tính đang diễn ra hành vi độc hại, vì thế, việc điều tra mẫu PMGĐ trong máy tính sẽ gặp khó khăn.

Trong giai đoạn 2, PMGĐ mở một cổng thường trú và gửi gói tin TCP “Hello” tới máy chủ C&C. Nếu biết được IP đích và cổng đã mở, có thể bắt được tiến trình liên quan đến PMGĐ. Thông thường các PMGĐ làm việc với máy chủ C&C qua cổng 443 (SSL) và 80 (HTTP).

Như vậy, trong giai đoạn 1, có thể phát hiện được máy tính bị nhiễm PMGĐ hay không; trong giai đoạn 2, có thể phát hiện được tiến trình của PMGĐ; từ đó điều tra, phân tích, ngăn chặn và tiêu diệt.

Mô hình hệ thống giám sát, chống thất thoát dữ liệu và diệt PMGĐ

Mô hình của hệ thống được mô tả trong Hình 2. Thành phần chính của hệ thống là một máy chủ DNS SinkHole. Các máy tính trong mạng LAN, WAN sẽ phải truy vấn đến máy chủ này trước khi truy vấn đến máy chủ DNS của các nhà cung cấp dịch vụ Internet (Internet Service Provider – ISP) và phần mềm AV-DLP. Máy chủ SinkHole có 2 chức năng:

Lưu lại tất cả các truy vấn của các máy tính trong mạng, từ đó phân loại thành Blacklist và Whitelist. Có thể phân loại bằng cách xây dựng công cụ tự động hỏi đáp trên cộng đồng mạng như virustotal.com, các trang web tin cậy, hoặc có thể nhận được sau khi phân tích các mẫu mã độc trong mạng. Nếu tên miền không có trong danh sách Blacklist, máy chủ DNS SinkHole sẽ chuyển tiếp đến máy chủ DNS trên Internet.

Đối với các tên miền được nhận diện chắc chắn là độc hại, máy chủ SinkHole sẽ trả các tên miền này về địa chỉ IP SinkHole. Như vậy, các máy tính bị nhiễm PMGĐ bị ép buộc phải kết nối với IP SinkHole nên không thể kết nối ra mạng ngoài, cho phép ngăn chặn thất thoát dữ liệu.

Phần mềm AV-DLP được cài đặt tại các máy tính trong mạng, có chức năng giám sát các truy vấn tới máy chủ DNS. Nếu tên miền trùng với tên miền nằm trong Blacklist hoặc được trả về từ DNS SinkHole, thì sẽ có cảnh báo cho người dùng. Ngoài ra, khi phát hiện thấy có gói tin TCP gửi tới IP SinkHole, thì sẽ tiến hành điều tra mã độc để ngăn chặn và tiêu diệt.

Phần mềm AV-DLP có 4 môđun, bao gồm: Xử lý gói tin; Phát hiện truy vấn độc hại; Điều tra tiến trình độc hại và diệt PMGĐ. Nguyên tắc hoạt động có thể mô tả như Hình 2.


Hình 2. Mô hình hệ thống giám sát, chống thất thoát dữ liệu và diệt PMGĐ

Phần mềm thường xuyên giám sát các gói tin và phân loại. Nếu gói tin là UDP (Port 53) và có IP nguồn là DNS Sinkhole hoặc tên miền có trong Blacklist thì cảnh báo còn nếu không nằm trong danh sách tên miền độc hại thì sẽ bắt gói tin tiếp theo. Nếu gói tin bắt được là TCP và gửi tới IP SinkHole thì máy tính đã bị nhiễm PMGĐ. Phần mềm sẽ phát hiện cổng đã mở trong gói tin này và tìm được tiến trình bị nhiễm mã độc.

Tiếp theo, phần mềm tiếp tục điều tra phát hiện PMGĐ đang nằm trong máy tính theo tiến trình bị nhiễm. Quá trình điều tra được thực hiện theo cả hai hướng. Hướng H1 là các PMGĐ nhiễm vào các tiến trình hợp lệ (được xác thực bởi Windows) hoặc chính bản thân các tiến trình này là PMGĐ. Hướng H2 là phát hiện các phần mềm gián điệp thường kích hoạt khi khởi động máy và sau khi tiêm nhiễm vào các tiến trình hợp lệ sẽ dừng hoạt động. Quá trình điều tra theo H1 và H2 chính là kỹ thuật diệt mã độc bằng tay thường được sử dụng khi điều tra theo các tiến trình đang hoạt động hoặc điều tra các tiến trình khởi động cùng Windows.


Hình 3. Lưu đồ thuật toán của AV-DLP

Trong quá trình điều tra, chúng tôi sử dụng tính xác thực Windows để quyết định. Các PMGĐ thường không có chữ ký số (Not verified) mà có hành vi gửi gói tin TCP tới IP Sinkhole sẽ phát hiện và diệt. Để giảm thời gian tính toán kiểm tra xác thực, chúng tôi sử dụng kỹ thuật Whitelist trong đó các tiến trình, dll sẽ được tính toán chữ ký số MD5 và so sánh với danh sách các mã MD5 an toàn mà các hệ điều hành Windows thường sử dụng. Việc điều tra theo hướng H1 thì không cần phải biết trước mẫu PMGĐ và đây là việc phát hiện và tiêu diệt theo hành vi, theo hướng H2 thì cần phải biết trước mẫu PMGĐ (MD5). Ngoài ra, khi điều tra trong hướng H2, chúng tôi sử dụng danh sách Blacklist gồm các MD5 của mã độc đã biết trước (gần 40 triệu mẫu) do cộng đồng mạng phát hiện (VirusTotal cảnh báo). Danh sách Whitelist thường xuyên được cập nhật cho máy tính để giảm số lần tính toán khi phát hiện các PMGĐ khác.

Kết luận

Nếu triển khai hệ thống máy chủ DNS SinkHole có thể giảm được nguy cơ thất thoát dữ liệu. Phần mềm AV-DLP có thể diệt được phần lớn các PMGĐ dựa trên hành vi truy vấn tên miền mà không cần phân tích mẫu.

Hệ thống này cũng có một số hạn chế cần khắc phục là cần phải giám sát để biết trước tên miền độc hại (Blacklist). Việc diệt PMGĐ chỉ được thực hiện khi bộc lộ hành vi, chưa diệt được khi lây nhiễm. Những nhược điểm này sẽ được khắc phục trong phiên bản tiếp theo.