240 likes | 803 Views
DNSSEC/TSIG 介紹 TWNIC 陳式偉 2002 年 04 月 12 日 dbacsw@twnic.net.tw. 內容大綱. DNS 安全 DNS Security(DNSSEC)/SIG/TSIG 介紹 Notes of the DNSSEC Technology 結論. DNS 安全. Domain Name Server 外部 進行的威脅 癱瘓 DNS 服務方式 (Denial of Service) 應用程式瑕疵所產生的漏洞 (BIND) 利用假記錄提供錯誤資訊 Domain Name Server 內部安全防護
E N D
DNSSEC/TSIG 介紹 TWNIC 陳式偉 2002年04月12日 dbacsw@twnic.net.tw
內容大綱 • DNS 安全 • DNS Security(DNSSEC)/SIG/TSIG介紹 • Notes of the DNSSEC Technology • 結論
DNS 安全 • Domain Name Server外部進行的威脅 • 癱瘓DNS服務方式(Denial of Service) • 應用程式瑕疵所產生的漏洞 (BIND) • 利用假記錄提供錯誤資訊 • Domain Name Server內部安全防護 • Domain Name Server保護措施 • IDS入侵偵測與安全防護機制建立 • 入侵災害應變回復計劃 • 入侵Domain Name Server徵兆
Domain Name Server 保護措施 • 更新DNS BIND版本至8.2.5以上,8.2.3之前有漏洞 • 8.2版本以後可更改Version的查詢顯示 • EX: options { version “What do you want “}; • 限制AXFR(allow-transfer)來源,至少先Check default設定 • 建立cache-only之主機,即以slave主機提供外部查詢 • 平時須注意log中DNS core dump記錄,或/var/named目錄中core dump file • Unix系統以非系統根管理者(Root)身份啟動DNS服務, 避免入侵者取得Root身分,但Windows系統DNS無法更改 • BIND 8.1.2以後提供啟動後更改使用者ID(UID)功能 • EX: named –u named
Domain Name Server保護措施(續) • 防範自身Domain Name Server詢問已被造假的Domain Name Server,而取回假的Domain Name資訊 • 若Domain Name Server不接受遞迴查詢,則可關閉recursion功能及glue fetching功能 • 若Domain Name Server提供其他解析服務或為其他Domain Name Server的forwarder,則不可關閉recursion功能,這時就應限制服務對象,限制詢問要求的來源(IP Address),或可查詢的轄區範圍 • EX: BIND 8 • options{ recursion no; fetch-glue no;}
Domain Name Server保護措施(續) • 一般Domain Name Server的限制 • 對所轄之名稱資訊(Resource Record),可服務任何IP的查詢要求 • 對轄區外的名稱資訊,只應服務來自內部或可信賴的IP的查詢要求 • Cache only Domain Name Server的限制 • 只應服務來自特定IP的解析器 • Authoritative only Domain Name Server • 須服務來自任何IP的查詢,但拒絕recursion查詢要求
Domain Name Server保護措施(續) • Zone Transfer 限制 • 避開他人使用nslookup之ls功能及dig之axfr選項,此兩指令要求Zone Transfer功能 • Primary master and Slave間限制Zone Transfer要求的服務對象 • Dynamic Update之更新須限制 • EX : zone “XXX.com.tw” { type master; file “db.XXX.com.tw”; allow-update { 10.9.8.7 } };
IDS入侵偵測與安全機制 • 使用防火牆 • 安裝入侵偵測系統,Ex: snort • 使用安全掃瞄工具自動檢測系統,自行檢測漏洞 • 參考CERT mailing list所發布之最新消息,掌握即時入侵資訊 • 注意其他非DNS應用系統提供的服務,所衍生安全問題,如rpc(111/tcp),ftp(21/tcp),sshd(22/tcp),ntpd(43/tcp)(net time protocol),telnetd(BSD,23/tcp)等等,眾所周知的service
入侵Domain Name Server徵兆 • Domain Name Server資料被篡改 • 網站可能無法訪問(因大多數使用者使用FQDN方式,而無法正確解析) • 使用者可能訪問的網站是假的,騙走使用者登錄資料 • 電子郵件不能收,或被攔截修改等 • 如有提供認證服務等相關業務,需使用反解資訊等服務時,會產生認證造假之問題
DNS Security(DNSSEC)/SIG介紹 • March 1999 由IBM D. Eastlake 提出成為標準 • DNS SECurity extensions 特性 • 使用數位簽章提供資料完整性(SIG Record) • 使用public key提供認證機制 • 保有選擇認證機制與否彈性 • 可靈活配合自定之安全機制政策 • DNS內建解析與應用此加密與認證功能
DNSSEC • DNSSEC 包含四部分 • 數位簽章(Digital Signature) • TSIG ,使用於Zone Transfer、DHCP registration 及與其他nameserver間之traffic • Secure dynamic update for using TSIG • 定義 CERT Resource Record for using security data
DNSSEC/TSIG • Transaction Signature (TSIG ; RFC 2845) , 使用加密簽章驗證DNS訊息,特別是回應與更新 • 新增MD5 hash加密簽章(cryptographic signature)方式,以認證nameserver間資料傳輸 • 首先須於Primary master上自行產生加密簽章,之後將此簽章傳遞給Slave,經設定後由Slave以密碼簽章送往Primary master要求Zone Transfer • 同時亦提供服務給加密簽章簽署過的動態更新要求 • TSIG功能 • 確認DNS之資訊是由某特定DNS Server提供 • 大多數應用於DNS間之Zone Transfer,確保 Slave與Primary nameserver複製資料不會由其它假的nameserver提供或被篡改截取
DNSSEC/TSIG設定步驟 • Transaction Signature (TSIG) 設定 --- 以BIND為例 • 步驟一:執行 dnskeygen function產生兩個Secret Key,一為Public key file,另一為Private key file • dnskeygen -H 256 -h -n 20020410.tsigkey • -H : Key size ,Range 1-512 • -h : create a host key • -n : the name of the key • 步驟二:複製此兩Secret Key file,至Primary and Slave nameserver,即使用相同的KEY認證
DNSSEC/TSIG設定步驟(續) • 步驟三:新增Secret Key於Primary and Slave Name Server之Configuration file (named.conf),目的是設定nameserver key內容 • 使用 key 語法如下: • key 20020410.tsigkey.{ algorithm “hmac-md5”; secret “Hw/yHcn81113q1B7tzAxo3n4+Qmdn…”; };
DNSSEC/TSIG(續) • 步驟四:設定Primary與Slave nameserver啟動時機,目的是由指定nameserver IP 須使用已設定之 key進行認證 • 使用 server 語法如下 • 於Primary nameserver named.conf 加入 • server slave-IP { keys {“20020410.tsigkey.”; }; }; • 亦於Slave nameserver named.conf 加入 • server primary-IP { keys {“20020410.tsigkey.”; }; };
DNSSEC/TSIG(續) • 步驟五:重新啟動此兩台nameserver,並檢視log files • 使用 ndc reconfig nameserver,先shutdown 再重新啟動 • Check log file 看有無warnings or errors
DNSSEC/TSIG動態更新 • BIND 8.2+ EX : • Nsupdate –k /var/named:20020410.tsigkey. • BIND 9 EX: • Nsupdate –k 20020410.tsigkey.key • Nsupdate –k 20020410.tsigkey.private
DNSSEC/TSIG限制 • 如果Primary master與Slave其中任一遭到入侵,則失去保護作用,因入侵者可取得加密簽章 • TSIG無法對廣大INTERNET Name server全面進行設置TSIG加密簽章,因使用相互共享的加密簽章,故使用TSIG將面臨散佈加密簽章與管理上的問題
Notes of DNSSEC Technology • Group Status Report • NLnet Labs目前實驗Signing large Zone並無問題 • VersigDNS代管服務已有規模,試圖提供DNSSEC服務 • RSSAC認為TSIG值得發展 • 於Root DNS上須進行較長時間的測試 • 重複認證Zone Key程序影響 • CIRN建立trust鏈結,於DNS Tree中斷或不安全時,DNSSEC容錯的機制 • NISA研究加上DNSSEC時work load前後比較 • DISA指出BIND DNS Service已可支援DNSSEC
Notes of DNSSEC Technology • Group Status Report • RIPE NCC研究DNSSEC對IP-registry的衝擊 • ARIN研究DNSSEC對 • in-addr.arpa Zone的影響 • IPV6 的影響 • IP6.ini.domain於DNS已使用TSIG與CERT Records
Notes of DNSSEC Technology • DNSSEC 遭遇之問題 • DNSSEC是否到了可推廣時機?市場是否接受? • Client端相關AP是否支援DNSSEC? • AP直接使用DNSSEC尚須努力,如於作業系統之gethostbyname LIB加入DNSSEC功能 • 是否需有CA認證 Parent/children簽章機制? • TSIG 應用保障Zone Transfer 已成熟
結論 • 注意Named.conf設定 • Logging設定愈完整,發生問題時愈容易查驗 • Version設定 “What do you want?” • 設定lamer_log,security_log,packet_log等 • Options設定或Zone domain設定,其中allow-transfer參數須再次檢查 • 使用Zone Transfer加入TSIG加密簽章認證設定 • 不以系統管理者(root)啟動nameserver • 其他service漏洞修補 • 每日檢視log file
參考 • RFC 1034,1035定義 Domain Name System運作結構 • RFC 2535定義 DNS security extensions (SIG) • RFC 2845定義 DNS Secret Key Transaction Authentication for DNS (TSIG) • RFC 3008定義 Domain Name System Security (DNSSEC) Signing Authority, 針對 RFC 2535 提出修正,限制DNSSEC Signature(SIG) Records 修改權限 • RFC 3130匯集第49屆IETF會議對DNS Security Extension (DNSSEC)結論 • www.linux.ie/articles/tutorials/dns-tsig.php • DNS & BIND 3/e,蔣大偉編譯