華文網

「深度」能否在物聯網領域構建一個通用的安全模型?

因為缺乏人類的監督,也沒有常見的安全手段可以使用,無數的、不同類型的物聯網設備正在成為潛在的攻擊目標。這些設備包括汽車、電動發動機、供水水泵等等……

烏克蘭電力公司的網路系統在2015年年末時遭到駭客攻擊,導致西部地區大規模停電。在該起事件中,多座變電站處於離線狀態,超過230000個家庭和辦公室遭遇了長達6小時的停電。

“襲擊者甚至還修改了關鍵設備的固件,使得它們不能被遠端控制和切斷開關,其它設備在之後的好幾月內都必須手動控制”,

ThingWorx產品管理高級主管Rob Black說到。

圖:ThingWorx產品管理高級主管Rob Black

這是有史以來首次導致停電的網路攻擊,

此次針對工控系統的攻擊無疑具有里程碑意義,引起國內外媒體高度關注。據報導,本次攻擊來自俄羅斯駭客組織,使用的惡意軟體被稱為BlackEnergy(黑暗力量)。

圖:BlackEnergy 攻擊過程

又在去年7月,兩名駭客遠程控制了一輛大切諾基,使其在高速公路上以每小時70英里的速度行駛。

他們通過無線控制雨刷的開啟和關閉,把空調開到最大,並在行駛過程中切換了不同的電臺廣播,然後禁用傳輸功能,所以這輛吉普車行至州際公路時放緩了速度。

這兩名駭客是為了宣傳汽車所面臨的物聯網所帶來的安全風險,而其也的確產生了效果——最終導致140萬輛汽車被召回,不得不針對他們的系統打補丁。

不幸的是,面臨物聯網所帶來的安全問題,

大部分企業並不能僅僅通過召回汽車和修補他們的計算系統就能夠輕易解決的。企業當前所面臨的最大問題是:鑒於物聯網設備已經在整個企業範圍內得到廣泛的使用和傳播,企業的生產環境到底有多安全?而通過這些物聯網設備來入侵企業網路有多容易?企業如何保護自身的安全?

物聯網安全和雲平臺的安全不同

物聯網的安全和雲不同,雲有定義明確的安全模型和有限的入口點,

而物聯網由於設備類型、作業系統和協定的不同,攻擊目標更加廣泛。

在雲平臺的用戶管理方面,通常只需要針對特定專案給一個特定的人授予存取權限。然而物聯網設備,需要更複雜的授權和許可權模型。物聯網設備可以作為一個個體或者一個個體的代表來進行自我驗證。

一些公司也意識到了這種危險,但是由於他們還沒有大規模使用物聯網應用程式,所以並沒有採取相應行動。但是他們真的知道他們到底有多少設備已經連接到網路並且暴露於風險之中嗎?

Shodan是一種專門搜索聯網設備的搜尋引擎,它不像Google等傳統的搜尋引擎,利用Web爬蟲去遍歷你整個網站,而是直接進入互聯網的背後通道,審計設備的各類埠,一刻不停的尋找著所有和互聯網關聯的設備。

每個月Shodan都會在大約5億個網路設備上日夜不停地搜集資訊,它的搜索能力是極其驚人的,包括無數交通燈、安全攝像頭、家庭自動化設備、冰上曲棍球球場,甚至工廠的控制系統和核電站。大部分的這些設備經由製造商或者協力廠商通過一個內部應用程式連接到網路。

大部分這些設備只有非常有限的安全功能,許多情況下,連接設備甚至不需要密碼。就算有,也在使用“Admin”這樣的用戶名和“1234”這樣非常簡單的密碼。70%的設備還是在以文本格式溝通,即使使用更安全的密碼,攻擊這些設備依然很容易。

數以百萬的設備也在使用非常過時的軟體版本——這些軟體的漏洞和弱點簡直眾所周知。所以,很多公司的問題根本不在於如何開始一個物聯網專案,他們的問題在於如何管理和保護現有的那些未知部分的物聯網設備。

一個可能的通用安全模型

目前還沒有專門針對物聯網的通用安全模型,然而,可以把如下圖所示的安全體系架構作為基礎。

圖1.物聯網涵蓋的元素和交互物件

在圖1裡,我將物聯網中涵蓋的不同元素和它們交互的物件標示了出來。

1.設備是聯網的真實物件

2.網路基礎設施將設備連接到物聯網平臺

3.運營平臺為應用程式提供了開發的基礎設施

4.物聯網平臺是一套元件,它可以與設備通信,可以對設備進行管理,還能運行應用程式

5.發展指的是物聯網應用程式的實現過程

6.應用程式通過監測、管理和控制網路設備創造了額外的業務價值

圖2.一個通用安全模型

圖2給出的通用安全模型解釋了物聯網安全責任應該如何在不同合作方之間進行劃分。從頂部開始,客戶負責保護各種設備,拒絕未經授權的訪問並且管理用戶帳戶。

物聯網平臺通過集成顯示和無需編碼即可使用的許可權簡化了任務。例如,地區、部門和位置可以被定義,使用者只能訪問自己地區的物件而不能訪問其它地區的。職能角色也可以在一個組織之中創建,比如“服務管理者”,“服務管理者”的角色也可以被分配給新用戶,而新用戶可以自動接收被分配角色的所有權利。

理想情況中,在連接伺服器的幫助下,當平臺本身位於防火牆之內的話,物聯網平臺將提供在“隔離區(DMZ)”工作的選項。如果物聯網平臺處於內部網路,那麼即使是最堅定的外部攻擊,也會遇到很大的困難。好的網路概念可以説明組織更好地保護他們的物聯網基礎設施。

應用程式開發人員可以使用領先平臺提供的適當工具進行最佳實踐,比如開放式Web應用程式安全專案(OWASP,Open Web Application Security Project)TOP 10,這是在開發Web應用程式時應該避免的弱點。美國聯邦貿易委員會(FTC)強烈建議所有企業需遵循OWASP所發佈的十大Web弱點防護守則。

SQL注入是十大問題之一,它是指程式把使用者輸入的一段字串直接用在了拼湊SQL語句上,導致了用戶可以控制SQL語句,比如加入delete的行為、繞過使用者密碼驗證等。解決方式是使用參數形式調用SQL/使用存儲過程(存儲過程中不要使用動態SQL拼語句)/使用Linq, EF等框架來寫(不要使用裡面的直接拼SQL語句的方式)。物聯網平臺可以通過parameterising 輸入(parameterising input)和直接停止SQL查詢的方式來防止這種攻擊。

然而,一些物聯網安全的責任應該由開發人員來承擔。通過傳輸層安全協議(TLS),大多數物聯網平臺具有為設備通信過程提供加密的能力。當然,這項能力必須由開發人員來啟動。

無論在應用程式的發展過程中如何重視安全問題,遭受攻擊的可能性總是存在。因此,至關重要的是設立一種讓每一層級都可以反復更新到最近版本的保護機制。

因此,一個物聯網平臺不但應該提供集成的軟體和內容管理功能,還應支援自動分發更新。更複雜的平臺還會包括如何分配這些更新的選項。這意味著,你可以在對所有設備進行常規更新的時候,可以先在少量設備上導入和測試這些選項。

一個通用的安全模型以及其它許多功能簡化了物聯網應用程式開發和實現的過程。因此,您可以優化您廣泛分佈的設備的性能,同時,確保防止未經授權的惡意使用。

所以並沒有採取相應行動。但是他們真的知道他們到底有多少設備已經連接到網路並且暴露於風險之中嗎?

Shodan是一種專門搜索聯網設備的搜尋引擎,它不像Google等傳統的搜尋引擎,利用Web爬蟲去遍歷你整個網站,而是直接進入互聯網的背後通道,審計設備的各類埠,一刻不停的尋找著所有和互聯網關聯的設備。

每個月Shodan都會在大約5億個網路設備上日夜不停地搜集資訊,它的搜索能力是極其驚人的,包括無數交通燈、安全攝像頭、家庭自動化設備、冰上曲棍球球場,甚至工廠的控制系統和核電站。大部分的這些設備經由製造商或者協力廠商通過一個內部應用程式連接到網路。

大部分這些設備只有非常有限的安全功能,許多情況下,連接設備甚至不需要密碼。就算有,也在使用“Admin”這樣的用戶名和“1234”這樣非常簡單的密碼。70%的設備還是在以文本格式溝通,即使使用更安全的密碼,攻擊這些設備依然很容易。

數以百萬的設備也在使用非常過時的軟體版本——這些軟體的漏洞和弱點簡直眾所周知。所以,很多公司的問題根本不在於如何開始一個物聯網專案,他們的問題在於如何管理和保護現有的那些未知部分的物聯網設備。

一個可能的通用安全模型

目前還沒有專門針對物聯網的通用安全模型,然而,可以把如下圖所示的安全體系架構作為基礎。

圖1.物聯網涵蓋的元素和交互物件

在圖1裡,我將物聯網中涵蓋的不同元素和它們交互的物件標示了出來。

1.設備是聯網的真實物件

2.網路基礎設施將設備連接到物聯網平臺

3.運營平臺為應用程式提供了開發的基礎設施

4.物聯網平臺是一套元件,它可以與設備通信,可以對設備進行管理,還能運行應用程式

5.發展指的是物聯網應用程式的實現過程

6.應用程式通過監測、管理和控制網路設備創造了額外的業務價值

圖2.一個通用安全模型

圖2給出的通用安全模型解釋了物聯網安全責任應該如何在不同合作方之間進行劃分。從頂部開始,客戶負責保護各種設備,拒絕未經授權的訪問並且管理用戶帳戶。

物聯網平臺通過集成顯示和無需編碼即可使用的許可權簡化了任務。例如,地區、部門和位置可以被定義,使用者只能訪問自己地區的物件而不能訪問其它地區的。職能角色也可以在一個組織之中創建,比如“服務管理者”,“服務管理者”的角色也可以被分配給新用戶,而新用戶可以自動接收被分配角色的所有權利。

理想情況中,在連接伺服器的幫助下,當平臺本身位於防火牆之內的話,物聯網平臺將提供在“隔離區(DMZ)”工作的選項。如果物聯網平臺處於內部網路,那麼即使是最堅定的外部攻擊,也會遇到很大的困難。好的網路概念可以説明組織更好地保護他們的物聯網基礎設施。

應用程式開發人員可以使用領先平臺提供的適當工具進行最佳實踐,比如開放式Web應用程式安全專案(OWASP,Open Web Application Security Project)TOP 10,這是在開發Web應用程式時應該避免的弱點。美國聯邦貿易委員會(FTC)強烈建議所有企業需遵循OWASP所發佈的十大Web弱點防護守則。

SQL注入是十大問題之一,它是指程式把使用者輸入的一段字串直接用在了拼湊SQL語句上,導致了用戶可以控制SQL語句,比如加入delete的行為、繞過使用者密碼驗證等。解決方式是使用參數形式調用SQL/使用存儲過程(存儲過程中不要使用動態SQL拼語句)/使用Linq, EF等框架來寫(不要使用裡面的直接拼SQL語句的方式)。物聯網平臺可以通過parameterising 輸入(parameterising input)和直接停止SQL查詢的方式來防止這種攻擊。

然而,一些物聯網安全的責任應該由開發人員來承擔。通過傳輸層安全協議(TLS),大多數物聯網平臺具有為設備通信過程提供加密的能力。當然,這項能力必須由開發人員來啟動。

無論在應用程式的發展過程中如何重視安全問題,遭受攻擊的可能性總是存在。因此,至關重要的是設立一種讓每一層級都可以反復更新到最近版本的保護機制。

因此,一個物聯網平臺不但應該提供集成的軟體和內容管理功能,還應支援自動分發更新。更複雜的平臺還會包括如何分配這些更新的選項。這意味著,你可以在對所有設備進行常規更新的時候,可以先在少量設備上導入和測試這些選項。

一個通用的安全模型以及其它許多功能簡化了物聯網應用程式開發和實現的過程。因此,您可以優化您廣泛分佈的設備的性能,同時,確保防止未經授權的惡意使用。