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