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