日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

青驥編譯 l 安全軟件部署:軟件制造商如何確??蛻艨煽啃?/h1>
2024-11-07 08:03:38·  來源:汽車信息安全  
 

引言

許多軟件制造商和服務(wù)提供商在提供服務(wù)時部署軟件和配置更新。這些更新可能增強功能和解決安全漏洞,以提供好處和安全給客戶。然而,軟件和部署軟件的系統(tǒng)高度復雜且不斷發(fā)展,使得部署安全更新具有挑戰(zhàn)性。對于所有軟件制造商來說,實施一個由經(jīng)過驗證的流程支持的安全軟件部署程序至關(guān)重要,包括健全的測試和衡量。該程序應(yīng)支持和增強產(chǎn)品的安全性和部署環(huán)境的質(zhì)量。本指南由網(wǎng)絡(luò)安全和基礎(chǔ)設(shè)施安全局(CISA)和以下合作伙伴(以下統(tǒng)稱為作者機構(gòu))撰寫,鼓勵軟件制造商將安全軟件部署程序作為其軟件開發(fā)生命周期(SDLC)的一部分。軟件制造商應(yīng)盡早將安全部署實踐納入SDLC。安全部署過程不是從第一次推送代碼開始的;它們開始得更早。為了保持產(chǎn)品質(zhì)量和可靠性,技術(shù)領(lǐng)導者應(yīng)確保所有代碼和配置更改都通過一系列定義良好的階段,并得到健全的測試策略的支持。這些階段旨在捕獲任何新問題,從而減少有缺陷的軟件影響客戶的風險。本指南是CISA的“設(shè)計安全”活動的一部分。本指南主要面向?qū)④浖渴鸬蕉喾N客戶系統(tǒng)的軟件或服務(wù)制造商,包括移動設(shè)備和筆記本電腦,以及基于云的服務(wù)(可能由數(shù)千個物理和虛擬系統(tǒng)組成,組織成集群)。雖然本指南并不特別關(guān)注內(nèi)部IT團隊將軟件部署到內(nèi)部系統(tǒng),但許多相同的階段也將適用——盡管形式會有所不同。其他領(lǐng)域可能需要不同平衡的相位。例如,組織將不得不考慮某些部署場景的復雜性,例如開源軟件部署,以及自動與手動更新之間的權(quán)衡。本指南不會涵蓋所有場景,但可以成為希望改進其部署流程的組織的有用工具。(注: 本文檔來自美國聯(lián)邦調(diào)查局/澳大利亞網(wǎng)絡(luò)安全中心,2024年10月發(fā)布,翻譯工具:Kimi)

目標

安全軟件部署過程旨在實現(xiàn)幾個關(guān)鍵目標,有助于確保軟件部署工作的成功。這些目標有助于確保軟件不僅對客戶可靠、安全和安全,而且以受控、高效的方式進行部署。通過納入及時發(fā)現(xiàn)問題、持續(xù)改進和適應(yīng)敏捷開發(fā)的機制,安全軟件部署過程使團隊能夠交付高質(zhì)量軟件,同時適應(yīng)不斷變化的要求和技術(shù)。

1. 質(zhì)量流程。健全的質(zhì)量保證流程有助于確保軟件產(chǎn)品能夠一致地工作并滿足客戶期望,而不會造成中斷。這種對可靠性的關(guān)注通過減少可能導致關(guān)鍵系統(tǒng)或數(shù)據(jù)失敗的故障風險,增強了客戶的安全性,從而提高了客戶信任度。

2. 成本和影響管理。對于軟件制造商來說,當技術(shù)缺陷和流程缺陷在早期流程中被捕獲時,修復它們的成本較低,對客戶系統(tǒng)造成的損害也較小。這些缺陷影響到的客戶可能會遭受停機時間和數(shù)據(jù)丟失,對他們的財務(wù)和聲譽位置產(chǎn)生不利影響。

3. 受控和衡量部署。一個明確定義的部署策略包括分階段推出,如金絲雀發(fā)布,允許制造商在現(xiàn)實世界環(huán)境中監(jiān)控性能,而不會影響所有客戶。這降低了廣泛故障的風險,并為完善后續(xù)部署提供了寶貴數(shù)據(jù)。

4. 全面測試。通過包括自動化測試和監(jiān)控工具在內(nèi)的全面測試策略的早期檢測,允許團隊識別和解決缺陷,然后再演變成更大的問題。早期主動捕獲問題提高了產(chǎn)品的質(zhì)量,并減少了后期昂貴修復的可能性。

5. 持續(xù)改進集成到開發(fā)和部署流程中的反饋循環(huán)使團隊能夠從每次迭代中學習,并將這些經(jīng)驗教訓應(yīng)用于未來的發(fā)布。使用反饋循環(huán)有助于發(fā)展安全軟件部署流程,并改進安全標準的維護實踐,以及提高性能,更好地滿足用戶需求。重要的是要將“近乎失誤”納入反饋循環(huán)?!敖跏д`”提供了在不使軟件制造商或其客戶經(jīng)歷實際事件的全部負面影響的情況下增強程序的機會。

6. 優(yōu)化敏捷性。團隊應(yīng)該能夠快速適應(yīng)要求的變化、新興技術(shù)和安全威脅。更短的開發(fā)周期、協(xié)作和迭代改進有助于交付滿足不斷變化的客戶期望的高質(zhì)量軟件。

7. 安全開發(fā)生態(tài)系統(tǒng)。安全開發(fā)生態(tài)系統(tǒng)旨在支持開發(fā)人員,同時減少缺陷進入代碼庫的可能性。軟件制造商通過在整個開發(fā)生態(tài)系統(tǒng)中實施自動化的技術(shù)控制,更有可能更早地檢測到并阻止問題。

圖片

安全軟件部署過程的關(guān)鍵階段

成功的安全軟件部署基于已建立的安全軟件框架,如NIST安全軟件開發(fā)框架(SSDF)。此外,安全部署取決于納入到SDLC中的結(jié)構(gòu)化、深思熟慮的過程,該過程最小化風險并促進可靠性。安全軟件部署過程的關(guān)鍵階段在指導軟件從初始規(guī)劃到發(fā)布的整個過程中發(fā)揮著關(guān)鍵作用。安全部署軟件的強烈推薦實踐包括在規(guī)劃階段進行嚴格的測試、受控部署和持續(xù)反饋。通過遵循這些關(guān)鍵階段,軟件制造商可以增強產(chǎn)品質(zhì)量,降低部署風險,并為他們的客戶提供更好的體驗。

規(guī)劃

在編寫任何代碼之前,應(yīng)建立一個明確的計劃,以定義目標并構(gòu)建需求,了解客戶需求,確定潛在威脅,并指定成功標準。規(guī)劃階段為整個部署過程奠定基礎(chǔ),幫助確保團隊在開發(fā)之前了解范圍、潛在風險和成本。

關(guān)鍵考慮因素

運營風險評估:實施全面的、持續(xù)的評估,了解在環(huán)境中部署軟件的風險和后果,降低風險。運營風險評估包括了解系統(tǒng)關(guān)系和相互依賴性、潛在威脅、安全、安全、可靠性、性能要求以及與常見缺陷相關(guān)的風險。例如,如果一項服務(wù)依賴于另一產(chǎn)品的服務(wù)賬戶(SA),并且該SA的權(quán)限發(fā)生變化,系統(tǒng)的某些部分可能會以看似意想不到的方式失敗。必須將安全軟件部署程序的過程和技術(shù)包括在整體書面產(chǎn)品威脅模型中。

進行失敗預(yù)期審查:有時被稱為“預(yù)-mortem”,這種審查有助于團隊識別潛在的失敗,從前瞻性回顧(或“post-mortem”)中汲取見解。

平臺規(guī)模和多樣性:部署團隊應(yīng)廣泛記錄與其產(chǎn)品相關(guān)的多個潛在推出場景。團隊應(yīng)計劃在軟件在多個環(huán)境中運行時增加平臺和設(shè)備的多樣性。在考慮設(shè)備多樣性時,不僅要考慮設(shè)備數(shù)量。多樣性可以包括不同類型的操作系統(tǒng)、硬件品牌、固件版本、固件設(shè)置、帶寬速度和可靠性、環(huán)境設(shè)置和地理位置。團隊應(yīng)在提高內(nèi)部部署率之前驗證充分的測試覆蓋范圍。

在線服務(wù)多樣性:在線服務(wù)多樣性可能包括數(shù)據(jù)中心區(qū)域和網(wǎng)絡(luò)配置,并在必要時包括故障轉(zhuǎn)移和備份解決方案。

規(guī)劃部署節(jié)奏:無論組織是設(shè)置每月的“補丁星期二”還是每天交付多個配置更新,團隊都應(yīng)該正式制定這個計劃,并明確傳達給內(nèi)部利益相關(guān)者和外部客戶。

監(jiān)控和報告策略

制造商應(yīng)確定提供最清晰視圖系統(tǒng)健康狀況的信號,并將識別到的問題報告反饋到持續(xù)改進過程中。

人員配置

復雜的部署需要能夠監(jiān)控部署和安全軟件部署過程改進的團隊。運營人員或軟件/流程開發(fā)人員的短缺會增加意外事件的風險。

容錯

系統(tǒng)可以設(shè)計成即使在遇到不良或惡意代碼或配置更改時也能保持彈性和/或安全失敗。每個組織都應(yīng)該考慮在規(guī)劃過程中建立彈性。

棄用和生命周期結(jié)束

軟件制造商應(yīng)該計劃功能棄用和產(chǎn)品生命周期結(jié)束。早期警告將減少對客戶的影響,并減少他們面臨不利影響的可能性。

補丁管理

軟件制造商應(yīng)該計劃對其開發(fā)的產(chǎn)品和服務(wù)進行補丁管理。他們應(yīng)該使應(yīng)用補丁的過程盡可能無縫。安全補丁可能需要隨后的更新來修復可能被惡意行為者利用的已識別漏洞。(見下面的N-1版本部分)。

開發(fā)和測試

此階段涉及編碼和持續(xù)測試。此階段的測試通常包括單元測試、集成測試和自動化測試(包括靜態(tài)和動態(tài)測試),以盡早捕獲問題。代碼應(yīng)在與客戶環(huán)境緊密類似的條件下進行測試,以幫助確保準確性和可靠性。組織應(yīng)考慮投入資源,積極嘗試在受控情況下使部署過程失敗,以防止現(xiàn)場失敗。

內(nèi)部部署(內(nèi)部測試)

根據(jù)軟件類型和內(nèi)部企業(yè)需求,內(nèi)部團隊應(yīng)該是首先使用新軟件版本的人。這個“內(nèi)部測試”階段允許組織在軟件到達外部用戶之前捕獲問題。通過在現(xiàn)實世界中測試產(chǎn)品,內(nèi)部用戶提供了寶貴的反饋,有助于提高產(chǎn)品的穩(wěn)定性和性能。所需的設(shè)備和獲取足夠覆蓋范圍所需的時間會有所不同;組織應(yīng)建立標準并根據(jù)以前發(fā)布周期的輸入進行調(diào)整。此外,組織應(yīng)建立一個鼓勵員工報告潛在問題的文化,即使問題看起來微不足道。

部署和金絲雀測試

向客戶的部署應(yīng)該以受控的方式進行。部署選項可以包括金絲雀部署(向有限數(shù)量的客戶或系統(tǒng)的小規(guī)模部署),允許團隊在更廣泛推出之前監(jiān)控性能和解決問題。對于軟件即服務(wù)(SaaS)產(chǎn)品,這可能涉及將更新部署到服務(wù)器的一小部分或引導有限流量到更新的組件。對于本地產(chǎn)品,更新可能首先只發(fā)布給一部分客戶。組織可能希望考慮變化,如“藍/綠”部署模型或?qū)⒖蛻舴殖伞胺€(wěn)定”和“早期訪問”組,使他們能夠?qū)⑿鹿δ艿脑L問與他們的風險承受能力相匹配。

受控部署

在驗證了成功的金絲雀部署后,部署團隊可以向更多用戶發(fā)布新版本。隨著對新版本的信心增長,部署可以逐步擴展到更多設(shè)備或系統(tǒng)。這種受控部署防止了突然的、廣泛的故障。組織需要考慮適當?shù)牟渴鹚俣?,以便緊急安全修復與更常規(guī)的內(nèi)容部署相比。組織需要考慮他們的風險承受能力和客戶的期望和風險胃口。在部署過程中,團隊可能需要一個自動斷開連接或相當于緊急停止按鈕來停止部署,特別是在發(fā)生事件時。

反饋納入規(guī)劃

整個過程中的持續(xù)反饋至關(guān)重要,但特別是在發(fā)布后。來自客戶、開發(fā)和質(zhì)量團隊、系統(tǒng)日志、意外或異常系統(tǒng)行為的示例以及性能指標的直接反饋應(yīng)該直接反饋到下一個開發(fā)周期的規(guī)劃階段。這種反饋將使持續(xù)改進和更快地對問題做出反應(yīng)成為可能。

圖1顯示了這些階段隨時間的變化。每個軟件和服務(wù)提供商都會根據(jù)他們的風險承受能力和其他商業(yè)考慮來調(diào)整曲線的斜率。提供商還應(yīng)考慮他們的客戶風險承受能力。

圖片

手冊(Playbook)

手冊是確保安全軟件部署過程被記錄、可重復和彈性化的重要工具。它們提供清晰的指導、最佳實踐和應(yīng)急計劃,幫助團隊導航部署的每個階段。手冊還有助于軟件制造商降低風險并在任何出現(xiàn)的問題時有效應(yīng)對,最終保護依賴它的軟件和客戶。盡可能實現(xiàn)自動化,可以幫助上述因素與部署目標保持一致。

像所有手冊一樣,部署團隊應(yīng)該定期培訓和模擬事件測試。學習如何反應(yīng)的時機不是在系統(tǒng)失敗并可能給客戶帶來問題時,而是在事件發(fā)生時。

重要的是要認識到,將軟件部署到客戶系統(tǒng)涉及商業(yè)考慮,而不僅僅是技術(shù)考慮。高級商業(yè)領(lǐng)袖應(yīng)確保團隊隨時間策劃劇本,請求更改,并至少每年正式批準手冊。聯(lián)合指南“轉(zhuǎn)移網(wǎng)絡(luò)安全風險平衡”強調(diào)了“領(lǐng)導從上而下”的原則。擁有商業(yè)領(lǐng)袖擁有流程將有助于確保組織分配必要的資源來實現(xiàn)成功的結(jié)果。

像SDLC中的所有其他元素一樣,手冊需要定期維護,以監(jiān)控和改進它們的成熟度水平并實現(xiàn)組織的使命。

錯誤

在部署過程的任何階段,產(chǎn)品或支持系統(tǒng)都可能遇到錯誤。這些錯誤可能是由于軟件或部署系統(tǒng)中逃過測試措施的潛在編碼錯誤造成的。它們可能包括性能問題、兼容性問題,甚至安全問題。

技術(shù)領(lǐng)導團隊應(yīng)建立書面手冊,指導員工在遇到這些類型的錯誤時如何操作。這些劇本應(yīng)包括可接受的錯誤率閾值、員工響應(yīng)和指揮鏈升級。

部署實時監(jiān)控系統(tǒng)以及自動警報和升級系統(tǒng)的組織,與僅依賴人工操作員相比,可以更快地響應(yīng)異常和錯誤。盡早發(fā)現(xiàn)問題和自動修復減少了從識別到解決的時間,導致受影響的客戶數(shù)量減少和停機時間最小化。

緊急協(xié)議

手冊應(yīng)包括詳細步驟,以處理軟件部署期間或之后發(fā)生緊急情況,包括詳細的恢復任務(wù)。至少應(yīng)涵蓋以下主題。

事件檢測和報告

明確定義如何識別問題,無論是通過自動監(jiān)控系統(tǒng)、內(nèi)部測試和/或客戶報告。社交媒體也可能是其他更正式渠道可能缺少的重要信息來源。

工程和管理的升級流程

概述一個結(jié)構(gòu)化的升級路徑,指示何時以及如何將事件升級給高級工程師、管理層或甚至外部合作伙伴。

恢復和回滾程序

如果部署導致重大故障,應(yīng)詳細記錄一個可以迅速執(zhí)行的恢復計劃。這應(yīng)該包括恢復系統(tǒng)到先前穩(wěn)定狀態(tài)的步驟、驗證檢查以確?;貪L有效,以及防止數(shù)據(jù)丟失的保障措施。了解如何將客戶恢復到最后的已知“好”狀態(tài)將需要仔細規(guī)劃,特別是如果目標系統(tǒng)高度多樣化。一個常見的策略是通過禁用某些配置來增強系統(tǒng)優(yōu)雅降級,而不是完全停止部署。

注意:無法實施自動回滾的恢復計劃場景需要額外的照顧。

根本原因分析和報告

解決即時問題后,進行徹底的根本原因分析(RCA),作為無責備回顧的一部分,以識別出了什么問題以及為什么。RCA應(yīng)隨后對發(fā)現(xiàn)的問題和糾正措施進行記錄,以防止未來部署中發(fā)生類似事件。在此過程中,“近乎失誤”可以提供顯著價值。

客戶和合作伙伴通知計劃

確保有一個計劃,以便在發(fā)生關(guān)鍵問題時通知客戶和合作伙伴。這包括確定適當?shù)臏贤ㄇ溃娮余]件、社交媒體、應(yīng)用內(nèi)通知)和消息時機,并提供有關(guān)問題、其影響和預(yù)期解決時間的清晰信息。重新驗證客戶和合作伙伴聯(lián)系信息可以防止在溝通中出現(xiàn)昂貴的延遲。

注意:安全軟件部署過程應(yīng)在更大的事件響應(yīng)計劃(IRP)中引用。將部署過程納入事件響應(yīng)計劃,允許從部署管理到事件處理的平穩(wěn)過渡。它還有助于確保所有相關(guān)利益相關(guān)者——開發(fā)人員、運營團隊、安全人員、外部溝通和客戶服務(wù)——都對齊并裝備好,以最小化停機時間,解決安全漏洞,并保持業(yè)務(wù)連續(xù)性。

客戶通知計劃

即使有安全軟件部署過程,事件仍可能發(fā)生。為了保持透明度和信任,軟件制造商應(yīng)該有一個結(jié)構(gòu)化的客戶通知計劃。通知計劃中應(yīng)考慮的元素包括:

1. 部署前通知:在任何重大更新之前,通知客戶即將到來的部署,包括預(yù)期的時間線、潛在影響和任何計劃的停機時間。注意:此元素需要校準,以避免警報疲勞。

2. 支持客戶控制的部署:允許客戶控制部署時間表和如何接收更新。

3. 推出狀態(tài)更新:在部署過程中,通過適當渠道(如一個眾所周知且持續(xù)更新的公共網(wǎng)絡(luò)門戶)提供實時或頻繁的推出狀態(tài)更新。

4. 事件和中斷報告:如果在部署期間出現(xiàn)問題,請迅速通知客戶事件的本質(zhì)、對其系統(tǒng)的影響以及正在采取的解決措施。

5. 部署后通知:部署完成后,發(fā)送后續(xù)通信以確認成功推出。包括新功能、錯誤修復或更改的詳細信息,并提供客戶報告任何部署后問題的渠道。

額外的考慮:N-1版本

一些客戶更喜歡留在舊版本的軟件或配置上——通常稱為N-1(上一個版本)或N-2(兩個版本前)——以避免與新更新相關(guān)的潛在風險。這些風險可能包括錯誤、兼容性問題或可能影響他們的系統(tǒng)或運營的干擾。

然而,盡管留在舊版本上可能看起來更安全,但延遲更新可能會引入未管理的風險,特別是當更新包括關(guān)鍵安全增強或漏洞補丁時。軟件制造商應(yīng)專注于改進他們的部署實踐并證明他們的可靠性給客戶。與其放慢部署速度,軟件制造領(lǐng)導者應(yīng)優(yōu)先考慮增強部署流程,以確保安全性和穩(wěn)定性。

結(jié)論

功能安全和安全事件通常是由多種 contributing factors 導致的,包括人員、流程和技術(shù)元素在可能變得不對齊的系統(tǒng)中共同作用(有時以意想不到和不太可能的方式)。安全軟件部署過程應(yīng)與組織的SDLC、質(zhì)量程序、風險承受能力和對客戶環(huán)境和運營的understanding 集成。通過采用系統(tǒng)思維方法,團隊可以減少他們的部署過程在 safety boundary 之外運行的可能性。

兩種方法可以幫助團隊保持這個安全邊界。首先,培養(yǎng)無責回顧(也稱為“事后分析”)文化,團隊通過專注于導致結(jié)果的流程來分析正面和負面結(jié)果,而不是將責任歸咎于任何個人。如果環(huán)境和流程具有彈性,個人行動不應(yīng)該導致事件。

其次,將“近乎失誤”視為真實事件?!敖跏д`”提供了顯著的信息來改進流程。它們提供了一個在不承受實際事件后果的情況下發(fā)展程序的機會。分析“近乎失誤”允許團隊發(fā)現(xiàn)系統(tǒng)中的弱點并主動解決它們,減少未來故障的可能性。通過研究這些事件,組織可以建立一個持續(xù)改進的文化,加強安全性和運營彈性。

組織應(yīng)正式評估他們的軟件部署過程,根據(jù)本文概述的要點,并制定計劃通過持續(xù)改進程序來解決它們。一個設(shè)計良好的軟件部署過程可以確保客戶及時收到新功能、安全性和可靠性,同時將未計劃的停機時間最小化。

分享到:
 
反對 0 舉報 0 收藏 0 評論 0

滬ICP備11026917號-25