Man-in-the-middle – DNS Spoofing

0
296

Trong bài viết ở kỳ 1, tôi đã trình bày về một kiểu triển khai đơn giản nhất của hình thức tấn công Man-in-the-middle (MITM), đó là ARP Cache Poisoning. Trong phần thứ 2 này, tôi sẽ giới thiệu thêm một kiểu thực hiện khác với tên gọi là DNS Spoofing.

Giới thiệu tổng quan

Như đã nói ở trên, bài đầu tiên về MITM, chúng ta đã hiểu được thế nào là một quá trình truyền thông ARP bình thường và làm thế nào ARP cache của thiết bị có thể bị đầu độc để chuyển hướng lưu lượng mạng của máy tính nạn nhân sang một máy khác với một động cơ hoàn toàn theo chiều hướng xấu. Đồng thời, ta cũng thấy được kỹ thuật ARP Cache Poisoning hoàn toàn có thể thực hiện một cách dễ dàng với các phần mềm có sẵn.

Bây giờ ta bàn tiếp tới một kiểu triển khai khác mang tên DNS Spoofing, và lưu ý bạn là nếu chưa đọc bài viết kỳ 1, thì hãy quay lại đọc nó. Bởi vì những gì tôi sắp trình bày sau đây sẽ dựa trên những kỹ thuật và kiến thức ta đã hiểu được ở bài trước.

DNS Spoofing

Để hiểu đơn giản, DNS Spoofing là một kĩ thuật khác của MITM thường được dùng để cung cấp thông tin DNS sai lệch cho một host. Mục tiêu của việc đánh lừa này là để khi người dùng yêu cầu truy cập đến địa chỉ gốc thì nó sẽ chuyển hướng sang địa chỉ giả mạo. Lấy ví dụ đơn giản, người dùng cần truy cập hộp thư điện tử (email) của mình tại địa chỉ www.mailgood.com có địa chỉ IP là X.X.X.X thì khi đó, kỹ thuật này sẽ chuyển hướng yêu cầu sang một trang giả mạo có địa chỉ IP là Y.Y.Y.Y do kẻ tấn công dựng nên hòng chiếm đoạt tài khoản mail của người dùng. Để thực hiện được điều này không có gì khó khăn.

Truyền thông DNS bình thường

Giao thức DNS (Domain Name System – Hệ thống Phân giải Tên miền) được định nghĩa trong tài liệu RFC 1034/1035 được hiểu là một trong những giao thức quan trọng nhất được dùng trong Internet. Điều này được lý giải là do DNS có thể hình dung là yếu tố then chốt quyết định sự gắn kết mọi thành phần lại với nhau, tương tự như phần bơ đậm đà mà chúng ta dùng để trét lên giữa 2 miếng bánh mì kẹp vậy.

Để dễ hiểu về chức năng của nó, bạn cứ hình dung DNS như một nhà thông dịch viên. Con người giỏi ở lĩnh vực ghi nhớ dữ liệu con chữ, nhưng máy tính thì lại là con số. Cho nên DNS trở thành cầu nối để yêu cầu của ta có thể được máy tính đáp ứng. Khi bạn gõ vào trình duyệt của mình địa chỉ https://www.google.com thì máy tính hoàn toàn không hiểu cái bạn vừa gõ là gì cả. Nó sẽ nhờ tới DNS xử lý. Lúc này phát sinh ra một DNS request do ta gửi lên DNS server để nhằm mục đích tìm ra chuỗi số IP tương ứng gán cho cụm từ ta vừa gõ vào.

DNS server hoạt động độc lập bằng việc lưu trữ các dữ liệu về entry (còn có thể gọi với tên khác là các bản ghi tài nguyên) của địa chỉ IP nhằm hình thành nên tính chất bản đồ hóa DNS. Sau đó, nó sẽ truyền những dữ liệu đã được hệ thống hóa đó về các máy client (người dùng) khi có yêu cầu phân giải. Và đồng thời, các DNS server được đặt nhiều nơi trên thế giới cũng sẽ liên kết với nhau, tạo nên một hệ thống phân giải cực kỳ lớn, bảo đảm cho sự lưu thông thông suốt trên mạng Internet. Kiến trúc và mô hình DNS là một lĩnh vực rất khó hiểu nếu bạn muốn nghiên cứu sâu về nó. Tuy vậy, cũng đã có rất nhiều cuốn sách viết về đề tài này. Trong phạm vi bài viết này, chúng ta không nói đến toàn bộ tổng thể kiến trúc DNS và cách thức hoạt động của chúng ở phạm vi sâu xa, mà chỉ bàn đến mô hình truyền tải đơn giản của DNS: DNS Query và DNS Respone.

dns spoofing

Với hình thức hoạt động này, khi client muốn phân giải tên miền ra địa chỉ IP để truy cập tới máy đích, thì nó cần phải gửi truy vấn cho DNS Server. Lúc này Server sẽ chuyển gói thông tin vừa nhận được vào cơ sở dữ liệu của nó để bắt đầu tìm kiếm.

dns spoofing

Vấn đề đến đây sẽ có đôi chút phức tạp khi ta xem xét đến sự hồi quy DNS. Do bởi cấu trúc thứ bậc DNS của Internet, các DNS Server cần có khả năng truyền thông với nhau để đưa ra câu trả lời cho các truy vấn được đưa ra từ phía client. Nếu tất cả đều diễn ra thuận lợi như mong đợi, DNS server nội bộ của chúng ta sẽ biết tên để bản đồ hóa địa chỉ IP cho máy chủ bên trong mạng nội bộ. Tuy nhiên ta lại không thể khẳng định chắc chắn rằng nó biết địa chỉ IP chính xác giữa Google hoặc Dell. Đây là nơi sự đệ quy phát huy vai trò của nó. Sự đệ quy diễn ra khi một DNS server truy vấn đến DNS server khác với tư cách một máy client đưa ra yêu cầu. Về bản chất, cách thức này sẽ biến một DNS Server thành một máy khách của chính mình.

dns spoofing

Spoofing DNS

Có nhiều cách để triển khai kỹ thuật DNS Spoofing này. Chúng ta sẽ dùng một kỹ thuật nhỏ gọi là DNS ID Spoofing.

Mỗi truy vấn DNS được gửi đi qua mạng đều có chứa một số nhận dạng duy nhất, mục đích của nó là để phân biệt các truy vấn và đáp trả chúng một cách chính xác. Điều này có nghĩa rằng nếu máy tính ta dùng để tấn công có thể chặn một truy vấn DNS nào đó được gửi đi từ máy mục tiêu, thì tất cả những gì chúng ta cần thực hiện là tạo một gói giả mạo có chứa số nhận dạng đó để gói dữ liệu đó được chấp nhận bởi máy mục tiêu.

dns spoofing

Hai bước trên đây ta có thể làm thành công với một công cụ đơn giản. Đầu tiên, chúng ta cần tiến hành ARP Cache Poisoning thiết bị mục tiêu để định tuyến lại lưu lượng của nó qua host đang tấn công của mình, từ đó có thể chặn yêu cầu DNS và gửi đi gói dữ liệu giả mạo. Mục đích của việc làm này là lừa người dùng trong mạng mục tiêu truy cập vào website giả mạo của ta dựng nên thay vì vào thẳng website chính thức mà họ đang cố gắng truy cập.

Công cụ thực hiện việc này thì có một vài cái khác nhau. Trong bài viết này, ta sẽ dùng Ettercap, có cả phiên bản chạy trên Windows và cả Linux (khuyến cáo bạn nên dùng Kali Linux).

Vì mục đích chia sẻ kiến thức bảo mật, nên bài viết chỉ triển khai cách thức tiến hành tới bước này.

Phòng chống DNS Spoofing

DNS Spoofing rất khó để phòng chống vì tính “hoàn toàn bình thường” của nó. Bạn sẽ không thể nhận ra là mình đang bị chuyển hướng truy cập vào trang giả mạo cho đến khi thấy có gì đó bất thường khi tiến hành đăng nhập. Hoặc nếu kẻ tấn công không khéo léo, thì bạn sẽ nhận ra ngay lập tức là có điều gì đó khác thường ngay lúc giao diện trang web hiện ra.

Tuy nhiên, vẫn có những hướng phòng chống khả dụng:

  1. Bảo mật hệ thống máy tính của bạn: Các dạng tấn công này thường xuất phát ngay từ trong nội bộ. Nếu làm công tác bảo mật tốt ngay từ yếu tố môi trường thật, yếu tố con người thì việc bị lợi dụng để chuyển hướng DNS là điều bất khả thi.
  2. Tránh sử dụng DNS: Điều này đồng nghĩa, nếu môi trường đó có chứa dữ liệu nhạy cảm của công ty, thì việc hạn chế sử dụng Internet, cấm truy cập mạng ở các máy tính đó là điều cần thiết.
  3. Sử dụng IDS: Một dạng hệ thống phát hiện dấu hiệu xâm nhập. Khi được đặt và triển khai trên hệ thống của ta, nó có thể phát hiện các hình thức giả mạo ARP cache và giả mạo DNS.
  4. Sử dụng DNSSEC: DNSSEC là một giải pháp thay thế mới cho DNS, sử dụng các bản ghi DNS có chữ ký (Signature) để bảo đảm sự hợp lệ hóa của đáp trả truy vấn. Giải pháp này đã có sự triển khai nhất định.

VÕ TÌNH THƯƠNG

votinhthuong9@gmail.com

LEAVE A REPLY