物聯(lián)網(wǎng)(iot)是現(xiàn)代經(jīng)濟的推動力,被各種規(guī)模和所有行業(yè)的組織所采用。這些活動的核心是一個復雜的軟件生態(tài)系統(tǒng),這是遠程通信技術(shù)系統(tǒng)無縫運行所必不可少的。這個生態(tài)系統(tǒng)包括為低資源設(shè)備設(shè)計的操作系統(tǒng)、促進設(shè)備間通信的中間件、專用軟件和管理軟件。
開放源代碼軟件已經(jīng)成為這一生態(tài)系統(tǒng)的一個重要組成部分。然而,盡管開放源代碼提供了許多好處,但它也帶來了內(nèi)在的安全挑戰(zhàn),必須解決這些挑戰(zhàn),以保護iot設(shè)備網(wǎng)絡(luò)。本文探討了在iot域中開源安全的重要性,概述了風險、最佳實踐和戰(zhàn)略步驟,以加強對潛在威脅的iot部署。
互聯(lián)網(wǎng)軟件生態(tài)系統(tǒng)
物聯(lián)網(wǎng)部署使用各種軟件解決方案,包括操作系統(tǒng)、中間件和應(yīng)用程序。這些軟件包括安裝在信息通信技術(shù)設(shè)備上的軟件,以及用于操作和管理信息通信技術(shù)設(shè)備及其生成的數(shù)據(jù)的軟件。這個軟件越來越?基于開源技術(shù) .
多學科技術(shù)軟件生態(tài)系統(tǒng)的主要要素是:
· 實時操作系統(tǒng) : 輕量級操作系統(tǒng)是專門為iot設(shè)備而設(shè)計的,它們是為處理這些設(shè)備在處理能力和內(nèi)存方面的限制而建立的。
· 中間件: 這是指作為操作系統(tǒng)和應(yīng)用程序之間的橋梁的軟件。它有助于跨不同的綜合信息技術(shù)設(shè)備和后端系統(tǒng)的通信和數(shù)據(jù)管理。中間件可以處理設(shè)備管理、數(shù)據(jù)聚合和消息傳遞協(xié)議,如MQTT或COAP。
· 申請: 這些都是專門的軟件解決方案,專門針對在一個綜合業(yè)務(wù)點框架內(nèi)的具體任務(wù),例如數(shù)據(jù)分析、設(shè)備管理或用戶界面設(shè)計。使用適合于受約束環(huán)境的編程語言開發(fā)了iot應(yīng)用程序,這些語言包括:組蛇、JavaSrispt(node.js)和C/C++。
· 管理軟件: 協(xié)助提供、監(jiān)控和維護iot設(shè)備的工具和平臺。這包括提供設(shè)備管理和分析服務(wù)的基于云的平臺,如美國信息技術(shù)協(xié)會、微軟AZOOT和谷歌云計算系統(tǒng)。
開放源代碼已經(jīng)成為企業(yè)軟件不可分割的一部分,也是在大多數(shù)IOT部署中使用的。通用開放源代碼軟件的例子包括泛美衛(wèi)生組織,標準的通用信息技術(shù)協(xié)議的可擴展實現(xiàn),提供設(shè)備與設(shè)備連接框架的通用信息技術(shù),以及像Zephyr和自由操作系統(tǒng)這樣的實時操作系統(tǒng)。
與開源相關(guān)的安全威脅及其如何影響iot
盡管Open source library提供了許多優(yōu)勢,但也帶來了嚴重的安全風險。主要風險包括:
代碼中的脆弱性
與iot的開源軟件相關(guān)的最重要的安全風險之一是代碼中的漏洞。這些弱點可能是多種原因造成的,包括編碼方法差、缺乏適當?shù)臏y試或?qū)Π踩幋a技術(shù)的知識不足。開源貢獻者通常不遵循同樣的標準?應(yīng)用程序安全措施 就像商業(yè)軟件開發(fā)者一樣。
當在iot設(shè)備中使用的開源軟件存在漏洞時,它們就會被惡意行為者利用。這些漏洞可以使攻擊者獲得對設(shè)備的未經(jīng)授權(quán)的訪問,破壞其操作,甚至將其用作攻擊網(wǎng)絡(luò)中其他設(shè)備的發(fā)射臺。
依賴鏈問題
依賴鏈是一系列相互依賴的軟件組件。如果鏈中的一個組件具有弱點,它會影響整個鏈,導致重大的安全風險。
在開源世界,許多項目依賴其他開源項目。這種相互依賴性創(chuàng)建了一個復雜的軟件組件網(wǎng)絡(luò),每個組件都有潛在的弱點。如果在其中一個依賴項中發(fā)現(xiàn)一個漏洞,那么它可以影響所有依賴它的項目。
不安全的默認配置
在開源軟件中,不安全的默認配置是另一個常見的安全問題。通常,為了使軟件更容易使用,開發(fā)人員將設(shè)置默認配置,將易用性優(yōu)先于安全性。這些默認配置可以包括弱密碼、打開網(wǎng)絡(luò)端口或運行在設(shè)備上的不必要的服務(wù)。
這些不安全的默認配置可能是攻擊者的金礦。他們可以很容易地利用這些配置獲得對設(shè)備的未經(jīng)授權(quán)的訪問,損害其操作,甚至劫持它的惡意目的。
供應(yīng)鏈攻擊
供應(yīng)鏈攻擊是開源軟件界日益關(guān)注的問題。在供應(yīng)鏈攻擊中,攻擊者會損害軟件供應(yīng)鏈的一個組件,例如庫或開發(fā)工具,以將惡意軟件交付到最終產(chǎn)品。
就iot而言,供應(yīng)鏈攻擊可能會損害許多iot設(shè)備中使用的開源組件。一旦組件被破壞,它就會影響到所有使用它的設(shè)備,導致廣泛的安全問題。
資源有限
最后,有限的資源限制也會對海洋生態(tài)系統(tǒng)造成安全風險。許多平板電腦設(shè)備設(shè)計得既小又便宜,這通常意味著它們的處理能力和內(nèi)存有限。由于缺乏資源,難以實施強有力的安保措施。
此外,這些限制還可能使定期更新設(shè)備軟件成為挑戰(zhàn),這是維護安全的一個重要方面。如果在設(shè)備中使用的開放源代碼軟件中發(fā)現(xiàn)了漏洞,那么由于這些資源限制,可能無法快速修補漏洞。
什么是開源安全?
開放源代碼安全是指用于保護任何人都可以公開使用、修改和共享的軟件的實踐、方法和工具。開源安全程序通常涉及:
· 查明弱點: 持續(xù)掃描和識別開源組件中的安全漏洞。
· 應(yīng)用補丁: 熟練應(yīng)用更新和補丁及時修復已知的漏洞。
· 與保安界合作: 參與更廣泛的開源社區(qū),分享有關(guān)漏洞和安全最佳做法的知識。
· 實施治理和合規(guī): 確保開放源代碼軟件的使用符合本組織的安全政策和合規(guī)要求。
· 實施安全工具: 利用設(shè)計的工具自動檢測和解決安全問題,并強制執(zhí)行安全政策。這些通常包括靜態(tài)分析、動態(tài)分析和材料軟件賬單。
· 教育和認識: 培訓開發(fā)人員和其他利益攸關(guān)方關(guān)于開放源代碼安全的重要性和維護它的最佳做法。
對于常常大量部署設(shè)備且難以更新的iot而言,對強有力的開源安全措施的需求尤為重要。這些裝置的相互關(guān)聯(lián)性可能擴大任何單一脆弱性的影響,因此,對開源安全采取系統(tǒng)的辦法對于維護互聯(lián)網(wǎng)生態(tài)系統(tǒng)的完整性和可靠性至關(guān)重要。
為實現(xiàn)iot開放源代碼安全而采取的步驟
將開放源代碼安全實踐集成到iot開發(fā)生命周期中
將安全實踐集成到開發(fā)生命周期的所有階段--從系統(tǒng)的初始設(shè)計到部署和外地業(yè)務(wù)--是至關(guān)重要的。它涉及對系統(tǒng)中使用的開放源代碼組件進行定期安全審查、審計和更新。
此外,開發(fā)人員應(yīng)當接受安全編碼實踐方面的培訓。這種培訓有助于在開發(fā)過程的早期發(fā)現(xiàn)和減輕開放源代碼組件的潛在弱點。另一個方面是使用自動化工具,最好是作為CI/CD管道的一個組成部分,掃描開源組件中的漏洞。這些工具可以檢測已知的安全缺陷并提供警報,使開發(fā)人員能夠及時解決問題。
使用開放源代碼識別固件和軟件,并確保定期更新
這一步驟涉及到編目所有在IOT生態(tài)系統(tǒng)中使用的開源組件,包括它們的版本和依賴關(guān)系。這一清單使各組織能夠迅速確定其系統(tǒng)中哪些部分可能受到開源軟件新發(fā)現(xiàn)的漏洞的影響。
在這個過程中,定期更新和補丁管理是必不可少的。各組織需要建立程序,以便定期更新和修補其遠程操作設(shè)備上的軟件。這不僅包括應(yīng)用軟件,還包括底層操作系統(tǒng)和中間件。
鑒于部署的規(guī)模和多樣性,自動化在更新過程中發(fā)揮著關(guān)鍵作用。自動化工具可以幫助高效和可靠地向大量設(shè)備分發(fā)更新和補丁。然而,在廣泛部署之前,在受控環(huán)境中測試更新也是至關(guān)重要的,以避免引入新問題。
接收相關(guān)開源項目的安全咨詢
各組織應(yīng)訂閱與其使用的開源組件有關(guān)的安全公告和警報。這種積極主動的做法確保他們及時意識到任何已知的漏洞、補丁和更新。參與開放源社區(qū)和論壇也是有益的。這些平臺往往就潛在的安全問題提供預警,并可成為咨詢和最佳做法的寶貴資源。
為設(shè)備與設(shè)備之間的交互執(zhí)行強有力的認證協(xié)議
認證協(xié)議是必要的,以確保只有授權(quán)的設(shè)備可以訪問您的多用途網(wǎng)絡(luò)和任何未經(jīng)授權(quán)的嘗試快速檢測和阻止。這是第二道防線,它可以確保如果開源漏洞被利用,威脅就不能在整個網(wǎng)絡(luò)中傳播。
認證設(shè)備到設(shè)備的交互可能涉及使用加密來保護傳輸中的數(shù)據(jù),或者執(zhí)行相互認證協(xié)議來驗證交互中所涉及的兩個設(shè)備的身份。
結(jié)論
最后,在互聯(lián)網(wǎng)內(nèi)使用開放源代碼會帶來一系列安全挑戰(zhàn),可能損害互聯(lián)網(wǎng)生態(tài)系統(tǒng)的完整性。風險從代碼中的漏洞和不安全的違約到不安全依賴的連鎖反應(yīng)。應(yīng)對這些風險需要一項全面的安全戰(zhàn)略,其中包括風險評估、選擇安全的開放源碼軟件、堅持安全的開發(fā)實踐、安全的配置、認真的安全測試和審計、及時的補丁管理以及細致的依賴性跟蹤。
各組織必須致力于不斷改善其安全態(tài)勢,從事件中吸取教訓,并適應(yīng)新的威脅。這種警惕性是必要的,以便在不損害設(shè)備安全和用戶隱私的情況下,充分發(fā)揮信息通信技術(shù)的潛力。開發(fā)人員、組織和整個安全社區(qū)之間的公開協(xié)作將是防止開源威脅的關(guān)鍵。