CHƯƠNG 10: DNS & ATTACKS¤
1. DNS HIERARCHY¤
Cấu trúc phân cấp (Tree Structure)¤
. (ROOT)
/ | \
.com .net .vn .edu (TLD)
| | | |
google example tuoitre mit (Authoritative)
|
www
3 cấp chính: 1. ROOT: Điểm bắt đầu, 13 logical servers (A-M) 2. TLD (Top-Level Domain): - gTLD: .com, .net, .org - sTLD: .edu, .gov, .mil - ccTLD: .vn, .au, .fr 3. Authoritative: Servers chứa DNS records thực tế
2. DNS ZONE vs DOMAIN¤
Zone¤
- DNS Zone: Portion của DNS data cho 1 domain
- Nhóm contiguous domains/subdomains
- Quản lý bởi 1 entity
Authoritative Name Servers¤
- Master (Primary): Lưu master copies
- Slave (Secondary): Copy từ master (automatic sync)
Ví dụ¤
Domain: example.com
├─ mail.example.com
├─ ftp.example.com
└─ usa.example.com
├─ boston.usa.example.com
├─ nyc.usa.example.com (riêng zone)
└─ chicago.usa.example.com
3. DNS QUERY PROCESS¤
Iterative Query (Local DNS Server dùng)¤
User Machine
↓ ① Query: www.example.net
Local DNS Server
↓ ② Query ROOT
ROOT Server
↓ ③ Referral: ask .net servers
Local DNS Server
↓ ④ Query .net
.net TLD Server
↓ ⑤ Referral: ask example.net servers
Local DNS Server
↓ ⑥ Query example.net
example.net Authoritative
↓ ⑦ Answer: IP = x.x.x.x
Local DNS Server
↓ ⑧ Cache & Return
User Machine
4 Sections trong DNS Response¤
- Question: Query gốc
- Answer: Records trả lời câu hỏi
- Authority: NS records (nameservers)
- Additional: A records (IP của nameservers)
4. DNS CACHING¤
Cơ chế¤
- Local DNS server cache mọi thông tin nhận được
- Mỗi record có TTL (Time-To-Live)
- Hết TTL → xóa khỏi cache
Commands¤
5. LOCAL DNS FILES¤
/etc/hosts¤
- Mapping hostname → IP (local)
- Được check TRƯỚC khi query DNS server
/etc/resolv.conf¤
- Chứa IP của Local DNS server
- DHCP có thể overwrite
Prevent overwrite:
6. LOCAL DNS CACHE POISONING ATTACK¤
Điều kiện¤
- Attacker trên cùng LAN với Local DNS Server
- Có thể sniff traffic
Nguyên lý¤
User → Local DNS: Query example.net
↓
Local DNS → Authoritative NS
↓
Attacker SNIFF query
↓
Attacker SPOOF reply (NHANH hơn real reply)
↓
Local DNS cache fake IP
Yêu cầu để spoof DNS reply¤
✓ Source IP = Authoritative NS IP
✓ Dest IP = Local DNS Server IP
✓ Source Port = 53
✓ Dest Port = Query's source port
✓ Transaction ID = Query's transaction ID
✓ Query Name = Giống query
Scapy Code Template¤
# Sniff query
pkt = sniff(filter='udp port 53')
# Spoof reply
reply = IP(dst=local_dns_ip, src=auth_ns_ip) /
UDP(dport=query_src_port, sport=53) /
DNS(id=query_id, qr=1, aa=1,
qd=query_qd,
an=DNSRR(rrname=domain, rdata=fake_ip))
send(reply)
Kết quả¤
- Local DNS cache fake IP
- Tất cả users query qua DNS này bị redirect
Hijack cả domain¤
# Thay vì trả answer, trả authority section
ns=DNSRR(rrname=domain, type='NS', rdata=evil_ns)
ar=DNSRR(rrname=evil_ns, type='A', rdata=evil_ip)
7. REMOTE DNS CACHE POISONING (KAMINSKY ATTACK)¤
Challenges¤
Challenge 1: Đoán 2 random numbers (32 bits) - Source Port: 16 bits - Transaction ID: 16 bits - Total: 2^32 = 4 tỷ combinations
Challenge 2: Timing - phải NHANH hơn real reply
Challenge 3: Cache effect - nếu fail, đợi cache timeout mới thử lại
Kaminsky's Brilliant Idea¤
Thay vì hỏi cùng 1 câu (www.example.com):
→ Hỏi KHÁC NHAU mỗi lần (random.example.com)
→ Cache không ảnh hưởng
→ Local DNS luôn gửi query mới
Attack Flow¤
1. Attacker → Local DNS:
Query random123.example.com
2. Local DNS → example.com NS:
Query random123.example.com
3. Attacker SPAM fake replies với:
- Đoán Transaction ID (0x0000 → 0xFFFF)
- Đoán Source Port (nếu biết range)
Fake reply chứa:
Answer Section: random123 = anything (không quan trọng)
Authority Section: example.com NS = attacker.com
Additional Section: attacker.com A = attacker_ip
4. Nếu đoán đúng:
→ Local DNS cache: example.com NS = attacker.com
→ Mọi queries cho *.example.com đều đến attacker
Code Strategy¤
// Send spoofed replies NHANH (nhiều attempts)
for (int i = 0; i < 65536; i++) {
// Tạo packet với Transaction ID = i
send_spoofed_reply(trans_id=i);
}
Điểm quan trọng¤
- Authority Section: Đây là điều attacker muốn cache
- Hijack CẢ DOMAIN, không chỉ 1 hostname
- Lặp lại với random names khác nhau
8. COUNTERMEASURES - CACHE POISONING¤
8.1 DNSSEC¤
Nguyên lý: - Digital signatures cho DNS records - Chain of trust theo DNS hierarchy - Parent zone vouches cho child zones
Workflow:
1. Authoritative NS sign records với private key
2. Public key publish trong DNS
3. Resolver verify signature
4. Fake data → signature verification FAIL
Hạn chế: Deployment chậm, phức tạp
8.2 TLS/SSL (HTTPS)¤
Nguyên lý: - Verify server identity SAU khi có IP từ DNS - Server present certificate signed by CA - Prove ownership của private key
So sánh DNSSEC vs TLS/SSL: | Aspect | DNSSEC | TLS/SSL | |--------|--------|---------| | Chain of Trust | DNS hierarchy | PKI/CAs | | Protection | DNS layer | Application layer | | Deployment | Slow | Wide |
HTTPS = HTTP + TLS/SSL → Defeats DNS poisoning
9. REPLY FORGERY FROM MALICIOUS DNS SERVER¤
Scenario¤
User query: www.example.com
↓
Query đến attacker's DNS (authoritative for attacker.com)
↓
Attacker reply với fake data trong:
- Additional Section
- Authority Section
Additional Section Attack¤
Query: www.attacker.com
Reply:
Answer: www.attacker.com A 1.2.3.4
Additional:
www.google.com A 6.6.6.6 ← OUT OF ZONE
www.bank.com A 6.6.6.6 ← OUT OF ZONE
Authority Section Attack¤
Query: www.attacker.com
Reply:
Answer: www.attacker.com A 1.2.3.4
Authority:
attacker.com NS ns.attacker.com ← ALLOWED
example.com NS ns.attacker.com ← OUT OF ZONE (discard)
Reverse DNS Lookup Forgery¤
Question: Dùng hostname từ reverse lookup làm access control?
Answer: ❌ KHÔNG AN TOÀN
Lý do:
Reverse lookup 128.230.171.184:
→ Query 184.171.230.128.in-addr.arpa
→ Cuối cùng query đến authoritative NS của 230.128.in-addr.arpa
→ Nếu đó là attacker's NS → trả về bất kỳ hostname nào
→ Attacker có thể fake "syr.edu" để bypass access control
10. DNS REBINDING ATTACK¤
Mục tiêu¤
Bypass Same Origin Policy để tấn công IoT devices/internal servers
Same Origin Policy¤
Origin = Protocol + Domain + Port
https://example.com:443/page1
https://example.com:443/page2 → SAME origin ✓
https://example.com:443/page1
http://example.com:443/page1 → DIFFERENT (protocol)
https://evil.com:443/page1 → DIFFERENT (domain)
JavaScript chỉ access được resources từ same origin
Attack Scenario¤
Target: IoT device 192.168.1.1 (behind firewall)
Simple password protection
Firewall chặn external access
User visit: www.attacker.com
Attack Flow¤
Step 1: User truy cập www.attacker.com
DNS reply: attacker.com = attacker_server_ip
TTL = 0 (rất ngắn)
Step 2: Server trả về page chứa JavaScript:
<script>
// Code để tương tác với attacker.com
setTimeout(attack, 10000);
</script>
Step 3: Sau 10s, cache hết hạn
Attacker change DNS:
attacker.com = 192.168.1.1 (IoT device IP)
Step 4: JavaScript code execute:
fetch('http://www.attacker.com/password?value=1234')
Browser check: attacker.com → 192.168.1.1
Same origin: www.attacker.com (domain giống nhau)
→ Request được gửi đến 192.168.1.1
→ Control IoT device!
Điểm mấu chốt¤
- DNS rebinding: Đổi IP sau khi page loaded
- Same origin bypass: Domain không đổi, chỉ IP đổi
- Browser nghĩ vẫn là same origin
Defense¤
- Validate Host header
- Random secret tokens
- DNS pinning (browser cache DNS lâu hơn)
11. DoS ATTACKS ON DNS¤
11.1 Root Servers¤
Khó tấn công: - 13 logical servers, mỗi server = server farm (distributed) - TLD records cached 48 hours → attack phải kéo dài - Highly resilient infrastructure
11.2 TLD Servers¤
- Major TLDs (.com, .gov): Resilient
- Obscure ccTLDs: Dễ bị tấn công hơn
- Có thể hạ gục Internet của 1 quốc gia
11.3 Authoritative NS của Domain¤
Ví dụ thực tế:
UltraDNS (2004): - DNS provider cho Amazon, Walmart, Expedia - DoS attack → outage 1 giờ
Dyn Network (2016): - Provider cho CNN, BBC, PayPal, Twitter - Mirai botnet (IoT devices: cameras, baby monitors) - DDoS attack → major outage
DNSPod China (2009): - Target: Baofeng.com (video streaming) - Bug trong media player → continuous DNS queries - Flooded China Telecom network - Ảnh hưởng 20 tỉnh thành
12. DNS SERVER SETUP (BIND9)¤
Installation¤
Config Files¤
- /etc/bind/named.conf: Main config
- /etc/bind/named.conf.options: Options
- Zone files: /etc/bind/*.db
Simplify for testing¤
# Turn off DNSSEC
dnssec-validation no;
# Fixed source port (for attack demo)
query-source port 33333;
# Restart
sudo service bind9 restart
Zone Configuration¤
# /etc/bind/named.conf
zone "example.net" {
type master;
file "/etc/bind/example.net.db";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/192.168.0.db";
};
Forward Lookup Zone File¤
; /etc/bind/example.net.db
$TTL 3D
@ IN SOA ns.example.net. admin.example.net. (
2020040600 ; Serial
8H ; Refresh
2H ; Retry
4W ; Expire
1D ) ; Minimum
@ IN NS ns.example.net.
ns IN A 192.168.0.5
www IN A 192.168.0.10
mail IN A 192.168.0.11
Reverse Lookup Zone File¤
; /etc/bind/192.168.0.db
$TTL 3D
@ IN SOA ns.example.net. admin.example.net. (...)
@ IN NS ns.example.net.
5 IN PTR ns.example.net.
10 IN PTR www.example.net.
13. TESTING & COMMANDS¤
dig Command¤
# Basic query
dig www.example.com
# Query specific server
dig @8.8.8.8 www.example.com
# Query specific record type
dig www.example.com A
dig example.com NS
dig example.com MX
# Reverse lookup
dig -x 192.168.0.10
# Iterative query (emulate DNS resolver)
dig @root-server www.example.com
dig @tld-server www.example.com
DNS Record Types¤
A : IPv4 address
AAAA : IPv6 address
NS : Nameserver
MX : Mail server
CNAME : Canonical name (alias)
PTR : Pointer (reverse lookup)
SOA : Start of Authority
TXT : Text records
GHI NHỚ NHANH¤
DNS Hierarchy¤
ROOT → TLD (.com, .vn) → Authoritative (google.com)
Query Process¤
User → Local DNS → ROOT → TLD → Auth → Cache → User
4 DNS Response Sections¤
Question, Answer, Authority, Additional
3 Main DNS Attacks¤
- Local Cache Poisoning: Same LAN, sniff + spoof
- Remote (Kaminsky): Random subdomains, spam replies
- DNS Rebinding: Change IP after page load
Kaminsky Key Idea¤
Query KHÁC NHAU mỗi lần (random.example.com) → Cache không ảnh hưởng
DNSSEC vs TLS/SSL¤
- DNSSEC: DNS hierarchy trust chain
- TLS/SSL: PKI/CA trust chain
- HTTPS: Defeats DNS poisoning at app layer
DNS Rebinding Flow¤
Visit attacker.com (IP1) → Load JS → Change DNS to IoT IP → JS runs → Same origin bypass
Out-of-Zone Records¤
Local DNS DISCARD records ngoài zone của NS đang reply
Commands¤
sudo rndc dumpdb -cache # Dump cache
sudo rndc flush # Flush cache
dig www.example.com # Query
dig -x IP # Reverse lookup
Fake Reply Requirements¤
IPs + Ports (53) + Transaction ID + Query Name
DNS & ATTACKS - CÂU HỎI TRẮC NGHIỆM¤
PHẦN 1: DNS HIERARCHY & STRUCTURE¤
Câu 1: DNS hierarchy có bao nhiêu cấp chính?
A. 2 cấp
B. 3 cấp: ROOT, TLD, Authoritative
C. 4 cấp
D. 5 cấp
✅ Đáp án: B
Câu 2: ROOT DNS servers có bao nhiêu logical servers?
A. 10 servers
B. 13 logical servers (A-M)
C. 20 servers
D. 100 servers
✅ Đáp án: B - Mỗi logical server được replicate nhiều lần
Câu 3: TLD là viết tắt của gì?
A. Top Link Domain
B. Transfer Level Domain
C. Top-Level Domain
D. Transport Layer Domain
✅ Đáp án: C
Câu 4: Loại TLD nào sau đây KHÔNG tồn tại?
A. gTLD (Generic) - .com, .net
B. sTLD (Sponsored) - .edu, .gov
C. ccTLD (Country Code) - .vn, .fr
D. pTLD (Private) - không tồn tại
✅ Đáp án: D
Câu 5: ICANN quản lý cái gì?
A. All DNS servers
B. ROOT DNS domain
C. TLD servers only
D. Local DNS servers
✅ Đáp án: B - Internet Corporation for Assigned Names and Numbers
Câu 6: DNS Zone khác DNS Domain như thế nào?
A. Giống nhau hoàn toàn
B. Zone chỉ chứa PORTION của DNS data cho domain
C. Zone lớn hơn domain
D. Zone chỉ cho subdomain
✅ Đáp án: B - Domain có thể chia thành nhiều zones
Câu 7: Master server và Slave server khác nhau gì?
A. Master lưu master copies, Slave copy tự động từ Master
B. Giống nhau
C. Slave mạnh hơn Master
D. Master chỉ đọc, Slave ghi
✅ Đáp án: A - Primary vs Secondary nameservers
PHẦN 2: DNS QUERY PROCESS¤
Câu 8: Local DNS Server sử dụng loại query nào?
A. Recursive query
B. Iterative query
C. Direct query
D. Broadcast query
✅ Đáp án: B - Iterative: hỏi từng cấp ROOT → TLD → Auth
Câu 9: Trong DNS query process, bước đầu tiên Local DNS hỏi ai?
A. TLD server
B. Authoritative server
C. ROOT server
D. User machine
✅ Đáp án: C
Câu 10: DNS response có bao nhiêu sections?
A. 2 sections
B. 3 sections
C. 4 sections: Question, Answer, Authority, Additional
D. 5 sections
✅ Đáp án: C
Câu 11: Answer section trong DNS response chứa gì?
A. Query gốc
B. Records trả lời câu hỏi
C. Nameserver information
D. IP của nameservers
✅ Đáp án: B
Câu 12: Authority section trong DNS response chứa gì?
A. IP addresses
B. NS records (nameserver information)
C. Query questions
D. Cache information
✅ Đáp án: B
Câu 13: Additional section thường chứa gì?
A. Query gốc
B. NS records
C. A records (IP addresses của nameservers trong Authority section)
D. MX records
✅ Đáp án: C
Câu 14: Khi ROOT server không biết IP, nó reply gì?
A. Error message
B. Không reply
C. IP của TLD servers trong Authority + Additional sections
D. Random IP
✅ Đáp án: C
PHẦN 3: DNS CACHING¤
Câu 15: Local DNS server cache thông tin như thế nào?
A. Cache vĩnh viễn
B. Cache với TTL, hết hạn thì xóa
C. Không cache
D. Cache 1 giờ cố định
✅ Đáp án: B - Time-To-Live
Câu 16: Command nào dump DNS cache?
A. sudo rndc show
B. sudo rndc dumpdb -cache
C. sudo dns-cache dump
D. sudo service bind9 cache
✅ Đáp án: B - File: /var/cache/bind/dump.db
Câu 17: Command nào flush (xóa) DNS cache?
A. sudo rndc clean
B. sudo rndc clear
C. sudo rndc flush
D. sudo dns-cache clear
✅ Đáp án: C
PHẦN 4: LOCAL DNS FILES¤
Câu 18: /etc/hosts file dùng để làm gì?
A. Lưu DNS server IP
B. Lưu hostname-to-IP mapping (local)
C. Lưu cache
D. Config network
✅ Đáp án: B - Được check TRƯỚC khi query DNS
Câu 19: /etc/resolv.conf chứa thông tin gì?
A. Local hostname mappings
B. IP của Local DNS server
C. DNS cache
D. Zone files
✅ Đáp án: B
Câu 20: Làm thế nào prevent DHCP overwrite /etc/resolv.conf?
A. chmod 444
B. Trong /etc/dhcp/dhclient.conf dùng prepend domain-name-servers
C. Tắt DHCP
D. Không thể prevent
✅ Đáp án: B
PHẦN 5: DNS RECORD TYPES¤
Câu 21: A record dùng để map gì?
A. Hostname → IPv6
B. IP → Hostname
C. Hostname → IPv4
D. Domain → Nameserver
✅ Đáp án: C
Câu 22: NS record chỉ đến cái gì?
A. IP address
B. Nameserver cho domain/zone
C. Mail server
D. Alias
✅ Đáp án: B
Câu 23: PTR record dùng cho gì?
A. Forward lookup
B. Reverse lookup (IP → Hostname)
C. Mail routing
D. Alias
✅ Đáp án: B
Câu 24: MX record dùng để chỉ gì?
A. Nameserver
B. Mail server
C. Web server
D. Database server
✅ Đáp án: B
Câu 25: CNAME record là gì?
A. IP address
B. Canonical name (alias)
C. Cache name
D. Country name
✅ Đáp án: B
PHẦN 6: LOCAL DNS CACHE POISONING¤
Câu 26: Điều kiện để thực hiện Local DNS Cache Poisoning?
A. Remote access
B. Attacker trên CÙNG LAN với DNS server, có thể sniff traffic
C. Root access on server
D. Không cần điều kiện
✅ Đáp án: B
Câu 27: Local Cache Poisoning attack hoạt động như thế nào?
A. Brute force DNS server
B. Sniff DNS query, spoof reply NHANH hơn real reply
C. DDoS DNS server
D. SQL injection
✅ Đáp án: B
Câu 28: Để spoof DNS reply, cần những thông tin nào ĐÚNG?
A. Chỉ cần Transaction ID
B. Chỉ cần Source IP
C. Source IP (NS), Dest IP (DNS), Ports, Transaction ID, Query Name
D. Chỉ cần Query Name
✅ Đáp án: C
Câu 29: Source port của spoofed DNS reply là bao nhiêu?
A. Random port
B. 53 (DNS port)
C. 80
D. 443
✅ Đáp án: B - DNS servers dùng port 53
Câu 30: Dest port của spoofed DNS reply lấy từ đâu?
A. Luôn là 53
B. Source port của query packet (random)
C. 80
D. 443
✅ Đáp án: B
Câu 31: Sau khi Local Cache Poisoning thành công, điều gì xảy ra?
A. Server crash
B. Local DNS cache fake IP, tất cả users bị redirect
C. Chỉ 1 user bị ảnh hưởng
D. Không có gì
✅ Đáp án: B
Câu 32: Để hijack cả domain (không chỉ 1 hostname), cần làm gì?
A. Poison Answer section
B. Poison Authority section với NS record giả
C. Poison Question section
D. DDoS attack
✅ Đáp án: B - Authority section: example.com NS attacker.com
PHẦN 7: REMOTE DNS CACHE POISONING (KAMINSKY)¤
Câu 33: Remote Cache Poisoning khó hơn Local vì phải đoán gì?
A. Chỉ Transaction ID
B. Source Port (16-bit) + Transaction ID (16-bit) = 32 bits total
C. Destination IP
D. Query Name
✅ Đáp án: B - 2^32 = ~4 tỷ combinations
Câu 34: Cache effect là vấn đề gì trong Remote Attack?
A. Cache quá nhanh
B. Nếu attack fail, real reply được cache → phải đợi timeout mới thử lại
C. Cache không hoạt động
D. Cache bị đầy
✅ Đáp án: B
Câu 35: Kaminsky's brilliant idea là gì?
A. DDoS DNS server
B. Hỏi KHÁC NHAU mỗi lần (random.example.com) → cache không ảnh hưởng
C. Brute force nhanh hơn
D. Dùng malware
✅ Đáp án: B
Câu 36: Trong Kaminsky Attack, phần quan trọng nhất của fake reply là gì?
A. Question section
B. Answer section
C. Authority section (example.com NS attacker.com)
D. Không quan trọng
✅ Đáp án: C - Mục tiêu: cache NS record để hijack cả domain
Câu 37: Kaminsky Attack query gì?
A. Cùng 1 hostname nhiều lần
B. Random subdomain mỗi lần (abc.example.com, xyz.example.com,...)
C. Chỉ ROOT domain
D. IP addresses
✅ Đáp án: B
Câu 38: Answer section trong Kaminsky Attack có quan trọng không?
A. Rất quan trọng
B. Không quan trọng (chỉ cần Authority section)
C. Là phần duy nhất quan trọng
D. Cần phải chính xác
✅ Đáp án: B - Answer cho random subdomain không ảnh hưởng
Câu 39: Strategy để increase success rate của Kaminsky Attack?
A. Gửi 1 packet và chờ
B. SPAM nhiều fake replies với Transaction IDs khác nhau (0x0000 → 0xFFFF)
C. Chỉ đoán 1 lần
D. DDoS trước
✅ Đáp án: B
PHẦN 8: COUNTERMEASURES¤
Câu 40: DNSSEC hoạt động dựa trên nguyên lý gì?
A. Encryption
B. Digital signatures cho DNS records
C. Firewall
D. Access control
✅ Đáp án: B
Câu 41: DNSSEC chain of trust dựa vào gì?
A. Certificate Authorities
B. DNS hierarchy (parent zones vouch for child zones)
C. User passwords
D. IP addresses
✅ Đáp án: B
Câu 42: Khi DNS record bị forge, DNSSEC phát hiện như thế nào?
A. Check IP address
B. Signature verification FAIL
C. Check timestamp
D. Check cache
✅ Đáp án: B
Câu 43: TLS/SSL defeats DNS cache poisoning bằng cách nào?
A. Encrypt DNS queries
B. Verify server identity SAU KHI có IP (dùng certificate)
C. Block DNS traffic
D. Cache DNS results
✅ Đáp án: B
Câu 44: HTTPS là gì?
A. HTTP + DNS
B. HTTP + TLS/SSL
C. HTTP + Firewall
D. HTTP + VPN
✅ Đáp án: B
Câu 45: So sánh DNSSEC vs TLS/SSL về chain of trust?
A. Giống nhau
B. DNSSEC dùng DNS hierarchy, TLS/SSL dùng PKI/CAs
C. DNSSEC dùng CAs
D. TLS/SSL dùng DNS hierarchy
✅ Đáp án: B
Câu 46: Countermeasure nào được deploy rộng rãi nhất?
A. DNSSEC (chậm, phức tạp)
B. TLS/SSL (HTTPS) - wide deployment
C. Firewall
D. VPN
✅ Đáp án: B
PHẦN 9: REPLY FORGERY FROM MALICIOUS DNS¤
Câu 47: Khi query đến attacker's authoritative NS, attacker có thể làm gì?
A. Chỉ trả answer đúng
B. Inject fake data vào Additional/Authority sections
C. Không làm gì
D. Crash DNS server
✅ Đáp án: B
Câu 48: Local DNS server xử lý out-of-zone records như thế nào?
A. Accept tất cả
B. Discard (bỏ qua) records ngoài zone của NS đang reply
C. Cache tất cả
D. Forward đến ROOT
✅ Đáp án: B - Security measure
Câu 49: Ví dụ out-of-zone record nào sau đây?
A. NS reply cho attacker.com chứa record cho google.com
B. NS reply cho attacker.com chứa record cho www.attacker.com
C. NS reply đúng zone
D. Không có
✅ Đáp án: A - google.com nằm ngoài attacker.com zone
Câu 50: Reverse DNS lookup dùng để làm gì?
A. Hostname → IP
B. IP → Hostname
C. Email routing
D. Web routing
✅ Đáp án: B
Câu 51: Có thể dùng hostname từ reverse lookup làm access control không?
A. Có, rất an toàn
B. KHÔNG an toàn - attacker control NS có thể trả về bất kỳ hostname nào
C. Chỉ an toàn với DNSSEC
D. Luôn an toàn
✅ Đáp án: B
Câu 52: Reverse lookup cho IP 192.168.1.10 query hostname nào?
A. 192.168.1.10.reverse
B. 10.1.168.192.in-addr.arpa
C. 192.168.1.10.in-addr.arpa
D. reverse.192.168.1.10
✅ Đáp án: B - Đảo ngược IP + .in-addr.arpa
PHẦN 10: DNS REBINDING ATTACK¤
Câu 53: Same Origin Policy kiểm tra gì?
A. Chỉ domain name
B. Protocol + Domain + Port
C. Chỉ IP address
D. Chỉ port
✅ Đáp án: B
Câu 54: DNS Rebinding Attack bypass cái gì?
A. Firewall
B. Same Origin Policy
C. TLS/SSL
D. DNSSEC
✅ Đáp án: B
Câu 55: DNS Rebinding thường target vào đâu?
A. Public servers
B. IoT devices / internal servers behind firewall
C. Email servers
D. DNS servers
✅ Đáp án: B
Câu 56: DNS Rebinding Attack flow chính xác?
A. User visit attacker.com (IP1) → Load JS → Change DNS to target IP → JS runs với same origin
B. DDoS attack
C. Brute force
D. SQL injection
✅ Đáp án: A
Câu 57: TTL trong DNS Rebinding Attack nên set như thế nào?
A. Rất cao (nhiều giờ)
B. Rất thấp (0 hoặc vài giây) để đổi IP nhanh
C. Default
D. Không quan trọng
✅ Đáp án: B
Câu 58: Tại sao Browser không phát hiện DNS Rebinding?
A. Browser không check origin
B. Domain name không đổi, chỉ IP đổi → Browser nghĩ vẫn same origin
C. Browser bị lỗi
D. JavaScript bị disable
✅ Đáp án: B
Câu 59: Defense chống DNS Rebinding?
A. Chỉ dùng firewall
B. Validate Host header, random tokens, DNS pinning
C. Không có cách
D. Disable JavaScript
✅ Đáp án: B
PHẦN 11: DoS ATTACKS ON DNS¤
Câu 60: Tấn công ROOT servers khó vì sao?
A. Quá mạnh
B. 13 logical servers, highly distributed, TLD cached 48h
C. Có firewall tốt
D. Không ai biết địa chỉ
✅ Đáp án: B
Câu 61: TLD nào dễ bị DoS nhất?
A. .com
B. .gov
C. Obscure ccTLDs (country-code không có infrastructure tốt)
D. .net
✅ Đáp án: C
Câu 62: Mirai botnet (2016) tấn công ai?
A. ROOT servers
B. Dyn Network (DNS provider cho CNN, PayPal, Twitter,...)
C. Google DNS
D. TLD servers
✅ Đáp án: B
Câu 63: Mirai botnet sử dụng devices gì?
A. Servers
B. IoT devices (IP cameras, baby monitors, routers)
C. Desktop computers
D. Smartphones
✅ Đáp án: B
Câu 64: DNSPod attack (2009) ở China ảnh hưởng như thế nào?
A. Chỉ 1 website down
B. Bug trong media player → continuous queries → flooded ISP network → ảnh hưởng 20 tỉnh
C. Không ảnh hưởng gì
D. Chỉ DNS servers down
✅ Đáp án: B - Worst Internet incident in China
PHẦN 12: DNS SERVER SETUP (BIND9)¤
Câu 65: BIND9 là gì?
A. DNS client
B. DNS server software
C. Web server
D. Database
✅ Đáp án: B
Câu 66: File config chính của BIND9?
A. /etc/bind/zones.conf
B. /etc/bind/named.conf
C. /etc/dns/config
D. /var/bind/config
✅ Đáp án: B
Câu 67: Để tắt DNSSEC trong testing, set gì?
A. dnssec-enable no;
B. dnssec-validation no;
C. dnssec off;
D. no-dnssec;
✅ Đáp án: B - Trong named.conf.options
Câu 68: Command restart BIND9?
A. sudo bind9 restart
B. sudo systemctl restart bind9
C. sudo service bind9 restart
D. B và C đều đúng
✅ Đáp án: D
Câu 69: Zone file cho forward lookup (hostname → IP) thường chứa records gì?
A. Chỉ A records
B. SOA, NS, A records
C. Chỉ NS records
D. Chỉ PTR records
✅ Đáp án: B
Câu 70: Zone file cho reverse lookup chứa record type gì chủ yếu?
A. A records
B. NS records
C. PTR records
D. MX records
✅ Đáp án: C
PHẦN 13: DIG COMMAND¤
Câu 71: dig là gì?
A. DNS server
B. DNS lookup utility (query tool)
C. Web browser
D. Firewall
✅ Đáp án: B
Câu 72: Command query specific DNS server?
A. dig -s 8.8.8.8 example.com
B. dig @8.8.8.8 example.com
C. dig server=8.8.8.8 example.com
D. dig example.com 8.8.8.8
✅ Đáp án: B
Câu 73: Command reverse lookup với dig?
A. dig reverse 192.168.1.1
B. dig -r 192.168.1.1
C. dig -x 192.168.1.1
D. dig 192.168.1.1 reverse
✅ Đáp án: C
Câu 74: dig query NS records của domain?
A. dig example.com A
B. dig example.com NS
C. dig example.com MX
D. dig example.com CNAME
✅ Đáp án: B
Câu 75: dig query MX (mail) records?
A. dig example.com A
B. dig example.com NS
C. dig example.com MX
D. dig example.com MAIL
✅ Đáp án: C
GHI NHỚ QUAN TRỌNG¤
DNS Hierarchy¤
Query Process¤
4 Response Sections¤
- Question: Query gốc
- Answer: IP address
- Authority: NS records
- Additional: A records (IPs của NSs)
3 Main Attacks¤
- Local Poisoning: Same LAN, sniff + spoof
- Kaminsky: Random subdomains, spam replies
- Rebinding: Change IP after load, bypass SOP
Kaminsky Key¤
Query random.example.com mỗi lần → Cache không block → Poison Authority section
Countermeasures¤
- DNSSEC: Digital signatures, DNS hierarchy trust
- TLS/SSL: Verify server, PKI/CA trust
- HTTPS: HTTP + TLS/SSL (most deployed)
DNS Rebinding¤
attacker.com: IP1 → load JS → change to IP2 (IoT) → Same domain → bypass SOP
Out-of-Zone¤
Local DNS DISCARD records ngoài zone