嵌入式系統(tǒng)的一個(gè)不幸事實(shí)是:一旦部署并投入使用,它們永遠(yuǎn)不會(huì) 100% 安全,尤其是當(dāng)世界變得更加緊密時(shí)。應(yīng)用于這些系統(tǒng)的安全工程歷來(lái)松懈的方法進(jìn)一步加劇了這一現(xiàn)實(shí)。大多數(shù)設(shè)備專注于設(shè)備特定的軟件,往往忽略操作系統(tǒng)和較低級(jí)別的組件。
隨著全球數(shù)十億嵌入式系統(tǒng)的使用和日益互聯(lián),攻擊者有巨大的動(dòng)機(jī)去設(shè)計(jì)新的和陰險(xiǎn)的方法來(lái)提取敏感數(shù)據(jù)和/或重新利用現(xiàn)場(chǎng)設(shè)備以謀取私利。
此外,設(shè)備本身和特定功能的軟件通常需要隨著時(shí)間的推移進(jìn)行更新,以應(yīng)對(duì)新的安全威脅。犯罪黑客不斷開(kāi)發(fā)破壞性攻擊的新方法,例如今年早些時(shí)候?qū)Ψ鹆_里達(dá)州一家水處理廠的攻擊。
讓我們來(lái)看看 10 個(gè)致命的安全錯(cuò)誤,這些錯(cuò)誤可能會(huì)危及我們的業(yè)務(wù)、金融和關(guān)鍵基礎(chǔ)設(shè)施中的嵌入式系統(tǒng)。
1. 保留您的敏感數(shù)據(jù)和應(yīng)用程序
根據(jù)MITRE 常見(jiàn)弱點(diǎn)枚舉列表,犯罪分子可以讀取、提取和利用您以明文形式留下的數(shù)據(jù)和應(yīng)用程序。加密數(shù)據(jù)和應(yīng)用程序是不夠的;您還必須擔(dān)心加密密鑰的存儲(chǔ)位置和方式以及使用的算法。假設(shè)我們可以只使用 SSL/TLS 來(lái)保護(hù)傳輸中的數(shù)據(jù)是錯(cuò)誤的,因?yàn)槲覀兘?jīng)常忘記相同的數(shù)據(jù)存儲(chǔ)在本地邊緣設(shè)備和云平臺(tái)中。
網(wǎng)絡(luò)犯罪分子很容易獲取明文數(shù)據(jù)并在暗網(wǎng)上出售或?qū)⑵浒l(fā)布在公共文本存儲(chǔ)網(wǎng)站上。
此外,犯罪分子可以很容易地對(duì)明文應(yīng)用程序進(jìn)行逆向工程和惡意修改。犯罪黑客這樣做是為了暴露秘密、敏感的算法或?qū)е履拇a以意想不到的方式執(zhí)行。
2. 在沒(méi)有安全、經(jīng)過(guò)身份驗(yàn)證的引導(dǎo)的情況下啟動(dòng)您的系統(tǒng)
正如ZDNet報(bào)道的那樣,一名軟件工程師發(fā)現(xiàn)了 LG Android 智能手機(jī)中的引導(dǎo)加載程序漏洞,使設(shè)備容易受到冷啟動(dòng)攻擊。
網(wǎng)絡(luò)犯罪分子可以對(duì)未使用安全啟動(dòng)過(guò)程啟動(dòng)的設(shè)備進(jìn)行 root。此外,它們可以更改您的引導(dǎo)加載程序、操作系統(tǒng)、UEFI BIOS 和硬件/軟件配置,或者用惡意版本替換它們。
更糟糕的是,即使完全重新安裝主機(jī)操作系統(tǒng),其中一些惡意修改也會(huì)持續(xù)存在。
除了以硬件為基礎(chǔ)的經(jīng)過(guò)身份驗(yàn)證和安全的引導(dǎo)實(shí)施之外,您無(wú)法保護(hù)引導(dǎo)序列免受篡改引導(dǎo)加載程序并隨后損害系統(tǒng)的網(wǎng)絡(luò)彈性的攻擊。此外,缺乏安全啟動(dòng)也會(huì)導(dǎo)致各種攻擊和設(shè)備重新利用。
3.讓未經(jīng)授權(quán)的軟件訪問(wèn)未經(jīng)授權(quán)的組件
犯罪黑客可以利用一個(gè)組件的漏洞或隱含信任來(lái)泄露內(nèi)存內(nèi)容和地址等關(guān)鍵信息,從而實(shí)現(xiàn)各種二階攻擊。
如果不限制僅訪問(wèn)完成工作所必需的那些組件,您會(huì)留下意想不到的開(kāi)口,允許攻擊者從一個(gè)組件轉(zhuǎn)向另一個(gè)組件。例如,共享硬盤驅(qū)動(dòng)器或內(nèi)存組件的兩個(gè)軟件可以通過(guò)該硬件進(jìn)行通信(可能通過(guò)利用各種側(cè)通道攻擊),利用其中一個(gè)漏洞訪問(wèn)另一個(gè)。
4. 忽略或錯(cuò)誤配置容器化或隔離機(jī)制
根據(jù) NIST CVE-2021-21284,一個(gè)名為“–userns-remap”的易受攻擊的 Docker 引擎函數(shù)允許攻擊者提升權(quán)限并以 root 用戶身份寫入任意文件。在這種情況下,弱功能特性打破了容器隔離。但是,將容器作為特權(quán)容器執(zhí)行并提供對(duì)主機(jī)系統(tǒng)、其文件和其他容器的無(wú)限制訪問(wèn)權(quán)限的情況并不少見(jiàn)。
錯(cuò)誤配置軟件容器或忽略軟件隔離可能允許網(wǎng)絡(luò)犯罪分子提升權(quán)限并獲得對(duì)系統(tǒng)的未經(jīng)授權(quán)的根級(jí)別訪問(wèn)(完全控制)。所謂的容器和/或 VM 突破使攻擊者能夠自省和修改系統(tǒng)上其他容器或來(lái)賓的內(nèi)容,并可能以意想不到的方式與基于云的服務(wù)進(jìn)行交互。
5. 留下太多的攻擊面
您使用過(guò)多的接口和功能使軟件膨脹得越多,您的攻擊面就越大——攻擊者可以用來(lái)利用您的系統(tǒng)的漏洞、漏洞和漏洞。同樣,您在操作系統(tǒng)映像或應(yīng)用程序包中包含的庫(kù)越多,您的攻擊面就越大,并增加更新、修補(bǔ)和解決各種可能的安全漏洞的負(fù)擔(dān)。犯罪黑客只需要掃描您的系統(tǒng)就知道要攻擊什么。
通過(guò)采用極簡(jiǎn)主義的軟件開(kāi)發(fā)方法,僅添加實(shí)現(xiàn)軟件任務(wù)所需的功能,網(wǎng)絡(luò)攻擊者將更難以利用您的代碼為自己謀利。
6. 發(fā)放不受限制的特權(quán)
當(dāng)您為應(yīng)用程序提供比所需更多的訪問(wèn)權(quán)限(自主訪問(wèn)控制、系統(tǒng)級(jí)權(quán)限、命名空間等)時(shí),網(wǎng)絡(luò)犯罪分子可以利用該訪問(wèn)權(quán)限來(lái)解鎖權(quán)限并操縱您的軟件。一旦攻擊者利用過(guò)多的特權(quán)獲得管理權(quán)限,他們就可以在網(wǎng)絡(luò)上橫向移動(dòng),獲得對(duì)云基礎(chǔ)設(shè)施的訪問(wèn)權(quán),從那里可以獲得對(duì)所有設(shè)備的訪問(wèn)權(quán),從而執(zhí)行拒絕服務(wù)攻擊、降低性能、注入惡意軟件等。
有一些簡(jiǎn)單但相對(duì)未使用的機(jī)制可用于限制對(duì)各種特權(quán)的訪問(wèn)。在 Linux 環(huán)境中最簡(jiǎn)單的情況下,我們可以從標(biāo)準(zhǔn)的用戶/組訪問(wèn)控制開(kāi)始,添加使用后刪除功能的能力(即,可以使用特權(quán)端口啟動(dòng)服務(wù)),然后進(jìn)入Linux 環(huán)境中的各種其他安全選項(xiàng)集。
雖然我們特別關(guān)注邊緣設(shè)備上的無(wú)限制權(quán)限,但同樣的概念也適用于您的整個(gè) DevOps 管道、云基礎(chǔ)設(shè)施和企業(yè)網(wǎng)絡(luò)。
7. 假定信任并允許未經(jīng)身份驗(yàn)證的通信
在這個(gè)ZDNet故事中,研究人員分享了一個(gè)成功的理論攻擊,稱為 Raccoon,它基于 TLS v1.2 協(xié)議,它破壞了敏感的和受保護(hù)的經(jīng)過(guò)身份驗(yàn)證的通信。當(dāng)然,業(yè)界仍然認(rèn)為 TLS v1.2 相對(duì)安全。但是攻擊的成功說(shuō)明了一點(diǎn):您必須主動(dòng)檢查和確認(rèn)安全協(xié)議,僅將信任擴(kuò)展到經(jīng)過(guò)身份驗(yàn)證的用戶和系統(tǒng),并且僅使用加密通道與這些用戶和系統(tǒng)進(jìn)行通信。當(dāng)然,還有另一個(gè)隱含的假設(shè),即我們的設(shè)備本身是可以信任的。如果我們與之通信和交換數(shù)據(jù)的設(shè)備不受信任,那么我們必須解決各種其他問(wèn)題,例如本地?cái)?shù)據(jù)加密、基于硬件的密鑰管理和安全啟動(dòng)。
使用默認(rèn)設(shè)置或易受攻擊的協(xié)議歡迎未經(jīng)授權(quán)的訪問(wèn)并邀請(qǐng)惡意流量進(jìn)入您的系統(tǒng)。
8. 未能檢查輸入
當(dāng)開(kāi)發(fā)人員不檢查輸入時(shí),攻擊者可以將格式錯(cuò)誤的數(shù)據(jù)引入系統(tǒng),導(dǎo)致下游組件發(fā)生故障。使用畸形數(shù)據(jù)的常見(jiàn)攻擊包括 SQL 注入和緩沖區(qū)溢出。
程序員檢查從 Web 表單提交到 RF 捕獲的所有類型數(shù)據(jù)的輸入,以確保受信任的用戶將預(yù)期的數(shù)據(jù)發(fā)送到他們的軟件。預(yù)期數(shù)據(jù)包括數(shù)據(jù)的格式和內(nèi)容。輸入驗(yàn)證可防止不受信任的用戶發(fā)送帶有惡意意圖的意外數(shù)據(jù),并假定所有并非源自應(yīng)用程序本身的數(shù)據(jù)都是不受信任的。
9. 錯(cuò)失安全編碼的機(jī)會(huì)
易受攻擊的編碼實(shí)踐讓軟件缺陷在開(kāi)發(fā)過(guò)程中未被發(fā)現(xiàn),更糟糕的是,許多這些實(shí)踐和訪問(wèn)可能導(dǎo)致攻擊。如果您不使用安全的開(kāi)發(fā)工具和技術(shù),網(wǎng)絡(luò)犯罪分子通常會(huì)突破您軟件中的這些漏洞,并可能利用您的漏洞訪問(wèn)其他網(wǎng)絡(luò)和組織。
但是通過(guò)安全的編碼工作流程和自動(dòng)化測(cè)試,您可以在開(kāi)發(fā)流程中及早發(fā)現(xiàn)并經(jīng)常修復(fù)漏洞。請(qǐng)記住:安全性和安全開(kāi)發(fā)流程不是單點(diǎn)解決方案,需要一起實(shí)踐。
10. 將希望作為安全策略
有限的安全人員手動(dòng)查看事件日志以尋找攻擊和違規(guī)的跡象需要很長(zhǎng)時(shí)間。相反,您需要利用自動(dòng)化工具來(lái)持續(xù)監(jiān)控您的系統(tǒng)并檢查您的記錄以獲取入侵的歷史證據(jù)。當(dāng)然,這一切都假設(shè)我們正在記錄正確的事情,并且有足夠的細(xì)節(jié)來(lái)做出決定。
現(xiàn)代技術(shù)可以攝取和審計(jì)整個(gè)系統(tǒng)的日志集合。行為工具可以識(shí)別您的網(wǎng)絡(luò)和軟件中的可疑活動(dòng)。您甚至可以從使用當(dāng)前威脅簽名來(lái)識(shí)別攻擊的惡意軟件掃描中受益。通過(guò)結(jié)合這些努力,您可以全面了解您的安全狀態(tài)并全天候更新。
審核編輯 黃昊宇
-
嵌入式
+關(guān)注
關(guān)注
5152文章
19673瀏覽量
317540 -
系統(tǒng)
+關(guān)注
關(guān)注
1文章
1032瀏覽量
21818
發(fā)布評(píng)論請(qǐng)先 登錄
嵌入式應(yīng)用中常見(jiàn)的安全威脅

評(píng)論