七大IOT漏洞簡述
越來越多的員工家里裝了各種各樣的IoT設(shè)備,員工在家接入公司網(wǎng)絡(luò)辦公的現(xiàn)象也越來越普遍。巨大的威脅陰影開始籠罩在公司網(wǎng)絡(luò)上空。
1. 設(shè)計糟糕的網(wǎng)頁用戶界面( Web UI )
每個人都喜歡看設(shè)計好看的網(wǎng)頁界面。對IoT應(yīng)用來說,Web UI 能讓用戶更快更方便地控制各種功能、配置設(shè)備和將設(shè)備集成到系統(tǒng)中。問題是,罪犯也能使用 Web UI 提供這些便利。
IoT網(wǎng)頁界面的問題,很大程度上也是企業(yè)網(wǎng)頁應(yīng)用面臨的問題。雖然IoT應(yīng)用不太可能遭遇SQL注入問題,但指令注入、跨站腳本和跨站請求偽造,卻全都是可令罪犯染指設(shè)備和整個系統(tǒng)以控制、監(jiān)視和操縱現(xiàn)實世界運營的編程漏洞。
幸運的是,大多數(shù) Web UI 安全問題的解決方案,也正是多年來Web開發(fā)者被耳提面命的那些正確操作:驗證輸入,要求強口令(且不允許在初始設(shè)置之后還繼續(xù)使用默認口令),別暴露憑證,限制口令嘗試次數(shù),確保口令和用戶名恢復(fù)流程是健壯的。做好基礎(chǔ)安全防護操作最重要。
2. 身份驗證缺失
驗證IoT應(yīng)用用戶身份是個不錯的操作。當(dāng)應(yīng)用能控制大樓門禁和環(huán)境溫度濕度,或者能訪問可監(jiān)視住戶的音視頻設(shè)備,身份驗證似乎是個“必須”項,但大多數(shù)情況卻是連最基本的身份驗證都欠奉。
有兩種身份驗證對IoT應(yīng)用而言非常重要。第一種是用戶身份驗證。鑒于很多IoT環(huán)境的復(fù)雜性,該問題歸結(jié)為是不是每個設(shè)備都要求單獨的用戶身份驗證,或者一個系統(tǒng)驗證就足以訪問網(wǎng)絡(luò)上所有IoT設(shè)備。出于易用性考慮,大多數(shù)系統(tǒng)設(shè)計者都選擇了后一個選項,令中心節(jié)點或控制界面的強身份驗證變得尤其關(guān)鍵。
系統(tǒng)單點登錄還讓另一種驗證形式——設(shè)備身份驗證,變得更為重要。因為用戶不在每個設(shè)備界面進行驗證,IoT網(wǎng)絡(luò)中的設(shè)備就應(yīng)要求相互驗證,以便攻擊者無法使用系統(tǒng)驗證中暗含的信任登堂入室。
與Web界面安全類似,關(guān)閉身份驗證安全漏洞的基礎(chǔ),在于將IoT當(dāng)成“真實”的應(yīng)用網(wǎng)絡(luò)來對待。因為很多設(shè)備都沒有原生用戶界面——依賴瀏覽器UI或人機交互App,怎么驗證就成了問題,但設(shè)備身份驗證的缺乏,會令I(lǐng)oT邊界安全變得更加關(guān)鍵。
3. 鎖定默認設(shè)置
你知道IoT設(shè)備預(yù)設(shè)了默認用戶名和口令嗎?谷歌或者百度一下就能查到。所以,不讓修改默認設(shè)置的設(shè)備和系統(tǒng)就真成問題了。
默認用戶憑證(真正重要的是“admin”)就是IoT安全設(shè)置中最大最閃亮的警告標(biāo)志,但并非唯一重要的設(shè)置項。網(wǎng)絡(luò)參數(shù)也是應(yīng)能按個人部署需求修改的安全設(shè)置,包括所用端口、管理員權(quán)限設(shè)置、日志啟用(或禁用)、事件通知(或不通知)等等。
除了可令I(lǐng)oT設(shè)備的安全設(shè)置與部署環(huán)境中現(xiàn)有的安全基礎(chǔ)設(shè)施結(jié)合更加緊密,還可以對默認設(shè)置進行修改,讓入侵者更難以登錄IoT攻擊界面。但與本文中其他IoT問題類似,這并不是用戶可以輕易左右得了的事。不可修改的默認設(shè)置確確實實需要覆蓋在IoT部署之上的安全基礎(chǔ)設(shè)施進行額外的審查。
4. 固件問題
固件也在發(fā)展。開發(fā)人員指出錯誤和漏洞易發(fā)地,提出改進的辦法,然后發(fā)布新的固件來做出改善。但很多IoT設(shè)備并沒有預(yù)留固件更新的途徑。于是,固件成了IoT設(shè)備的一大漏洞。
經(jīng)常更新的固件可以帶來的好處之一,是可以讓系統(tǒng)變成移動靶而不是固定靶。如果設(shè)備上的固件保持不變且不可更換,攻擊者就可以慢慢研究,開發(fā)出漏洞利用程序,充滿自信地對用了該固件的所有設(shè)備發(fā)起攻擊。5月的VPNFilter攻擊,就是一大類設(shè)備無法更新會招致何種惡果的樣例。即便設(shè)備可以更新,只要用戶不愿或不能應(yīng)用可用更新,結(jié)果也是一樣的。
很明顯,如果設(shè)備可以更新,那么最佳安全實踐就是保持更新。如果設(shè)備無法更新,那就需要緊跟已知漏洞,確保部署環(huán)境中其他安全措施能夠防住這些漏洞。
5. 有縫隙的云接口
幾乎沒有哪個商業(yè)自動化系統(tǒng)功能是不依賴云承擔(dān)部分處理能力和命令知識庫存儲的,尤其是使用了語音處理或指令翻譯功能的時候。于是,與云的連接就可能成為巨大的漏洞。
想想那些可以在IoT實例及其宿主云之間游走的消息。顯然有簡單的控制數(shù)據(jù)包流,但也可能錄制了音頻和視頻、任務(wù)列表、日程事件,以及發(fā)往DevOps框架及工具的指令。這些敏感數(shù)據(jù)流真的是通過加密隧道傳輸?shù)?你確定?
IoT安全有很多方面,真正的問題在于:大多數(shù)時候,用戶對界面到云端的安全防護情況是沒有發(fā)言權(quán)的。而且大部分用戶壓根兒不知道云基礎(chǔ)設(shè)施在哪個地方,很可能已經(jīng)陷入安全及合規(guī)噩夢而不自知。所以,有必要了解IoT設(shè)備的功能、設(shè)備數(shù)據(jù)的發(fā)送目的地,以及自己可以利用封包類、防火墻、入侵預(yù)防系統(tǒng)(IPS)和其他安全工具為堵住云接口漏洞做哪些工作。
6. 脆弱的網(wǎng)絡(luò)安全
編寫糟糕的IoT設(shè)備應(yīng)用程序可以從內(nèi)部給你的防火墻開幾個洞,讓攻擊者經(jīng)由這些通洞爬進你的系統(tǒng),對IoT設(shè)備和通用計算機發(fā)起攻擊。誘使天真的用戶在自家網(wǎng)絡(luò)安裝IoT設(shè)備卻不配置防火墻規(guī)則,也可以創(chuàng)建供攻擊者用來繞過精密防護的連接。
很多情況下,防火墻是面向外部的:關(guān)注試圖從外部進入網(wǎng)絡(luò)的流量。IoT設(shè)備可以從網(wǎng)絡(luò)內(nèi)部發(fā)起對其控制服務(wù)器的連接請求,然后以常規(guī)心跳傳輸維持該連接。依靠該連接,攻擊者可利用缺乏身份驗證還不加密的流量中的漏洞,將惡意流量發(fā)回到內(nèi)部網(wǎng)絡(luò)中。
有人可能會說,那得攻擊者事先知道此類設(shè)備和連接的存在才可以利用漏洞呀。沒錯,確實如此,但他們可能沒聽說過聯(lián)網(wǎng)設(shè)備搜索引擎Shodan。一條簡單的Shodan搜索命令,就可以找出各種各樣的設(shè)備、通信和開放端口,快速便捷省時省力。而一旦找到目標(biāo),編寫簡單的腳本就可以自動化漏洞利用過程。于是,利用脆弱的網(wǎng)絡(luò)安全狀況,不過是收集有漏洞的IoT系統(tǒng),而不是費盡心力地去狩獵它們。
7. MQTT問題
最后,如果系統(tǒng)設(shè)計者或開發(fā)人員徹底忘了安全,出問題是一定的。就拿工業(yè)控制領(lǐng)域的消息隊列遙測傳輸(MQTT)協(xié)議來說,已經(jīng)部署的成千上萬套系統(tǒng)甚至連最基本的安全都沒有。
多年來,工業(yè)控制安全模型都非常簡單,有兩個隱含的定勢思維在里面:首先,這些系統(tǒng)基本不接入任何更大型的網(wǎng)絡(luò)。其次,誰會想要攻擊工業(yè)控制系統(tǒng)呢?根本沒價值嘛!
但如今,多少系統(tǒng)都要依賴互聯(lián)網(wǎng),而各種各樣的攻擊者都想藉由對IoT設(shè)備的訪問或控制,獲得它們產(chǎn)生的數(shù)據(jù)或發(fā)起對其他系統(tǒng)的攻擊。需要指出的是,MQTT和其他協(xié)議的漏洞未必存在于協(xié)議本身,而是存在于協(xié)議的具體實現(xiàn)方法。
守衛(wèi)IoT部署安全的關(guān)鍵在于知識:有關(guān)IoT網(wǎng)絡(luò)中到底部署了哪些設(shè)備的知識,這些設(shè)備在網(wǎng)絡(luò)中到底在做些什么的知識,以及本地設(shè)備及其賴以進行數(shù)據(jù)分析與控制的云系統(tǒng)之間傳輸?shù)臄?shù)據(jù)流的知識。
【本文是51CTO專欄作者“”李少鵬“”的原創(chuàng)文章,轉(zhuǎn)載請通過安全牛(微信公眾號id:gooann-sectv)獲取授權(quán)】