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