Derek Melber
DNS là một dịch vụ khá đơn giản, nhưng việc bảo vệ nó lại là một vấn đề, có thể dừng hẳn cả cơ sở hạ tầng mạng của bạn. Dù DNS có là một cơ sở dữ liệu của các tên và số thì một kẻ tấn công cũng có thể lợi dụng những thông tin thu lượm được từ việc tấn công cơ sở dữ liệu. Một số tấn công có thể lấy được các thông tin có trong cơ sở dữ liệu và sau đó sử dụng những thông tin đó để phá hoại bạn. Một số tấn công khác lại có thể điền thông tin vào cơ sở dữ liệu, trong khi cố gắng để kiểm soát được các máy chủ DNS thì một số giải pháp thông thường không thể thực hiện được. Nếu chưa từng quan tâm đến việc tấn công trên cơ sở hạ tầng DNS của bạn thì đây là những gì cần phải biết trước khi quá muộn.
Khái niệm cơ bản về DNS
DNS là viết tắt của Domain Naming Service (dịch vụ tên miền), là một dịch vụ dùng để giải quyết các địa chỉ IP bằng các tên. Mục đích chính ở đây là để hiểu về những tên mà chúng ta đang nói. Khi một tên được chỉ thị, DNS lưu các thông tin liên quan đến miền. Ví dụ, Active Directory sử dụng DNS để lưu các tên miền và tên máy tính của các máy tính trên mạng. Nếu miền của bạn được đặt tên là policy.org và bộ điều khiển miền đầu tiên trong miền là PDC1 thì bạn sẽ có các mục trong DNS như trong hình 1.
Hình 1: Các mục DNS cho máy tính đầu tiên trong miền Active Directory của bạn
Lưu ý trong hình trên là không chỉ có một mục cho PDC1 mà còn có cả một địa chỉ IP đi kèm với PDC1 là X.X.X.X. Lý do ở đây là cứ có một địa chỉ IP thì sẽ có một tên đi kèm với nó và các dịch vụ khác trên mạng sẽ không sử dụng tên này, đúng hơn là địa chỉ IP này. Mặc dù vậy, xét về khía cạnh con người, chúng ta thích tên hơn là các địa chỉ IP của nó. DNS đã đưa ra một giải pháp tên đối với các địa chỉ IP. Nó có thể được cấu hình với một vùng tra cứu ngược, vùng này sẽ trả về tên khi nhận được địa chỉ IP.
Bảo vệ DNS với Active Directory
Một trong những quyết định đầu tiên bạn cần phải thực hiện đó là kiểu cơ sở dữ liệu DNS mà bạn sẽ cấu hình để hỗ trợ miền Active Directory. Bạn có thể lưu thông tin trong một cơ sở dữ liệu DNS chuẩn, điều này phải có một máy chủ DNS chính với các máy chủ DNS thứ cấp, hoặc bạn có thể cấu hình cơ sở dữ liệu DNS là Active Directory tích hợp như thể hiện trong hình 2.
Hình 2: Cơ sở dữ liệu DNS có thể là Active Directory tích hợp
Tốt nhất là nên cấu hình các máy chủ DNS của bạn là Active Directory tích hợp khi chúng đang hỗ trợ Windows Active Directory, do đó bạn có thể lợi dụng được những ưu điểm của nó. Bạn cũng có thể có được một số lợi ích về sự ổn định đối với loại cơ sở dữ liệu DNS này, tuy nhiên ở đây chúng tôi muốn tập trung vào các khía cạnh bảo mật.
Ưu điểm chính mà bạn có được từ một Active Directory tích hợp cơ sở dữ liệu DNS là các nâng cấp động bảo đảm, bạn có thể xem cấu hình trong hình 3. Các nâng cấp động là các chức năng chính của DNS, chức năng này cho phép các máy tính miền tự động đăng kí tên và địa chỉ IP của chúng với máy chủ DNS khi chúng vào mạng hoặc thay đổi địa chỉ IP thông qua máy chủ DHCP. Biểu mẫu nâng cấp này giảm được khó khăn trong việc nhập thủ công tên và địa chỉ IP vào cơ sở dữ liệu DNS, một phương pháp cũ mà chúng ta đã dùng. Khía cạnh bảo mật sẽ cần phải đề cập đến ở đây là nâng cấp tự động từ một client vào cơ sở dữ liệu DNS có thể mở cửa cho các mã nguy hiểm lọt vào hay không. Tuy nhiên, bạn có thể yên tâm rằng, các nâng cấp tự động an toàn sẽ thẩm định máy tính đang yêu cầu nâng cấp đến máy chủ DNS cũng có một mục trong cơ sở dữ liệu Active Directory. Điều này có nghĩa là chỉ có các máy tính đã có tên trong miền Active Directory mới có thể cập nhật cơ sở dữ liệu DNS một cách tự động.
Hình 3: Active Directory tích hợp cơ sở dữ liệu DNS
có thể được cấu hình cho các nâng cấp động an toàn
Thực hiện nâng cấp động với DHCP
Một tùy chọn mà bạn có trong Windows đó là có thể thực hiện nâng cấp động với DHCP cho client. Điều này không được quy định với Windows 2000/XP/Server 2003/Vista nhưng nó được quy định với các máy tính sử dụng Windows NT/9x.
Các máy chủ DHCP là người kiểm soát đầu vào, ngăn chặn các máy chủ DHCP khác hoặc client để nâng cấp bản ghi trong sau này. Để giải quyết điều này, bổ sung các tài khoản máy chủ DHCP vào nhóm DNSUpdateProxy, điều đó sẽ cho kết quả vào DNS cho các client để có một danh sách điều khiển truy cập an toàn Access Control Lists (ACLs). ACL mới gồm những người dùng xác thực có khả năng cập nhật đầu vào DNS cho client. Vấn đề này được thiết kết cho cả máy chủ DHCP khác hoặc thậm chí máy khách cũng có thể cập nhật các mục vào trong tương lai vào DNS cho máy khách.
Vấn đề bảo mật ở đây là người dùng xác thực có khả năng cập nhật client, nhưng có một vấn đề khác có thể nảy sinh. Nếu bạn cài DHCP trên một bộ điều khiển miền và sau đó bổ sung máy tính này vào nhóm thì kết quả thu được sẽ là tất cả các mục vào đã được tạo bởi bộ điều khiển miền đều có cùng ACL an toàn. Các mục vào của các bộ điều khiển miền đang tồn tại rất nhạy cảm đối với vấn đề bảo mật và tính ổn định của Active Directory, việc có được các mục vào như vậy sẽ không phải là điều thú vị trong bảo mật an toàn đối với tổ chức của bạn. Các mục vào sẽ bị lộ ra tất cả SRV (Service Resource Records) để điều khiển client, máy chủ tìm kiếm Active Directory liên quan đến các dịch vụ bên trong mạng. Các dịch vụ này có thể là Kerberos, site, TCP, IP, và các bản ghi SRV.
Chính vì vậy, giải pháp cho vấn đề này là không nên cài đặt DHCP trên các bộ điều khiển miền. Nếu bạn có DHCP đã cài đặt trên các bộ điều khiển miền thì cách tốt nhất là không dùng máy chủ DHCP để thực hiện các nâng cấp động cho client. Mặt khác bạn chỉnh sửa các thiết lập không an toàn bên trong mỗi giới thiệu được cho với các bộ điều khiển miền trong DNS.
Kết luận
Như những gì đã thấy, DNS quả thực đơn giản chứ không phải là một dịch vụ phức tạp. Chỉ với nhiệm vụ giải quyết tên cho các địa chỉ IP hoặc ngược lại, mọi người sẽ nghĩ rằng rất dễ dàng cấu hình và an toàn. Mặc dù vậy, có một số thiết lập sẽ cho phép an toàn hơn và môi trường DNS ổn định hơn. Đầu tiên đó là khả năng tạo Active Directory tích hợp cơ sở dữ liệu DNS cung cấp khả năng tương thích liên tục với Active Directory, cũng như khả năng bảo vệ các nâng cấp động. Các nâng cấp động an toàn đó sẽ giúp chúng ta chống lại được mã nguy hiểm thâm nhập vào cơ sở dữ liệu DNS bởi các máy tính không nằm cùng miền. Với các nâng cấp động này, bạn có thể có client thực hiện chúng với danh nghĩa của chính chúng, hoặc có DHCP thực hiện chúng. Nếu bạn chọn để sử dụng DHCP và nhóm DNSUpdateProxy, bạn sẽ cần phải bảo đảm rằng cấu hình này không bị lộ các đầu vào bộ điều khiển miền trong DNS. Giải pháp đơn giản nhất để giải quyết điều này là không cho các bộ điều khiển miền thực hiện nhiệm vụ DHCP. Trong phần tiếp theo của bài viết này, chúng tôi sẽ giới thiệu những thiết lập chi tiết để các bạn có thể thực hiện trong DNS nhằm bảo vệ cơ sở dữ liệu DNS và dịch vụ cho mạng của bạn.