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