Trong phạm vi bài viết này, tôi muốn trình bày một số lỗ hổng đã xảy ra với hệ thống DNS cũng như các kịch bản tấn công hệ thống DNS và tác hại nó gây ra với người dùng. Qua đó giúp người sử dụng internet có cái nhận thức tốt hơn để phòng ngừa những nguy cơ có thể xảy ra và sử dụng internet hiệu quả hơn. Hệ thống tên miền – DNS (Domain Name System) được phát minh vào năm 1984 cho Internet, đây là một hệ thống cho phép thiết lập quan hệ tương ứng giữa địa chỉ IP và tên miền. Có thể tìm hiểu thêm các thông tin chi tiết về hệ thống DNS thông qua: http://securitydaily.net/dns-va-nhung-dieu-can-biet/ hoặc http://vi.wikipedia.org/wiki/DNS
Tại sao DNS lại tồn tại các lỗ hổng?
Hệ thống DNS thực chất là một tập hợp hệ thống phần cứng và các công cụ phần mềm phục vụ cho nhiệm vụ phân giải tên miền. Ngoài các hệ thống phần cứng và các công cụ phần mềm chạy dưới dạng dịch vụ thì cần có các giao thức DNS (Bao gồm định dạng gói tin, giao thức truyền, …) để có thể tiến hành trao đổi thông tin giữa máy client với các máy chủ DNS và giữa các máy chủ DNS với nhau. Chính vì DNS hội tụ đầy đủ các yếu tố: Phần cứng, phần mềm và giao thức như đã trình bày ở trên nên hệ thống DNS luôn luôn tiềm ẩn các lỗ hổng mà hacker có thể sử dụng để khai thác và làm chủ hệ thống, từ đó gây ra các ảnh hưởng tới người dùng.
Các kịch bản tấn công hệ thống DNS đã xảy ra
1. DNS spoofing (DNS cache poisoning) Đây là một phương pháp tấn công máy tính nhờ đó mà dữ liệu được thêm vào hệ thống cache của các DNS server. Từ đó, các địa chỉ IP sai (thường là các địa chỉ IP do attacker chỉ định) được trả về cho các truy vấn tên miền nhằm chuyển hướng người dùng tư một website này sang một website khác. Để khai thác theo hướng này, attacker lợi dụng lỗ hổng của phần mềm DNS, do các DNS responses không được xác nhận để đảm bảo chúng được gửi từ các server được xác thực, các bản ghi không đúng đắn sẽ được cache lại và phục vụ cho các user khác. Ví dụ: Attacker thay thế địa chỉ IP cho một bản ghi DNS trên DNS server thành địa chỉ IP của server mà attacker đang có quyền điều khiển. Trên server này, attacker có triển khai một số phần mềm mã độc để khi người dùng bị chuyển qua sẽ dễ dàng bị nhiễm mã độc. 2. DNS Amplification Attack Đây là một trong những phương pháp được sử dụng để tấn công từ chối dịch vụ, thuộc vào lớp reflection attack. Có hai yếu tố cơ bản cho cách thức tấn công này: – Địa chỉ tấn công được che giấu nhờ ánh xạ sang một bên thứ ba (Reflection) – Traffic mà người bị hại nhận được sẽ lớn hơn traffic gửi từ attacker (Amplification) Nguồn từ: http://securityaffairs.co/wordpress/3184/cyber-crime/anonymous-dns-amplification-attacks-for-operation-global-blackout.html 3. Giả mạo máy chủ DNS Đây là cách một số phần mềm quảng cáo hay trojan thường hay thực hiện. Đầu tiên, chúng dựng lên các DNS server, giống với chức năng DNS server thông thường. Tuy nhiên, các DNS server này có khả năng điều khiển được để thêm, bớt hay chỉnh sửa các bản ghi DNS nhằm chuyển hướng người dùng tới các địa chỉ IP không chính xác với mục đích: gia tăng quảng cáo, cài mã độc, thay đổi kết quả tìm kiếm… Để thực hiện hành vi này, các phần mềm độc hại sau khi được cài vào máy tính người dùng, chúng sẽ tìm cách để thay đổi cấu hình DNS của người dùng thành địa chỉ DNS của phần mềm đã thiết lập từ trước. Qua đó, các truy vấn DNS của người dùng thay vì đi qua các DNS server của ISP hoặc do người dùng thiết lập thì lại đi qua các DNS server của attacker. Một biến thể của hình thức này chính là việc các phần mềm độc hại thay đổi file host (Trên hệ điều hành Windows) để chỉ định địa chỉ IP cho một số website mà attacker mong muốn.
Attacker tấn công hệ thống DNS với mục đích gì?
Khi tấn công hệ thống DNS, attacker mong muốn thực hiện một số hành vi:
- Lừa người sử dụng truy cập tới các website giả mạo do attacker lập ra để thực hiện các hành vi lừa đảo, ăn cắp mật khẩu, thông tin đăng nhập, cài cắm các phần mềm độc hại. Các thông tin này có thể vô cùng quan trọng: tài khoản ngân hàng, tài khoản quản trị, …
- Tăng traffic cho website: attacker chuyển hướng người dùng khi họ truy cập các website phổ biến về địa chỉ website mà attacker muốn tăng traffic. Mỗi khi người dùng truy cập một trong các website kia thì trả về địa chỉ IP website mà attacker mong muốn, qua đó làm tăng traffic cho website.
- Gián đoạn dịch vụ: mục đích này nhằm ngăn chặn người dùng sử dụng một dịch vụ của một nhà cung cấp nào đó.
Cách phát hiện và một số biện pháp phòng tránh
Thông thường thì rất khó để người dùng có thể nhận biết được máy tính cá nhân của mình đang bị tấn công thông qua hệ thống DNS. Đơn giản nhất chúng ta có thể kiểm tra địa chỉ DNS server trên máy tính của mình, kiểm tra nội dung file host (Hệ điều hành windows). Chú ý sự thay đổi bất thường về giao diện, nội dung của các website thông thường. Để phòng tránh, chúng ta cần thiết lập địa chỉ DNS server trỏ về các DNS server tin cậy, thường xuyên kiểm tra các thông số cấu hình DNS, cài đặt các phần mềm antivirus để bảo vệ máy tính và truy cập tốt hơn.
Một số tấn công DNS trong thực tế
- Public DNS server của google bị tấn công chiếm quyền điều khiển: http://thehackernews.com/2014/03/google-public-dns-server-traffic.html
- Tháng 8/2013 hai website: thegioididong.com và facebook.com.vn bị nhóm hacker 1937cn (nhóm hacker mạnh nhất của Trung Quốc).