因?yàn)槿狈θ祟惖谋O(jiān)督,也沒(méi)有常見(jiàn)的安全手段可以使用,無(wú)數(shù)的、不同類型的物聯(lián)網(wǎng)設(shè)備正在成為潛在的攻擊目標(biāo)。這些設(shè)備包括汽車、電動(dòng)發(fā)動(dòng)機(jī)、供水水泵等等……
烏克蘭電力公司的網(wǎng)絡(luò)系統(tǒng)在2015年年末時(shí)遭到黑客攻擊,導(dǎo)致西部地區(qū)大規(guī)模停電。在該起事件中,多座變電站處于離線狀態(tài),超過(guò)230000個(gè)家庭和辦公室遭遇了長(zhǎng)達(dá)6小時(shí)的停電。“襲擊者甚至還修改了關(guān)鍵設(shè)備的固件,使得它們不能被遠(yuǎn)程控制和切斷開(kāi)關(guān),其它設(shè)備在之后的好幾月內(nèi)都必須手動(dòng)控制”,
ThingWorx產(chǎn)品管理高級(jí)主管Rob Black說(shuō)到。
圖:ThingWorx產(chǎn)品管理高級(jí)主管Rob Black
這是有史以來(lái)首次導(dǎo)致停電的網(wǎng)絡(luò)攻擊,此次針對(duì)工控系統(tǒng)的攻擊無(wú)疑具有里程碑意義,引起國(guó)內(nèi)外媒體高度關(guān)注。據(jù)報(bào)道,本次攻擊來(lái)自俄羅斯黑客組織,使用的惡意軟件被稱為BlackEnergy(黑暗力量)。
圖:BlackEnergy 攻擊過(guò)程
又在去年7月,兩名黑客遠(yuǎn)程控制了一輛大切諾基,使其在高速公路上以每小時(shí)70英里的速度行駛。他們通過(guò)無(wú)線控制雨刷的開(kāi)啟和關(guān)閉,把空調(diào)開(kāi)到最大,并在行駛過(guò)程中切換了不同的電臺(tái)廣播,然后禁用傳輸功能,所以這輛吉普車行至州際公路時(shí)放緩了速度。
這兩名黑客是為了宣傳汽車所面臨的物聯(lián)網(wǎng)所帶來(lái)的安全風(fēng)險(xiǎn),而其也的確產(chǎn)生了效果——最終導(dǎo)致140萬(wàn)輛汽車被召回,不得不針對(duì)他們的系統(tǒng)打補(bǔ)丁。
不幸的是,面臨物聯(lián)網(wǎng)所帶來(lái)的安全問(wèn)題,大部分企業(yè)并不能僅僅通過(guò)召回汽車和修補(bǔ)他們的計(jì)算系統(tǒng)就能夠輕易解決的。企業(yè)當(dāng)前所面臨的最大問(wèn)題是:鑒于物聯(lián)網(wǎng)設(shè)備已經(jīng)在整個(gè)企業(yè)范圍內(nèi)得到廣泛的使用和傳播,企業(yè)的生產(chǎn)環(huán)境到底有多安全?而通過(guò)這些物聯(lián)網(wǎng)設(shè)備來(lái)入侵企業(yè)網(wǎng)絡(luò)有多容易?企業(yè)如何保護(hù)自身的安全?
物聯(lián)網(wǎng)安全和云平臺(tái)的安全不同
物聯(lián)網(wǎng)的安全和云不同,云有定義明確的安全模型和有限的入口點(diǎn),而物聯(lián)網(wǎng)由于設(shè)備類型、操作系統(tǒng)和協(xié)議的不同,攻擊目標(biāo)更加廣泛。
在云平臺(tái)的用戶管理方面,通常只需要針對(duì)特定項(xiàng)目給一個(gè)特定的人授予訪問(wèn)權(quán)限。然而物聯(lián)網(wǎng)設(shè)備,需要更復(fù)雜的授權(quán)和權(quán)限模型。物聯(lián)網(wǎng)設(shè)備可以作為一個(gè)個(gè)體或者一個(gè)個(gè)體的代表來(lái)進(jìn)行自我驗(yàn)證。
一些公司也意識(shí)到了這種危險(xiǎn),但是由于他們還沒(méi)有大規(guī)模使用物聯(lián)網(wǎng)應(yīng)用程序,所以并沒(méi)有采取相應(yīng)行動(dòng)。但是他們真的知道他們到底有多少設(shè)備已經(jīng)連接到網(wǎng)絡(luò)并且暴露于風(fēng)險(xiǎn)之中嗎?
Shodan是一種專門搜索聯(lián)網(wǎng)設(shè)備的搜索引擎,它不像Google等傳統(tǒng)的搜索引擎,利用Web爬蟲(chóng)去遍歷你整個(gè)網(wǎng)站,而是直接進(jìn)入互聯(lián)網(wǎng)的背后通道,審計(jì)設(shè)備的各類端口,一刻不停的尋找著所有和互聯(lián)網(wǎng)關(guān)聯(lián)的設(shè)備。
每個(gè)月Shodan都會(huì)在大約5億個(gè)網(wǎng)絡(luò)設(shè)備上日夜不停地搜集信息,它的搜索能力是極其驚人的,包括無(wú)數(shù)交通燈、安全攝像頭、家庭自動(dòng)化設(shè)備、冰上曲棍球球場(chǎng),甚至工廠的控制系統(tǒng)和核電站。大部分的這些設(shè)備經(jīng)由制造商或者第三方通過(guò)一個(gè)內(nèi)部應(yīng)用程序連接到網(wǎng)絡(luò)。
大部分這些設(shè)備只有非常有限的安全功能,許多情況下,連接設(shè)備甚至不需要密碼。就算有,也在使用“Admin”這樣的用戶名和“1234”這樣非常簡(jiǎn)單的密碼。70%的設(shè)備還是在以文本格式溝通,即使使用更安全的密碼,攻擊這些設(shè)備依然很容易。
數(shù)以百萬(wàn)的設(shè)備也在使用非常過(guò)時(shí)的軟件版本——這些軟件的漏洞和弱點(diǎn)簡(jiǎn)直眾所周知。所以,很多公司的問(wèn)題根本不在于如何開(kāi)始一個(gè)物聯(lián)網(wǎng)項(xiàng)目,他們的問(wèn)題在于如何管理和保護(hù)現(xiàn)有的那些未知部分的物聯(lián)網(wǎng)設(shè)備。
一個(gè)可能的通用安全模型
目前還沒(méi)有專門針對(duì)物聯(lián)網(wǎng)的通用安全模型,然而,可以把如下圖所示的安全體系架構(gòu)作為基礎(chǔ)。
圖1.物聯(lián)網(wǎng)涵蓋的元素和交互對(duì)象
在圖1里,我將物聯(lián)網(wǎng)中涵蓋的不同元素和它們交互的對(duì)象標(biāo)示了出來(lái)。
1.設(shè)備是聯(lián)網(wǎng)的真實(shí)對(duì)象
2.網(wǎng)絡(luò)基礎(chǔ)設(shè)施將設(shè)備連接到物聯(lián)網(wǎng)平臺(tái)
3.運(yùn)營(yíng)平臺(tái)為應(yīng)用程序提供了開(kāi)發(fā)的基礎(chǔ)設(shè)施
4.物聯(lián)網(wǎng)平臺(tái)是一套組件,它可以與設(shè)備通信,可以對(duì)設(shè)備進(jìn)行管理,還能運(yùn)行應(yīng)用程序
5.發(fā)展指的是物聯(lián)網(wǎng)應(yīng)用程序的實(shí)現(xiàn)過(guò)程
6.應(yīng)用程序通過(guò)監(jiān)測(cè)、管理和控制網(wǎng)絡(luò)設(shè)備創(chuàng)造了額外的業(yè)務(wù)價(jià)值
圖2.一個(gè)通用安全模型
圖2給出的通用安全模型解釋了物聯(lián)網(wǎng)安全責(zé)任應(yīng)該如何在不同合作方之間進(jìn)行劃分。從頂部開(kāi)始,客戶負(fù)責(zé)保護(hù)各種設(shè)備,拒絕未經(jīng)授權(quán)的訪問(wèn)并且管理用戶賬戶。
物聯(lián)網(wǎng)平臺(tái)通過(guò)集成顯示和無(wú)需編碼即可使用的權(quán)限簡(jiǎn)化了任務(wù)。例如,地區(qū)、部門和位置可以被定義,用戶只能訪問(wèn)自己地區(qū)的對(duì)象而不能訪問(wèn)其它地區(qū)的。職能角色也可以在一個(gè)組織之中創(chuàng)建,比如“服務(wù)管理者”,“服務(wù)管理者”的角色也可以被分配給新用戶,而新用戶可以自動(dòng)接收被分配角色的所有權(quán)利。
理想情況中,在連接服務(wù)器的幫助下,當(dāng)平臺(tái)本身位于防火墻之內(nèi)的話,物聯(lián)網(wǎng)平臺(tái)將提供在“隔離區(qū)(DMZ)”工作的選項(xiàng)。如果物聯(lián)網(wǎng)平臺(tái)處于內(nèi)部網(wǎng)絡(luò),那么即使是最堅(jiān)定的外部攻擊,也會(huì)遇到很大的困難。好的網(wǎng)絡(luò)概念可以幫助組織更好地保護(hù)他們的物聯(lián)網(wǎng)基礎(chǔ)設(shè)施。
應(yīng)用程序開(kāi)發(fā)人員可以使用領(lǐng)先平臺(tái)提供的適當(dāng)工具進(jìn)行最佳實(shí)踐,比如開(kāi)放式Web應(yīng)用程序安全項(xiàng)目(OWASP,Open Web Application Security Project)TOP10,這是在開(kāi)發(fā)Web應(yīng)用程序時(shí)應(yīng)該避免的弱點(diǎn)。美國(guó)聯(lián)邦貿(mào)易委員會(huì)(FTC)強(qiáng)烈建議所有企業(yè)需遵循OWASP所發(fā)布的十大Web弱點(diǎn)防護(hù)守則。
SQL注入是十大問(wèn)題之一,它是指程序把用戶輸入的一段字符串直接用在了拼湊SQL語(yǔ)句上,導(dǎo)致了用戶可以控制SQL語(yǔ)句,比如加入delete的行為、繞過(guò)用戶密碼驗(yàn)證等。解決方式是使用參數(shù)形式調(diào)用SQL/使用存儲(chǔ)過(guò)程(存儲(chǔ)過(guò)程中不要使用動(dòng)態(tài)SQL拼語(yǔ)句)/使用Linq, EF等框架來(lái)寫(不要使用里面的直接拼SQL語(yǔ)句的方式)。物聯(lián)網(wǎng)平臺(tái)可以通過(guò)parameterising 輸入(parameterising input)和直接停止SQL查詢的方式來(lái)防止這種攻擊。
然而,一些物聯(lián)網(wǎng)安全的責(zé)任應(yīng)該由開(kāi)發(fā)人員來(lái)承擔(dān)。通過(guò)傳輸層安全協(xié)議(TLS),大多數(shù)物聯(lián)網(wǎng)平臺(tái)具有為設(shè)備通信過(guò)程提供加密的能力。當(dāng)然,這項(xiàng)能力必須由開(kāi)發(fā)人員來(lái)激活。
無(wú)論在應(yīng)用程序的發(fā)展過(guò)程中如何重視安全問(wèn)題,遭受攻擊的可能性總是存在。因此,至關(guān)重要的是設(shè)立一種讓每一層級(jí)都可以反復(fù)更新到最近版本的保護(hù)機(jī)制。
因此,一個(gè)物聯(lián)網(wǎng)平臺(tái)不但應(yīng)該提供集成的軟件和內(nèi)容管理功能,還應(yīng)支持自動(dòng)分發(fā)更新。更復(fù)雜的平臺(tái)還會(huì)包括如何分配這些更新的選項(xiàng)。這意味著,你可以在對(duì)所有設(shè)備進(jìn)行常規(guī)更新的時(shí)候,可以先在少量設(shè)備上導(dǎo)入和測(cè)試這些選項(xiàng)。
一個(gè)通用的安全模型以及其它許多功能簡(jiǎn)化了物聯(lián)網(wǎng)應(yīng)用程序開(kāi)發(fā)和實(shí)現(xiàn)的過(guò)程。因此,您可以優(yōu)化您廣泛分布的設(shè)備的性能,同時(shí),確保防止未經(jīng)授權(quán)的惡意使用。