隨著我們繼續看到更多連接互聯網的設備,我們必須承認它們將容易受到攻擊、遠程禁用或以其他不受歡迎的方式受到損害——每種情況都嚴重威脅到這些新商業模式的整個基礎。
考慮以下家庭自動化領域的示例。它是物聯網 (IoT) 的最大消費者應用程序之一,并且可能是攻擊者最有利可圖的應用程序之一。犯罪分子可以如何處理存儲在可能被認為是無害的家庭自動化設備(如 IP 連接的智能恒溫器)中的信息?嗯,這些設備是為了學習你的習慣而設計的。它們旨在識別或“學習”您何時在家和何時外出,以便它們可以優化用于加熱和冷卻房屋的能量。你可以猜到我會用這個去哪里。他們會了解您的習慣并跟蹤您的日常生活——對于那些想不請自來的人來說,這是一種聳人聽聞的素材。
還記得三星智能電視的案例嗎?為了能夠響應語音命令,它會不斷地“傾聽”您的談話,對其進行解釋,然后甚至可能將其發送給“授權”的第三方。是的,我是認真的。早在 2013年,智能電視就被證明是可破解的(不是沒有鎖定安全性)。這是一個完美的例子,證明了對多個可訪問性級別的需求。在智能電視案例中,只有一個用戶帳戶可能,并且該用戶(即攻擊者)可以訪問設備上的任何內容。
通過默默無聞的安全
在過去的許多情況下,產品開發人員會依靠他們的設備太少且對黑客來說太無趣這一事實來嘗試利用它們。換句話說,這些設備是模糊的——網絡上表面上未知的節點。不幸的是,這種策略將不再有效。預計在未來五年內將有數十億臺設備連接到互聯網(功能種類繁多),這些曾經“不感興趣”的設備將成為非常誘人的攻擊目標。
這個特定的網站專門用于展示連接到 Internet 的設備的存在,以及(如果可能)的類型。此類設備可能是網絡攝像頭、恒溫器或任何其他聯網的家庭自動化設備。通過這個網站,訂閱者可以掃描和搜索一系列連接的設備。
現在,如果您在這種情況下依靠默默無聞來保護您,您可能不會擔心更改默認 root 密碼。此密碼由供應商設置為始終同名,因為如果默認密碼始終相同,則編寫文檔非常簡單。對消費者來說是個壞主意。..
未更改的默認 root 密碼是對黑客的公開邀請,可以登錄并控制攝像頭。他們有效地獲得了通過遙控器查看和錄制視頻的完全控制權,而所有者完全不知道。
您可能讀過一個關于嬰兒和父母用作嬰兒監視器的網絡攝像頭的故事。父親走進他孩子的房間,聽到一個男人通過攝像頭的揚聲器在催促孩子“醒來”。當父親走進房間時,鏡頭搖動,另一端的人開始對他大喊粗俗,直到他拔掉了相機。
這只是為什么互聯網安全在未來幾年將變得非常重要的眾多例子之一。它需要成為聯網設備制造商的首要考慮因素。
這些設備中的大多數都運行 Linux,這是世界上用于運行嵌入式設備的最流行的操作系統。在本文中,我們將探討在保護連接 Linux 的設備時需要考慮的幾種技術。
在我們詳細介紹之前,重要的是您必須深入了解安全風險,識別與此類業務攻擊相關的潛在成本,并最終了解如何設計您的軟件并適當地建立智能安全策略。應該說,額外的安全性確實是有代價的,通常是在性能損失、功能受限和額外的開發成本方面。
為了說明這些考慮,我希望您考慮在筆記本電腦或工作站上運行增強的安全軟件的體驗。我說的是防病毒軟件、驅動器或文件系統加密以及訪問控制軟件。我們大多數人都欣賞這些程序提供的額外安全性。但是,我可能會偏離基礎,我猜大多數讀者有時實際上會禁用部分或全部功能,特別是如果您是開發人員并嘗試運行一些 CPU 密集型任務,安裝可能無法安裝的軟件工具或實用程序被 IT “批準”,甚至運行執行大量文件系統訪問的程序,例如從源代碼構建 Linux 發行版。
保護連接的 Linux 設備
在這里,我將分享一些簡單的方法,您可以使您的嵌入式 Linux 產品更安全地抵御某些類型的威脅,而無需安裝太多額外的軟件或專有(商業)軟件。
禁用并刪除(或不安裝)不必要的服務
Linux 的優點之一是在開發過程中利用網絡服務調試和部署應用程序是多么容易。這些服務(TFTP、SFTP、SSH、NTP、gdbserver 等)也是攻擊者目標最豐富的切入點。您應該只在生產期間在您的 Linux 平臺中實現特定的必需服務,并使用諸如 nmap 之類的端口掃描器來檢查開放端口(例如,偵聽服務)。
使用防火墻
防火墻的基本原因是在內部和外部網絡之間提供屏障。這是網關或路由器的關鍵功能,因為假設內部網絡是開放且受信任的。Linux 有許多可用的防火墻解決方案。其中包括iptables/netfilter、Shorewall和UFW(簡單防火墻)。有不同級別的功能、易用性和可配置性。
安全
Grsecurity是 Linux 內核源代碼的一組補丁,可提供增強的安全性。它為內核提供了基于角色的訪問控制 (RBAC) 系統,因此進程(和用戶)只能訪問最少數量的文件,僅此而已。此外,它還提供了一個名為 PaX 的不同名稱的捆綁補丁。PaX 提供了其他安全功能,可以通過創建執行空間保護來消除某些其他類型的攻擊,例如緩沖區溢出。它還可以解決進程的空間布局隨機化問題,以擊敗依賴于了解任務的默認虛擬內存組織(緩沖區溢出和其他攻擊)的漏洞[8]。
RBAC
RBAC 的目標是最小化用戶或進程對系統其余部分的特權。例如,許多連接互聯網的基于 Linux 的系統可以實現許多互聯網服務,包括 Web 服務器以及安全外殼 (SSH) 服務器。這些提供了對設備的各種級別的訪問,允許用戶使用漂亮的用戶界面(通過 Web 服務器)進行簡單的配置更改,或者使用 SSH 進行更精細的更改。RBAC 可以根據用戶的特定角色限制用戶對沙箱的讀取、寫入和執行權限。這類似于基于 Linux/Unix 組限制對文件的訪問,其中 RBAC 中的角色類似于組。
RBAC 如何真正幫助保護您的設備?對于初學者,您可以設置一個策略來限制所有用戶對特定文件和系統服務的訪問,甚至包括 root 用戶。如果使用不同的漏洞利用來獲得 root,則攻擊者可能無法獲得對系統的完全訪問權限,這是他們成為 root 用戶時通常期望的。
PaX 功能
PaX(grsecurity 的一部分)有助于抵御緩沖區溢出攻擊。緩沖區溢出是指攻擊者將數據注入進程的堆棧,從而允許他們更改程序流程并執行惡意代碼。
許多現代處理器架構都實現了一個位 (NX),它將內存部分標記為可執行或不可執行。PaX 可以關閉所有數據段的執行權限,并可以禁用內存中所有可執行段的寫權限。這樣,即使攻擊者能夠實現緩沖區溢出,他們也無法將代碼加載到指定的可執行內存中。
此外,PaX 在加載時隨機化進程的地址空間。大多數進程將加載到虛擬內存的特定區域,加載庫,并將堆棧放置在已知的內存位置(映射)中。這使得攻擊者很容易運行緩沖區溢出,因為堆棧在同一個地方。通過隨機化堆棧位置,除了內存的其他部分之外,它確實很難運行緩沖區溢出,因為 (A) 攻擊者必須猜測堆棧的位置,或者 (B) 攻擊者可能會覆蓋一部分可執行代碼并使進程自身崩潰。
Grsecurity 實現和配置
grsecurity 的大部分功能都不需要額外的配置,這是其他 Linux 安全增強(例如 SELinux)所不能做到的。
您可以通過下載內核版本的補丁來實現 grsecurity,然后使用補丁實用程序將補丁更改應用到內核源代碼樹。在編譯內核之前,您需要配置 grsecurity 的構建選項。有很多選項,但您可能想要開始的一個是將 GRKERNSEC_CONFIG_AUTO 設置為 Y。這將為您的內核配置 grsecurity 提供最簡單的方法,并且可能是一個很好的開發基準。
把它包起來(安全,連接時)
對于物聯網產品,在設計之初就將安全性構建到產品中是絕對必要的。如果您不這樣做,您的業務的關鍵部分就會受到攻擊。真的就是這么簡單。您構建的安全級別需要與與給定受損設備相關的風險相匹配。不過,請記住,您可以做一些相當簡單的事情來大大提高保護級別。
-
處理器
+關注
關注
68文章
19178瀏覽量
229200 -
Linux
+關注
關注
87文章
11232瀏覽量
208950 -
源代碼
+關注
關注
96文章
2944瀏覽量
66673
發布評論請先 登錄
相關推薦
評論