安全研究人員最近披露了九個(gè)漏洞,這些漏洞影響了至少1億臺(tái)設(shè)備,這些漏洞可以在設(shè)備上運(yùn)行流行TCP / IP網(wǎng)絡(luò)通信堆棧中的域名系統(tǒng)協(xié)議的實(shí)現(xiàn)。
研究人員目前將這些漏洞統(tǒng)一命名為NAME:WRECK,攻擊者可以利用這些漏洞使受影響的設(shè)備脫機(jī)或?qū)ζ溥M(jìn)行控制。
這些漏洞是在廣泛的TCP/IP協(xié)議棧中發(fā)現(xiàn)的,這些協(xié)議棧運(yùn)行在從高性能服務(wù)器和網(wǎng)絡(luò)設(shè)備到監(jiān)控和控制工業(yè)設(shè)備的操作技術(shù)(OT)系統(tǒng)等各種各樣的產(chǎn)品上。
四個(gè)TCP / IP堆棧中的漏洞
NAME:WRECK的發(fā)現(xiàn)是物聯(lián)網(wǎng)企業(yè)安全公司Forescout和以色列安全研究小組JSOF的共同努力結(jié)果,它影響了DNS在以下TCP/IP協(xié)議棧中的實(shí)現(xiàn):
FreeBSD(易受攻擊的版本:12.1):BSD系列中最流行的操作系統(tǒng)之一;
IPnet(易受攻擊的版本:VxWorks 6.6):由Interpeak最初開發(fā),現(xiàn)在由WindRiver維護(hù),并由VxWorks實(shí)時(shí)操作系統(tǒng)(RTOS)使用;
NetX(易受攻擊的版本:6.0.1):是ThreadX RTOS的一部分,現(xiàn)在是Microsoft維護(hù)的一個(gè)開源項(xiàng)目,名稱為Azure RTOS NetX;
Nucleus NET(易受攻擊的版本:4.3):西門子公司Mentor Graphics維護(hù)的Nucleus RTOS的一部分,用于醫(yī)療、工業(yè)、消費(fèi)、航空航天和物聯(lián)網(wǎng)設(shè)備。
根據(jù)Forescout的說(shuō)法,在假設(shè)但可行的情況下,攻擊者可以利用NAME:WRECK漏洞通過竊取敏感數(shù)據(jù)、修改或離線設(shè)備進(jìn)行破壞,對(duì)政府或企業(yè)服務(wù)器、醫(yī)療保健設(shè)施、零售商或制造業(yè)企業(yè)造成重大損害。
攻擊者還可能篡改住宅或商業(yè)場(chǎng)所的關(guān)鍵建筑功能,以控制供暖和通風(fēng),禁用安全系統(tǒng)或篡改自動(dòng)照明系統(tǒng)
NAME:WRECK漏洞
研究人員分析了上述TCP / IP堆棧中的DNS實(shí)現(xiàn),著眼于協(xié)議的消息壓縮功能。
DNS響應(yīng)數(shù)據(jù)包多次包含相同域名或一部分域名的情況并不少見,因此存在一種壓縮機(jī)制來(lái)減小DNS消息的大小。
不僅僅是DNS解析器從這種編碼中受益,而且它還存在于多播DNS (mDNS)、DHCP客戶端和IPv6路由器通告中。
Forescout在一份報(bào)告里解釋說(shuō),盡管某些協(xié)議并未正式支持壓縮,但該功能還存在于許多實(shí)現(xiàn)中。發(fā)生這種情況是由于代碼重用或?qū)σ?guī)范的特定理解。
研究人員指出,實(shí)施壓縮機(jī)制一直是一項(xiàng)艱巨的任務(wù),特別是自2000年以來(lái)發(fā)現(xiàn)了十多個(gè)漏洞。
必須注意的是,并非所有NAME:WRECK都可以被利用來(lái)獲得相同的結(jié)果。其中最嚴(yán)重的潛在影響是遠(yuǎn)程執(zhí)行代碼,最高嚴(yán)重性得分被計(jì)算為9.8(滿分10分)。
以下是九個(gè)漏洞的標(biāo)識(shí)號(hào)和嚴(yán)重性得分的摘要。
如上表所示,并非所有漏洞都與消息壓縮有關(guān)。這些例外是研究的副產(chǎn)品,可以與其他例外聯(lián)系起來(lái)以擴(kuò)大攻擊的影響。
另一個(gè)例外是CVE-2016-20009。該漏洞最初由Exodus Intelligence于2016年發(fā)現(xiàn),但并未獲得跟蹤號(hào)。盡管該產(chǎn)品不再維護(hù)(報(bào)廢),但今天仍在使用。
Forescout要求Wind River申請(qǐng)CVE,但該公司已經(jīng)幾個(gè)月沒有采取任何行動(dòng)。因此,該公司向Exodus Intelligence提出了同樣的要求,該漏洞最終于2021年1月獲得了一個(gè)標(biāo)識(shí)符。
利用單個(gè)漏洞的攻擊者可能無(wú)法取得很大的攻擊效果,但通過將它們組合在一起,可能會(huì)造成嚴(yán)重破壞。
例如,攻擊者可以利用一個(gè)漏洞將任意數(shù)據(jù)寫入易受攻擊的設(shè)備的敏感存儲(chǔ)位置,將另一種漏洞注入到數(shù)據(jù)包中,然后將再利用第三個(gè)漏洞將其發(fā)送給目標(biāo)。
Forescout的報(bào)告深入探討了有關(guān)技術(shù)利用的技術(shù)細(xì)節(jié),該技術(shù)如何利用該公司在開放源代碼TCP /IP堆棧中發(fā)現(xiàn)的NAME:WRECK漏洞和AMNESIA:33集合中的漏洞,成功地導(dǎo)致成功的遠(yuǎn)程代碼執(zhí)行攻擊。2020年12月08日,F(xiàn)orescout實(shí)驗(yàn)室公布了4個(gè)開源TCP/IP協(xié)議棧中被統(tǒng)稱為AMNESIA:33的33個(gè)漏洞。這些漏洞的嚴(yán)重性已經(jīng)超出了常規(guī)安全范圍,并且一直延伸到開發(fā)級(jí)別。AMNESIA:33會(huì)影響DNS、IPv6、IPv4、TCP、ICMP、LLMNR和mDNS等7個(gè)不同的組件,其影響包括遠(yuǎn)程代碼執(zhí)行、拒絕服務(wù)、信息泄漏、DNS緩存中毒等。
該公司還討論了多個(gè)實(shí)現(xiàn)漏洞,這些漏洞在DNS消息解析器中不斷重復(fù),稱為反面模式(anti-pattern),以下是導(dǎo)致NAME:WRECK漏洞發(fā)生的原因:
1.缺少TXID驗(yàn)證,隨機(jī)TXID和源UDP端口不足;
2.缺乏域名字符驗(yàn)證;
3.缺少標(biāo)簽和名稱長(zhǎng)度驗(yàn)證;
4.缺少NULL終止驗(yàn)證;
5.缺少記錄計(jì)數(shù)字段驗(yàn)證;
6.缺乏域名壓縮指針和偏移量驗(yàn)證;
NAME:WRECK的修補(bǔ)程序可用于FreeBSD,Nucleus NET和NetX,并且如果修補(bǔ)程序涉及到受影響的產(chǎn)品,則可以防止漏洞利用。
因此,現(xiàn)在由設(shè)備供應(yīng)商來(lái)將更正應(yīng)用于仍可以更新的產(chǎn)品。但是,由于存在多個(gè)障礙,因此該過程的成功率不太可能達(dá)到100%。
首先,操作員需要確定在受影響的設(shè)備上運(yùn)行的TCP / IP堆棧。這并不總是一項(xiàng)容易的任務(wù),因?yàn)橛袝r(shí)連設(shè)備供應(yīng)商也不知道。
另一個(gè)障礙是應(yīng)用補(bǔ)丁,在許多情況下,由于沒有集中管理,因此需要手動(dòng)安裝該補(bǔ)丁。除此之外,關(guān)鍵設(shè)備無(wú)法在脫機(jī)中更,所以實(shí)際上不可能達(dá)到100%的補(bǔ)丁率。
更糟糕的是,研究人員發(fā)現(xiàn)新固件有時(shí)會(huì)運(yùn)行不受支持的RTOS版本,該版本可能存在已知漏洞,例如,CVE-2016-20009。這是非常令人擔(dān)憂的,因?yàn)榧僭O(shè)新固件不容易受到攻擊,可能會(huì)導(dǎo)致網(wǎng)絡(luò)風(fēng)險(xiǎn)評(píng)估中的嚴(yán)重盲點(diǎn)。
但是,安全工程師可以使用一些緩解信息來(lái)開發(fā)檢測(cè)DNS漏洞的簽名:
1.發(fā)現(xiàn)并清點(diǎn)運(yùn)行易受攻擊的堆棧的設(shè)備;
2.實(shí)施分段控制和適當(dāng)?shù)木W(wǎng)絡(luò)安全檢查;
3.關(guān)注受影響的設(shè)備供應(yīng)商發(fā)布的補(bǔ)丁;
4.配置設(shè)備依賴內(nèi)部DNS服務(wù)器;
5.監(jiān)控所有網(wǎng)絡(luò)流量中是否有惡意數(shù)據(jù)包;
此外,F(xiàn)orescout還提供了兩個(gè)開放源代碼工具,這些工具可以幫助確定目標(biāo)網(wǎng)絡(luò)設(shè)備是否運(yùn)行特定的嵌入式TCP / IP堆棧(Project Memoria Detector)以及檢測(cè)類似于NAME:WRECK的漏洞。