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