DNS Tunneling: Kỹ Thuật Tấn Công Bí Mật Khai Thác DNS

Kẻ tấn công mạng đang ngày càng khai thác Hệ thống Tên miền (DNS) để vượt qua các biện pháp bảo mật của doanh nghiệp và đánh cắp dữ liệu nhạy cảm. Kỹ thuật tinh vi này, được biết đến là DNS tunneling, biến “sổ danh bạ điện thoại” thiết yếu của internet thành một kênh liên lạc bí mật cho các hoạt động độc hại, che giấu chúng trong lưu lượng mạng tưởng chừng như vô hại.

DNS tunneling liên quan đến việc mã hóa dữ liệu độc hại, chẳng hạn như lệnh điều khiển hoặc dữ liệu rò rỉ, vào trong các trường của truy vấn và phản hồi DNS hợp pháp. Các dữ liệu này thường được mã hóa bằng các phương pháp như Base64 hoặc hexadecimal, tạo ra một đường dẫn vô hình giữa kẻ tấn công và các hệ thống đã bị xâm nhập. Bởi vì lưu lượng DNS là một phần cốt lõi của mọi hoạt động internet và thường xuyên đi qua các tường lửa của doanh nghiệp với mức độ kiểm tra tối thiểu (nhiều tổ chức chỉ kiểm tra các cổng TCP/UDP 53 mặc định mà không đi sâu vào nội dung), phương pháp này cho phép tội phạm mạng thực hiện các hoạt động command-and-control (C2)rò rỉ dữ liệu (data exfiltration) mà vẫn phần lớn không bị phát hiện.

Cơ Chế Tấn Công Chi Tiết

Quá trình tấn công bắt đầu khi các tác nhân đe dọa giành quyền kiểm soát hoặc có khả năng sửa đổi máy chủ tên có thẩm quyền (authoritative name server) cho một tên miền mà chúng kiểm soát. Mã độc được cài đặt trên các hệ thống nạn nhân sau đó được cấu hình để thực hiện các truy vấn DNS định kỳ đến tên miền này. Thay vì các truy vấn DNS thông thường, các truy vấn này chứa các đoạn dữ liệu được mã hóa, gửi thông tin từ hệ thống bị xâm nhập đến máy chủ tên miền của kẻ tấn công.

Khi máy chủ tên miền của kẻ tấn công nhận được truy vấn, nó sẽ phản hồi lại bằng các bản ghi DNS chứa các lệnh được mã hóa. Các lệnh này có thể rất đa dạng, từ việc yêu cầu liệt kê các thư mục để thu thập thông tin về cấu trúc hệ thống, đến việc chỉ thị xóa các tệp quan trọng hoặc cài đặt thêm các thành phần độc hại. Toàn bộ quá trình này diễn ra một cách kín đáo, bởi vì các giao tiếp vẫn được đóng gói trong các giao thức DNS tiêu chuẩn và xuất hiện như lưu lượng DNS hợp pháp.

Các nhà nghiên cứu an ninh mạng đã giải thích rằng, “Mã độc sử dụng hệ thống DNS, do đó không có lưu lượng trực tiếp giữa máy khách mã độc và máy chủ C2.” Điều này có nghĩa là tường lửa biên của tổ chức nạn nhân có thể không phát hiện được kết nối trực tiếp đến máy chủ C2 độc hại, vì lưu lượng chỉ đi qua các máy chủ DNS hợp pháp. Thay vào đó, các giao tiếp luân chuyển qua máy chủ tên đệ quy (recursive name server) của nạn nhân. Máy chủ đệ quy này, thường có các quy tắc cho phép kết nối internet một cách tự do để giải quyết các tên miền công cộng, trở thành một “trung gian bất đắc dĩ” cho kênh liên lạc bí mật này, gián tiếp chuyển tiếp dữ liệu giữa mã độc và máy chủ C2 của kẻ tấn công.

Các Loại Bản Ghi DNS Bị Lạm Dụng

Kẻ tấn công có thể khai thác nhiều loại bản ghi DNS khác nhau cho các hoạt động DNS tunneling của chúng, tận dụng các trường dữ liệu khác nhau để truyền tải thông tin:

  • A records (địa chỉ IPv4): Thường được sử dụng cho các tín hiệu “beaconing” nhỏ gọn hoặc để truyền các lượng dữ liệu nhỏ, vì chúng chỉ chứa một địa chỉ IP. Các phần của địa chỉ IP có thể được sử dụng để mã hóa dữ liệu.
  • AAAA records (địa chỉ IPv6): Tương tự như A records nhưng với không gian địa chỉ lớn hơn, cho phép mã hóa lượng dữ liệu lớn hơn một chút nếu cần.
  • TXT records (văn bản tự do): Đây là một trong những loại bản ghi phổ biến nhất cho DNS tunneling do khả năng lưu trữ lượng lớn văn bản tùy ý (lên đến 255 ký tự mỗi chuỗi, và có thể có nhiều chuỗi), lý tưởng để truyền các lệnh phức tạp hoặc các khối dữ liệu.
  • CNAME records (tên miền chuẩn tắc): Có thể được sử dụng để chuyển hướng các truy vấn, nhưng cũng có thể được lạm dụng để mã hóa dữ liệu trong tên miền mà chúng trỏ đến.

Ví dụ minh họa cụ thể về cách dữ liệu được nhúng:

Một truy vấn tên miền phụ có thể chứa thông tin đăng nhập được mã hóa, chẳng hạn như "username-andy-password-123xyzabc.controlled-domain.com". Máy chủ DNS của kẻ tấn công sẽ giải mã phần tên miền phụ này. Ngược lại, phản hồi từ máy chủ tên miền của kẻ tấn công có thể là một bản ghi TXT chứa lệnh điều khiển. Ví dụ, bản ghi TXT có thể chứa chuỗi được mã hóa mà khi giải mã, sẽ chỉ thị mã độc thực thi một lệnh nguy hiểm trên hệ thống nạn nhân:

sudo rm /etc/shadow

Lệnh này sẽ xóa tệp chứa thông tin mật khẩu người dùng đã được hash trên hệ thống Linux/Unix, gây ra thiệt hại nghiêm trọng.

Các Công Cụ Khai Thác DNS Tunneling Phổ Biến

Nhiều công cụ đã được phát triển để thực hiện DNS tunneling, ban đầu là cho mục đích kiểm thử xâm nhập (penetration testing) và đánh giá bảo mật, nhưng sau đó đã bị các tác nhân đe dọa lạm dụng. Các công cụ này thường có khả năng tùy chỉnh cao, cho phép kẻ tấn công điều chỉnh các tham số như loại mã hóa (ví dụ: hex, Base64), tiền tố truy vấn, và mô hình giao tiếp để tránh bị phát hiện.

Ví dụ, một công cụ phổ biến sử dụng các truy vấn được mã hóa bằng hex với các tiền tố có thể tùy chỉnh. Nó thường thực hiện việc “beaconing” (gửi tín hiệu định kỳ) bằng cách sử dụng các bản ghi A để duy trì kết nối và xác nhận sự tồn tại của kênh, đồng thời tiến hành các hoạt động C2 phức tạp hơn thông qua bản ghi TXT, nơi có thể truyền tải các lệnh và dữ liệu lớn hơn.

Dưới đây là một số công cụ và framework DNS tunneling đáng chú ý mà các chuyên gia bảo mật thường nghiên cứu và theo dõi, đồng thời chúng cũng được các tác nhân độc hại sử dụng rộng rãi:

  • DNSCat2: Một công cụ nhẹ và hiệu quả, được thiết kế đặc biệt để tạo các đường hầm DNS được mã hóa, giúp thiết lập kênh giao tiếp bí mật an toàn giữa máy khách và máy chủ. Nó nổi bật với khả năng hoạt động trên nhiều nền tảng và hỗ trợ các tính năng như truyền tệp.
  • DNS Exfiltrator: Đây là một công cụ minh chứng cho khái niệm (proof-of-concept) chuyên biệt, tập trung vào việc trình diễn khả năng rò rỉ dữ liệu qua DNS. Nó cho thấy cách thức dữ liệu nhạy cảm có thể được chia nhỏ và truyền đi qua các truy vấn và phản hồi DNS một cách hiệu quả.
  • Sliver: Một framework command-and-control (C2) đa nền tảng mạnh mẽ. Sliver tích hợp khả năng DNS tunneling như một trong nhiều phương thức giao tiếp, cho phép các tác nhân đe dọa duy trì quyền truy cập vào các hệ thống đã bị xâm nhập ngay cả khi các kênh truyền thống bị giám sát chặt chẽ.
  • Iodine: Là một trong những công cụ DNS tunneling tiên phong và được sử dụng rộng rãi nhất. Iodine nổi bật với hiệu suất cao và khả năng nén dữ liệu, sử dụng các truy vấn được mã hóa hex, tiền tố tùy chỉnh, và khả năng thực hiện C2 qua bản ghi TXT cũng như beaconing qua bản ghi A.
  • Pupy: Một công cụ hậu khai thác (post-exploitation tool) và framework C2 linh hoạt, thường sử dụng các chữ ký và mô hình giao tiếp độc đáo để thiết lập các kênh bí mật, bao gồm cả các tùy chọn dựa trên DNS.
  • Weasel: Tương tự như Pupy, Weasel cũng là một công cụ C2 cho phép các tác nhân độc hại thiết lập các kênh bí mật bằng cách sử dụng các chữ ký và mô hình giao tiếp riêng biệt, nhằm tránh bị phát hiện bởi các hệ thống bảo mật truyền thống.

Mỗi công cụ này đều có những đặc điểm riêng biệt về cách thức mã hóa, cấu trúc truy vấn, và mô hình giao tiếp, điều này đặt ra thách thức đáng kể cho các hệ thống phát hiện và ngăn chặn.

Biện Pháp Phòng Ngừa và Phát Hiện

Để đối phó với mối đe dọa DNS tunneling, các tổ chức cần triển khai các biện pháp bảo mật DNS tăng cường và thực hiện giám sát chặt chẽ. Các chiến lược chính bao gồm:

  • Giám sát các mẫu tên miền phụ bất thường (unusual subdomain patterns): Cần tìm kiếm các cấu trúc tên miền con dài bất thường, ngẫu nhiên hóa, hoặc lặp lại một cách không điển hình. Các mẫu này thường là dấu hiệu của dữ liệu được mã hóa đang được truyền tải hoặc các lệnh đang được gửi đi qua DNS. Ví dụ, một tên miền phụ như "asdfjklzxcvbnm.malicious.com" có thể là một dấu hiệu đỏ.
  • Phân tích tần suất và lưu lượng truy vấn (query frequency and volume analysis): Phát hiện các đỉnh bất thường trong lưu lượng truy vấn DNS, hoặc các mô hình truy vấn không đều, đặc biệt là đến các tên miền ít được biết đến hoặc bị nghi ngờ. Một số lượng lớn các truy vấn liên tục đến một tên miền cụ thể, hoặc các truy vấn phát ra từ một máy chủ nội bộ bất thường, có thể là dấu hiệu của beaconing hoặc truyền dữ liệu.
  • Triển khai hệ thống phát hiện mối đe dọa chuyên biệt (specialized threat detection systems): Sử dụng các giải pháp bảo mật DNS (DNS security solutions) tiên tiến có khả năng phân tích sâu gói tin DNS (Deep Packet Inspection – DPI). Các hệ thống này có thể phát hiện các bất thường dựa trên hành vi, chữ ký của DNS tunneling, và so sánh với các baseline lưu lượng DNS bình thường. Các giải pháp này thường tích hợp phân tích hành vi và trí tuệ về mối đe dọa.

Thách thức lớn trong việc phòng ngừa DNS tunneling nằm ở việc cân bằng giữa bảo mật và chức năng. Việc chặn quá mức hoặc áp dụng các quy tắc quá nghiêm ngặt đối với lưu lượng DNS có thể làm gián đoạn nghiêm trọng các hoạt động DNS hợp pháp, ảnh hưởng đến khả năng truy cập tài nguyên internet của người dùng, làm gián đoạn các dịch vụ đám mây, hoặc ngăn chặn việc truy cập các mạng phân phối nội dung (CDN) thiết yếu. Do đó, các giải pháp cần phải thông minh, có khả năng phân biệt giữa lưu lượng DNS hợp pháp và độc hại một cách chính xác, thường thông qua việc sử dụng học máy và phân tích ngữ cảnh.

Sự phổ biến ngày càng tăng của DNS tunneling nhấn mạnh tầm quan trọng thiết yếu của việc bảo mật tất cả các giao thức mạng, không chỉ các vector tấn công rõ ràng và dễ nhận biết. Kẻ tấn công mạng đang ngày càng khai thác cơ sở hạ tầng internet cơ bản, vốn được coi là an toàn và đáng tin cậy, cho các mục đích độc hại. Điều này đòi hỏi các tổ chức phải áp dụng một cách tiếp cận an ninh mạng toàn diện và sâu rộng, coi mỗi giao thức như một điểm tiềm năng cho cuộc tấn công và triển khai các biện pháp bảo vệ phù hợp.