DNS là viết tắt của Domain Name System, và nó giúp một trình duyệt tìm ra địa chỉ IP của một trang web có thể load nó trên máy tính của bạn. Bộ nhớ DNS cache là một file trên máy tính của ISP hoặc của bạn, có chứa danh sách địa chỉ IP của các trang web được sử dụng thường xuyên. Bài viết này giải thích việc làm nhiễm độc DNS cache (DNS Cache Poisoning) và giả mạo DNS cache (DNS Cache Spoofing) là gì.
Làm nhiễm độc DNS cache
Mỗi lần người dùng nhập URL trang web vào trình duyệt của mình, trình duyệt sẽ liên hệ với một file cục bộ (DNS Cache) để xem có bất kỳ mục nhập nào giống với địa chỉ IP của trang web hay không. Trình duyệt cần địa chỉ IP của các trang web để nó có thể kết nối với trang web đó. Nó không thể chỉ sử dụng URL để kết nối trực tiếp với trang web. Nó phải được kết nối vào một địa chỉ IP IPv4 hoặc IPv6 thích hợp. Nếu bản ghi ở đó, trình duyệt web sẽ sử dụng nó; nếu không nó sẽ đi đến một máy chủ DNS để có được địa chỉ IP. Điều này được gọi là DNS Lookup.
Bộ nhớ DNS cache được tạo trên máy tính hoặc máy chủ DNS ISP của bạn để lượng thời gian dành cho việc truy vấn DNS của một URL giảm xuống. Về cơ bản, DNS cache là các file nhỏ chứa địa chỉ IP của các trang web khác nhau thường được sử dụng trên máy tính hoặc mạng. Trước khi liên hệ với máy chủ DNS, máy tính trên mạng liên hệ với máy chủ cục bộ để xem có bất kỳ mục nhập nào trong bộ nhớ DNS cache hay không. Nếu có, máy tính 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 địa chỉ IP đó. Sau đó, nó sẽ cập nhật bộ nhớ DNS cache cục bộ với địa chỉ IP mới nhất cho trang web.
Mỗi mục nhập trong bộ nhớ DNS cache được đặt giới hạn thời gian, tùy thuộc vào hệ điều hành và độ chính xác của DNS resolution. Sau khi hết hạn, máy tính hoặc máy chủ chứa DNS cache sẽ liên hệ với máy chủ DNS và cập nhật mục nhập sao cho thông tin chính xác.
Tuy nhiên, có những người muốn làm nhiễm độc DNS cache cho mục đích xấu.
Làm nhiễm độc bộ nhớ cache 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 của bạn. Do đó, khi bạn 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 bạn đế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, bọn 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 bạn và nhiều thông tin khác như chi tiết thẻ, số an sinh xã hội, số điện thoại v.v... để ă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 bạn. Khi bạn truy cập trang web giả mạo bằng bộ nhớ DNS cache bị nhiễm độc, bọn tội phạm có thể làm bất cứ điều gì chúng muốn.
Đôi khi, thay vì bộ nhớ cache cục bộ, bọn tội phạm cũng có thể thiết lập máy chủ DNS giả mạo để khi được truy vấn, chúng có thể phát ra địa chỉ IP giả mạo. Đây là cấp độ cao của việc làm nhiễm độc DNS và làm hỏng hầu hết các DNS cache trong một khu vực cụ thể, do đó ảnh hưởng đến nhiều người dùng hơn.
Giả mạo DNS Cache
Giả mạo DNS là một loại tấn công liên quan đến việc mạo danh các phản hồi của máy chủ DNS, nhằm đưa ra thông tin sai lệch. Trong một cuộc tấn công giả mạo, một tin tặc sẽ cố gắng phán đoán một máy khách DNS hoặc máy chủ đã gửi một truy vấn DNS và đang chờ phản hồi DNS. Một cuộc tấn công giả mạo thành công sẽ chèn một phản hồi DNS giả vào bộ nhớ cache của máy chủ DNS. Quá trình này được gọi là làm nhiễm độc bộ nhớ cache. Một máy chủ DNS giả mạo không có cách xác minh rằng dữ liệu DNS là xác thực và sẽ trả lời từ bộ nhớ cache của nó bằng cách sử dụng thông tin giả mạo.
Giả mạo DNS cache có vẻ tương tự như làm nhiễm độc DNS cache, nhưng có một chút khác biệt nhỏ. Giả mạo DNS cache là một tập hợp các phương pháp được sử dụng để làm nhiễm độc một bộ nhớ DNS cache. Điều này có thể là một mục nhập bắt buộc vào máy chủ của mạng máy tính để sửa đổi và điều khiển bộ nhớ DNS cache. Điều này có thể thiết lập một máy chủ DNS giả để gửi đi phản hồi giả mạo khi truy vấn. Có rất nhiều cách để làm nhiễm độc một bộ nhớ DNS cache, và một trong những cách phổ biến là giả mạo DNS Cache.
Biện pháp ngăn chặn việc làm nhiễm độc DNS cache
Không có nhiều phương pháp có thể ngăn chặn việc làm nhiễm độc DNS cache. Phương pháp tốt nhất là tăng quy mô hệ thống bảo mật của bạn, để không kẻ tấn công nào có thể xâm phạm mạng của bạn và tác động vào bộ nhớ DNS cache cục bộ. Sử dụng tường lửa tốt có thể phát hiện các cuộc tấn công làm nhiễm độc DNS cache. Xoá bộ nhớ DNS cache thường xuyên cũng là một tùy chọn mà bạn có thể cân nhắc.
Ngoài việc mở rộng quy mô hệ thống bảo mật, quản trị viên nên cập nhật phần cứng và phần mềm của mình để giữ cho hệ thống hiện tại được bảo mật. Hệ điều hành nên được sửa lỗi với các bản cập nhật mới nhất và không được có bất kỳ liên kết gửi đi của bên thứ ba nào. Máy chủ phải là giao diện duy nhất giữa mạng và Internet cũng như phải được bảo vệ bằng tường lửa tốt.
Các mối quan hệ tin cậy của các máy chủ trong mạng phải được đẩy lên cao hơn, để chúng không yêu cầu bất kỳ máy chủ nào khác cho DNS resolution. Bằng cách đó, chỉ các máy chủ có chứng chỉ chính hãng mới có thể giao tiếp với máy chủ mạng trong khi phân giải các máy chủ DNS.
Khoảng thời gian cho mỗi mục nhập trong DNS cache phải ngắn để các bản ghi DNS được tìm nạp thường xuyên và cập nhật hơn. Điều này cũng có thể có nghĩa là khoảng thời gian này sẽ dài hơn khi kết nối với các trang web (chỉ đôi khi thôi) nhưng sẽ làm giảm nguy cơ sử dụng bộ nhớ cache bị nhiễm độc.
DNS Cache Locking (khóa DNS Cache) nên được cấu hình đến 90% hoặc cao hơn trên hệ thống Windows của bạn. Khóa bộ nhớ cache trong Windows Server cho phép bạn kiểm soát xem thông tin trong DNS cache có bị ghi đè hay không.
Hãy sử dụng DNS Socket Pool vì nó cho phép một máy chủ DNS sử dụng ngẫu nhiên cổng nguồn khi phát ra các truy vấn DNS. Điều này cung cấp bảo mật nâng cao, chống lại các cuộc tấn công làm nhiễm độc bộ nhớ cache (theo TechNet).
Domain Name System Security Extensions (DNSSEC) - Các phần mở rộng bảo mật hệ thống tên miền - là một tập hợp các phần mở rộng cho Windows Server để tăng cường thêm bảo mật cho giao thức DNS.
Xem thêm: