Skip to content

CHƯƠNG 10: DNS & ATTACKS¤

1. DNS HIERARCHY¤

Cấu trúc phân cấp (Tree Structure)¤

Text Only
                    . (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ụ¤

Text Only
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)¤

Text Only
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¤

  1. Question: Query gốc
  2. Answer: Records trả lời câu hỏi
  3. Authority: NS records (nameservers)
  4. 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¤

Bash
# Dump cache
sudo rndc dumpdb -cache
cat /var/cache/bind/dump.db

# Flush cache
sudo rndc flush

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:

Bash
# Trong /etc/dhcp/dhclient.conf
prepend domain-name-servers 10.0.2.5;


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ý¤

Text Only
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¤

Text Only
✓ 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¤

Python
# 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¤

Python
# 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¤

Text Only
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¤

Text Only
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¤

C
// 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:

Text Only
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¤

Text Only
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¤

Text Only
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
Defense: Local DNS discard out-of-zone records

Authority Section Attack¤

Text Only
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:

Text Only
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¤

Text Only
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¤

Text Only
Target: IoT device 192.168.1.1 (behind firewall)
       Simple password protection
       Firewall chặn external access

User visit: www.attacker.com

Attack Flow¤

Text Only
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¤

Bash
sudo apt-get install bind9

Config Files¤

  • /etc/bind/named.conf: Main config
  • /etc/bind/named.conf.options: Options
  • Zone files: /etc/bind/*.db

Simplify for testing¤

Bash
# Turn off DNSSEC
dnssec-validation no;

# Fixed source port (for attack demo)
query-source port 33333;

# Restart
sudo service bind9 restart

Zone Configuration¤

Text Only
# /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¤

Text Only
; /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¤

Text Only
; /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¤

Bash
# 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¤

Text Only
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¤

  1. Local Cache Poisoning: Same LAN, sniff + spoof
  2. Remote (Kaminsky): Random subdomains, spam replies
  3. 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¤

Bash
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¤

Text Only
ROOT (13 servers A-M)
TLD (.com, .vn, .edu)
Authoritative (google.com)

Query Process¤

Text Only
User → Local DNS → ROOT → TLD → Auth
                    CACHE

4 Response Sections¤

  1. Question: Query gốc
  2. Answer: IP address
  3. Authority: NS records
  4. Additional: A records (IPs của NSs)

3 Main Attacks¤

  1. Local Poisoning: Same LAN, sniff + spoof
  2. Kaminsky: Random subdomains, spam replies
  3. 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

Commands¤

Bash
dig @8.8.8.8 example.com      # Query server
dig -x 192.168.1.1            # Reverse
dig example.com NS            # NS records
sudo rndc dumpdb -cache       # Dump cache
sudo rndc flush               # Clear cache