Học viện kỹ thuật mật mã Chuyên ngành an toàn thông tin Đồ án tốt nghiệp Báo cáo nghiên cứu một số kỹ thuật tấn công lên hệ thống máy chủ tên miền (DNS) và đề xuất các giải pháp phòng chống tấn công
TỔNG QUAN HỆ THỐNG MÁY CHỦ TÊN MIỀN (DNS)
Khái niệm
DNS (Hệ thống Tên Miền) được phát minh vào năm 1984, là hệ thống phân giải tên giúp kết nối địa chỉ IP với tên miền Hệ thống này cung cấp cách đặt tên cho dịch vụ, máy tính và các nguồn lực trên internet, cho phép liên kết thông tin đa dạng với tên miền của người dùng Đặc biệt, DNS chuyển đổi tên miền dễ hiểu sang định danh nhị phân, hỗ trợ việc định vị và địa chỉ hóa thiết bị trên toàn cầu.
Phép so sánh thường được dùng để giải thích hệ thống tên miền, hoạt động như một “danh bạ điện thoại” giúp người dùng tìm kiếm trên internet bằng cách chuyển đổi tên máy chủ thành địa chỉ IP.
Hệ thống DNS cho phép chuyển đổi tên miền như www.example.com thành địa chỉ IP 208.77.188.166, giúp xác định tên miền cho từng nhóm người dùng internet một cách độc lập và có ý nghĩa theo từng vị trí Nhờ đó, World-Wide Web có thể duy trì sự ổn định và cố định trong việc siêu liên kết và trao đổi thông tin, ngay cả khi định tuyến internet thay đổi hoặc khi người dùng sử dụng thiết bị di động.
Hệ thống tên miền phân phối trách nhiệm lập bản đồ và gán tên miền đến địa chỉ IP bằng cách xác định máy chủ có thẩm quyền cho mỗi tên miền Các máy chủ này chịu trách nhiệm quản lý tên miền của riêng họ và chỉ định các máy chủ khác cho các tên miền phụ Kỹ thuật này giúp phân phối DNS hiệu quả, loại bỏ nhu cầu về một trung tâm duy nhất, đồng thời giảm thiểu rủi ro lỗi trong quá trình đăng ký và cập nhật.
Hệ thống tên miền không chỉ lưu trữ thông tin về các máy chủ email mà còn đóng vai trò quan trọng trong việc phân phối từ khóa và cung cấp dịch vụ đổi hướng trên Internet Đây là một thành phần thiết yếu giúp kết nối và tổ chức thông tin trong không gian mạng Ngoài ra, các định dạng như mã số UPC, ký tự quốc tế trong địa chỉ email, tên máy chủ, và thẻ RFID cũng có thể tận dụng khả năng của DNS để tối ưu hóa việc truy cập và quản lý thông tin.
Chức năng của DNS
Tất cả các thiết bị trên Internet giao tiếp nhờ địa chỉ IP (IPv4 và IPv6) Khi truy cập vào một trang web như facebook.com hay github.com, thực chất bạn đang truy cập vào địa chỉ IP của server chứa dữ liệu của các trang này Tuy nhiên, việc nhớ chính xác địa chỉ IP của tất cả các trang web là điều khó khăn, vì vậy hệ thống DNS đã được phát triển để giải quyết vấn đề này.
DNS hoạt động như một phiên dịch viên, chuyển đổi giữa địa chỉ IP và tên miền mà không thay thế hoàn toàn địa chỉ IP Bạn có thể truy cập một trang web bằng cách nhập trực tiếp địa chỉ IP nếu bạn nhớ được nó, thay vì sử dụng tên miền.
“www.google.com” vào trình duyệt, máy chủ DNS sẽ lấy địa chỉ IP của máy chủ Google là “74.125.236.37” Sau đó, bạn sẽ nhìn thấy trang chủ
Google tải trang trên trình duyệt Đó là quá trình phân giải DNS.
Mỗi DNS còn có chức năng ghi nhớ những tên miền mà nó đã phân giải và ưu tiên sử dụng cho những lần truy cập sau.
DNS cho phép người dùng truy cập nhiều dịch vụ mạng như tìm kiếm thông tin, xem phim, chơi game và đăng nhập vào các website Nếu không có DNS, việc duyệt Internet sẽ trở nên khó khăn và không thuận tiện như hiện nay.
Nguyên tắc làm việc
Mỗi nhà cung cấp dịch vụ đều vận hành và duy trì máy chủ DNS riêng, nằm trong hệ thống của họ trên Internet Khi một trình duyệt tìm kiếm địa chỉ website, máy chủ DNS phân giải tên miền phải là của tổ chức quản lý website đó, không phải của nhà cung cấp dịch vụ khác.
INTERNIC (Internet Network Information Center) is responsible for overseeing domain names and their corresponding DNS servers Established by the National Science Foundation (NSF), AT&T, and Network Solutions, INTERNIC manages the registration of Internet domain names Its primary role is to administer all DNS servers on the Internet, rather than resolving names for individual addresses.
DNS có khả năng truy vấn các máy chủ DNS khác để phân giải tên miền Mỗi máy chủ DNS của một tên miền có hai nhiệm vụ chính: đầu tiên, nó phân giải tên từ các máy trong miền thành địa chỉ Internet, bao gồm cả bên trong và bên ngoài miền; thứ hai, nó cung cấp phản hồi cho các máy chủ DNS bên ngoài đang cố gắng phân giải tên miền trong phạm vi quản lý của nó.
Máy chủ DNS có khả năng lưu trữ các tên miền đã được phân giải để phục vụ cho các yêu cầu phân giải trong tương lai Số lượng tên miền được lưu lại phụ thuộc vào quy mô của từng máy chủ DNS.
Kiến trúc DNS
1.4.1 Cấu trúc cơ sở dữ liệu
Hệ thống DNS là một cơ sở dữ liệu phân tán và phân cấp hình cây, với máy chủ gốc (Root server) nằm ở đỉnh Các miền (domain) được phân nhánh từ gốc xuống dưới, với quyền quản lý được phân bổ Khi máy khách (client) truy vấn một tên miền, quá trình sẽ diễn ra từ máy chủ gốc xuống các cấp thấp hơn cho đến khi tìm được DNS quản lý miền cần truy vấn Tổ chức quản lý hệ thống tên miền toàn cầu là ICANN (The Internet Corporations for Assigned Names and Numbers), có trách nhiệm quản lý mức cao nhất của hệ thống tên miền và cấp phát các tên miền ở cấp độ cao nhất, gọi là Top-Level-Domain.
Cấu trúc dữ liệu phân cấp hình cây root quản lý toàn bộ sơ đồ và phân quyền quản lý cho các cấp dưới, trong đó các tên miền được chuyển giao xuống các cấp thấp hơn thông qua quá trình ủy quyền (delegale).
Hệ thống tên miền (DNS) cho phép quản lý tên miền bằng cách chia thành các zone Mỗi zone chứa thông tin về miền cấp thấp hơn và có khả năng phân chia thành các zone cấp thấp hơn, đồng thời phân quyền cho các máy chủ DNS khác để quản lý.
Zone “.vn” được quản lý bởi DNS server, nơi lưu trữ thông tin về các bản ghi có đuôi “.vn” và có khả năng ủy quyền quản lý cho các zone cấp thấp hơn, chẳng hạn như “.fpt.vn” do FPT quản lý Hệ thống cơ sở dữ liệu của DNS có cấu trúc phân tán dạng cây, phản ánh cấu trúc logic trên Internet.
1.4.2 Cấu trúc của hệ thống tên miền
- Tên miền sẽ có dạng : Label.label.label….label
- Độ dài tối đa của một tên miền là 255 ký tự
- Mỗi một label tối đa là 63 ký tự bao gồm cả dấu “.”
- Label phải được được bắt đầu bằng chữ số và chỉ được chứa chữ, số, dấu trừ (-)
Bảng 1- 1: Phân loại tên miền
.com Commercial – lĩnh vực thương mại.
.edu Education – lĩnh vực giáo dục
.net Network – lĩnh vực mạng
.tv Television – lĩnh vực truyền hình
.info Information – lĩnh vực thông tin org Organization – các tổ chức, cộng đồng
.mil Military – lĩnh vực quốc phòng vn, jp, us,… Tên miền quốc gia cấp cao nhất
Tên miền bao gồm các nhãn được phân cách bởi dấu chấm, chẳng hạn như example.com Ngoài ra, tên miền còn được phân loại theo cấp độ, bao gồm tên miền cấp cao nhất (top level), tên miền cấp 1 và cấp 2.
Hiện nay hệ thống tên miền được phân thành nhiều cấp :
Gốc (Domain root) : Nó là đỉnh của nhánh cây của tên miền Nó có thể biểu diễn đơn giản chỉ là dấu chấm “.”
Tên miền cấp một (Top-level-domain) : gồm vài kí tự xác định một nước, khu vưc hoặc tổ chức Nó đươc thể hiện là “.com” , “.edu” …
Tên miền cấp hai (Second-level-domain): Nó rất đa dạng rất đa dạng có thể là tên một công ty, một tổ chức hay một cá nhân.
Tên miền cấp nhỏ hơn, hay còn gọi là subdomain, là phần mở rộng của tên miền cấp hai, thường được sử dụng để phân chia các chi nhánh hoặc phòng ban của một tổ chức, hoặc để tổ chức nội dung theo chủ đề cụ thể.
Hình 1-1: Cấu trúc phân cấp DNS
Máy chủ tên miền (Name Server - NS)
Máy chủ tên miền (name server) là hệ thống lưu trữ cơ sở dữ liệu cho phép chuyển đổi giữa tên miền và địa chỉ IP Mỗi cấp trong hệ thống tên miền đều có máy chủ tên miền tương ứng, phục vụ cho các loại tên miền cụ thể Máy chủ tên miền ở mức ROOT quản lý cơ sở dữ liệu cho các tên miền cấp cao nhất (top-level-domain), trong khi đó, máy chủ tên miền ở mức quốc gia đảm nhiệm việc quản lý các tên miền trong phạm vi quốc gia.
Nó tồn tại ở tất cả các cấp trong kiến trúc DNS
Authoritative name server kiểm soát một phần cơ sở dữ liệu DNS
Một NS có thể phục vụ nhiều zone khác nhau
Nhiều NS phục vụ cho một số zone/subzones nhất định
The DNS system defines two types of domain name servers: primary name servers and secondary name servers, along with caching name servers.
Hình 1-2: Mô hình tương tác giũa Primary NS và Secondary NS
Mỗi miền cần có một Primary Name Server được đăng ký trên Internet để quản lý miền Tên máy tính và địa chỉ IP của server này được mọi người trên Internet biết đến Quản trị viên DNS sẽ tổ chức các tập tin cơ sở dữ liệu trên Primary Name Server, có nhiệm vụ phân giải tất cả các máy trong miền hoặc zone.
Secondary Name Server có vai trò sao lưu dữ liệu từ Primary Name Server, đảm bảo việc phân giải tên máy tính thành địa chỉ IP khi Primary bị gián đoạn Trong mỗi miền, có thể có một hoặc nhiều Secondary Name Server, và chúng sẽ định kỳ sao chép và cập nhật cơ sở dữ liệu từ Primary Tên và địa chỉ IP của Secondary Name Server cũng được công nhận trên Internet.
Caching Name Server không lưu trữ tập tin CSDL, mà hoạt động bằng cách phân giải tên máy từ các Name Server khác trên mạng xa Nó lưu giữ thông tin về những tên máy đã được phân giải trước đó để tăng tốc độ phân giải nhờ vào cache, giảm gánh nặng cho các Name Server và hạn chế lưu lượng truy cập trên các mạng lớn.
Cấu trúc gói tin DNS
Hình 1-3: Cấu trúc gói tin DNS
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:
ID là một trường 16 bits chứa mã nhận dạng, được tạo ra bởi chương trình để thay thế cho truy vấn Gói tin hồi đáp dựa vào mã nhận dạng này để thực hiện phản hồi, đảm bảo rằng truy vấn và hồi đáp có thể khớp với nhau.
QR: Là một trường 1 bit Bít này sẽ được thiết lập là 0 nếu là gói tin truy vấn, được thiết lập là một nếu là gói tin hồi đáp.
Opcode là một trường 4 bit, trong đó giá trị 0 được sử dụng cho cờ hiệu truy vấn, giá trị 1 dành cho truy vấn ngược, và giá trị 2 được thiết lập cho tình trạng truy vấn.
AA: Là trường 1 bit, nếu gói tin hồi đáp được thiết lập là 1, sau đó nó sẽ đi đến một server có thẩm quyền giải quyết truy vấn.
TC là trường 1 bit, cho biết liệu gói tin có bị cắt khúc do kích thước vượt quá băng thông cho phép hay không.
RD: Là trường 1 bit, trường này sẽ cho biết là truy vấn muốn server tiếp tục truy vấn một cách đệ quy.
RA: Trường 1 bit này sẽ cho biết truy vấn đệ quy có được thực thi trên server không.
Z: Là trường 1 bit Đây là một trường dự trữ, và được thiết lập là 0.
Rcode: Là trường 4 bits, gói tin hồi đáp sẽ có thể nhận các giá trị sau:
0: Cho biết là không có lỗi trong quá trình truy vấn.
1: Cho biết định dạng gói tin bị lỗi, server không hiểu được truy vấn. 2: Server bị trục trặc, không thực hiện hồi đáp được.
3: Tên bị lỗi Chỉ có server có đủ thẩm quyền mới có thể thiết lập giá trị náy.
4: Không thi hành Server không thể thực hiện chức năng này.
5: Server từ chối thực thi truy vấn.
QDcount: Số lần truy vấn của gói tin trong một vấn đề.
ANcount: Số lượng tài nguyên tham gia trong phần trả lời.
NScount: Chỉ ra số lượng tài nguyên được ghi lại trong các phần có thẩm quyền của gói tin.
ARcount: Chỉ ra số lượng tài nguyên ghi lại trong phần thêm vào của gói tin.[10]
Phần truy vấn (The DNS Question)
Thông thường, mỗi bản tin chỉ có một truy vấn duy nhất; tuy nhiên, số lượng truy vấn có thể được phép nhiều hơn, tùy thuộc vào QDCOUNT Cấu trúc tổng quát được trình bày như sau:
QNAME là tên trường được truy vấn trong DNS, trong đó ký hiệu “.” không được sử dụng với tên miền Mỗi phần của tên miền, thường được phân cách bởi dấu chấm, được biểu diễn bằng một byte chứa chiều dài chuỗi Tên miền kết thúc bằng một ký tự đánh dấu zero, thể hiện 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)
Phần phản hồi 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
Phần trả lời chứa thông tin quan trọng về máy chủ xác thực tên lưu trữ, bao gồm tên của các máy chủ trong các bộ NS Thêm vào đó, thông tin này thường bao gồm địa chỉ IP của các máy chủ xác thực, giúp cải thiện khả năng truy cập và quản lý hệ thống.
Các bộ tài nguyên trong thành phần này bao gồm các bộ lưu giữ máy chủ tên, sử dụng định dạng theo tiêu chuẩn RFC-1035, giúp quản lý và phân phối thông tin một cách hiệu quả.
Trường Mô tả Độ dài (octets)
NAME Tên của nốt có record liên quan Variable
Type Loại RR dạng số (ví dụ, 15 trong MX
TTL Thời gian theo giây để RR còn hiệu lực (Tối đa 231−1, khoảng 68 năm)
RDATA RR bổ sung Biến đổi, như
Phần quyền truy nhập (Authority section)
Phần truy cập 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 nội dung (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
Phản hồi cho truy vấn MX bao gồm bản ghi nguồn cung cấp tên máy chủ của mail server, trong khi phần bổ sung là 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.
Hiện nay, các bản ghi ngược cho địa chỉ IP tại Việt Nam được quản lý theo cơ chế chuyển giao (delegation classful) từ máy chủ DNS của APNIC đến máy chủ DNS của các thành viên APNIC sẽ thiết lập các bản ghi NS cho các tên miền ngược (classful) tại các máy chủ DNS của thành viên nhằm nâng cao hiệu quả trong việc quản lý tên miền ngược.
Cơ chế phân giải
Root Name Server là máy chủ quản lý các name server ở mức top-level domain, đóng vai trò quan trọng trong quá trình phân giải tên miền Khi có truy vấn về một tên miền, Root Name Server cung cấp tên và địa chỉ IP của name server quản lý top-level domain đó Các name server của top-level domain tiếp tục cung cấp danh sách các name server có quyền trên các second-level domain Nếu không có sự liên lạc giữa các Root Name Server, mọi yêu cầu phân giải tên sẽ không được thực hiện Ví dụ, khi client cần truy cập www.yahoo.com, nó sẽ tìm kiếm trong cache của mình; nếu không có, nó sẽ gửi yêu cầu đến DNS local Nếu DNS local không có thông tin, nó sẽ truy vấn một Root Name Server gần nhất để nhận địa chỉ IP của name server quản lý miền com, sau đó tiếp tục truy vấn để tìm địa chỉ IP của www.yahoo.com.
1.7.1 Phân giải tên thành địa chỉ IP
Quá trình phân giải tên được thực hiện theo trình tự cụ thể sau:
1 Client trên hệ thống mạng, cần phân giải www.yahoo.com, client tra cứu file /etc/nsswitch.conf để biết thứ tự quá trình phân giải tên: flies, nisplus, dns
2 Client tra cứu file /etc/inet/hosts để tìm kiếm www.yahoo.com , giả sử file không chứa thông tin cần truy vấn
3 Client tạo 1 truy vấn đến NIS+ server để tra cứu thông tin về www.yahoo.com, kết quả là không có record nào liên quan đến truy vấn
4 Client tra cứu file /etc/resolv.conf để xác định danh sách tìm kiếm phân giải tên và địa chỉ DNS servers
5 Client gửi yêu cầu truy vấn – recursive đến local DNS để tra cứu thông tin IP của www.yahoo.com và client chờ cho đến khi quá trình phân giải tên hoàn thành
6 Local DNS server tra cứu thông tin trong cache xem các thông tin truy vấn gần đây có record www.yahoo.com đã được phân giải không Nếu địa chỉ IP của www.yahoo.com có sẵn trong cache, nó sẽ trả kết quả về cho client (non-authoritative)
7 Nếu Local DNS server không có thông tin về www.yahoo.com, nó sẽ liên lạc với root servers và gửi một truy vấn dạng iterative: “Send me the best answer you have, and I will do all of the work.” (gửi cho tôi câu trả lời tốt nhất mà ta có và tôi sẽ làm tất cả công việc)
8 Root server trả về thông tin tốt nhất mà nó có bao gồm tên và địa chỉ của tất cả các server đang quản lý net cùng với giá trị TTL cho biết những thông tin này sẽ được lưu bao lâu trong cache của local DNS server
9 Local DNS server liên lạc với một trong những server quản lý net thông qua kết quả từ root server trả về
10 Máy server trong domain net trả về thông tin tốt nhất nó có, gồm tên và địa chỉ của tất cả các server của domain www.yahoo.com và giá trị TTL
11 Local DNS server liên lạc với một trong những server trong domain www.yahoo.com và tạo một truy vấn tìm địa chị IP của www.yahoo.com.
12 Server trong domain www.yahoo.com trả về địa chỉ IP www.yahoo.com, cùng với giá trị TTL
13 Local DNS server trả về địa chỉ IP mà client yêu cầu [7]
Có 2 dạng truy vấn (query):
Truy vấn đệ quy (recursive query) là quá trình mà một DNS client gửi yêu cầu đến DNS server để tìm kiếm thông tin về tên miền Khi nhận yêu cầu, DNS server có thể trả lời trực tiếp nếu có dữ liệu trong cache hoặc thông báo rằng tên miền không tồn tại Nếu không có thông tin, DNS server sẽ thực hiện truy vấn đến các máy chủ DNS khác, nếu được cấu hình để chuyển tiếp yêu cầu Trước khi phản hồi, DNS server kiểm tra quyền hạn của mình đối với tên miền yêu cầu; nếu có đủ thẩm quyền và biết câu trả lời, nó sẽ cung cấp thông tin cần thiết cho client.
Hình 1-5: Truy vấn đệ quy
Truy vấn lặp lại (iterative query) diễn ra khi máy chủ DNS không biết câu trả lời và không được cấu hình để chuyển tiếp yêu cầu Trong trường hợp này, máy chủ DNS sẽ hoạt động như một client và thực hiện truy vấn lặp đi lặp lại để tìm kiếm câu trả lời chính xác thông qua cơ chế phân cấp của DNS Ví dụ, khi người dùng nhập www.contoso.com, nếu máy chủ DNS không có thông tin, nó sẽ liên hệ với máy chủ DNS gốc để xác định địa chỉ của máy chủ tên miền com Sau khi nhận được thông tin từ máy chủ gốc, máy chủ DNS sẽ tiếp tục liên lạc với máy chủ tên miền com để lấy thông tin về contoso.com, và cuối cùng truy vấn máy chủ của contoso.com để lấy địa chỉ IP của www.contoso.com Sau khi nhận được địa chỉ IP, máy chủ DNS sẽ phản hồi cho client và lưu trữ thông tin này trong bộ nhớ cache để sử dụng cho các truy vấn sau Nếu không thể tìm thấy câu trả lời, máy chủ DNS sẽ thông báo rằng truy vấn không thành công hoặc tên miền không tồn tại.
Hình 1-6: Truy vấn lặp lại 1.7.2 Phân giải địa chỉ IP thành tên host
Hệ thống DNS không chỉ chuyển đổi tên miền thành địa chỉ IP mà còn hỗ trợ chuyển đổi ngược từ địa chỉ IP sang tên miền thông qua chức năng reverse lookup Chức năng này cho phép xác định tên miền khi đã biết địa chỉ IP, giúp kiểm tra tính xác thực của các dịch vụ trực tuyến.
Trong dịch vụ thư điện tử, email phải đi qua nhiều trạm chuyển tiếp trước khi đến tay người dùng Khi một trạm chuyển tiếp nhận email, nó sử dụng chức năng reverse lookup của hệ thống DNS để xác định tên miền của trạm gửi Nếu địa chỉ IP của trạm gửi không có bản ghi ngược, trạm nhận sẽ từ chối kết nối và loại bỏ email Bản ghi ngược được tổ chức theo cơ chế phân cấp tương tự như bản ghi thuận, với một nhánh tên miền bổ sung trong không gian tên miền để phân giải tên máy tính từ địa chỉ IP, được gọi là inaddr.arpa.
Mỗi node trong miền in-addr.arpa được đặt tên theo chỉ số thập phân của địa chỉ IP, với 256 subdomain tương ứng với 256 giá trị từ 0 đến 255 của byte đầu tiên Mỗi subdomain này lại chứa 256 subdomain con cho byte thứ hai, và quá trình này tiếp tục cho đến byte thứ tư, nơi có các bản ghi hiển thị tên miền đầy đủ của các máy tính hoặc mạng tương ứng với địa chỉ IP.
Cấu trúc tên miền ngược của địa chỉ IPv4 được biểu diễn dưới dạng www.zzz.yyy.xxx.inaddr.arpa, trong đó xxx, yyy, zzz và www là các số thập phân đại diện cho giá trị của 4 byte trong địa chỉ IPv4.
Một máy tính trên mạng với địa chỉ IPv4 203.162.57.101 sẽ có tên miền ngược tương ứng là 101.57.162.203.in-addr.arpa Máy chủ có tên miền là mail.vnnic.net.vn, và ánh xạ vào tên miền thuận được thực hiện thông qua bản ghi PTR: 12.57.162.203.in-addr.arpa IN PTR mail.vnnic.net.vn.
Hình 1-8: Cấu trúc tên miền ngược trong IPv4 Đối với thế hệ địa chỉ Internet mới IPv6 , cấu trúc tên miền ngược có khác một chút Cụ thể:
Không gian các tên miền ngược của các địa chỉ IPv6 không nằm dưới miền in-addr.arpa như của IPv4 mà nằm dưới miền ip6.arpa
Trong IPv6, khái niệm lớp (class) đã hoàn toàn biến mất, và địa chỉ IPv6 được biểu diễn bằng hệ số hexa Điều này dẫn đến việc cấu trúc phân cấp tên miền ngược trong IPv6 không còn chia theo lớp như ở IPv4, mà thay vào đó được phân cấp theo từng nhóm 4 bit tương ứng với mỗi ký tự hexa trong địa chỉ IPv6, ví dụ như arpa In-addr 0 255 12 57 0 162 255 203 “.”.
Ví dụ: Một node mạng được gán địa chỉ IPv6 2001:0dc8:0123:1234:abcd:0000:0000:0000 thì tên miền ngược tưng ứng sẽ là:
Các loại bản ghi DNS
Mẫu tin SOA (Start of Authority) định nghĩa các tham số toàn cục cho một zone hoặc tên miền Trong một tệp tin zone, chỉ được phép có một mẫu tin SOA, và mẫu tin này phải được đặt ở vị trí đầu tiên trước các mẫu tin khác.
A Record o Là DNS Record đơn giản nhất, được sử dụng nhiều nhất để trỏ tên
To direct a website to a specific IP address, you can add a new hostname, configure the Time to Live (TTL) settings for automatic record refresh, and specify the IP address to which it points.
Bản ghi CNAME là một loại bản ghi DNS cho phép bạn gán một hoặc nhiều tên miền phụ cho tên miền chính, giúp dễ dàng quản lý và điều hướng Bạn có thể tạo tên mới, điều chỉnh hướng đến tên gốc và thiết lập thời gian sống (TTL) cho bản ghi.
An MX Record designates the server responsible for managing the email services of a specific domain It allows you to point your domain to a mail server, set a priority level, and configure the Time to Live (TTL) settings.
Bản ghi TXT là một loại bản ghi DNS cho phép lưu trữ thông tin định dạng văn bản liên quan đến tên miền Người dùng có thể thêm host mới, giá trị TXT, TTL và các điểm đến khác để quản lý và cấu hình tên miền hiệu quả hơn.
AAAA Record o Cùng là A Record, tuy nhiên, AAA Record được sử dụng để trỏ domain đến 1 địa chỉ IPV6 Address o Bạn có thể thêm host mới, IPv6, TTL
NS Record o Là DNS Server Records của tên miền, cho phép bạn chỉ định Name
Server cho từng tên miền phụ o Bạn có thể tạo host mới, tên Name Server, TTL
An SRV record is a special entry in the Domain Name System (DNS) that specifies the exact service running on a particular port It allows users to define key parameters such as Priority, Name, Port, Points to, Weight, and TTL, ensuring efficient service identification and routing.
Kết luận chương 1
Chương 1 đã trình bày tổng quan về hệ thống DNS, chức năng,nguyên tắc làm việc, cách sử dụng, kiến trúc, cơ chế phân giải và cấu trúc gói tin, các bản tin Từ đó thấy được tầm quan trọng của DNS đối vớiInternet DNS đang là 1 trong những đối tượng bị tấn công nhiều nhất hiện nay
VẤN ĐỀ BẢO MẬT TRONG DNS
Các điểm yếu của DNS
DNS luôn là điểm yếu nhưng nhiều nhà quản trị lại thường không để ý đến nó, cứ nghĩ rằng không có khả năng phá hoại
DNS đóng vai trò quan trọng trong việc phân tích cấu trúc logic của hệ thống mạng và là bước đầu tiên để xác định phương thức tấn công của kẻ xâm nhập Mặc dù nhiều người tin rằng hệ thống sẽ an toàn khi có tường lửa và các biện pháp bảo mật, thực tế cho thấy điều này không hoàn toàn đúng Nếu Primary DNS Server cho phép zone transfer đến tất cả các máy chủ DNS, kẻ tấn công có thể dễ dàng thu thập thông tin DNS Do đó, việc nhận diện các nguy cơ tiềm ẩn và áp dụng các biện pháp bảo vệ hệ thống máy tính là cực kỳ cần thiết.
Nhiều hệ thống DNS hiện nay có khả năng xử lý đồng thời nhiều yêu cầu truy vấn cho một tên miền, điều này tạo điều kiện cho tin tặc tấn công vào các máy chủ DNS có chức năng hỏi hộ và lưu giữ kết quả Kết quả là, tin tặc có thể thay đổi ánh xạ tên miền và dẫn người dùng đến các địa chỉ IP không hợp lệ theo ý muốn.
Khách hàng thường tin tưởng vào thông tin phân giải mà DNS Server cung cấp, nhưng nếu DNS Server bị tấn công và thông tin phân giải bị thay đổi, điều này có thể gây nguy hiểm cho khách hàng khi họ nhận được thông tin bị "nhiễm bẩn" Thực tế cho thấy, các DNS Server thường trở thành mục tiêu của các cuộc tấn công với nhiều phương thức khác nhau.
Zone file được giả mạo trong việc đồng bộ (synchronize) giữa các DNS server với nhau
Giả mạo thông tin IP gửi đến cho client [20]
Các cách thức tấn công vào DNS
Nhiều tổ chức không giám sát lưu lượng DNS vì nó không được thiết kế để truyền dữ liệu, dẫn đến việc một số kiểu tấn công dựa trên DNS trở nên hiệu quả trong các mạng công ty Trong số đó, DNS tunneling là một hình thức tấn công đáng chú ý.
Hình 2-1: Mô hình DNS Tunneling
1 Kẻ tấn công yêu cầu 1 tên miền, chẳng hạn như evilsite.com.
2 Kẻ tấn công cấu hình máy chủ định danh tên miền thành máy chủ DNS của riêng mình.
3 Kẻ tấn công ủy quyền một miền phụ (subdomain), chẳng hạn như
“tun.evilsite.com” và tạo một Authoritative Name Server
4 Bất kỳ yêu cầu DNS nào do nạn nhân thực hiện đối với “{data}
5 Máy của kẻ tấn công mã hóa một phản hồi rồi chuyển trở lại máy của nạn nhân.
6 Kênh truyền dữ liệu hai chiều đạt được bằng cách sử dụng công cụ đường hầm DNS [11]
Hình 2-2: Mô hình DNS Cache Poisoning
Internet không chỉ dựa vào một máy chủ DNS duy nhất, mà có nhiều máy chủ để đảm bảo hiệu quả Nhà cung cấp dịch vụ Internet (ISP) của bạn vận hành các máy chủ DNS riêng, lưu trữ thông tin từ các máy chủ DNS khác Bộ định tuyến tại nhà cũng hoạt động như một máy chủ DNS, lưu trữ thông tin từ các máy chủ DNS của ISP Hơn nữa, máy tính của bạn có bộ nhớ cache DNS cục bộ, cho phép nhanh chóng truy cập các tra cứu DNS đã thực hiện trước đó mà không cần thực hiện lại.
Bộ nhớ cache DNS có thể bị nhiễm độc khi chứa các mục nhập không chính xác, ví dụ như khi kẻ tấn công kiểm soát máy chủ DNS và thay đổi thông tin, khiến google.com trỏ đến địa chỉ IP của chúng Điều này dẫn đến việc người dùng tìm kiếm Google.com nhưng lại bị chuyển hướng đến một trang web độc hại hoặc lừa đảo.
Ngộ độc DNS có thể lây lan qua nhiều nhà cung cấp dịch vụ Internet nếu họ lấy thông tin từ máy chủ bị xâm nhập Khi mục nhập DNS bị nhiễm độc, nó sẽ được lưu trữ trong bộ nhớ đệm của các nhà cung cấp dịch vụ Internet và tiếp tục lây lan đến các bộ định tuyến gia đình cũng như DNS trên máy tính Kết quả là, khi thực hiện tra cứu DNS, các thiết bị này nhận phản hồi không chính xác và lưu trữ thông tin sai lệch.
Hình 2-4: 1 trang web giả mạo Facebook
Có vài cách để thực hiện việc này
2.2.2.1.Thiết lập 1 DNS Server giả mạo với các record độc hại
Hình 2-5: Đầu độc cache DNS Server bằng cách sử dụng 1 DNS Server giả mạo
Kẻ tấn công nhằm dẫn dắt các client phân giải tên miền về địa chỉ IP giả mạo, chẳng hạn như khi client tìm kiếm www.cnn.com, họ sẽ nhận được địa chỉ IP giả 66.66.66.66 Để thực hiện điều này, kẻ tấn công cần tuân theo một số bước nhất định.
1 Thiết lập 1 DNS Server giả mạo, ví dụ tên của server này là ns.attacker.com
2 Sau đó kẻ tấn công tạo ra một truy vấn đến DNS Server của nạn nhân (server này tạm gọi là ns.victim.com), yêu cầu phân giải tên www.attacker.com
3 Khi đó DNS Server (lúc này chưa có record nào phục vụ cho việc phân giải tên www.attacker.com trong cache) của nạn nhân sẽ liên lạc với DNS Server giả mạo của attacker là ns.attacker.com để lấy thông tin trả lời cho việc phân giải tên www.attacker.com
4 Ns.attacker.com trả lời cho địa chỉ www.attacker.com = 44.44.44.44 đến ns.victim.com Tuy nhiên, cũng trong thời điểm đó, trong gói tin reply trả về thì một record khác cũng được thêm vào chứa thông tin là www.cnn.com = 66.66.66.66 tại vùng Additional Resource Record structures (xem lại cấu trúc gói tin DNS đã trình bày bên trên)
5 Sau khi nhận được reply này từ máy ns.attacker.com, ns.victim.com sẽ trả lời cho attacker là www.attacker.comD.44.44.44 Tuy nhiên, lúc này ns.victim.com đã cache lại thông tin về www.attacker.comD.44.44.44 và www.cnn.comf.66.66.66
6 Thông tin record www.attacker.com sẽ được trả về cho kẻ tấn công, tuy nhiên đây không phải là mục tiêu chính của kẻ tấn công, mà mục tiêu chính là đặt thông tin sai vào bộ nhớ cache của DNS Server nạn nhân
7 Khi nào record giả còn tồn tại trong cache của DNS Server nạn nhân, từ đây về sau, các truy vấn của www.cnn.com sẽ được chuyển hướng đến66.66.66.66, đây có thể là một máy tính được đặc dưới sự kiểm soát của attacker, các thông tin đến www.cnn.com sẽ được attacker forward đến đối tượng thật sự www.cnn.com và ngược lại Do đó client cuối cùng không biết có sự tồn tại của máy “man in the middle”.
2.2.2.2 Gửi một spoofed reply đến client nạn nhân thông qua sự giúp đỡ của 1 sniffer.
Hình 2-6: Đầu độc cache DNS bằng cách nghe lén (sniffer)
Instead of setting up a spoofed DNS Server, an attacker can position themselves between the client and the DNS Server This allows the attacker to intercept the client's requests to the DNS Server and subsequently send back incorrect reply packets to the client.
Client chỉ chấp nhận các gói tin reply có cùng thông số với gói tin ban đầu như Transaction ID, địa chỉ IP và số port Attacker có thể nghe lén để thu thập các thông số này trong mạng Khi đã có đủ thông tin, attacker tạo gói tin reply DNS giả mạo và gửi đến client, với nội dung chứa thông tin sai lệch phục vụ cho mục đích xấu.
Hạn chế của phương pháp tấn công này là gói tin reply từ kẻ tấn công phải đến trước gói tin hợp lệ từ DNS Server Nếu gói tin hợp lệ từ DNS Server đến trước, cuộc tấn công sẽ không thành công, vì client chỉ chấp nhận gói tin reply hợp lệ đến trước và sẽ bỏ qua các gói tin đến sau.
Các attacker có thể sử dụng nhiều phương pháp để đạt được mục đích của mình, trong đó có tấn công từ chối dịch vụ (DOS) nhằm làm chậm hoạt động của DNS Server Việc capture các gói tin DNS request trở nên khó khăn trong môi trường mạng switch, vì vậy kỹ thuật ARP spoofing thường được áp dụng trước để thu thập thông tin cần thiết.
2.2.2.3.Gửi một lượng lớn spoofing reply đến client nạn nhân.
Biện pháp phòng chống tấn công DNS
Việc phòng chống giả mạo DNS là khá khó khăn do ít dấu hiệu nhận biết khi bị tấn công Thông thường, người dùng không nhận ra DNS của mình bị giả mạo cho đến khi sự việc xảy ra Mặc dù thách thức này không dễ dàng, nhưng vẫn có những biện pháp hiệu quả để bảo vệ hệ thống khỏi các cuộc tấn công giả mạo DNS Dưới đây là một số cách cần thực hiện để tăng cường an ninh mạng.
Để bảo vệ các máy tính bên trong mạng, cần đảm bảo an toàn cho các thiết bị mạng Các cuộc tấn công thường xuất phát từ bên trong, vì vậy việc bảo vệ thiết bị mạng sẽ giảm thiểu khả năng các máy chủ bị thỏa hiệp và ngăn chặn việc khởi chạy các cuộc tấn công giả mạo.
Sử dụng tường lửa DNS giúp bảo mật và nâng cao hiệu suất cho các máy chủ DNS bằng cách hoạt động giữa trình phân giải đệ quy của người dùng và nameserver Tường lửa này có khả năng cung cấp dịch vụ giới hạn tốc độ, ngăn chặn các cuộc tấn công từ hacker Trong trường hợp máy chủ gặp phải downtime do tấn công hoặc lý do khác, tường lửa DNS đảm bảo hoạt động ổn định bằng cách cung cấp các phản hồi DNS từ bộ nhớ cache.
Đặt mật khẩu mạnh cho các DNS server.
Chặn các truy vấn thừa để ngăn giả mạo.
Giới hạn số lượng truy vấn có thể.
To disable recursion on delegated name servers, check the box for "Disable recursion" in the Advanced settings, which also disables the forwarding feature.
Ngăn không cho thực hiện chuyển vùng trái phép bằng cách sử dụng
Không dựa vào DNS cho các hệ thống bảo mật [7]
Để tối ưu hóa hiệu suất DNS, hãy thường xuyên cập nhật và sử dụng các phiên bản phần mềm mới nhất, như BIND BIND là phần mềm mã nguồn mở phổ biến, chuyên xử lý các truy vấn DNS cho người dùng và được áp dụng rộng rãi trên hầu hết các máy chủ DNS trên Internet.
Việc sao chép dữ liệu trên nhiều máy chủ khác nhau giúp đảm bảo rằng nếu dữ liệu bị hỏng hoặc mất ở một máy chủ, nó có thể được khôi phục từ các máy chủ còn lại Điều này không chỉ tăng cường tính an toàn cho dữ liệu mà còn ngăn chặn tình trạng lỗi một điểm, từ đó nâng cao độ tin cậy của hệ thống.
Cài đặt các bản vá lỗi thích hợp và sửa các lỗi xuất hiện thường xuyên.
Sử dụng DNSSEC (DNS Security Extensions) giúp bảo vệ hệ thống DNS khỏi các cuộc tấn công bằng cách áp dụng chữ ký điện tử cho dữ liệu, đảm bảo tính hợp lệ của nó Để tìm kiếm an toàn, việc ký phải diễn ra ở tất cả các cấp trong quy trình DNS lookup, từ đó ngăn chặn việc giả mạo dữ liệu.
Công nghệ DNSSEC
DNSSEC (Domain Name System Security Extensions) is an essential security technology that enhances the DNS system It provides a mechanism for authentication between DNS servers and ensures the integrity of data by validating each data zone.
DNSSEC (Mở rộng Bảo mật DNS) là tiêu chuẩn an toàn cho hệ thống DNS, được quy định trong các RFC 4033, 4034, 4035 Tiêu chuẩn này sử dụng mã hóa PKI (Khóa Công Khai/Cá Nhân) để thêm chữ ký số vào các câu trả lời của truy vấn DNS, đảm bảo rằng quá trình xác thực tên miền diễn ra an toàn và chính xác.
(validation), thiết lập kết nối an toàn, tin cậy với người sử dụng.
Giao thức DNS thông thường thiếu công cụ xác thực nguồn dữ liệu, dẫn đến nguy cơ dữ liệu bị giả mạo và sai lệch trong các tương tác giữa máy chủ DNS và các máy trạm hoặc máy chủ chuyển tiếp Để khắc phục vấn đề này, công nghệ bảo mật DNSSEC đã được nghiên cứu và triển khai, nhằm bảo vệ DNS khỏi các nguy cơ giả mạo DNSSEC cung cấp cơ chế xác thực giữa các máy chủ DNS và đảm bảo tính toàn vẹn của từng zone dữ liệu.
DNSSEC là công nghệ an toàn mở rộng của hệ thống DNS, cung cấp các cơ chế chứng thực và đảm bảo toàn vẹn dữ liệu Công nghệ này giới thiệu 4 loại bản ghi mới, giúp tăng cường bảo mật cho các thông tin trong DNS.
Bản ghi khóa công khai DNS (DNSKEY - DNS Public Key): sử dụng để chứng thực zone dữ liệu.
Bản ghi chữ ký tài nguyên (RRSIG - Resource Record Signature): sử dụng để chứng thực cho các bản ghi tài nguyên trong zone dữ liệu.
Bản ghi bảo mật kế tiếp (NSEC - Next Secure) được sử dụng để xác thực các bản ghi có cùng sở hữu trong tập các bản ghi tài nguyên hoặc bản ghi CNAME Nó hoạt động kết hợp với bản ghi RRSIG nhằm đảm bảo tính xác thực cho zone dữ liệu.
Bản ghi ký ủy quyền (DS - Delegation Signer) là một thành phần quan trọng trong việc thiết lập chứng thực giữa các zone dữ liệu, giúp tăng cường tính bảo mật trong quá trình ký xác thực khi chuyển giao DNS.
Mục tiêu của DNSSEC là không làm thay đổi quá trình truyền dữ liệu DNS và chuyển giao giữa các DNS cấp cao và cấp thấp Tuy nhiên, các máy trạm (resolver) cần yêu cầu hỗ trợ các cơ chế mở rộng này Một zone dữ liệu được ký xác thực sẽ bao gồm các bản ghi như RRSIG, DNSKEY, NSEC và DS.
Bằng cách tổ chức các bản ghi mới và chỉnh sửa giao thức, DNSSEC đã nâng cao tính bảo mật và độ tin cậy của hệ thống DNS, khắc phục nhược điểm của thiết kế ban đầu Hệ thống không chỉ đáp ứng yêu cầu thông tin định tuyến tên miền mà còn tăng cường khả năng bảo mật và dự phòng cho các máy chủ DNS.
DNSSEC đã thay đổi mô hình DNS từ mô hình mở (open) sang mô hình tin cậy (trusting) và xác thực (verifiable) Không cung cấp confidentiality (không mã hóa).
Chứng thực dữ liệu trong quá trình gửi đi (Sender authentication)
Toàn vẹn dữ liệu trong quá trình truyền (Data Integrity)
Xác thực từ chối tồn tại (Authenticated denial of existence)
Hình 2-11: truyền dữ liệu DNS thông thường vs truyền dữ liệu DNSSEC
DNSSEC là một tiêu chuẩn mở rộng cho DNS, không làm thay đổi cấu trúc và giao thức hiện tại, mà vẫn hoạt động song song với EDNS0 Nó bổ sung chữ ký số vào các câu trả lời truy vấn, giúp người dùng tên miền xác thực và đảm bảo toàn vẹn dữ liệu, từ đó cung cấp một trải nghiệm truy cập an toàn hơn.
Việc thiết lập một chuỗi tin cậy trong DNSSEC từ root đến zone được ký là yếu tố quan trọng để đảm bảo xác thực nguồn gốc và toàn vẹn dữ liệu Mỗi thành phần trong chuỗi này được xác thực với thành phần kế tiếp, trong đó bản ghi DS trong parent được sử dụng để xác thực public key của child Khi DNSSEC được triển khai đầy đủ, các cuộc tấn công vào hệ thống DNS, như việc chuyển hướng tên miền, sẽ được phát hiện và ngăn chặn kịp thời.
Từ đó việc truy cập vào các dịch vụ trên tên miền được đảm bảo an toàn, xác thực, các nguy cơ đã trình bày ở trên được giải quyết [16]
2.4.2 Ứng dụng DNSSEC để bảo mật cho hệ thống DNS
Bản ghi DNSSEC được sử dụng trong các zone dữ liệu để xác thực thông tin, đảm bảo độ tin cậy trong quá trình trao đổi và truy vấn DNS Để duy trì hoạt động bình thường của các bản ghi tài nguyên DNS, việc khai báo chính xác và đồng bộ thông tin xác thực cho các bản ghi DNSSEC là rất quan trọng.
DNSSEC giới thiệu khái niệm ký zone, trong đó một zone được ký bao gồm khóa công cộng DNS, chữ ký bản ghi tài nguyên (RRSIG), bảo mật tiếp theo (NSEC), và ký chuyển giao (Delegation Signer) Nếu một zone không có các bản ghi này, nó sẽ được coi là chưa được ký Bên cạnh đó, DNSSEC cũng yêu cầu thay đổi định nghĩa của bản ghi tài nguyên CNAME bằng cách bổ sung hai bản ghi chứng thực là RRSIG và NSEC.
2.4.2.1 Thêm bản ghi DNSKEY vào 1 zone Để ký một zone, người quản trị zone sẽ tạo một hay nhiều cặp khóa công cộng/dành riêng (public/private), cặp khóa công cộng dùng cho zone chính và khóa riêng để ký cho những bản ghi cần xác thực trong zone Mỗi zone phải thêm một bản ghi DNSKEY (zone DNSKEY RR) chứa đựng khóa công cộng tương ứng, và mỗi khóa riêng được dùng để tạo bản ghi RRSIG trong zone.
Bản ghi DNSKEY trong zone phải có bit Zone Key được đặt là 1 để chứng thực Để ký một zone, cần ít nhất một bản ghi DNSKEY trong zone chính, tạo thành điểm bảo mật Điểm bảo mật này hoạt động cùng với bản ghi DS tương ứng trong zone cha để thực hiện chuyển giao DNS.
2.4.2.2 Thêm các bản ghi RRSIG vào 1 zone
Khi một zone được ký bởi bản ghi DNSKEY, tất cả các bản ghi tài nguyên trong zone đó cần có bản ghi RRSIG để xác thực Mỗi bản ghi tài nguyên có thể đi kèm với nhiều bản ghi RRSIG Những bản ghi RRSIG này chứa chữ ký điện tử, giúp xác thực tính chính xác của các bản ghi tài nguyên Đặc biệt, giá trị VPN trong các bản ghi RRSIG của một tên miền sở hữu không giống với giá trị TTL của bản ghi tài nguyên.
Kết luận chương 2
Chương này tập trung vào các vấn đề bảo mật trong DNS, bao gồm các điểm yếu và các phương thức tấn công phổ biến Bên cạnh đó, bài viết cũng đề xuất một số biện pháp phòng chống hiệu quả, trong đó có việc triển khai DNSSEC được trình bày một cách chi tiết.