百分之七十的網(wǎng)絡(luò)攻擊以應(yīng)用層為目標。雖然安全的 RTOS 提供了對嵌入式設(shè)備的安全至關(guān)重要的功能,但這只是基礎(chǔ),而不是完整的解決方案。需要問的一些問題是:為什么物聯(lián)網(wǎng)和嵌入式設(shè)備,即使是那些具有安全 RTOS 的設(shè)備,仍然容易受到攻擊?哪些漏洞是可能的,哪些漏洞已報告?保護這些設(shè)備缺少什么?設(shè)計工程師如何確保他們的設(shè)備安全?我很高興你問。
高級安全功能是許多 RTOS 供應(yīng)商的主要賣點?,F(xiàn)代 RTOS 提供多種功能,例如多個獨立的安全層 (MILS) 架構(gòu)、內(nèi)置資源配置,以及對 IEC 62304、IEC 61508、IEC 50128、DO-178B/C、EAL 和 ARINC 653 等安全認證的支持認證。此外,許多還提供安全服務(wù),例如身份驗證、訪問控制、數(shù)據(jù)加密和安全協(xié)議。毫無疑問,嵌入式設(shè)計工程師現(xiàn)在在 RTOS 中擁有比十年前更豐富的安全工具和更強大的安全基礎(chǔ)。
盡管這一切令人印象深刻,但它仍然只是一個基礎(chǔ)。運行不安全操作系統(tǒng)并通過加密數(shù)據(jù)通道進行通信的設(shè)備顯然是不安全的。反之則不成立。保護操作系統(tǒng)和添加安全協(xié)議只是構(gòu)建安全設(shè)備的第一步。
即使有了這些部件,仍然需要考慮重要的安全挑戰(zhàn)。在 RTOS 級別實施安全性后,對協(xié)議或應(yīng)用程序的成功攻擊可能無法使攻擊者完全控制系統(tǒng),但這并不意味著他無法造成相當大的損害。
有效并通過 RTOS 安全的數(shù)據(jù)或通信仍可能對應(yīng)用層構(gòu)成安全威脅。示例是針對 Web 服務(wù)或針對監(jiān)控和數(shù)據(jù)采集 (SCADA) 系統(tǒng)的攻擊。最近的一次 SCADA 攻擊涉及反復(fù)打開和關(guān)閉水泵,直到水泵電機燒壞。盡管使用了安全的操作系統(tǒng),但這種攻擊集中在應(yīng)用層并導(dǎo)致設(shè)備故障。操作系統(tǒng)的安全性從未被破壞,但設(shè)備卻遭到了破壞。多達 70% 的網(wǎng)絡(luò)攻擊針對應(yīng)用層,很明顯,安全必須擴展到應(yīng)用層。
應(yīng)用層攻擊
2013 年,安全研究員 Craig Heffner 在許多 D-Link 路由器的固件中發(fā)現(xiàn)了一個后門。這些路由器中的 HTTP 服務(wù)器包含一個繞過標準身份驗證過程的后門。Web 服務(wù)器檢查瀏覽器用戶代理,如果它與“xmlset_roodkcableoj28840ybtide”匹配,則跳過身份驗證檢查。向后讀的字符串“由 04882 joel backdoor 編輯”表明這是一個故意植入的后門。
后門提供了對設(shè)備配置功能的訪問。在同一個 D-Link 路由器中使用的 Web 服務(wù)器已經(jīng)包含許多漏洞,其中一些可以在某些情況下用于允許遠程代碼執(zhí)行。
在澳大利亞,Vitek Boden 從 2000 年 1 月開始對 Maroochy Water Services 的 SCADA 系統(tǒng)發(fā)動了為期三個月的戰(zhàn)爭,導(dǎo)致數(shù)百萬加侖的污水流入陽光海岸郊區(qū)的水道、酒店場地和運河。這是一個有趣的案例研究,因為肇事者不僅導(dǎo)致泵在應(yīng)有的時候停止運行,而且他還能夠阻止報告警報,使問題進一步復(fù)雜化。這個例子也顯示了內(nèi)部攻擊的危險,因為 Boden 是 Maroochy Water Services 的前承包商。
其他廣泛報道的針對應(yīng)用層服務(wù)的攻擊包括對支持網(wǎng)絡(luò)的 IP 攝像頭和保姆攝像頭的攻擊,這些攻擊的安全性出了名的薄弱??焖俚?Google 搜索將顯示針對基于網(wǎng)絡(luò)的安全攝像頭、保姆攝像頭和 IP 攝像頭的多份報告。這些漏洞允許未經(jīng)授權(quán)的用戶查看來自攝像機的視頻流,從而允許他們監(jiān)視攝像機設(shè)置為觀看的任何內(nèi)容。更糟糕的是,在某些情況下,他們甚至可以指示“攝像頭開啟”燈不激活,導(dǎo)致受害者不知道他們正在被監(jiān)視。
應(yīng)用層安全
所有這些攻擊的共同點是它們沒有針對底層操作系統(tǒng)中的漏洞,而是依賴于應(yīng)用層的漏洞。它們的另一個共同點是它們都利用了系統(tǒng)的標準接口。在每種情況下,應(yīng)用層都允許未經(jīng)授權(quán)的方執(zhí)行合法命令。
為了保護嵌入式設(shè)備的應(yīng)用層免受網(wǎng)絡(luò)攻擊,需要一組功能來確保應(yīng)用程序只處理來自授權(quán)用戶的命令,確保所有處理的命令都是有效的(例如,包含合法數(shù)據(jù))并且所有命令都是適當?shù)模ɡ?,改變化學加工廠的成分比例或加工溫度)。為設(shè)備提供更高級別安全性的其他功能包括檢測和報告可疑命令或活動的能力、允許在確實發(fā)生問題時進行審計的命令歷史記錄以及確保設(shè)備數(shù)據(jù)受到保護的數(shù)據(jù)保護。
工業(yè)控制系統(tǒng)的應(yīng)用安全
工業(yè)控制系統(tǒng)在許多方面都是現(xiàn)代嵌入式和物聯(lián)網(wǎng)設(shè)備的典型特征。它們通常使用安全的 RTOS 構(gòu)建,提供執(zhí)行關(guān)鍵功能的客戶應(yīng)用程序,并且可以通過以太網(wǎng)或 Wi-Fi 網(wǎng)絡(luò)接收的消息進行控制。
出于我們的目的,請考慮在化學制造廠的生產(chǎn)過程中使用的工業(yè)控制系統(tǒng)的示例。這些系統(tǒng)經(jīng)常使用基于以太網(wǎng)的控制協(xié)議(例如 EtherNet/IP 或 Modbus TCP)進行配置、控制和報告??刂茀f(xié)議規(guī)定了化學處理中涉及的各種參數(shù)的操作。這些可以包括執(zhí)行處理的溫度、比例和成分、各個處理階段的時間、流速等。除了控制協(xié)議(Modbus TCP、EtherNet/IP 等),設(shè)備可能包括一個用于查看配置和處理信息的 Web 界面,以及一個用于下載新固件文件的 FTP 界面。
雖然大多數(shù)針對應(yīng)用程序的網(wǎng)絡(luò)攻擊都試圖利用應(yīng)用程序接口中的弱點,但它們也可能攻擊應(yīng)用程序?qū)崿F(xiàn),或設(shè)備支持的接口/應(yīng)用程序之間的交互(表 1)。
表 1:網(wǎng)絡(luò)攻擊的類型以及它們?nèi)绾卫孟到y(tǒng)中的弱點。
應(yīng)用程序協(xié)議過濾提供對應(yīng)用程序接口和實現(xiàn)攻擊的保護。如果設(shè)備包含嵌入式防火墻,則可以擴展防火墻以執(zhí)行協(xié)議過濾。否則,可以實現(xiàn)應(yīng)用程序保護 API 來為設(shè)備執(zhí)行協(xié)議過濾。特定于應(yīng)用程序的協(xié)議過濾應(yīng)提供:
協(xié)議驗證——確保所有消息都符合協(xié)議規(guī)范并驗證所有數(shù)據(jù)是否有效且在范圍內(nèi)。
策略實施——協(xié)議過濾器應(yīng)支持用戶定義的策略,以將數(shù)據(jù)范圍值限制在設(shè)備或安裝特定范圍內(nèi)。例如,協(xié)議可能允許 0 到 100 的值范圍,但設(shè)備的操作可能只允許 40 到 60 范圍內(nèi)的值。協(xié)議過濾器應(yīng)該支持這個更受約束的值集。
訪問控制——ModbusTCP 等工業(yè)協(xié)議不提供任何訪問控制機制。因此,設(shè)備接收到的任何合法 Modbus 命令都會被處理。訪問控制策略可以在應(yīng)用過濾器中實現(xiàn),以控制允許哪些設(shè)備向設(shè)備發(fā)送命令。例如,如果 Modbus 命令不是來自白名單上的機器,則可以配置 IP 地址白名單并阻止它們。可以為更細粒度的控制提供額外的控制。
語義過濾——工業(yè)控制設(shè)備的一個重大挑戰(zhàn)是編碼規(guī)則以回答“這個命令是否有意義”的問題。雖然協(xié)議強制、策略強制和訪問控制強制確保接收到的命令是合法的并且來自受信任的設(shè)備或機器,但它們?nèi)匀徊荒芙鉀Q授權(quán)內(nèi)部人員意外或惡意更改的問題。語義過濾試圖防止諸如命令的快速循環(huán)或以操作上不正確的方式更改值之類的事情,例如在延長的時間段內(nèi)設(shè)置超過流出率的流入率。
命令審計日志——記錄應(yīng)用程序執(zhí)行的所有命令,以備以后分析,以防出現(xiàn)問題。
入侵檢測 API——允許設(shè)備工程師記錄和報告每次訪問、身份驗證嘗試或任何其他入侵事件的 API。例如,如果 Web 界面包含使用用戶名/密碼的身份驗證,則應(yīng)使用此 API 記錄每次登錄嘗試。然后,入侵檢測 API 會將此事件報告給管理系統(tǒng),管理系統(tǒng)將分析接收到的數(shù)據(jù)并檢測以設(shè)備本身無法實現(xiàn)的方式探測單個設(shè)備或多個設(shè)備的嘗試。該設(shè)備可能沒有智能或信息來區(qū)分忘記密碼的系統(tǒng)管理員的重復(fù)訪問嘗試和黑客的系統(tǒng)探測。
事件報告——提供一種在檢測到異常行為時發(fā)送警報的機制。
數(shù)據(jù)防篡改檢測——這是使用靜態(tài)配置數(shù)據(jù)的安全散列來實現(xiàn)的,這讓系統(tǒng)可以檢測到何時進行了未經(jīng)授權(quán)的更改。數(shù)據(jù)防篡改可以檢測跨應(yīng)用程序攻擊,例如未經(jīng)授權(quán)的用戶通過 FTP 或 Web 界面更改配置數(shù)據(jù)。
應(yīng)用層安全框架
應(yīng)用層安全框架,例如 Icon Labs Floodgate Defender,為嵌入式設(shè)備中的應(yīng)用安全提供框架(圖 2)。該框架包括:
閘門衛(wèi)士
應(yīng)用協(xié)議過濾引擎和嵌入式 IDS/IPS
水閘安全
用于防篡改保護的安全文件哈希
運行驗證安全哈希的審計任務(wù)
水閘意識
用于事件報告和命令審計日志記錄的用戶 API
閘門代理
基于云的管理系統(tǒng)的接口支持
事件和審計日志
安全策略的管理和執(zhí)行
系統(tǒng)級防火墻過濾和入侵檢測功能
圖 2:嵌入式應(yīng)用程序的安全框架應(yīng)保護設(shè)備免受無效和未經(jīng)授權(quán)的命令、保護數(shù)據(jù)以及檢測和報告異常流量。
審核編輯:郭婷
評論
查看更多