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

Giới thiệu về DNS và chuyển vùng DNS pps

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 (145.93 KB, 14 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"

[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


quantrimang.com - Tổng hợp

×