Bảo mật kết nối DNS với Windows Server 2008 R2 DNSSEC
Giới thiệu
Với sự thúc đẩy phát triển IPv6 trong thời gian sắp tới thì việc truy xuất giữa các máy tính với nhau thông qua dịch DNS sẽ trở nên quan trọng hơn bao giờ hết.
Không gian địa chỉ IPv6 128 bit với định dạng thập lục phân gấp bốn lần chiều dài một địa chỉ IPv4 sẽ cung cấp cho không gian địa chỉ lớn hơn nhiều để phù hợp với số lượng lớn các máy chủ trên Internet, nhưng nó cũng làm tăng sự khó khăn hơn trong việc ghi nhớ địa chỉ.
Vấn đề không an toàn với cơ sở dữ liệu của DNS
Do sự phụ thuộc ngày càng tăng trong việc truy vấn kết quả DNS, nên chúng ta sẽ cần một cách để đảm bảo rằng các bản ghi trong cơ sở dữ liệu DNS là luôn luôn chính xác và đáng tin cậy - và một trong những cách hiệu quả nhất để đảm bảo điều này là bảo mật cơ sở dữ liệu của DNS. Từ đó đến nay DNS luôn được xem là một dịch vụ hệ thống tương đối không an toàn có nguy cơ tấn công nhiều nhất trong hệ thống.
Các trường hợp tấn công có thể gặp như chuyển hướng phân giải DNS của người dùng sang một DNS giả mạo, đầu độc cache DNS, hoặc giả mảo thay đổi các bản ghi trong DNS. Tất cả đều mục đích làm cho người dùng tin tưởng họ đang truy xuất vào 1 website hoặc máy tính hợp lệ trong khi thực chất họ đã được dẫn đến một trang web có chứa nội dung độc hại và có khả năng bị mất thông tin cá nhân của họ bằng cách pharming. Pharming tương tự như hình thức lừa đảo, ngoại trừ việc thay đổi một liên kết trong email bằng URL của trang web hợp pháp, do người dùng nghĩ rằng họ đang an toàn. Nhưng thực chất lúc này các bản ghi DNS đã được thay đổi để chuyển hướng URL hợp pháp sang trang web giả mạo pharming.
Giải pháp Windows Server 2008 R2 DNSSEC
Một giải pháp mà bạn có thể sử dụng trên mạng nội bộ của bạn để bảo đảm môi trường DNS của bạn là sử dụng Windows Server 2008 R2 DNSSEC. DNSSEC là tập hợp các phần mở rộng nhằm cải thiện tính bảo mật của các giao thức DNS. Những phần mở rộng này bao gồm phần ủy quyền(authority) , tính toàn vẹn dữ liệu (data integrity) và chứng thực (authenticatio) trong DNS. Giải pháp này cũng cung cấp thêm 1 số bản ghi mới trong DNS như DNSKEY, RRSIGN, NSEC và DS.
Cách DNSSEC làm việc
DNS đảm bảo các bản ghi DNS hợp lệ thông qua việc ký chữ ký điện tử chúng tương tự như chữ ký điện tử trong email. Khi một client truy vấn đến máy chủ DNS, nó sẽ trả về chữ ký điện tử của các bản ghi. Người dùng sẽ có một khóa công khai (public key) của CA đã ký cho các bản ghi DNS, và dùng khóa công khai này để giải mã các giá trị băm (chữ ký) và tính toán ra giá trị trả về đó hợp lệ hay không. Trong trường hợp tin tưởng thì khóa công khai sẽ được kết hợp trong một vùng DNS cụ thể.
Chữ ký trong cơ sở dữ liệu DNS có thể triển khai trong một máy chủ tích hợp Active Directory hoặc một máy chủ DNS riêng lẻ và cho phép đồng bộ các bản ghi giữa các DNS đã được ủy quyền.
Windows 2008 R2 và Windows 7 DNS clients khi được cấu hình mặc định sẽ không được xác nhận, bảo mật trong việc phân giải. Trong trường hợp bình thường các DNS client sẽ cho phép nhận các trả lời từ DNS mà nó truy vấn, bên cạnh đó nó còn cho phép DNS client có thể nhận các trả lời DNSSEC từ một máy DNS đã được bật chức năng DNSSEC. Để làm được điều đó bản thân các DNS Client phải được cấu hình Name Resolution Policy Table (NRPT) nhằm tương tác phù hợp với DNS server mà nó truy vấn.
Ví dụ như nếu bạn định nghĩa trong NRPT rằng các DNS Client nên bảo mật kết nối giữa chúng với DNS Server thì khi đó một giấy chứng nhận xác thực (CA) sẽ bắt buộc phải được sử dụng khi truy vấn diễn ra. Nếu quá trình thiết lập kết nối thất bại thì đó chính là dấu hiệu nhận biết vấn đề DNS Server mà bạn kết nối và lúc này mọi cố gắng thiết lập kết nối sẽ thất bại.
Để đảm bảo kết quả truy vấn DNS là chính xác, trước tiên bạn cần bảo đảm DNS Servers mà DNS Client kết nối đến thực sự là DNS Server mà bạn muốn DNS Client của mình kết nối đến (không phải DNS giả mảo hoặc các trả lời truy vấn đã bị sửa đổi). DNSSEC sử dụng SSL để bảo đảm các kết nối được an toàn. DNS Server chứng thực chính nó thông qua một giấy chứng nhận (certificate) được ký bởi một hãng tin tưởng (tương tự như khóa cá nhân PKI).
Cho phép các kết nối TCP và UDP port 53 để bảo đảm người dùng có thể chứng thực CA từ DNS Server và thiết lập một kết nối bảo mật.
Signed Zone
DNSSEC sử dụng công cụ dnscmd.exe để thưc thi việc ký các zone hợp lệ, kết quả được lưu trữ trong một zone file. Tập tin này chứa các bản ghi RRSIG, DNSKEY, DNS và NSEC của zone. Sau khi zone đã được ký, nó phải được tải lại bằng công cụ dnscmd.exe hoặc màn hình quản lý DNS.
NSEC/NSEC 3
NSEC và NSEC3 là những phương thức được sử dụng để từ chối việc cung cấp chứng thực đối với các bản ghi DNS đã tồn tại. NSEC3 là phương thức cải tiến so với bản gốc NSEC giúp ngăn ngừa “zone walking”, một hành động cho phép kẻ tấn công có thể lấy tất cả thông tin DNS của một vùng nhằm thăm dò mạng.
Triển khai DNSSEC
Để triển khai DNSSEC, bạn sẽ cần phải làm như sau:
* Hiểu được khái niệm then chốt của DNSSEC
* Nâng cấp máy chủ DNS của bạn để Windows Server 2008 R2
* Xem xét các yêu cầu về việc dùng chữ ký điện tử trong DNS Server, xác định tình trạng an toàn và bảo mật cho máy tính trước khi thực hiện DNSSEC
* Tạo ra và sao lưu các khóa mà bạn đã ký trong zone của bạn. Xác nhận DNS vẫn còn làm việc và trả lời sau khi ký.
* Phân phối các trust anchors đến tất cả server không được ủy quyền rằng sẽ xác nhận các DNS bằng việc sử dụng DNSSEC
* Triển khai các chứng chỉ (CA) và chính sách IPsec để thiết lập DNS Server
* Cấu hình NRPT và triển khai các chính sách IPsec cho các máy client.
Bạn có thể tìm hiểu thêm thông tin về DNSSEC trên Windows Server 2008 R2 tại đây.