Một số dạng tấn công DNS phổ biến
1. Tấn công đầu độc bộ nhớ đệm (DNS Cache Poisoning)
Đây là một phương pháp tấn công DNS, thay đổi thông tin, giả mạo địa chỉ IP, tên miền tương ứng trên bộ nhớ đệm (cache) của máy chủ DNS và gửi các phản hồi giả mạo, chuyển hướng luồng truy cập đến một máy chủ độc hại cho người dùng.
Để khai thác theo hướng này, kẻ tấn công (attacker) lợi dụng lỗ hổng của phần mềm DNS, do các phản hồi truy vấn DNS không được xác thực để đảm bảo chúng được gửi từ các máy chủ DNS được xác thực, các bản ghi giả mạo sẽ được lưu lại trên bộ nhớ đệm của máy chủ DNS và phục vụ cho các người dùng khác.

Bộ nhớ đệm DNS cache được tạo trên máy tính hoặc máy chủ DNS phân giải như DNS của các ISP nhằm giảm thời gian truy vấn DNS. Về cơ bản, DNS cache là một bộ nhớ tạm, chứa các thông tin liên quan đến tên miền, bản ghi và các địa chỉ IP được ánh xạ mà nó lưu lại được sau các hoạt động truy vấn, phản hồi truy vấn DNS trên nó và việc lưu tạm nhằm mục đích sử dụng cho lần truy vấn tương tự tiếp theo, cải thiện tốc độc phản hồi truy vấn DNS. Nếu trong bộ nhớ đệm có câu trả lời, máy chủ phân giải sẽ sử dụng nó. Nếu không máy chủ sẽ liên lạc với máy chủ DNS và tìm nạp câu trả lời. Sau đó, nó sẽ cập nhật bộ nhớ DNS cache cục bộ với thông tin mới nhất mà nó đã thực hiện được.
Mỗi thông tin bản ghi, tên miền hay địa chỉ IP trong bộ nhớ DNS cache đều có giới hạn thời gian, tùy thuộc vào hệ điều hành và chính sách của máy chủ phân giải DNS. Sau khi hết thời gian lưu tạm, máy chủ chứa DNS cache sẽ liên hệ với máy chủ DNS và cập nhật các thông tin sao cho chính xác.
Tuy nhiên, có những kẻ xấu muốn làm nhiễm độc đệm cho mục đích xấu. Làm nhiễm độc bộ nhớ đệm có nghĩa là thay đổi giá trị thực của URL. Ví dụ, tội phạm mạng có thể tạo một trang web trông giống như xyz.com và nhập bản ghi DNS của nó vào DNS cache. Do đó, khi gõ xyz.com vào thanh địa chỉ của trình duyệt, trình duyệt thứ hai sẽ nhận địa chỉ IP của trang web giả mạo và đưa người dùng đến đó, thay vì trang web thực. Điều này được gọi là Pharming. Sử dụng phương pháp này, tội phạm mạng có thể phát hiện các thông tin xác thực đăng nhập của người dùng và nhiều thông tin khác như chi tiết thẻ, số an sinh xã hội, số điện thoại, ... để ăn cắp dữ liệu cá nhân. Việc làm nhiễm độc DNS cache cũng được thực hiện để đưa phần mềm độc hại vào máy tính hoặc mạng của người dùng. Khi người dùng truy cập trang web giả mạo bằng bộ nhớ DNS cache bị nhiễm độc, kẻ tấn công có thể làm bất cứ điều gì chúng muốn.
Một số kỹ thuật tấn công đầu độ bộ nhớ đệm:
Cách thứ 1: thiết lập một DNS Server giả mạo với các bản ghi độc hại.
Mục đích là để lái các client khi phân giải một tên miền nào đó về địa chỉ IP giả mạo, ví dụ khi client cần phân giải địa chỉ www.cnn.com thì được trả về địa chỉ IP giả là 66.66.66.66. Khi nào bản ghi tên miền giả còn tồn tại trong cache của DNS Server nạn nhân, các truy vấn của www.cnn.com sẽ được chuyển hướng đến 66.66.66.66, đây có thể là một máy tính được đặt dưới sự kiểm soát của kẻ tấn công, các thông tin đến www.cnn.com sẽ được kẻ tấn công chuyển hướng đến nguồn độc hại, giả mạo. Do đó client cuối cùng không biết có sự tồn tại của máy “man in the middle”.
Cách thứ 2: Gửi một phản hồi giả mạo đến client thông qua việc thu thập, nghe lén.
Thay vì thiết lập một DNS Server giả mạo, nếu có thể xâm nhập vào vị trí giữa client và DNS Server, kẻ tấn công có thể ngăn chặn các truy vấn của client gửi đến DNS Server và sau đó gửi gói tin phản hồi với thông tin sai đến client.
Client chỉ chấp nhận các gói tin phản hồi với cùng các thông số đã gửi đi ban đầu như Transaction ID, địa chỉ IP và số cổng (port). Để biết các thông số này, kẻ tấn côn có thể nghe lén để theo dõi, ghi lại các gói tin trong mạng. Sau khi đã có các thông số đầy đủ, kẻ tấn công có thể tạo gói tin phản hồi DNS giả để gửi đến cho client. Nội dung gói tin chứa thông tin sai lệch phục vụ cho mục đích xấu của kẻ tấn công.
Tuy nhiên hạn chế của phương pháp này là gói tin phản hồi của kẻ tấn công phải đến trước gói tin hợp lệ của DNS Server. Nếu gói tin hợp lệ của DNS Server đến trước thì cách tấn công này sẽ không thực hiện được. Đó là do client chỉ chấp nhận gói tin phản hồi nào hợp lệ đến trước và sẽ bỏ qua (ignore) các gói tin đến sau.
Có nhiều cách để thực hiện mục đích này của kẻ tấn công, để tăng khả năng thành công của phương pháp này, kẻ tấn công có thể tiến hành tấn công từ chối dịch vụ (DoS) để làm chậm hoạt động của DNS Server. Do phải theo dõi, ghi lại các gói tin để lấy các thông số của gói tin truy vấn DNS, việc theo dõi các gói tin này khó có thể thực hiện trong môi trường mạng. Do đó, kỹ thuật tấn công ARP spoofing thường được thực hiện trước.
Cách thứ 3: gửi một lượng lớn các phản hồi giả mạo đến client.

Kỹ thuật tấn công dựa vào số ID DNS spoofing, đòi hỏi kẻ tấn công phải biết chính xác số ID giao dịch giữa client và server. Điều này có thể được thực hiện bằng cách gửi một lượng rất lớn các gói tin phản hồi chứa số Transaction ID khác nhau đến client, hy vọng một trong số các gói tin gửi đến client sẽ hợp lệ.
Trên thực tế, số ID này chỉ chiếm 2 byte bộ nhớ, cho nên nó chỉ có tất cả 65525 trường hợp. Vì vậy, bằng cách gửi 65525 gói tin phản hồi (mỗi gói tin có số ID khác nhau), một trong số chúng chắc chắn sẽ phù hợp với số Transaction ID giao dịch giữa client và server, đồng thời có thể làm ngập lụt (food) máy nạn nhân. Với cách tấn công này, kẻ tấn công không cần phải “nghe lén” số Transaction ID giao dịch giữa client và server.
Cách thứ 4: kẻ tấn công gửi một lượng lớn các phản hồi giả mạo đến DNS Server.
Trong cách thứ 3, kẻ tấn công không thể biết khi nào client thực hiện một truy vấn. Tuy nhiên, trong thực tế, kẻ tấn công có thể tự thực hiện truy vấn và sau đó gửi gói tin phản hồi giả mạo đến DNS Server. Sau đó, DNS Server sẽ chứa thông tin bị đầu độc.
Trong phương pháp này, gói tin phản hồi phải chứa cùng số Transaction ID và số port mà DNS Server nạn nhân đã sử dụng. Để giải quyết vấn đề này, đối với số Transaction ID thì kẻ tấn công sử dụng phương pháp “birthday attack”. Trên DNS Server thì cổng nguồn sử dụng hầu như không đổi đối với từng client. Lợi dụng điều này, đầu tiên kẻ tấn công yêu cầu DNS Server nạn nhân phân giải một địa chỉ tên miền nào đó của kẻ tấn công. Trên máy chủ, sau khi nhận được truy vấn kẻ tấn công có thể biết được cổng nguồn nào đang được sử dụng trên DNS Server nạn nhân. Dựa trên sự tính toán này, cùng với số cổng nguồn đã biết, kẻ tấn công thực hiện gửi 65525 truy vấn và 65525 phản hồi giả mạo đến DNS Server nạn nhân. Xác suất thành công của phương pháp tấn công này đạt khoảng 96% tỉ lệ thành công.
2. Tấn công từ chối dịch vụ (DoS/DDoS)
Tấn công DOS là những cuộc tấn công nhằm ngăn người dùng hợp pháp truy cập tài nguyên mạng. Thông thường một cuộc tấn công DDoS là một cuộc tấn công sử dụng nhiều tài nguyên mạng làm công cụ để tấn công. Việc sử dụng các nguồn tài nguyên chủ yếu nhằm mục đích khuếch đại, nhưng nó cũng giúp kể tấn công ẩn danh và làm phức tạp các biện pháp khắc phục. Hầu hết các cuộc tấn công DDoS tận dụng một mạng máy tính ma “botnet”, là một mạng gồm các hệ thống máy tính được kết nối Internet được điều khiển tập trung bởi kể tấn công. Botnet có thể có kích thước từ một đến hàng chục triệu hệ thống. Hầu hết các “botnet” sử dụng tài nguyên máy tính bị xâm phạm.

3. DNS Tunneling
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.
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ó.

Một cuộc tấn công DNS Tunneling có ba giai đoạn:
Giai đoạn 1: Kẻ tấn công đăng ký một tên 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 truy vấn DNS thường ít khi bị tường lửa chặn lọc nên máy tính bị nhiễm được phép gửi truy vấn DNS cho tên miền, trong ví dụ này tên miền được truy vấn sẽ có dạng như sau: “W2FsaWNlLCBib2IsIGV2ZV0.tunnel. badactor.com”.
Giai đoạn 3: Trình phân giải DNS có chức năng phân giải tên miền thành địa chỉ IP chuyển hướng người dùng đến máy chủ C&C của kẻ tấn công. Dữ liệu bị đánh cắp, mã hóa và 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”.
Mô hình hóa hệ thống 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: Kẻ tấn cô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 DNS Tunneling khiến các hệ thống bảo vệ hoặc việc ứng cứu sự cố gặp khó khăn hơn trong việc truy vết và xác định nguồn gốc của cuộc tấn công.