應用層的OSI堆棧安全
應用層是OSI模式的最高層。應用層直接與應用和應用進程相關。在網絡安全中,應用扮演著至關重要的角色。它們的設計可能是完全不安全的、相對安全的或者非常安全的。
很多應用程序已經存在相當長的時間了,如文件傳輸協議(FTP)、Telnet、簡單文件傳輸協議(SMTP)和域名解析系統(DNS),因此它們目前所面對的威脅在它們的原先設計中是可能完全沒有預想到的。2007年2月6日發生了13個核心DNS服務器中的2個受到攻擊的事件,因此本章將集中探討 DNS。
DNS是如何工作的?
讓我們先回顧一下DNS的一些基本概念。Internet中沒有任何一個地方能夠保存DNS數據庫的所有信息。在最頂層,有13個DNS服務器保存這些信息;它們大多數都是在美國的物理安全設備。DNS是一個分布式數據庫,它保存了主機名與IP地址的映射信息。DNS也提供了該數據庫的信息查詢方法。 DNS可以依據特定的操作使用UDP或TCP。在查找或響應小于521字節的情況,UDP是典型的查詢方式。TCP則可以用于更大的查找和zone轉換。
當你檢查郵件或瀏覽網絡時,你往往需要依靠DNS來將主機名轉化成IP地址。因此,當你打開你的瀏覽器瀏覽SearchNetworking.com時,DNS會將完整的網絡名稱(FQDN)轉化成正確的IP地址。
DNS過程是從向本地主機的解析器發送服務請求開始的。解析器一般都會先檢查保存最近請求的響應的本地緩存。另外,它也會檢查主機的文件,該文件包含了主機名與IP地址的映射。如果請求信息在這些位置上都沒有找到,那么解析器就會向主機TCP/IP網絡接口所配置的DNS服務器發送一個請求。為了提高 DNS性能和降低DNS所帶來的網絡流量,域名服務器將緩存一段時間的請求回復。至于響應信息被緩存多久是由響應中所指定的存活時間(TTL)所決定。
DNS暴露當DNS服務器響應一個請求時,應答消息包含了一個事務ID和用戶查詢結果。如果DNS記錄沒有找到或已經損壞,你可能就無法到達你想訪問的網站,或者你可能被連接到一個攻擊者的Web服務器上。這是很有可能發生的,因為有幾種方式可以攻擊協議,包括:
◆區域轉換漏洞
◆DNS緩存污染
◆DNS緩存窺探
◆中間人攻擊
Zone轉換是用于將主服務器的域數據庫復制到次服務器。如果黑客可以在域中執行主服務器或次服務器的轉換,那么他就可以查看域中的所有DNS記錄。這樣就暴露了敏感的信息,如內部尋址方案。此外,黑客還可能可以決定Web服務器、郵件或文件傳輸等使用哪個IP地址。
DNS 緩存污染是我們討論的第二個技術。DNS客戶端和服務器都會將響應緩存一段時間,以提高性能和減少網絡流量。如果黑客能夠對DNS請求發送欺騙響應,那么他們也就可以用一個不正確的記錄來污染DNS。通過污染DNS客戶端和服務器的緩存,黑客就可以將流量重定向到一個惡意主機,從而導致更大的危害。先前在根DNS服務器上的攻擊就采用了這種技術,以及拒絕服務攻擊。
DNS緩存窺探是一個確定特定資源記錄是否在緩存中的過程。DNS緩存窺探可以幫助黑客確定攻擊目標訪問了哪些站點、他們的客戶和用戶是誰,以及其它可能有用的信息。它甚至還可能通過查詢軟件升級地址的資源記錄來發現攻擊目標正使用什么軟件。
最后,中間人(MITM)攻擊是發生在攻擊者截斷和修改DNS信息的時候。在這種情況下,攻擊者可以從截獲的流量中獲得源端口和事務ID。MITM攻擊可以將一個受害的合法地址重定向為一個惡意的網站。如果DNS請求是發向銀行、財政和電子商務網站的,這對于試圖竊取個人信息的黑客而言是非常有用的。不需要使用欺騙郵件,如常見的網站釣魚郵件,黑客可以直接攻擊指向合法站點的DNS記錄。
保護DNS這些攻擊都是真實的威脅,但是也是可以防范的。通過強制使用隨機事務ID和源端口,就可以增加DNS緩存污染的難度。在不知道這些域的正確值時,黑客將無法用欺騙答復來達到污染服務器緩存的目的。在幾年前,Zone轉移區域轉換的確是一個棘手的問題,因為Windows2000服務器在默認的情況下允許任何人獲得這個信息。這個默認設置在Windows Server 2003上已經不復存在。如果ISP的出口過濾足夠好,那么即使最近出現的針對根DNS服務器的攻擊也是可以防范的。關于這個問題的解決方案已經記錄在 RFC 3704中。
雖然上面探討的安全對策在實現更安全的DNS上開了好頭,但是我們仍不能僅滿足于此。在DNS相關問題的處理失敗仍然讓我們置于易受攻擊的境地,它將影響著我們的所有需要穿越Internet的應用,包括業務敏感應用、Web流量、電子郵件和VoIP通信等。