標(biāo)簽: 物聯(lián)網(wǎng)軟件開發(fā)公司 2024-08-01 次
隨著我們持續(xù)將網(wǎng)絡(luò)安全納入物聯(lián)網(wǎng)應(yīng)用部署,我們要考慮的下一個領(lǐng)域是創(chuàng)建自己的軟件系統(tǒng)所面臨的挑戰(zhàn)。讓我們考慮一下大多數(shù)人在創(chuàng)建軟件系統(tǒng)時(shí)采用的方法。開發(fā)能夠解決客戶問題的新應(yīng)用程序的興奮感在設(shè)計(jì)過程中非常令人鼓舞。通常,系統(tǒng)開發(fā)人員首先關(guān)注的是與用戶體驗(yàn)相關(guān)的項(xiàng)目:
應(yīng)用程序的目的是什么?我們將允許用戶完成什么?該應(yīng)用程序的主要功能是什么?應(yīng)用程序?qū)⒃谀睦镞\(yùn)行——在 PC 還是移動設(shè)備上?這對架構(gòu)意味著什么?UI 應(yīng)該如何設(shè)計(jì)?怎樣才能讓它更簡單、更直觀?
這些都很重要,但您發(fā)現(xiàn)還缺少什么嗎?從開發(fā)過程一開始就需要考慮安全問題。將網(wǎng)絡(luò)安全納入應(yīng)用程序開發(fā)的設(shè)計(jì)、開發(fā)和測試以及維護(hù)階段將使產(chǎn)品生命周期管理變得更加容易。
設(shè)計(jì)
在開始設(shè)計(jì)應(yīng)用程序時(shí),請考慮與應(yīng)用程序相關(guān)的潛在威脅。例如:
物聯(lián)網(wǎng)軟件開發(fā)內(nèi)共享的信息有多敏感???
您可能正在提供一些非常通用的信息和交互——在這種情況下,您可能決定不考慮安全性,并允許匿名訪問應(yīng)用程序和數(shù)據(jù)。工作完成了,您現(xiàn)在可以繼續(xù)設(shè)計(jì) UI 和行為的精彩部分。但如果它更敏感,那么您需要再考慮一下。
標(biāo)準(zhǔn)身份驗(yàn)證和授權(quán)
如果您提供的信息需要某種程度的互動,且該互動應(yīng)保密,則需要進(jìn)行一定程度的身份驗(yàn)證。音樂流媒體平臺就是一個典型的例子;您可以匿名訪問和使用該平臺,但如果您想擺脫廣告并創(chuàng)建離線播放的內(nèi)容,則必須登錄。您還需要提供付款詳細(xì)信息,而您絕對不想與公眾分享這些信息。??
對于這種方法,您需要使用我們之前關(guān)于這些主題的博客中討論過的標(biāo)準(zhǔn)身份驗(yàn)證和授權(quán)技術(shù)。需要記住的重要一點(diǎn)是,即使您只需要應(yīng)用程序的部分內(nèi)容是安全的,也需要認(rèn)真對待安全性。此領(lǐng)域的一個典型錯誤是用戶可以錯誤地從應(yīng)用程序未經(jīng)身份驗(yàn)證的區(qū)域訪問數(shù)據(jù) - 這是設(shè)計(jì)未正確組件化安全區(qū)域的地方。
高度監(jiān)管的行業(yè)
當(dāng)您提供對高度機(jī)密信息的訪問和交互時(shí),例如移動銀行應(yīng)用程序,您需要提供目前可能使用的最高安全級別。在這種情況下,您的組織可能會有關(guān)于您的應(yīng)用程序需要滿足哪些要求的詳細(xì)指南,一個很好的例子就是《安全技術(shù)實(shí)施指南》(STIG)。這種指南可能非常長,初讀時(shí)很難理解。我們的建議是,您在組織中尋找已經(jīng)使用指南編寫過應(yīng)用程序的人,他們可以為您提供一些關(guān)于您需要在應(yīng)用程序中設(shè)計(jì)哪些安全控制以滿足安全要求的想法。例如,標(biāo)準(zhǔn)銀行應(yīng)用程序使用自適應(yīng)身份驗(yàn)證來正確識別用戶。
開發(fā)與測試
讓我們從標(biāo)準(zhǔn)指南開始——我聽到了你的抱怨,但一旦你使用了幾次,其中的大部分就會成為你的第二天性。根據(jù)你使用的語言,會有不同的指南。一個很好的初始指南來自 OWASP 基金會安全編碼實(shí)踐指南,鏈接如下1。它至少會幫助你在編寫代碼時(shí)正確思考你需要注意什么。??
現(xiàn)在您需要決定要將重點(diǎn)放在安全測試上。與所有其他決定一樣,這將取決于您對特定應(yīng)用程序的安全意識。例如,如果您已決定不擔(dān)心安全性,則可以忽略此部分。但是,您可能希望仔細(xì)檢查安全性較低的應(yīng)用程序是否允許用戶意外訪問應(yīng)用程序基礎(chǔ)架構(gòu)中更安全的區(qū)域。??
編寫代碼時(shí)從一開始就考慮安全性并使用一些準(zhǔn)則使其盡可能安全,下一步是進(jìn)行靜態(tài)應(yīng)用程序安全測試,或者對于我們大多數(shù)人來說稱為源代碼掃描。根據(jù)應(yīng)用程序的大小,這可能是一個組件或整個應(yīng)用程序。掃描應(yīng)在包含所有庫的源代碼樹上運(yùn)行,即您的代碼以及第三方庫。有許多著名的源代碼掃描程序,從開源到商業(yè)產(chǎn)品。無論您選擇哪一個,對于源代碼,輸出都將是“發(fā)現(xiàn)”列表,其中將突出顯示安全漏洞的嚴(yán)重性和位置;這些從嚴(yán)重到低評分。對于第三方第三方庫,您將獲得任何具有漏洞的庫的常見漏洞和暴露列表,CVE 列表的數(shù)字評分從 1 到 10,10 為嚴(yán)重,這稱為 CVSS 系統(tǒng)。?
您可以自行決定緩解這些突出顯示的漏洞的數(shù)量,但我們建議您至少解決自己源代碼中的嚴(yán)重性和高嚴(yán)重性漏洞,并獲取 CVSS 為 7 到 10 的任何漏洞的更新庫。?
在對源代碼進(jìn)行掃描后,我們現(xiàn)在要進(jìn)行一些動態(tài)應(yīng)用程序安全測試。這是在編譯、構(gòu)建和部署的應(yīng)用程序上進(jìn)行的,并將為您提供另一份可利用的漏洞列表。這與源代碼掃描之間的主要區(qū)別在于,動態(tài)應(yīng)用程序安全測試將包括運(yùn)行時(shí)環(huán)境中的配置和其他組件。無論您對單個應(yīng)用程序做出的決定如何(如上所述),都應(yīng)該對所有應(yīng)用程序進(jìn)行此操作。?
最后,但并非最不重要的一點(diǎn)是,您需要運(yùn)行滲透測試,以確保您沒有遺漏任何東西。這可以是低調(diào)的,例如同事試圖突破您的安全防御,或者在主要IoT 物聯(lián)網(wǎng)軟件平臺雇用專門從事此類不道德黑客攻擊的第三方組織。滲透測試的一個好起點(diǎn)是使用此網(wǎng)站OWASP Top Ten | OWASP Foundation。他們讓網(wǎng)站保持最新已知漏洞、攻擊模式和其他有用信息。
維護(hù)與支持
眾所周知,安全措施一直在不斷發(fā)展,以應(yīng)對那些無能之輩不斷嘗試尋找新方法來獲取他們不應(yīng)該擁有的數(shù)據(jù)。這意味著我們必須始終假設(shè)我們的應(yīng)用程序需要不斷得到照顧;您不能部署后就忘記。同樣,根據(jù)擁有組織的規(guī)模(畢竟可能只有一個人),您需要確保定期檢查以下內(nèi)容:
檢查您的第三方庫并保持其更新運(yùn)行應(yīng)用程序的環(huán)境會及時(shí)更新補(bǔ)丁和最新版本
較大的組織將擁有一個或多個團(tuán)隊(duì)來負(fù)責(zé)此事,并將制定流程作為其符合 ISO 27001 和/或 SOC2 等標(biāo)準(zhǔn)的審計(jì)合規(guī)性的一部分。?
2024/11/02
2024/07/19
2024/08/30
2024/09/11
2024/10/15
2024/06/20
2024/10/30
2024/11/10