Tải bản đầy đủ (.pdf) (6 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (75.95 KB, 6 trang )


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"

×