Kỹ thuật DNS Tunneling

08:00 | 26/08/2024 | GP ATM
DNS Tunneling là một kỹ thuật sử dụng giao thức DNS (Domain Name System) để truyền tải dữ liệu thông qua các gói tin DNS. Giao thức DNS được sử dụng để ánh xạ các tên miền thành địa chỉ IP, nhưng DNS tunneling sử dụng các trường dữ liệu không được sử dụng thông thường trong gói tin DNS để truyền tải dữ liệu bổ sung. DNS Tunneling thường được sử dụng trong các tình huống mà việc truy cập vào Internet bị hạn chế hoặc bị kiểm soát, như trong các mạng cơ quan, doanh nghiệp hoặc các mạng công cộng. Tuy nhiên, DNS Tunneling cũng có thể được sử dụng để thực hiện các cuộc tấn công mạng, bao gồm truy cập trái phép vào mạng hoặc truyền tải thông tin nhạy cảm mà không bị phát hiện.

TỔNG QUAN VỀ DNS TUNNELING

Trong môi trường Internet, mỗi thiết bị kết nối với mạng cần phải có một địa chỉ IP duy nhất để được xác định và liên lạc với các thiết bị khác. Tuy nhiên, việc ghi nhớ các địa chỉ IP dài và phức tạp không phải lúc nào cũng thuận tiện cho con người. Do đó, DNS được tạo ra để giải quyết vấn đề này bằng cách sử dụng tên miền thay thế cho địa chỉ IP. Dưới đây là một số khái niệm cơ bản về DNS:

- Tên miền (Domain Name): Đây là tên dễ nhớ được sử dụng để định danh cho các tài nguyên trên Internet, chẳng hạn như trang web, máy chủ email hoặc máy chủ FTP.

- Địa chỉ IP (IP Address): Đây là một chuỗi các số được gán cho mỗi thiết bị kết nối với Internet để xác định nó trong mạng.

- DNS Server: Là các máy chủ chứa thông tin về các tên miền và địa chỉ IP tương ứng. Khi một máy tính muốn biết địa chỉ IP của một tên miền, nó sẽ gửi yêu cầu đến một máy chủ DNS để nhận được câu trả lời.

- DNS Record: Là bản ghi dữ liệu trong cơ sở dữ liệu DNS, chứa thông tin về ánh xạ giữa tên miền và địa chỉ IP. Các loại bản ghi phổ biến bao gồm A record (cho IPv4), AAAA record (cho IPv6), CNAME record (cho ánh xạ tên miền chính thức tới một tên miền thay thế), MX record (cho máy chủ email), và nhiều loại bản ghi khác.

- Quá trình giải mã (Resolution): Là quá trình mà máy tính tìm kiếm địa chỉ IP tương ứng với một tên miền bằng cách truy vấn máy chủ DNS.

DNS đóng vai trò quan trọng trong hoạt động của Internet, làm cho việc truy cập các tài nguyên trở nên dễ dàng và thuận tiện cho người dùng bằng cách sử dụng các tên miền dễ nhớ thay vì phải ghi nhớ các địa chỉ IP phức tạp.

DNS Tunneling là một kỹ thuật sử dụng giao thức DNS (Domain Name System) để truyền tải dữ liệu bổ sung bằng cách sử dụng các trường không chính thức hoặc không thông thường trong giao thức DNS. Mục tiêu chính của DNS Tunneling là truyền tải dữ liệu thông qua các gói tin DNS mà không cần sử dụng các kênh truyền thông truyền thống như TCP hoặc UDP. DNS Tunneling có thể được sử dụng để bypass các biện pháp kiểm soát mạng, lọc nội dung hoặc để truyền tải dữ liệu một cách ẩn danh mà không bị phát hiện. Điều này có thể gây ra nguy cơ bảo mật lớn vì các hành động này có thể được sử dụng để thực hiện các cuộc tấn công mạng hoặc truy cập trái phép vào mạng.

PHƯƠNG THỨC HOẠT ĐỘNG CỦA KỸ THUẬT DNS TUNNELING

Cuộc tấn công DNS Tunneling bắt đầu khi người dùng tải phần mềm độc hại xuống máy tính hoặc tin tặc khai thác thành công lỗ hổng trong hệ thống máy tính và cài đặt payload độc hại. Thông thường, những kẻ tấn công sẽ muốn giữ quyền kiểm soát thiết bị, cho phép chúng chạy lệnh hoặc truyền dữ liệu ra ngoài mạng Internet. Để làm điều này, kẻ tấn công cần thiết lập Tunnel - một cách gửi lệnh và nhận dữ liệu từ hệ thống bị xâm nhập đồng thời tránh bị phát hiện bởi các biện pháp bảo mật mạng của nó.

Lưu lượng DNS là hoàn hảo cho việc khai thác này vì nó thường tự do đi qua các biện pháp bảo mật như tường lửa. Ở cấp độ cao, một cuộc tấn công DNS Tunneling có ba giai đoạn:

Hình 1. Các bước thực hiện kỹ thuật DNS Tunneling

- Giai đoạn 1: Kẻ tấn công đăng ký một miền, ví dụ Tunnel.badactor.com. Tên miền trỏ đến máy chủ điều khiển C&C của kẻ tấn công, được sử dụng để liên lạc và đánh cắp dữ liệu;

- Giai đoạn 2: Kẻ tấn công lây nhiễm phần mềm độc hại vào máy tính của mục tiêu, sau đó mã hóa thông tin mà kẻ tấn công mong muốn. Giả sử mục tiêu của phần mềm độc hại là truyền danh sách người dùng gồm Alice, Bob và Eve dưới dạng dữ liệu Base64. Các hướng dẫn sẽ trông giống như các chuỗi ký tự như “W2FsaWNlLCBib2IsIGV2ZV0”. Do các yêu cầu DNS hiếm khi bị tường lửa chặn nên máy tính bị nhiễm được phép gửi yêu cầu DNS cho miền, trong ví dụ này sẽ trông giống như sau: “W2FsaWNlLCBib2IsIGV2ZV0.tunnel. badactor.com”;

- Giai đoạn 3: Trình phân giải DNS có chức năng chuyển đổi tên miền thành địa chỉ IP - định tuyến truy vấn đến máy chủ C&C của kẻ tấn công. Dữ liệu hiện đã được truyền từ nạn nhân đến kẻ tấn công thông qua DNS Tunneling với trình phân giải DNS đóng vai trò trung gian giữa nạn nhân và kẻ tấn công, dữ liệu của mục tiêu được mã hóa sẽ được truyền đến máy chủ C&C.

Kỹ thuật DNS Tunneling cho phép kẻ tấn công thực hiện nhiều hoạt động độc hại, cụ thể:

- Cài đặt phần mềm độc hại: Những kẻ tấn công có thể sử dụng DNS Tunneling để cài đặt phần mềm độc hại trên các hệ thống của mục tiêu;

- Thu thập thông tin xác thực: Sau khi có quyền kiểm soát thiết bị, kẻ tấn công có thể sử dụng Keylogger và các phương pháp khác để thu thập thông tin xác thực của người dùng. Những thông tin này có thể được sử dụng để thực hiện các cuộc tấn công bổ sung hoặc được bán trên Web đen;

- Khám phá mạng: Các truy vấn DNS từ bên trong mạng bị nhiễm có thể giúp kẻ tấn công xây dựng bản đồ mạng, xác định hệ thống và tài sản có giá trị cao trong hệ thống mạng của mục tiêu;

- Lọc dữ liệu: Tội phạm mạng có thể sử dụng DNS Tunneling để truyền dữ liệu ra khỏi mạng, bao gồm cả thông tin nhạy cảm hoặc bí mật của người dùng;

- Điều khiển các thiết bị: Với khả năng kiểm soát thiết bị bị nhiễm, kẻ tấn công có thể kích hoạt các mối đe dọa khác như tấn công DDoS.

Vì không có kết nối trực tiếp giữa kẻ tấn công và nạn nhân nên việc sử dụng đường hầm DNS khiến các hệ thống bảo vệ hoặc chuyên gia ứng cứu sự cố gặp khó khăn hơn trong việc truy tìm nguồn gốc của cuộc tấn công.

PHƯƠNG PHÁP PHÒNG TRÁNH

Kỹ thuật DNS Tunneling là mối đe dọa thực sự đối với cả tổ chức và cá nhân, bởi vì nó có thể vượt qua tường lửa mà không bị phát hiện, khiến các hệ thống bảo mật truyền thống không thể ngăn chặn. Mặc dù về mặt kỹ thuật có thể chặn các dịch vụ DNS bằng tường lửa nhưng làm như vậy sẽ dẫn đến xung đột đáng kể các ứng dụng khác trong hệ thống. Việc chặn hoặc hạn chế lưu lượng mạng có thể khiến người dùng khó chịu, không thể truy cập tài nguyên mạng và một số vị trí nhất định trên Internet. Vì DNS Tunneling vừa khó phát hiện vừa khó ngăn chặn bằng các phương pháp truyền thống, nên đây là “mỏ vàng” cho những kẻ xấu muốn lấy cắp dữ liệu từ mạng mục tiêu của chúng mà không bị phát hiện. Dưới đây là một số biện pháp để giảm nguy cơ bị tấn công DNS Tunneling:

- Áp dụng nguyên tắc Zero Trust: Các phương pháp bảo mật không tin cậy chống lại các cuộc tấn công DNS Tunneling thông qua trạng thái “từ chối” mặc định có thể giảm thiểu đáng kể rủi ro này vì chúng coi tất cả người dùng trong và ngoài mạng là kẻ thù tiềm tàng. Khi kết nối DNS được thực hiện thông qua trình phân giải DNS, việc lọc dữ liệu có thể được thực hiện. Tuy nhiên, với mức độ tin cậy bằng không, người dùng có thể áp dụng chính sách danh sách kiểm soát truy cập (ACL) làm cơ chế thực thi. Tại thời điểm này, người dùng có thể phát hiện hành vi đáng ngờ và các dấu hiệu xâm phạm (IoC). Các vấn đề về Zero-day cũng có thể được dừng, chặn và xử lý. Điều này bao gồm các mối đe dọa nội bộ cố gắng lấy cắp dữ liệu, chẳng hạn như một nhân viên bí mật cố gắng sao chép dữ liệu bí mật hoặc độc quyền trước khi chuyển sang công ty khác.

- Thiết lập kiểm soát truy cập chi tiết: Nền tảng của bảo mật mạng là kiểm soát truy cập là biện pháp song song không thể tách rời của biện pháp Zero Trust. Cùng nhau, chúng cung cấp ranh giới truy cập logic dựa trên nhận dạng và bối cảnh. Điều này làm giảm thiểu nguy cơ tấn công vào hệ thống và tăng cường bảo mật DNS.

- Triển khai chương trình thông tin về mối đe dọa: Thiết lập chương trình thu thập thông tin về mối đe dọa của riêng cơ quan, tổ chức hoặc đăng ký dịch vụ thu thập thông tin về mối đe dọa để nhận được các báo cáo phù hợp. Các thông tin về các nhóm tin tặc, mối đe dọa phổ biến nhất cũng như các chiến thuật, kỹ thuật khác nhau trong hệ thống SOC sẽ giúp tổ chức bảo vệ tốt hơn hệ thống mạng đối với cuộc tấn công DNS Tunneling.

- Sử dụng trí tuệ nhân tạo và học máy: Các chuyên gia an ninh mạng dự đoán rằng đến năm 2035, 90% hoạt động phát hiện và 60% phản hồi đối với các cuộc tấn công mạng sẽ được xử lý bởi trí tuệ nhân tạo (AI). Các dấu hiệu nhận biết của cuộc tấn công DNS Tunneling sẽ được AI và học máy (ML) ghi nhớ, đưa ra cảnh bảo kịp thời cho tổ chức, giúp tổ chức bảo vệ hiệu quả khỏi các cuộc tấn công mạng trong tương lai.

KẾT LUẬN

DNS Tunneling là một kỹ thuật mạnh mẽ, mang lại những lợi ích về việc truyền tải dữ liệu một cách ẩn danh, nhưng các tác hại của nó đối với bảo mật mạng là không thể phủ nhận. Để bảo vệ hệ thống mạng khỏi các mối đe dọa này, các biện pháp bảo mật cần được triển khai và duy trì một cách cẩn thận, cùng với việc theo dõi và phát hiện các hoạt động liên quan đến DNS Tunneling.

TÀI LIỆU THAM KHẢO

[1] Qi, C., Chen, X., Xu, C., Shi, J., Liu, P.: A bigram based real time dns tunnel detection approach. Procedia Computer Science 17, 852–860 (2013).

[2] Alharbi, T.: split packets script. https://github.com/talalsm/mix/ (May 2019).

[3] Alharbi, T., Koutny, M.: Visualising data sets in structured occurrence nets. PNSE 2018 (2018).

[4] Born, K., Gustafson, D.: Detecting dns tunnels using character frequency analysis. arXiv preprint arXiv:1004.4358 (2010).

[5] Farnham, G., Atlasis, A.: Detecting dns tunneling. SANS Institute InfoSec Reading Room 9, 1–32 (2013).

TS. Nguyễn Trung Dũng, TS. Phạm Văn Tới - Phòng thí nghiệm trọng điểm an toàn thông tin, Bộ Tư Lệnh 86

Tin cùng chuyên mục

Tin mới