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

Giải pháp phòng chống tấn công DNS trong hệ thống mạng LAN: báo cáo nghiên cứu khoa học sinh viên

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 (3.54 MB, 39 trang )

MỤC LỤC
PHẦN MỞ ĐẦU ........................................................................................................1
1. Lý do chọn đề tài .................................................................................................1
2. Mục tiêu đề tài .....................................................................................................1
3. Phạm vi nghiên cứu .............................................................................................1
4. Đổi tượng nghiên cứu ..........................................................................................2
5. Kết cấu của đề tài ................................................................................................2
CHƯƠNG 1. TỔNG QUAN VỀ HỆ THỐNG TÊN MIỀN DNS..............................3
1.1 Giới thiệu hệ thống tên miền DNS ....................................................................3
1.2 Hệ thống tên miền DNS ....................................................................................4
1.3 Cấu trúc của hệ thống tên miền DNS ................................................................4
1.4 Chức năng của hệ thống tên miền DNS ............................................................6
1.5 Cơ chế phân giải ................................................................................................7
1.5.1 Phân giải tên thành địa chỉ IP......................................................................7
1.5.2 Phân giải địa chỉ IP thành tên host ..............................................................8
1.6 Cấu trúc của gói tin DNS ..................................................................................9
1.7 Các bản ghi dữ liệu tên miền (Resource Record) ........................................... 11
CHƯƠNG 2. VẤN ĐỀ BẢO MẬT TRONG DNS ..................................................14
2.1 Điểm yếu của hệ thống DNS ...........................................................................14
2.2 Phương pháp tấn công DNS ............................................................................14
2.2.1 Tấn công đầu độc cache (cache poisoning attack or DNS spoofing) .......14
2.2.2 Thiết lập DNS Server giả mạo với các record độc hại..............................17
2.2.3 Sửa file hosts .............................................................................................17
2.2.4 Tấn công trong quá trình zone transfer (Zone transfer attack) .................18
CHƯƠNG 3. CÁCH PHÒNG CHỐNG TẤN CÔNG DNS ....................................19
3.1 Phòng chống tấn công đầu độc cache (cache poisoning attack or DNS spoofing)
...............................................................................................................................19
3.1.1 Thử nghiệm tấn công đầu độc cache .........................................................19
3.1.2 Cách phòng chống tấn công đầu độc cache ..............................................22
3.2 Phòng chống thiết lập DNS Server giả mạo với các record độc hại ...............26
3.2.1 Thử nghiệm tấn công ................................................................................26




3.2.2 Cách phòng chống tấn công ......................................................................28
3.3 Phòng chống sửa file hosts ..............................................................................29
3.3.1 Thử nghiệm sửa file hosts .........................................................................29
3.3.2 Cách phòng chống file hosts .....................................................................30
KẾT LUẬN ..............................................................................................................31
TÀI LIỆU THAM KHẢO ........................................................................................33


DANH MỤC HÌNH ẢNH
STT

Hình ảnh

Mô tả

1

Hình 1.1

DNS trong mô hình TCP/IP

2

Hình 1.2

Cấu trúc của hệ thống tên miền

3


Hình 1.3

Truy vấn (query)

4

Hình 1.4

Cấu trúc gói tin DNS

5

Hình 1.5

The message header

6

Hình 2.1

DNS spoofing

7

Hình 2.2

client gửi gói tin tới DNS local

8


Hình 2.3

Hacker gửi liên tiếp gói tin gải mạo trả lời

9

Hình 2.4

client bị chuyển hướng đến trang giả mạo

10

Hình 2.5

Thiết lập DNS Server giả mạo với các record độc hại

11

Hình 2.6

Hosts file

12

Hình 3.1

Mô hình demo DNS spoofing

13


Hình 3.2

trang web thật lhu.edu.vn

14

Hình 3.3

giao diện Ettercap

15

Hình 3.4

MITM Attack ARP poisoning

16

Hình 3.5

Plugins dns_spoof

17

Hình 3.6

Start Sniffing

18


Hình 3.7

Web lhu.edu.vn giả mạo

19

Hình 3.8

Sơ đồ thử nghiệm phồng chống tấn công đầu độc cache

20

Hình 3.9

ARP Monitor

21

Hình 3.10

So sắn ESET NOD32 và ESET Internet Security

22

Hình 3.11

23

Hình 3.12


Router SSID cafewifi

24

Hình 3.13

DNS server giả mạo

25

Hình 3.14

Network Connection Details

26

Hình 3.15

Web lhu.edu.vn giả mạo

27

Hình 3.16

config DNS

28

Hình 3.17


Hosts file bị sửa

Mô hình thiết lập DNS Server giả mạo với các record độc
hại


29

Hình 3.18

nslookup

30

Hình 3.19

hosts Properties

31

Hình 3.20

Những ANTIVIRUS miễn phí.


DANH MỤC TỪ VIẾT TẮT
STT

Từ viết tắt


Giải thích

1

DNS

Domain Name System

2

LAN

Local Area Network

3

ARP

Address Resolution Protocol

4

DHCP

Dynamic Host Configuration Protocol

5

TCP


Transmission Control Protocol

6

UDP

User Datagram Protocol

7

IP

Internet Protocol

8

gTLDs

generic Top Level Domains

9

ccTLDs

country code Top Level Domains

10

iTLDs


International Top Level Domains

11

ICANN

Internet Coroperation for Assigned Names and Numbers

12

URL

Uniform Resource Locator

13

IPv4

Internet Protocol version 4

14

IPv6

Internet Protocol version 6

15

ID


Identification

16

ANCOUNT

Answer

17

NSCOUNT

Name Server

18

ARCOUNT

Additional Record

19

TTL

Time to Live

20

A


IPv4 address record

21

AAAA

IPv6 address record

22

CNAME

Canonical Name

23

MX

mail exchanger

24

NS

Name Server

25

PTR


Pointer records

26

GW

Gateway

27

TID

Transaction ID

28

MITM

Man In The Middle

29

SOA

State of Authority

30

DAI


Dynamic ARP Inspection


LỜI CÁM ƠN
Tôi xin chân thành cảm ơn Khoa Công Nghệ Thông Tin, trường Đại Học Lạc
Hồng đã tạo điều kiện tốt cho tôi thực hiện đề tài này.
Tôi xin chân thành cảm ơn cán bộ hướng dẫn: Thầy ThS. Nguyễn Hoàng Liêm
và Thầy ThS. Nguyễn Vũ Duy Quang là người đã tận tình hướng dẫn, chỉ bảo trong
suốt thời gian thực hiện đề tài.
Tôi cũng xin gửi lời cảm ơn đến quý Thầy Cô Khoa Công Nghệ Thông Tin, Đại
Học Lạc Hồng đã cùng với những tri thức và tâm huyết của mình truyền đạt vốn kiến
thức và kinh nghiệm quý báu trong suốt quá trình học tập tại trường.
Tôi xin gửi lòng biết ơn sâu sắc đến Ba, Mẹ, các anh chị và bạn bè đã ủng hộ,
giúp đỡ và động viên tôi trong những lúc khó khăn cũng như trong suốt thời gian học
tập và nghiên cứu.
Bằng tất cả tấm lòng, tôi kính chúc Trường Đại Học Lạc Hồng ngày càng vững
mạnh và đào tạo thêm nhiều thế hệ trẻ tài năng cho đất nước. Kính chúc quý Thầy Cô
dồi dào sức khỏe để ngày ngày đứng trên giảng đường truyền đạt thật nhiều kiến thức
quý báu đến sinh viên.
Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép,
nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong sự cảm thông và tận
tình chỉ bảo của quý Thầy Cô và các bạn.
Xin chân thành cảm ơn
Biên Hòa, tháng 11 năm 2017
Sinh viên thực hiện
Anousith SAPHANGTHONG


PHẦN MỞ ĐẦU

1. Lý do chọn đề tài
Vấn đề an toàn bảo mật ngày nay đang được các cơ quan, nhà bảo mật và đặc
biệt là các doanh nghiệp quan tâm hàng đầu. An toàn dữ liệu, thông tin người dùng và
tài chính của công ty mọi vấn đề đều cần được quan tâm. Đối với doanh nghiệp thì
quan trọng nhất là thông tin cá nhân và tài khoản của người dùng.
Phishing là việc xây dựng những hệ thống lừa đảo nhằm đánh cắp các thông tin
nhạy cảm, như tên đăng nhập, mật khẩu hay thông tin về các loại thẻ tín dụng của
người dùng. Phishing xuất hiện như một thực thể đáng tin cậy, một trang thông tin điện
tử, eBay, Paypal, gmail, hay các ngân hàng trực tuyến là những mục tiêu hướng đến
của hình thức tấn công này.
Sau khi thử nghiệm về kỹ thuật tấn công dịch vụ DNS, tôi có thể hiểu được
nguyên lý, cơ chế tấn công của hacker khi muốn ăn cắp thông tin tài khoản của người
dùng với các kỹ thuật như tấn công đầu độc DNS, ARP hoặc DHCP sẽ giúp cho kẻ tấn
công dễ dàng thực hiện Phishing. Hiện nay số lượng các vụ tấn công bằng kỹ thuật tấn
công này ngày càng tăng, để đối phó với việc này mỗi người cần có những kiến thức
cơ bản để phòng tránh. Các tổ chức cũng nên triển khai các khóa đào tạo nhận thức,
những mối nguy hại có thể xảy đến cho nhân viên và tăng cường những biện pháp kỹ
thuật nhằm hạn chế những vụ tấn công có thể xảy đến.
2. Mục tiêu đề tài
-Tìm hiểu tổng quan về hệ thống DNS.
-Nghiên cứu một số kỹ thuật tấn công DNS trên hệ thông mạng LAN và xây
dựng cách phòng chống tấn công.
-Để xuất một số giải pháp đảm bảo an toàn mạng LAN.
-Xây dựng mô hình thử nghiệm, triển khai một số biện pháp tấn công và phòng
chống.
3. Phạm vi nghiên cứu
Xây dựng hệ thống mạng, sử dụng công cụ Ettercap, Setoolkit trên kali linux để
phát hiện lỗ hổng tấn công DNS và đưa ra giải pháp khắc phục.

1



4. Đổi tượng nghiên cứu
Kỹ thuật tấn công DNS trên mạng LAN, cách phóng chống và giải pháp đảm
bảo an toàn. Để có thể phục vụ quá trình nghiên cứu cần áp dụng các phương pháp
sau:
- Tham khảo các công cụ phát hiện lỗ hổng tấn công DNS
- Khai thác sử dụng phần mềm để tấn công và đửa ra cách phòng chống.
5. Kết cấu của đề tài
Luận văn được chia làm ba phần: phần mở đầu, phần nội dung và phần kết luận.
Phần mở đầu
Nêu lý do chọn đề tài, mục tiêu nghiên cứu đề tài, đối tượng, phạm vi, phương
pháp nghiên cứu cũng như những đóng góp mới của đề tài. Bên cạnh đó cũng chỉ ra
mặt hạn chế mà đề tài chưa thực hiện được để giúp mọi người có cái nhìn rõ hơn.
Phần nội dung : gồm 3 chương
• Chương 1: Tổng quan về hệ thống tên miền DNS
Trong chương này tôi sẽ trình bày cơ sở lý thuyết về hệ thống DNS. Bên cạnh
đó cũng trình bày cấu trúc của hệ thống tên miền DNS để giúp cho người đọc hiểu
được cách làm việc cũng như các chức năng của hệ thống DNS.
• Chương 2: Vấn đề bảo mật trong DNS
Trình bày về vấn đề bảo mật trong DNS, điểm yếu của hệ thống, các loại tấn
công phổ biến, giải thích cách làm việc của các kiểu tấn công đó.
• Chương 3: Cách phòng chống tấn công DNS
Xây dựng mô hình thử nghiệm, triển khai một số biện pháp tấn công và đưa ra
cách phòng chống.
Phần kết luận
Đưa ra những kết luận và kiến nghị về các vấn để đã nghiên cứu.

2



CHƯƠNG 1. TỔNG QUAN VỀ HỆ THỐNG TÊN MIỀN DNS
(DOMAIN NAME SYSTEM)
1.1 Giới thiệu hệ thống tên miền DNS
DNS là từ viết tắt trong tiếng Anh của Domain Name System, là hệ thống tên
miền được phát minh vào năm 1984 cho Internet, định nghĩa trong các RFC 1034 và
1035, chỉ một hệ thống cho phép thiết lập tương ứng giữa địa chỉ IP và tên miền. Hệ
thống tên miền (DNS) là một hệ thống đặt tên theo thứ tự cho máy vi tính, dịch vụ,
hoặc bất kì nguồn lực tham gia vào Internet. Nó liên kết nhiều thông tin đa dạng với
tên miền được gán cho những người tham gia. Quan trọng nhất là nó chuyển tên miền
có ý nghĩa cho con người vào số định danh (nhị phân), liên kết với các trang thiết bị
mạng cho các mục đích định vị và địa chỉ hóa các thiết bị khắp thế giới.

Hình 1.1 DNS trong mô hình TCP/IP
DNS dùng cổng 53 để truyền tải thông tin. Tại lớp vận chuyển, DNS sử dụng
UDP hoặc TCP. UDP là giao thức không yêu cầu tính tin cậy của dữ liệu cao, thường
được sử dụng cho việc trả lời các query từ các host để đảm bảo tính nhanh chóng, khi
sử dụng UDP thì hạn chế của gói tin là 512 bytes. Do đó UDP thường được sử dụng để
trả lời các query của host. Còn TCP là giao thức đảm bảo thông tin, thường được sử
dụng khi các DNS server cập nhật thông tin với nhau, đảm bảo tính chính xác. Thường
thì khi các DNS server cập nhật thông tin với nhau, dữ liệu sẽ không bị hạn chế.

3


1.2 Hệ thống tên miền DNS
Hệ thống tên miền bao gồm một loạt các cơ sở dữ liệu chứa địa chỉ IP và các
tên miền tương ứng của nó. Mỗi tên miền tương ứng với một địa chỉ bằng số cụ thể.
Hệ thống tên miền trên mạng Internet có nhiệm vụ chuyển đổi tên miền sang địa chỉ IP
và ngược lại từ địa chỉ IP sang tên miền.

Trong những ngày đầu tiên của mạng Internet, tất cả các tên máy và địa chỉ IP
tương ứng của chúng được lưu giữ trong file hosts.txt, file này được trung tâm thông
tin mạng NIC (Network Information Center) ở Mỹ lưu giữ. Tuy nhiên khi hệ thống
Internet phát triển, việc lưu giữ thông tin trong một file không thể đáp ứng nhu cầu
phân phối và cập nhật. Do đó, hệ thống tên miền DNS đã phát triển dưới dạng các cơ
sở dữ liệu phân bố, mỗi cơ sở dữ liệu này sẽ quản lý một phần trong hệ thống tên
miền.
1.3 Cấu trúc của hệ thống tên miền DNS
Hiện nay hệ thống tên miền trên thế giới được phân bố theo cấu trúc hình cây.
tên miền cấp cao nhất là tên miền gốc (ROOT) được thể hiện bằng dấu ".".
Dưới tên miền gốc có hai loại tên miền là: tên miền cấp cao dùng chung gTLDs
(generic Top Level Domains) và tên miền cấp cao quốc gia ccTLDs (country code Top
Level Domains) như .vn, .jp, .th, …
Các tên miền iTLDs và usTLDs thực chất thuộc nhóm gTLD (việc phân tách ra
chỉ có ý nghĩa lịch sử). Tên miền cấp cao dùng chung hiện nay được tổ chức quốc tế
ICANN (Internet Coroperation for Assigned Names and Numbers) quản lý.
Danh sách tên miền cấp cao (TLD), bao gồm các tên miền cấp cao dùng chung
(gTLD) và tên miền cấp cao quốc gia (ccTLD) tham khảo tại:
/>
4


Hình 1.2 Cấu trúc của hệ thống tên miền
Hiện tại trên mạng Internet có 13 hệ thống máy chủ tên miền ở mức ROOT.
Danh sách tham khảo tại: />Bàng 1.1 Hệ thống máy chủ tên miền ở mức ROOT
HOSTNAME

IP ADDRESSES

MANAGER


a.root-servers.net

198.41.0.4, 2001:503:ba3e::2:30

VeriSign, Inc.

b.root-servers.net

192.228.79.201, 2001:500:200::b

University of Southern California
(ISI)

c.root-servers.net

192.33.4.12, 2001:500:2::c

Cogent Communications

d.root-servers.net

199.7.91.13, 2001:500:2d::d

University of Maryland

e.root-servers.net

192.203.230.10, 2001:500:a8::e


NASA (Ames Research Center)

f.root-servers.net

192.5.5.241, 2001:500:2f::f

Internet Systems Consortium, Inc.

g.root-servers.net

192.112.36.4, 2001:500:12::d0d

US Department of Defense (NIC)
5


HOSTNAME

IP ADDRESSES

MANAGER

h.root-servers.net

198.97.190.53, 2001:500:1::53

US Army (Research Lab)

i.root-servers.net


192.36.148.17, 2001:7fe::53

Netnod

j.root-servers.net

192.58.128.30, 2001:503:c27::2:30

VeriSign, Inc.

k.root-servers.net

193.0.14.129, 2001:7fd::1

RIPE NCC

l.root-servers.net

199.7.83.42, 2001:500:9f::42

ICANN

m.root-servers.net

202.12.27.33, 2001:dc3::35

WIDE Project

1.4 Chức năng của hệ thống tên miền DNS
Mỗi Website có một tên (là tên miền hay đường dẫn URL: Uniform Resource

Locator) và một địa chỉ IP. Địa chỉ IP gồm 4 nhóm số cách nhau bằng dấu chấm
(IPv4). Khi mở một trình duyệt Web và nhập tên website, trình duyệt sẽ đến thẳng
website mà không cần phải thông qua việc nhập địa chỉ IP của trang web. Quá trình
"dịch" tên miền thành địa chỉ IP để cho trình duyệt hiểu và truy cập được vào website
là công việc của một DNS server. Các DNS trợ giúp qua lại với nhau để dịch địa chỉ
"IP" thành "tên" và ngược lại. Người sử dụng chỉ cần nhớ tên không cần phải nhớ địa
chỉ IP (địa chỉ IP là những con số rất khó nhớ).
Hệ thống tên miền giúp cho nó có thể chỉ định tên miền cho các nhóm người sử
dụng Internet trong một cách có ý nghĩa, độc lập với mỗi địa điểm của người sử dụng.
Do đó, World Wide Web siêu liên kết và trao đổi thông tin trên Internet có thể duy trì
ổn định và cố định ngay cả khi định tuyến dòng Internet thay đổi hoặc những người
tham gia sử dụng một thiết bị di động. Tên miền internet dễ nhớ hơn các địa chỉ IP như
là 208.77.188.166 (IPv4) hoặc 2001: db8:1f70::999:de8: 7648:6 e8 (IPv6). Mọi người
tận dụng lợi thế này khi họ thuật lại có nghĩa các URL và địa chỉ email mà không cần
phải biết làm thế nào các máy sẽ thực sự tìm ra chúng. Hệ thống tên miền phân phối
trách nhiệm gán tên miền và lập bản đồ những tên tới địa chỉ IP bằng cách định rõ
những máy chủ có thẩm quyền cho mỗi tên miền. Những máy chủ có tên thẩm quyền
được phân công chịu trách nhiệm đối với tên miền riêng của họ, và lần lượt có thể chỉ
định tên máy chủ khác độc quyền của họ cho các tên miền phụ. Kỹ thuật này đã thực

6


hiện các cơ chế phân phối DNS, chịu đựng lỗi, và giúp tránh sự cần thiết cho một
trung tâm đơn lẻ để đăng kí được tư vấn và liên tục cập nhật.
1.5 Cơ chế phân giải
1.5.1 Phân giải tên thành địa chỉ IP
Root Name Server là máy chủ quản lý các name server ở mức top-level domain.
Khi có query về 1 tên domain nào đó thì Root Name Server sẽ cung cấp tên và địa chỉ
IP của name server quản lý top-level domain đó (thực tế thì hầu hết các root server

cũng chính là máy chủ quản lý top-level domain) và đến lượt các name server của
top-level domain cung cấp danh sách các name server có quyền trên các secon-level
domain mà domain này thuộc vào. Cứ như thế đến khi nào tìm được máy chủ quản lý
tên domain cần truy vấn.
Qua quá trình trên cho thấy vai trò rất quan trọng của Root Name Server trong
quá trình phân giải tên domain. Nếu mọi Root Name Server trên mạng Internet không
liên lạc được với nhau thì mọi yêu cầu phân giải tên đều sẽ không được thực hiện.
Ví dụ: client cần truy cập trang web www.ai.com thì client sẽ yêu cầu phân giải địa chỉ
IP của web server nào có chứa website www.ai.com này. Đầu tiên client sẽ tìm trong
cache của nó, nếu cache của nó không có thì nó sẽ gửi request querry đến DNS local
(nếu trong mạng nội bộ có DNS server). Sau đó DNS local cũng sẽ tìm trong cache
của nó, nếu có nó sẽ gửi địa chỉ IP cần truy vấn đến cho client, nếu cache không có thì
lúc này DNS local sẽ gửi request query này đến 1 Root Name Server nào đó gần nó
nhất mà nó biết được. Sau đó Root Name Server này sẽ trã lời địa chỉ IP của Name
Server quản lý miền .com cho DNS local. DNS local lại hỏi tiếp name server quản lý
domain .com miền ai.com địa chỉ IP là bao nhiêu. Cuối cùng DNS local truy vấn máy
chủ quản lý domain www.ai.com và nhận được câu trả lời.
Có 2 dạng truy vấn (query):
- Truy vấn đệ quy: khi Name Server nhận được truy vấn dạng này, nó bắt buộc
phải trả kết quả tìm được hoặc thông báo lỗi nếu như truy vấn này không phân giải
được. Name Server không thể tham chiếu đến 1 Name Server khác. Name Server có
thể gửi truy vấn dạng truy vấn đệ quy hoặc truy vấn lặp lại đến Name Server khác
nhưng phải thực hiện cho đến khi nào có kết quả mới thôi. DNS server kiểm tra cache
và forward lookup zone để gửi lại query.

7


Hình 1.3 Truy vấn (query)
- Truy vấn lặp lại: khi Name Server nhận được truy vấn dạng này, nó sẽ trả lời

cho thiết bị truy vấn với thông tin tốt nhất mà nó có được vào thời điểm lúc đó. Bản
thân Name Server không thực hiện bất cứ 1 truy vấn nào thêm. Thông tin trả về lúc đó
có thể lấy từ dữ liệu cục bộ (kể cả cache). Trong trường hợp Name Server không tìm
thấy thông tin trong dữ liệu cục bộ nó sẽ trả về tên miền và địa chỉ IP của Name Server
nào gần nhất mà nó biết.
Tóm lại việc truy vấn thường như sau:
- Truy vấn giữa thiết bị truy vấn (host) > DNS Server là Truy vấn đệ quy
- Truy vấn giữa DNS Server > DNS Server là truy vấn lặp lại
1.5.2 Phân giải địa chỉ IP thành tên host
Để có thể phân giải tên máy tính của 1 địa chỉ IP, trong không gian tên miền
người ta bổ sung thêm 1 nhánh tên miền mà được lập chỉ mục theo địa chỉ IP. Phần
không gian này có tên miền là in-addr.arpa.
Mỗi node trong miền in-addr.arpa có 1 tên nhãn là chỉ số thập phân của địa chỉ
IP. Ví dụ miền in-addr.arpa có thể có 256 subdomain tương ứng với 256 giá trị từ 0 >
255 của byte đầu tiên trong địa chỉ IP. Trong mỗi subdomain lại có 256 subdomain
con nữa ứng với byte thứ 2. Cứ như thế và đến byte thứ 4 có các bản ghi cho biết tên
miền đầy đủ của các máy tính hoặc các mạng có địa chỉ IP tương ứng.

8


1.6 Cấu trúc của gói tin DNS

Hình 1.4 Cấu trúc gói tin DNS
Trong phần này, ta đề cập đến 2 thành phần của bản tin DNS: Truy vấn DNS và
các bản tin phản hồi. Cả truy vấn và phản hồi đều có dạng tương tự nhau, được chỉ ra
trong hình. Ý nghĩa các trường của bản tin được chỉ ra như sau:
- Phần mở đầu (The message header): 12 bytes, bao gồm các cờ và các giá trị
điều khiển quá trình trao đổi. Gồm các thành phần chính:
QDCOUNT (số các items trong một truy vấn-Question)

ANCOUNT (số các items trong 1 phản hồi- Answers)
NSCOUNT (số các items trong Authority section)
ARCOUNT (số items trong Additional section)

Hình 1.5 The message header
9


- ID (Identification): Là một trường 16 bit chứa mã định danh. Định danh truy
vấn được sinh ra bởi client và được sao chép sang phản hồi của máy chủ. ID được sử
dụng để kết hợp truy vấn với trả lời, nó xác định duy nhất truy vấn nào đi kèm với
phản hồi nào. Chính vì vậy mà truy vấn và phản hồi có thể phù hợp với nhau. ID cho
phép client gửi nhiều query cùng lúc mà không cần phải chờ trả lời.
- QDCOUNT: 16 bit, quy định số lượt truy cập vào trường Truy vấn (Question)
- ANCOUNT: 16 bit, quy định số bản ghi trong trường Phản hồi (Answer). Có
thể là 0 trong trường hợp không có bản ghi phản hồi trong bản tin.
- NSCOUNT: 16 bit, quy định số lượng của tên bản ghi nguồn trong trường
Authority section. Có thể bằng 0 trong trường hợp không có bản ghi có thẩm quyền ở
thời điểm hiện tại.
- ARCOUNT: 16 bit, quy định số lượng các bản ghi nguồn trong trường
Additional. Có thể bằng 0 trong trường hợp không có bản ghi thêm vào nào được chỉ
ra trong bản tin.
Phần truy vấn (The DNS question) Thông thường, chỉ có 1 truy vấn mỗi bản tin,
tuy nhiên số lượng truy vấn được cho phép 1 cách bất kỳ, xác định bởi QDCOUNT.
Cấu trúc chung được cho như sau:
- QNAME: tên trường, là tên được truy vấn trong DNS, ký hiệu “.” không sử
dụng với các tên miền. Mỗi phần của tên miền (thường được thể hiện giữa các dấu
chấm) được thể hiện bằng 1 byte chứa chiều dài chuỗi. Tên miền được kết thúc bởi
một đánh dấu zero (chuỗi cuối cùng có độ dài 0).
- QTYPE: 16 bit, đặc tả kiểu truy vấn. là kiểu RR được yêu cầu trong trả lời.

- QCLASS: 16 bit, đặc tả lớp bản ghi nguồn được yêu cầu.
Phần phản hồi (The DNS Answer) Chứa 3 thành phần: thành phần trả lời, thành
phần máy chủ xác thực và thông tin thêm.
Bản thân phần trả lời đã chứa thành phần trả lời. Thành phần máy chủ xác thực
tên lưu trữ tên của các máy chủ trong các bộ NS. Thông tin thêm thường lưu địa chỉ IP
của các máy chủ xác thực. Các bộ trong thành phần này là các bộ tài nguyên thông
dụng như các bộ lưu giữ máy chủ tên và sử dụng các định dạng như sau:
- NAME: tên miền, cùng định dạng với trường QNAME trong truy vấn.
- TYPE: 16 bit giá trị. Kiểu bộ, cùng định dạng với QTYPE.
- CLASS: 16 bit giá trị. Lớp, cùng định dạng với QCLASS.
10


- TTL: 32 bit giá trị. Giới hạn kết thúc RR, thời gian mà trả lời có thể được lưu
trong máy chủ lưu trữ khi có giá trị.
- RDLENGHT: 16 bit giá trị. chiều dài RDATA.
- RDATA: phần còn lại của RR (địa chỉ IP hay tên miền).
Phần quyền truy nhập (Authority section) Authority record có cấu cấu trúc
giống hệt với phần phản hồi (Answer). Ngoài ra chúng bao gồm bản ghi của các server
bắt buộc khác.
Phần bản ghi bổ sung (Additional Information). Tương tự với phần trên, phần
bản ghi bổ sung có cấu trúc giống với phần phản hồi. Ngoài ra nó chứa các bản ghi
hữu ích khác.
Ví dụ: phần Câu trả lời trong Phản hồi cho một truy vấn MX bao gồm bản ghi nguồn
cung cấp tên máy chủ theo quy tắc của một mail server. Phần thêm vào ở đây bao gồm
bản ghi Kiểu A cung cấp địa chỉ IP cho tên máy chủ theo quy tắc của mail server.
1.7 Các bản ghi dữ liệu tên miền (Resource Record)
Bản ghi kiểu A
Bản ghi kiểu A được dùng để khai báo ánh xạ giữa tên của một máy tính trên
mạng và địa chỉ IP tương ứng của nó. Nói cách khác, bản ghi kiểu A chỉ ra tên và điạ

chỉ IP của một máy tính trên mạng. Bản ghi kiểu A có cú pháp như sau: domain IN A
<địa chỉ IP của máy>
Ví dụ: home.vnn.vn IN A 203.162.0.12
Theo ví dụ trên, tên miền home.vnn.vn được khai với bản ghi kiểu A trỏ đến địa
chỉ 203.162.0.12 sẽ là tên của máy tính này. Một tên miền có thể được khai nhiều bản
ghi kiểu A khác nhau để trỏ đến các địa chỉ IP khác nhau. Như vậy có thể có nhiều
máy tính có cùng tên trên mạng. Ngược lại một máy tính có một địa chỉ IP có thể có
nhiều tên miền trỏ đến, tuy nhiên chỉ có duy nhất một tên miền được xác định là tên
của máy, đó chính là tên miền được khai với bản ghi kiểu A trỏ đến địa chỉ của máy.
Bản ghi kiểu AAAA
Bản ghi kiểu AAAA được dùng để chuyển đổi từ tên miền sang địa chỉ IPv6.
Giống như bản ghi kiểu A trong địa chỉ IPv4, một tên miền có thể được khai nhiều bản
ghi kiểu AAAA khác nhau để trỏ đến các địa chỉ IPv6 khác nhau. Bản ghi kiểu AAAA
có cú pháp như sau: domain IN AAAA <địa chỉ IPv6 của máy> Ipv6.vnnic.net IN
AAAA 2001:dc8:5::115
11


Khai báo trên cho thấy tên miền ipv6.vnnic.net là tên được đặt cho máy tính có
địa chỉ 2001:dc8:5::115 trên mạng Internet.
Bản ghi kiểu CNAME
Bản ghi CNAME cho phép một máy tính có thể có nhiều tên. Nói cách khácbản
ghi CNAME cho phép nhiều tên miền cùng trỏ đến một địa chỉ IP cho trước. Để có thể
khai báo bản ghi CNAME, bắt buộc phải có bản ghi kiểu A để khai báo tên của máy.
Tên miền được khai báo trong bản ghi kiểu A trỏ đến địa chỉ IP của máy được gọi là
tên miền chính (canonical domain). Các tên miền khácmuốn trỏ đến máy tính này phải
được khai báo là bí danh của tên máy (aliasdomain). Cú pháp của bản ghi CNAME
alias-domain IN CNAME canonical domain
Ví dụ:
www.anousith.vn IN CNAME home.anousith.vn Tên miền www.anousith.vn sẽ là tên



danh

của

tên

miền

home.anousith.vn,

tên

miền

www.anousith.vn



home.anousith.vn sẽ cùng trỏ đến địa chỉ IP 203.162.0.12.
Bản ghi kiểu MX
Bản ghi MX dùng để khai báo trạm chuyển tiếp thư điện tử của một tên miền.
Ví dụ, để các thư điện tử có cấu trúc được gửi đến trạm chuyển tiếp
thư điện tử có tên mail.anousith.vn, trên cơ sở dữ liệu của DNS cần khai báo bản ghi
MX như sau: anousith.vn IN MX 10 mail.anousith.vn
Các thông số được khai báo trong bản ghi MX nêu trên gồm có:
• anousith.vn: là tên miền được khai báo để sử dụng như địa chỉ thư điện tử.
• mail.anousith.vn: là tên của trạm chuyển tiếp thư điện tử, nó thực tế là tên của
máy tính dùng làm trạm chuyển tiếp thư điện tử.

• 10: Là giá trị ưu tiên, giá trị ưu tiên có thể là một số nguyên bất kỳ từ 1 đến
255, nếu giá trị ưu tiên này càng nhỏ thì trạm chuyển tiếp thư điện tử được khai báo
sau đó sẽ là trạm chuyển tiếp thư điện tử được chuyển đến đầu tiên.
Bản ghi NS
Bản ghi NS dùng để khai báo máy chủ tên miền cho một tên miền. Nó cho biết
các thông tin về tên miền này được khai báo trên máy chủ nào. Với mỗi một tên miền
phải có tổi thiểu hai máy chủ tên miền quản lý, dó đó yêu cầu có tối thiểu hai bản ghi
NS cho mỗi tên miền. Cú pháp của bản ghi NS IN NS
Ví dụ: anousith.net.vn. IN NS dns.anousith.net.vn.
12


Với khai báo trên, tên miền anousith.net.vn sẽ do máy chủ tên miền có tên
dns.anousith.net.vn quản lý. Điều này có nghĩa, các bản ghi như A, CNAME, MX ...
của tên miền anousith.net.vn và các tên miền cấp dưới của nó sẽ được khai báo trên
máy chủ dns.anousith.net.vn.
Bản ghi kiểu PTR
Hệ thống DNS không những thực hiện việc chuyển đổi từ tên miền sang địa chỉ
IP mà còn thực hiện chuyển đổi địa chỉ IP sang tên miền. Bản ghi PTR cho phép thực
hiện chuyển đổi địa chỉ IP sang tên miền.
Ví dụ: về khai báo bản ghi PTR 12.0.162.203.in-addr.arpa IN PTR home.anousith.vn
Bản ghi PTR trên cho phép tìm tên miền home.anousith.vn khi biết địa chỉ IP mà tên
miền trỏ tới.
Bản ghi kiểu NAPTR
Bản ghi NAPTR là bản ghi đặc biệt trong hệ thống tên miền, chứa đựng thông
tin về các nguồn, những dịch vụ và ứng dụng nào sẽ được kết hợp với một số điện
thoại xác định. Những dịch vụ này được xác định và lựa chọn bởi khách hàng.
Cú pháp của bản ghi NAPTR:
<tên miền> IN NAPTR <thứ tự> <mức ưu tiên> <cờ> <dịch vụ> <biểu thức>
<thay thế>

Ví dụ:
về khai báo bản ghi NAPTR 5.1.1.6.2.2.8.4.4.8.e164.arpa. IN NAPTR 10 10 “u”
“mailto+E2U” “!^.*$!!”
Với khai báo trên khi thực hiện gọi số +84-4-8226115 thì ta sẽ thu được
Với bản ghi này có thể triển khai dịch vụ dựa trên hệ thống
máy chủ DNS như ENUM và có thể mang lại sự hội tụ giữa viễn thông và Internet
trong tương lai.

13


CHƯƠNG 2. VẤN ĐỀ BẢO MẬT TRONG DNS
2.1 Điểm yếu của hệ thống DNS
Như đã mô tả ở trên, DNS là giao thức phân giải địa chỉ, dùng để ánh xạ giữa
tên miền (Domain) sang địa chỉ Internet (IP). Theo giao thức này, máy chủ DNS khi
nhận được yêu cầu phân giải địa chỉ (request) từ máy trạm, nó sẽ tra cứu trong bộ đêm
(cache) và trả về địa chỉ IP tương ứng với tên miền mà máy trạm yêu cầu. Tuy nhiên,
nếu không tìm thấy trong bộ đệm, máy chủ DNS sẽ chuyển tiếp yêu cầu phân giải tới 1
máy chủ DNS khác. Mỗi trao đổi phân giải giữa A và B được xác thực thông qua một
số hiệu TID (Transaction ID) ngẫu nhiên. Tuy nhiên, điểm yếu ở đây chính là việc số
TID này chỉ là một số 16 bit (nhỏ hơn 65535) và mọi trao đổi giữa A và B đều diễn ra
trên một cổng (port) cố định của A. Đây chính là khâu đã phát hiện là có lỗ hổng
nghiêm trọng và mã khai thác lỗ hổng này đã được lan truyền trên mạng Internet.
Do một client bình thường tin tưởng các thông tin phân giải do DNS Server
cung cấp. Do đó, nếu DNS Server bị tấn công vì mục đích nào đó nhằm thay đổi các
thông tin phân giải trả về cho client. Điền này thật nguy hiểm cho client khi nhận được
những thông tin phân giải giả mạo
2.2 Phương pháp tấn công DNS
2.2.1 Tấn công đầu độc cache (cache poisoning attack or DNS spoofing)
Như đã đề cập trong phần lý thuyết bên trên, các DNS Server sau khi trả thông

tin đã phân giải được vào cache (cache trên DNS Server), mục đích là để tối ưu cho
việc phân giải lần sau. Lợi dụng cơ chế này, các hacker tiến hành đầu độc cache của
DNS Server. Có vài cách để thực hiện việc này:
- Gửi một lượng lớn snoofing reply đến client nạn nhân. Kỹ thuật tấn công dựa
vào số ID DNS snoofing đòi hỏi kẻ tấn công phải biết chính xác số ID giao dịch giữa
client và server. Điều này có thể được thực hiện bằng cách gửi một lượng rất lớn các
gói tin reply chứa số Transaction ID khác nhau đến client, hy vọng một trong số các
gói tin gửi đến client sẽ hợp lệ. Trên thực tế, số ID này chỉ chiếm 2 byte bộ nhớ, cho
nên nó chỉ có tất cả 65525 trường hợp. Vì vậy, bằng cách gửi 65525 gói tin reply (mỗi
gói tin có số ID khác nhau), một trong số chúng chắc chắn sẽ phù hợp với số
Transaction ID giao dịch giữa client và server, đồng thời có thể làm ngập lụt máy nạn
nhân. Với cách tấn công này, hacker không cần phải nghe lén số Transaction ID giao
14


dịch giữa client và server. Nhưng vấn đề của nó là khi nào thì nên tiến hành thực hiện
tấn công. Đó là, làm thế nào để biết khi nào client thực hiện truy vấn DNS. Đây là việc
gây khó khăn cho phương thức tấn công này.

Hình 2.1 DNS spoofing
- Hacker gửi một lượng lớn snoofed reply đến DNS Server. Trong cách thực
hiện trên, hacker không thể biết khi nào client thực hiện một truy vấn. Tuy nhiên, thật
tế, attacker có thể tự thực hiện truy vấn và sau đó gửi gói tin reply giả mạo đến DNS
Server. Sau đó, DNS Server sẽ chứa thông tin bị đầu độc. Trở ngại của phương pháp
này đó là gói tin reply phải chứa cùng số Transaction ID và số port mà DNS Server
victim đã sử dụng. Để giải quyết vấn đề này, đối với số Transaction ID thì hacker sử
dụng phương pháp birthday attack. Trên DNS Server thì source port sử dụng hầu như
không đổi đối với từng client. Lợi dụng điều này, đầu tiên attacker yêu cầu DNS
Server victim phân giải một địa chỉ tên domain nào đó của hacker. Trên máy này, sau
khi nhận được truy vấn hacker có thể biết được source port nào đang được sử dụng

trên DNS Server victim. Dựa trên sự tính toán này, cùng với số source port đã biết,
hacker thực hiện gửi 650 request và 650 reply giả mạo đến DNS Server victim. Xác
suất thành công của phương pháp tấn công này đạt khoản 96% tỉ lệ thành công.
Các tên miền cần phân giải đã được hacker tính toán sao cho máy chủ DNS
không thể tìm thấy trong bộ đệm của nó và phải chuyển tiếp tới máy chủ DNS tiếp
theo. Mỗi trao đổi phân giải giữa máy chủ DNS local được xác thực thông qua 1 số tín
hiệu TID (Transaction ID) ngẫu nhiên. Tuy nhiên, điểm yếu ở đây là việc số TID này
chỉ là một số 16 bit (nhỏ hơn 65535)
15


Hình 2.2 client gửi gói tin tới DNS local
Để tấn công, trước khi máy DNS kịp nhận các gói tin trả lời từ máy DNS thiếp
theo, hacker gửi liên tiếp các gói tin giả mạo trả lời tới cổng cố định nói trên của DNS

Hình 2.3 Hacker gửi liên tiếp gói tin gải mạo trả lời
chỉ cần 1 trong các gói tin giả mạo có TID trùng với TID mà máy A đang chờ, thì gói
tin giả mạo sẽ được máy DNS local chấp nhận là gói tin hợp lệ và cập nhật vào bộ
đệm. Lúc này, gói tin trả lời thật từ máy DNS bên cạnh sẽ không được máy DNS local
xử lý nữa. Bằng cách này, hacker có thể đầu độc bộ đệm của máy DNS local, để ánh
xạ tên miền bị tấn công sang 1 địa chỉ IP mà hacker chỉ định.

Hình 2.4 client bị chuyển hướng đến trang giả mạo
16


2.2.2 Thiết lập DNS Server giả mạo với các record độc hại
Do thói quen sử dụng mạng thường xuyên nên nhiều người cảm thấy khó chịu
khi không thể vào Internet. Vì vậy theo phản xạ, họ sẽ lập tức kết nối Wi-Fi công cộng
ngay khi có thể. Làm sao các bạn biết được Wi-Fi đó có an toàn hay không, có thể là

Wi-Fi đó là hacker tạo ra.

Hình 2.5 Thiết lập DNS Server giả mạo với các record độc hại
Thiết lập một DNS Server giả mạo với các record độc hại. Mục đích của kẻ tấn
công là muốn dẫn các client khi phân giải một cái tên nào đó về địa chỉ IP giả mạo, với
cách tấn công này hacker không cần phải người đứng ở giữa nữa (MITM) như cách ở
trên (DNS spoofing), chỉ cần có ai đó truy cập vào wifi giả mạo thi nó sẽ chuyển
hướng đến DNS Server giả mạo của hacker, ví dụ khi client cần phân giải địa chỉ
lhu.edu.vn thay vì đến địa chỉ thật 118.69.126.40 thì DNS server giả mạo trả về địa chỉ
IP giả là 192.168.0.111 do lhu.edu.vn được record trong DNS server của hacker. Khi
nào record giả còn tồn tại trong cache của DNS Server nạn nhân, các truy vấn của
lhu.edu.vn sẽ được chuyển hướng đến 192.168.0.111, đây là một máy tính được đặc
dưới sự kiểm soát của hacker.
2.2.3 Sửa file hosts
File hosts là một tập tin được sử dụng trong các hệ điều hành Windows, Linux,
Mac để lưu trữ thông tin IP của các máy chủ và tên miền Domain được trỏ tới. Nó
được coi là Mini DNS trên chính máy bạn để giúp hệ điều hành dịch từ tên miền một
cách nhanh gọn. Công dụng của file hosts có thế chuyển hướng website, chặn và truy
cập nhanh trang web bất kì.

17


Hình 2.6 Hosts file
Nếu Hosts file không được bảo vệ, phần mềm độc hại (phần mềm quảng cáo, vi
rút ...) có thể sửa đổi nó và chèn chuyển hướng để thực hiện các cuộc tấn công lừa đảo
và tạo trang web có thể sử dụng nội dung độc hại cố gắng thu thập thông tin tài khoản
của bạn.
2.2.4 Tấn công trong quá trình zone transfer (Zone transfer attack)
Mục đích của việc tấn công này là để đưa thông tin không đúng lên server dự

phòng (slave server) thông qua tiến trình zone transfer bình thường giữa server chính
và server dự phòng. Sau đây là cách để thực hiện zone transfer attack.
Đầu tiên, attacker thực hiện phương pháp tấn công man-in-the-middle để có thể
chen ngang việc trao đổi thông tin giữa server chính và server dự phòng, khi server dự
phòng yêu cầu server chính thực hiện quá trình zone transfer, attacker sẽ ngăn chặn
yêu cầu này đến server, sau đó attacker sẽ trả về cho server dự phòng thông tin đã
được giả mạo. Lúc này, server dự phòng đã chứa thông tin đã bị giả mạo của attacker.
Sau đó, attacker thực hiện tấn công từ chối dịch vụ trên server chính, server dự phòng
sẽ đóng vai trò là server chính bắt đầu cung cấp dịch vụ DNS cho các client, các client
sẽ nhận thông tin đã bị đầu độc từ phía DNS Server.

18


CHƯƠNG 3. CÁCH PHÒNG CHỐNG TẤN CÔNG DNS
3.1 Phòng chống tấn công đầu độc cache (cache poisoning attack or DNS spoofing)
3.1.1 Thử nghiệm tấn công đầu độc cache

Hình 3.1 Mô hình demo DNS spoofing
Có 2 máy (cài trên VMware):
- Một máy tấn công (kali linux)
IP 192.168.229.200; Getway 192.168.229.2; MAC 00:0c:29:3a:83:30
Đã cài sắn công cụ tấn công Ettercap và Setoolkit để tạo website giả mạo.
- Một máy victim (windows 7)
IP 192.168.229.100; Getway 192.168.229.2; MAC 00-0C-29-Đ-E2-57
- Một switch Catalyst 3560 series (Kết nối 2 máy tính kali linux và windows 7)
Tiến trình cài dặt chạy thử nghiệm
Trước khi bị tấn công client (windows 7) truy cập vào lhu.edu.vn, đây là trang web
thật lhu.edu.vn có địa chỉ IP 118.69.126.40.


19


×