Tài liệu Giới thiệu về DNS và chuyển vùng DNS doc

6 485 0
Tài liệu Giới thiệu về DNS và chuyển vùng DNS doc

Đang tải... (xem toàn văn)

Thông tin tài liệu

Giới thiệu về DNS và chuyển vùng DNS Giới thiệu chung DNS (Domain Name System) là một hệ cơ sở dữ liệu phân tán dùng ñể ánh xạ giữa các tên miền và các ñịa chỉ IP. DNS ñưa ra một phương pháp ñặc biệt ñể duy trì và liên kết các ánh xạ này trong một thể thống nhất. Trong phạm vi lớn hơn, các máy tính kết nối với internet sử dụng DNS ñể tạo ñịa chỉ liên kết dạng URL (Universal Resource Locators). Theo phương pháp này, mỗi máy tính sẽ không cần sử dụng ñịa chỉ IP cho kết nối. Các tên DNS tạo ra theo ñịnh dạng sau ., ví dụ infosec.vasc.com.vn. Trong khi danh sách các kiểu tên DNS ñược thiết kết lại bởi ICANN (Công ty quản lý dịch vụ tên miền), một số các kiểu thông thường bao gồm: .edu (dạng các website giáo dục) , .mil (các website cho quân ñội), .org (thuộc dạng các tổ chức phi thương mại) .com (các tổ chức kinh tế), . Và cũng có các kiểu tên miền chỉ ñịnh theo tên nước, ví dụ .ie (Ireland), .jp (Japan), .de (Germany) Khi một máy tính (một DNS client) muốn tìm kiểm một URL, nó ñưa yêu cầu (GetHostByName) tới DNS server của nó. DNS client sử dụng một DNS resolver ñể ñịnh vị DNS server. Nếu DNS server không xác ñịnh ñược tên miền cần tìm, hay DNS server không có chút thông tin gì về URL ñó trong vùng nhớ ñệm của nó, nó sẽ không thể trả lời yêu cầu của client ngay lập tức. Thay vào ñó, DNS server sẽ hoặc sử dụng một DNS forwarder hoặc tạo lại một yêu cầu theo quy tắc ñệ quy. Việc giả mạo DNS liên quan tới việc bắt buộc một DNS client tạo yêu cầu tới một server mạo danh, và khi ñó client sẽ nhận ñược trả lời sai từ server giả mạo ñó. Có 3 cách thực hiện kiểu tấn công giả mạo DNS này, bao gồm: 1. Giả mạo các phản hồi DNS Kẻ tấn công có thể sử dụng cơ chế ñệ quy, giả mạo yêu cầu mà DNS server gửi ra ngoài trong quá trình tìm kiểm một ñịa chỉ, và phản hồi các thông tin sai trước khi các thông tin thật ñến. Mỗi gói tin DNS có một số ID dạng 16 bit mà DNS server dùng ñể kiểm tra yêu cầu ban ñầu gửi ñi là gì. Khi sử dụng BIND, một phần mềm thông dụng dạng DNS server, số này tăng lên 1 sau mỗi yêu cầu gửi ñến, và việc tạo yêu cầu rất dễ dàng giả mạo. BIND ñã ñược sửa lỗi theo phiên bản gần ñây, mà các gói tin DNS ñược khởi tạo theo các con số ngẫu nhiên (phiên bản BIND v9). ðể kiểm tra liệu một DNS server có thể có lỗ hổng hay không ñối với sự tấn công giả mạo ñịa chỉ DNS, bạn có thể gửi các yêu cầu tới server, thẩm ñịnh liệu có thể ñoán số ID kế tiếp trong một gói tin yêu cầu giử tới DNS. Nếu các yêu cầu ID có thể ñoán trước ñược, ñiều này có nghĩa là vùng nhớ ñệm trong DNS có thể ánh xạ không ñúng tới ñịa chỉ IP thật, và ñó chính là lỗ hổng bảo mật trong DNS. 2. Giả mạo ñịa chỉ trong vùng nhớ ñệm của DNS Sau các yêu cầu ñệ quy, các ánh xạ ñịa chỉ nhận ñược sẽ tồn tại trong DNS cache. DNS server sẽ dựa vào cùng nhớ ñệm này ñể xác ñịnh thông tin cho các yêu cầu ñến và phản hồi từ client gửi tới, giúp cho việc truy cập thông tin nhanh hơn. ðộ dài thời gian mà các kết quả yêu cầu ñệ quy ñược giữ luôn trong DNS cache (kí hiệu là TTL -- time to live) có thể ñược thiết lập. Việc các ñịa chỉ bị giả mạo nằm trong DNS cache kéo theo việc gửi thông tin ánh xạ không ñúng với thời gian tồn tại (TTL) dài. Vậy nên, tại thời ñiểm kế tiếp khi có một yêu cầu gửi tới, nó sẽ nhận ñược thông tin sai. Việc sai thông tin này cũng có thể bị ảnh hưởng do việc nhận dữ liệu từ một DNS server từ xa nào ñó bị giả mạo . Có thể giới hạn sự giả mạo thông tin này bằng cách giảm thời gian thông tin tồn tại trong cache (TTL), nhưng ñiều này cũng làm giảm hiệu năng của server. Một ứng dụng thông dụng của DNS dạng phần mềm mã nguồn mở là BIND (Berkeley Internet Name Daemon), mà cung cấp hầu hết các chức năng quan trọng về DNS server. Tuy nhiên, cũng có rất nhiều lỗ hổng bảo mật trong BIND, và vì vậy, việc ñảm bảo ñang sử dụng phần mềm BIND với phiên bản mới nhất là rất quan trọng. Hiện tại, các chuẩn mới về DNS ñã khắc phục ñược lỗi này trong vùng nhớ ñệm của DNS. 3. Phá vỡ mức bảo mật môi trường Việc tấn công bằng cách giả mạo ñịa DNS phá vỡ mức bảo mật của môi trường làm việc mạng trong DNS server. Ví dụ: tấn công dựa theo các lỗ hổng dạng tràn vùng ñệm ñối với các phiên bản BIND cũ, mà cho phép kẻ tấn công ñoạt ñược quyền root truy cập. Khi kẻ tấn công ñoạt ñược quyền truy cập trong môi trường DNS, anh ta có thể ñiều khiển ñược môi trường mạng. ðể giúp ñỡ trong việc quản lý và gỡ rối, rất hữu ích khi biết rằng việc truyền thông DNS sử dụng cả giao thức TCP (Transmission Control Protocol) và UDP (User Datagram Protocol), và thông thường người ta sử dụng một firewall ñược cấu hình ñứng lọc gói tin trước khi ñi qua DNS. Một cách ñể ngăn các nguy hiểm không ñược chứng thực là sử dụng một hệ thống DNS ñược chia theo vùng quản lý. ðiều này liên quan tới cài ñặt một DNS server bên trong. Khi ñó, mỗi DNS bên ngoài ñược thiết lập chỉ chứa các thông tin liên quan bởi các host bên ngoài,như SMTP gateway, hay một NS bên ngoài. Hầu hết các mail server hiện tại có thể ñiều khiển SMTP mail rất tốt (như MS Outlook và Lotus Lote của IBM ñều có các SMTP gateway), nó cũng an toàn hơn vì có cơ chế riêng rẽ cho việc nhận SMTP mail. Sau ñó, nếu mail bên ngoài chuyển ñổi thành công, kẻ tấn công sẽ không thể tự ñộng truy cập tới hệ thống mail bên trong. Tương lai phát triển của DNS DNS có thể có lỗ hổng do bị giả mạo gói tin bởi vì thiếu vắng quyền chứng thực khi truy cập. ðiều này có thể ñược khắc phục với DNSSEC. ðây là một cơ chế bảo mật mới bằng cách cho phép các Website kiểm tra các tên miền của họ và chịu trách nhiệm ñối với các ñịa chỉ IP theo các chữ ký ñiện tử và thuật toán mã hoá công khai. ðiều này cũng có nghĩa rằng, khi DNS client nhận một phản hồi từ yêu cầu của nó, nó có thể kiểm tra yêu cầu ñó từ một tài nguyên ñược chứng thực. DNSSEC ñã bắt ñầu ñược nhúng trong BIND 9, và trong một số hệ ñiều hành. DNSSEC sẽ ñòi hỏi nhiều hơn về hiệu năng của phần cứng, băng thông lớn hơn và ñòi hỏi phải thay ñổi ñối với tất cả các DNS server hiện tại. Vì vậy, việc áp dụng công nghệ mới này vẫn còn ñang ñược triển khai và hứa hẹn trong tương lai. Hôm nay,thông qua bài viết này Bình triệu ñề cập tới vấn ñề chuyển vùng.Chắc hẳn bạn sẽ quan tâm.Mong bài viết sẽ cho bạn hiểu rõ hơn về nó,cũng như có nhưng kiến thức nhất ñịnh về vấn ñề này. Chuyển vùng (Phần này ñược sưu tập của tác giả Binh Trieu - vietnam security) Một trong những cấu hình sai nghiêm trọng mà người quản trị hệ thống có thể mắc phải là cho phép người dùng Internet không ñáng tin cậy ñược tiến hành chuyển vùng DNS. Chuyển vùng (Zone Transfer)cho phép máy phục vụ phụ cập nhật cơ sỡ dữ liệu từ máy chính.Như vậy là làm dư thừa khi chạy DNS,nhỡ như máy phục vụ tên chính không khả dụng.Nói chung,máy phục vụ DNS phụ chỉ cần chuyển vùng DNS.Thế nhưng,nhiều máy phục vụ DNS bị lập cấu hình sai và cung cấp bản sao vùng cho người nào yêu cầu.không nhất thiết là xấu nếu thông tin cung cấp liên quan ñến hệ thống nối mạng Internet và có tên máy chủ hợp lệ,dẫu tạo ñiều kiện dễ dàng cho kẻ tấn công tìm thấy ñích.Vấn ñề thực sự nảy sinh khi tổ chức không áp cụng cơ chế DNS cổng riêng ñể cách ly thông tin DNS ngoài (công khai) với thông tin DNS trong.Cung cấp thông tin ñịa chỉ IP trong cho người dùng không ñáng tin cậy qua mạng Internet cũng giống như cung cấp bản ñồ trong của tổ chức. Chúng ta hãu xem xét một vài phương pháp chuyển vùng,và các loại thông tin.Tuy có nhiều công cụ chuyển vùng,nhưng tôi giới hạn thào luận ở vài loại phổ biến mà thôi. Cách ñơn giản ñể chuyển vùng là dùng máy khách “nslookup”thường do thi hành UNIX và NT mang lại.Chúng ta áp dụng “nslookup” trong chế ñộ tương tác với nhau: [bash] $ nslookup Default Server: ns1.example.net Address:10.10.20.2 >216.182.1.1 Default Server : [10.10.20.2] Address: 10.10.20.2 Name: gate.tellurian.net Address:10.10.20.2 >set type=any >ls –d tellurian.net. >>/tmp/zone_out ðầu tiên chúng ta chạy “nslookup” trong chế ñộ tương tác.Một khi khởi ñộng xong,nó sẽ cho biết máy phục vụ tên mặc ñịnh,thường là máy phục vụ DNS của tổ chức hoặc máy phục vụ DNS của người cung cấp dịch vụ Internet.Tuy nhiên,máy phục vụ DNS (10.10.20.2)không có thẩm quyềncho vùng ñích,nên sẽ không có hết thảy mẫu tin DNS.Bởi vậy,chúng ta cần tự tay cho “nslookup” biết là sẽ truy vấn máy phục vụ DNS nào.Trong ví dụ này,chúng ta dùng máy phục vụ DNS chính cho Tellurian network (10.10.20.2). Tiếp theo chúng ta ñịnh loại mẫu tin là “any”.Tác vụ này cho phép bạn kéo mẫu tin DNS bất kì (man nslookup) cho danh sách hoàn chỉnh. Sau cùng,liệt kê toàn bộ mẫu tin liên quan ñến vùng bằng tuỳ chọn “ls”.”-d” liệt kê tất cả mẩu tin vùng.Chúng ta thêm “.”ở cuối câu ñể cho biết tên vùng hội ñủ ñiều kiện-song ña phần là ñể vậy.Hãy ñổi hướng kết quả và tập tin “/tmp/zone_out” ñể có thể thao tác sau này. Chuyển vùng xong,chúng ta xem trong tập tin coi có thông tin lý thú nào cho phép nhắm ñến hệ thống cụ thể không.Hãy xem kết quả sau: [bash] more zone_out acct18 1D IN A 192.168.230.3 1D IN HINFO 1D IN MX 0 tellurianadmin-smtp 1D IN RP- bsmith.rci bsmith.who 1D IN TXT “Location:Telephone Room” ce 1D IN CNAME aesop au 1D IN A 192.168.230.4 1D IN HINFO “aspect” “MS-DOS” 1D IN MX 0 andromeda 1D IN RP jcoy.erebus jcoy.who 1D IN TXT “Location: Library” acct21 1D IN A 192.168.230.5 1D IN HINFO “Gateway2000” “WinWKGRPS” 1D IN MX 0 tellurianadmin-smtp 1D IN RP bsmith.rci bsmith.who 1D IN TXT “Location: Acounting” Chúng ta sẽ không ñi chi tiết từng mẫu tin,chỉ lưu ý vài loại quan trọng.ðối với mỗi mục nhập,chúng ta có mẫu tin A cho biết ñịa chỉ IP của tên hệ thống nằm bên phải.Ngoài ra,mỗi máy chủ ñều có mẩu tin HINFO nhận diện nền hoặc hoặc loại hệ ñiều hành ñang chạy (RFC- 952).Mẩu tin HINFO tuy không cần thiết song cung cấp nhiều thông tin cho kẻ tấn công.Vì chúng ta ñã lưu kết quả chuyển vùng vào tập tin ñầu ra nên dễ dàng thao tác kết quả bằng chương trình UNIX như : grep,sed,awk,hoặc Perl. Giả thiết chúng ta là những chuyên gia trong SunOS hoặc Solaris,có thể tìm ra ñịa chỉ IP có mẩu tin HINFO liên quan ñến SPARC,Sun,hoặc Solaris. [bash] $ grep -i solaris zone_out |wc -1 388 Chúng ta có 388 mẩu tin tham chiếu "Solaris".Khỏi phải nói,chúng ta có quá nhiều mục tiêu. Giả sử chúng ta muốn tìm hệ thống thử nghiệm,vô tình là chọn lựa cho kẻ tấn công.Tại sao? Thật ñơn giản-chúng thường không kích hoạt nhiều ñặc tính bảo mật,mật mã ñể ñoán,nhà quản trị không hay ñể ý hoặc bận tâm ai ñăng nhập chúng.Một chốn lý tưởng cho những kẻ xâm nhập.Do ñó,chúng ta tìm hệ thống thử nghiệm như sau: [bash] $ grep -i test /tmp/zone_out |wc -1 96 Nên có khỏang 96 mục nhập trong tập tin vùng có chứa từ "test".Phải bằng với số hệ thống thử nghiệm thật.Trên ñây chỉ là một vài ví dụ ñơn giản.Hầu hết kẻ xâm nhập sẽ mổ xẻ dữ liệu này ñể tập trung vào loại hệ thống cụ thể có chổ yếu ñã biết. Có vài ñiểm cần ghi nhớ.Phương pháp neu trên chỉ truy cập lần lượt máy phục vụ tên.Tức là bạn phải thực hiện cùng một tác vụ cho tất cả máy phục vụ tên có thẩm quyền ñối với vùng ñích.Chúng ta chỉ truy vấn vùng Tellurian.net mà thôi.Nếu có vùng con,sẽ phải thực hiện cùng loại truy vấn cho từng vùng con(chẳng hạn như greenhouse.tellurian.net).Sau cùng bạn nhận thông báo không thể liệt kê vùng hoặc từ chối truy vấn.Thường ñiều này cho thấy máy phục vụ ñã ñược lập cấu hình ñể vô hiệu hóa chuyển vùng của người dùng bất hợp pháp.Vì vậy,bạn khó lòng chuyển vùng từ máy phục vụ này.Nhưng nếu có nhiều máy phục vụ DNS,bạn sẽ có cơ may tìm ñược máy cho phép chuyển vùng. Có rất nhiều công cụ ñẩy nhanh tiến trình này,bao gồm: host,Sam Spade,axfr và dig(không ñề cập ở ñây). Lệnh "host" mang nhiều hương vị của UNIX.Cách dùng lệnh "host"như sau: host -1 tellurian.net hoặc host -1 -v -t any tellurian.net Nếu cần mỗi ñịa chỉ IP ñể ñưa vào kịch bản shell,bạn cut(cắt) ñịa chỉ IP khỏi lệnh "host" host -1 tellurian.net |cut -f 4 -d" " >>/tmp/ip_out Không phải chức năng in dấn chân nào cũng buộc phải thực hiện qua lệnh UNIX.Một số sản phẩm Windows cũng cung cấp thông tin như vậy. Sau cùng bạn chuyển vùng bằng một trong những công cụ siêu việt,axfr của Gaius.Trình tiện ích này sẽ chuyển thông tin vùng,cơ sở dữ liệu vùng và tập tin máy chủ cho từng vùng ñược truy vấn dưới dạng nén.Thâm chí bạn có thể chuyểnvu2ng cấp cao như com và edu ñể lấy tất cả vùng liên quan ñến "com" và "edu".Tuy nhiên,không nên làm vậy.Muốn chạy axfr,bạn gõ như sau" [bash] $ axfr tellurian.net axfr: Using default directory: /root/axfrdb Found 2 name servers for domain "Tellurian.net"; Text deleted. Received xxx answer (xxx records). ðể truy vấn thông tin vừa lấy trong cơ sở dữ liệu "axfr",bạn gõ như sau: [bash] $ axfr tellurian.net . DNS và chuyển vùng DNS Giới thiệu chung DNS (Domain Name System) là một hệ cơ sở dữ liệu phân tán dùng ñể ánh xạ giữa các tên miền và các ñịa chỉ IP. DNS. tính (một DNS client) muốn tìm kiểm một URL, nó ñưa yêu cầu (GetHostByName) tới DNS server của nó. DNS client sử dụng một DNS resolver ñể ñịnh vị DNS server.

Ngày đăng: 23/12/2013, 11:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan