Trước khi đi vào trình bày về kiểu tấn công DNS Cache Poisoning, nhóm xin trình bày sơ lược về DNS và cơ chế hoạt động của nó.
1. DNS là gì?
Hệ thống tên miền DNS (Domain Name System) là hệ thống phân giải tên miền được phát minh vào năm 1984 cho Internet, dùng để ánh xạ giữa các tên miền (tên logic có nghĩa, thí dụ: www.mydomain.com) và các địa chỉ IP (thí dụ: 192.168.0.2).DNS đưa ra một phương pháp đặc biệt để duy trì và liên kết các ánh xạ này trong một thể thống nhất.
2. Chức năng của DNS
Trên phạm vi toàn cầu, các máy tính kết nối với mạng Internet cần có những địa chỉ IP riêng và tạo ra những địa chỉ liên kết dạng URL (Universal Resource Locators) duy nhất của mình. Vì thế, mỗi website cũng có một tên miền thể hiện bằng URL và một địa chỉ IP khác nhau. Nhờ DNS, người sử dụng chỉ cần đưa URL hay còn gọi là đường kết nối (link) cho trình trình duyệt (web browser) biết để tìm đến địa chỉ cần thiết. Quá trình "dịch" tên miền thành địa chỉ IP để cho trình duyệt hiểu và truy cập được vào website là công việc của một máy chủ tên miền (DNS server). Các máy chủ tên miền trợ giúp qua lại với nhau trên Internet để dịch một địa chỉ IP bất kỳ thành tên logic của nó và ngược lại.
• Mỗi nhà cung cấp dịch vụ Internet (ISP) có nhiệm vụ vận hành và duy trì các máy chủ tên miền của mình. Nghĩa là khi một trình duyệt tìm kiếm địa chỉ của một website thì máy chủ tên miền chịu trách nhiệm phân giải tên website này phải là máy chủ DNS của chính ISP quản lý website đó chứ không phải là của một ISP nào khác. • Trên danh nghĩa, INTERNIC (Internet Network Information Center) là tổ chức tối
cao chuyên việc theo dõi các tên miền và các máy chủ tên miền tương ứng. Thực tế, INTERNIC quản lý tất cả các máy chủ tên miền trên Internet chứ không phân giải tên cho từng địa chỉ.
• DNS có khả năng truy vấn các máy chủ tên miền khác để tìm ra một cái tên đã được phân giải. Máy chủ DNS của mỗi tên miền thường có hai công việc khác biệt:
- Thứ nhất, chịu trách nhiệm phân giải tên từ các máy bên trong miền về các địa chỉ Internet, cả bên trong lẫn bên ngoài miền nó quản lý.
- Thứ hai, trả lời các máy chủ DNS bên ngoài đang cố gắng phân giải những cái tên bên trong miền nó quản lý.
• Các máy chủ tên miền có khả năng ghi nhớ những tên vừa phân giải để dùng cho những yêu cầu phân giải lần sau. Số lượng những tên phân giải được lưu lại tùy thuộc vào quy mô của từng DNS.
Hình 10 - Hệ thống DNS (Domain Name System)
Như đã trình bày ở trên, trong phạm vi toàn cầu, các máy tính kết nối với Internet sử dụng DNS để tạo địa chỉ liên kết dạng URL (Universal Resource Locators).Theo phương pháp này, mỗi máy tính sẽ không cần sử dụng địa chỉ IP cho kết nối mà chỉ cần sử dụng tên miền (domain name) để truy vấn đến kết nối đó.
Theo đó, khi máy chủ DNS nhận được yêu cầu phân giải địa chỉ (request) từ máy trạm, nó sẽ tra cứu bộ đệm (DNS Cache) và trả về địa chỉ IP tương ứng với tên miền mà máy trạm yêu cầu. Trường hợp nếu không tìm thấy trong bộ đệm, máy chủ DNS sẽ chuyển yêu cầu phân giải tới một máy chủ DNS khác.
Để hiểu rõ hơn về hoạt động của DNS, chúng ta xét ví dụ và tham khảo hình vẽ dưới đây:
Hình 11 – Cơ chế làm việc của DNS
Giả sử PC A muốn truy cập đến trang web www.yahoo.com và server vnn chưa lưu thông tin về trang web này trong DNS Cache của nó, các bước truy vấn sẽ diễn ra như sau:
• Đầu tiên, PC A gửi một request đến server quản lý tên miền vnnđể hỏi thông tin về www.yahoo.com. Nhận thấy rằng, trong DNS Cache của mình không có lưu thông tin về www.yahoo.com, Server quản lý tên miền vnnsẽ gửi một truy vấn đến server top level domain (Top level domainlà server lưu trữ thông tin về mọi tên miền trên mạng).
• Khi nhận được request, top level domainsẽ gửi lại cho server quản lý tên miền
vnn địa chỉ IP của server quản lý miền com (gọi tắt server com).
• Khi có địa chỉ IP của server com thì lập tức server vnnsẽ hỏi server com thông tin về yahoo.com. Server com quản lý toàn bộ những trang web có domain là com, chúng sẽ gửi thông tin về địa chỉ IP của server yahoo.com cho server vnn.
• Lúc này, server vnn đã có địa chỉ IP của yahoo.com rồi. Nhưng PC A yêu cầu dịch vụ www chứ không phải là dịch vụ ftp hay một dịch vụ nào khác. Do đó, server vnn tiếp tục truy vấn tới server yahoo.com để yêu cầu thông tin về server quản lý dịch vụ www của yahoo.com.
• Lẽ đương nhiên khi nhận được truy vấn thì server yahoo.comsẽ gửi lại cho server
vnn địa chỉ IP của server quản lý http://www.yahoo.com/.
• Cuối cùng là server vnn gửi lại địa chỉ IP của server quản lý www.yahoo.comcho PC A và PC A kết nối trực tiếp đến nó. Và bây giờ thì server vnn đã có thông tin về www.yahoo.comtrong DNS Cache của mình cho những lần truy vấn đến sau của các client khác.