[IT-Security-1] DNS security

 DNS security


Notes from RWTH Aachen University course 
“IT security 1” Wintersemester 2019/20
professor: Meyer, Ulrike Michaela


  • Domain Name System
    • 為了將有意義、架構性的 Domain Name 對應到 IP 位址
    • 由許多DNS server組成
    • DNS server可以被applications query
    • root 沒有名字
    • domain 命名/控制/授權 subdomain
  • Zones
    • 跟 Domain 不同,Zones 的 Child 不一定屬於同個 Zone
    • 每個 Zone 有部分 Domain name tree 及有這個 zone 的資訊的 name server
    • 每個 Zone 的 authoritative name server 都有存 zone file

  • Resource Records
    • 每個 Domain name 都有一組相關的 resource records
    • 記錄對應的 “A” type: IPv4 位址/ “AAAA”: IPv6…
  • Recursive queries
    • 被 queried 的 name server 一定要回答問題,不能指向其他 name server

  • Iterative queries
    • 被 queried 的 name server 可以回覆適當的 NS type 的 RR 或 A type 的 RR 指向其他 name server

  • DNS security goal
    • 正確
    • 可用
  • DNS 攻擊
    • Cache poisoning
      • redirect
      • 網站不存在
      • 早期的Cache poisoning:
        • 加入多的type “A” RR,則DNS回傳時會回傳兩個IP位址
        • 此方法已不可能
        • Bailiwik rule: 授權的 name server 只會回傳 subdomain 的網址

    • 新Cache poisoning:
      • 需要偽造IP位址
      • 且在正確的IP位址回傳前,送出

    • 隨機的 Query ID 可以阻止Cache poisoning
      • 若攻擊者可以預測 Query ID則還是可以攻擊
    • resolvers 可以檢查 query ID, IP address, source port
      • 攻擊者須偽造 query ID, IP address, source port 才可攻擊,且要比真的 name server 快
      • 偽造一個 query ID: Birthday Attack
        • \(k\) 次猜測保證有 \(P\) 的機率猜到一 16 bit 的 query ID
        • \(P\)\(k\)
          \(P\approx 1-e^{-\frac{k}{N}}\)\(k\approx ln(\frac{1}{1-P})N\)
          \(N=65535, P=99\%,\text{ then }k =4.6\times N\)
        • 但如果攻擊者可以使 resolving DNS server 傳送 \(k\) 個隨機 query IDs,且攻擊者送出相等的 query IDs 猜測,至少有一個 query ID 命中

          從 \(k\) 個裡面猜 \(k\) 次

        • \(P\)
          \(P\approx 1-\frac{(N-k)}{N}^k\)
          \(P=99\%,\text{ then }k\approx 388\)

          攻擊者一次送出 \(388\) 次query IDs
          在真的response抵達之前,成功機率是\(99\%\)

        • 如果真的response比假的IP address先抵達,則會被存在 cache 中,要等到此IP address的TTL到期才有辦法再攻擊

    • Kaminsky Attack
      • 用假的subdomain進行 query
      • 不用等到正確的TTL到期就可再攻擊

    • 隨機Source port
      • 攻擊者須猜中 query ID 和 source port
      • 減緩 Kaminsky Attack
    • 作業系統(stub-resolver)也是poinsoning的攻擊對象
      • malware攻擊
      • 若與攻擊者在同個network中,有辦法擷取DNS query
    • 用 IPsec/TLS 增加DNS安全
      • 偵測偽造的IP address
      • 無法用 cache poisoning 攻擊
        • 無法cache
        • 須建立IPsec的associations/ TLS的handshaking
        • DoS攻擊
    • DNSsec
      • 簽章增加resource record的授權
      • 分配公鑰

      不提供機密性和access control

      • Zone signing key(ZSK)
        • 對一個zone中的DNS RRsets簽章
        • 可以時常更換(zone可自己更換)
      • key signing key(KSK)
        • 對DNSKEY RR簽章,包含ZSK
        • zone的信任起源
        • 需被parent zone信任
      • 若Data被ZSK簽章,在zone裡可被信任
      • 若ZSK被KSK簽章,ZSK可被信任

      • 若找不到 domain names (NXDOMAIN) 則回傳新的RR type NSEC


        • 最接近的下一個domain name (字典序)
          • 缺點:replaying NSEC entry
            透露其他合法domain name資訊
          • 解法:動態生成並簽章NSEC
          • 解法2:NSEC3
            把所有存在的domain name用hash
            用hash value排序
            回傳query的hash值和下個hash值
      • DNS的DDoS攻擊
        • 多個IP對同一台DNS server攻擊
    • 偽造 DNS information
      • 更改 name server 資料
    • DoS 攻擊
    • 用 DNS 當 command 或 data extraction channel
      • 擷取資料給DNS server

Readings
Allan Liska and Geoffrey Stowe: “DNS Security: Defending the Domain Name System”, Elsevier 2016
DNS in general
    Chapter 2.1 of Andrew Tanenbaum’s “Computer Networks
RFCs
    RFC 1034: Domain Names – Concepts and Facilities
    RFC 1035: Domain Names – Implementation and Specification
    RFC 4033: DNS Security Introduction and Requirements
    RFC 4034: Resource Records for the DNS Security Extensions

    RFC 4035: Protocol Modifications for the DNS Security Extensions

留言

這個網誌中的熱門文章