0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

安全軟件開發(fā)最佳實踐指南

北匯信息POLELINK ? 2022-12-07 17:00 ? 次閱讀

在任何新的軟件開發(fā)項目開始時都應(yīng)考慮軟件安全性。開始一項工作可能會讓人望而卻步,因為需要做出許多決定,并且必須仔細考慮。這通常包括定義項目需求、選擇正確的流程、選擇正確工具和確保軟件安全。

出于這個原因,我們組織了一個循序漸進的指南,幫助您完成新項目中最耗時和最困難的挑戰(zhàn),以確保您的項目取得成功。

安全軟件開發(fā)最佳實踐
安全的軟件開發(fā)最佳實踐可以簡單地分為四個主要部分:
1. 了解您的項目要求
2. 定義軟件開發(fā)流程
3. 為項目選擇合適的工具
4. 設(shè)置DevSecOps

SAST 工具(如Klocwork)可以幫助您滿足每個部分的建議指南。

了解您的項目要求

在項目開始時,您需要考慮幾個因素 。通過查看這些內(nèi)容,它將幫助您更好地了解您的項目要求。

概述項目
花時間了解項目本身,并提出有助于指導(dǎo)整個開發(fā)生命周期決策的問題。像這樣的問題:
?正在開發(fā)什么類型的項目?(嵌入式、云服務(wù)、前端/后端軟件等)
?這個項目面向哪個行業(yè)?( 汽車 、 航空航天 、企業(yè)、 醫(yī)療 、 金融 等)
?軟件將如何使用以及在什么設(shè)置下使用?(企業(yè)、中小企業(yè)、B2B、B2C等)

定義項目愿景
對應(yīng)用程序?qū)⑻峁┑膬?nèi)容有一個愿景,有助于為工作樹立一顆指路明燈。通過制定客戶問題、痛點以及應(yīng)用程序?qū)⑷绾谓鉀Q這些問題的明確規(guī)范,將有助于確保您提供正確的解決方案。

確定合規(guī)性要求
確定作為項目行業(yè)、供應(yīng)鏈、業(yè)務(wù)或客戶要求的一部分是否存在代碼合規(guī)性要求。

此外,您還需要確定需要什么級別的信息安全、功能安全和質(zhì)量合規(guī)。這可能包括編碼標準,例如:
? CWE
? CERT
? CVE
? OWASP
? DISA-STIG
? MISRA
? AUTOSAR

從項目一開始就選擇并遵循一個標準將減少將來的合規(guī)性難題。

選擇靈活的編程語言
確保您的編程語言(無論是 C、C++、C#、Java或JavaScript)-最適合您的項目。選擇最合適的編碼語言可為您帶來以下好處:
?易于開發(fā)
?代碼的可維護性
?接觸熟練的開發(fā)人員
?明確的編碼標準和最佳實踐

您選擇的語言可以決定您的軟件是否保持價值和活力。

開發(fā)代碼設(shè)計
花時間制定設(shè)計規(guī)范。通過這樣做,您能夠驗證系統(tǒng)邏輯,確定所有組件是否將一起正確執(zhí)行,并幫助確保軟件安全。這可能意味著成功發(fā)布和代價高昂的重新設(shè)計之間的區(qū)別。

建立代碼架構(gòu)
規(guī)劃您的代碼庫以確保其井井有條。請務(wù)必考慮以下事項:
?文件命名約定
?為項目定義模塊
?層次和結(jié)構(gòu)

通過提前完成這項工作,您可以為開發(fā)人員提供一個清晰的模板去遵循,以便將來更輕松地進行維護。

定義您的軟件開發(fā)流程

雖然您的開發(fā)過程對于您的項目需求和要求是獨一無二的,但我們建議您考慮以下幾點:

確定需要實施哪些軟件安全最佳實踐
根據(jù)行業(yè)的不同,您的開發(fā)項目可能需要遵循特定的最佳實踐和標準。此時,您應(yīng)該使項目要求與開發(fā)過程保持一致。這可能包括遵循功能安全標準 (如 IEC 61508 )和遵循安全編碼實踐(如CERT或CWE)。

靜態(tài)分析器 (如 Klocwork )可以幫助執(zhí)行項目可能需要的任何標準、最佳實踐和條件。

與開發(fā)方法保持一致
無論您的開發(fā)過程是Agile/Waterfall, Scrum/Kanban還是您當(dāng)前可能擁有的任何其他過程,都無關(guān)緊要。重要的是,您需要在適合您的業(yè)務(wù)、開發(fā)人員和開發(fā)團隊打算交付項目的方式的開發(fā)流程上保持一致。

在方法上保持一致的目的是擁有一個確保組織和溝通以及幫助防止開發(fā)過程中出現(xiàn)問題的過程。

組織您的環(huán)境設(shè)置
一般來說,確定并創(chuàng)建項目所需的環(huán)境以確保整個團隊使用相同的設(shè)置非常重要。最佳做法是,應(yīng)為以下對象設(shè)置單獨的環(huán)境:開發(fā)、用戶驗收測試 (UAT)、階段化和生產(chǎn)。

使用存儲庫工具
使用版本控制工具(如 Helix Core )建立源代碼存儲庫。這使您的開發(fā)團隊能夠:
?花更少的時間處理工具和流程。
?停止在手動工作流程上浪費時間,使他們能夠重新開始編碼。
?高效處理數(shù)以萬計的文件以及數(shù)PB級的數(shù)據(jù)。
?將代碼中的更改內(nèi)容與更改原因聯(lián)系起來。

除了代碼存儲庫之外,還應(yīng)考慮使用其他工具或流程來存儲和跟蹤其他與項目相關(guān)的內(nèi)容。這包括:
?將項目使用的工具和組件保留在整個團隊可以輕松使用的地方。
?為計劃、文檔和開發(fā)人員入職提供中心位置。
?在項目管理軟件(如Helix ALM)或問題跟蹤軟件中定義工作任務(wù)。

通過建立這些存儲庫,您可以幫助確保您的開發(fā)高效、內(nèi)容安全,并且知識易于快速上手新開發(fā)人員。

通過安全編碼實踐強制實施軟件安全性
通過遵循安全編碼實踐,將安全實施構(gòu)建到開發(fā)過程中,并使用安全編碼工具幫助強制實施合規(guī)性。此外,為您的團隊提供安全培訓(xùn)和學(xué)習(xí)材料,以幫助發(fā)展安全文化。 SAST 工具(如Klocwork)可以幫助解決這些問題。

將檢查合并到開發(fā)管道中
在整個開發(fā)管道中實施安全檢查有助于強制實施良好的編碼實踐。在開發(fā)代碼時,請務(wù)必注意安全,建議您在開發(fā)人員的 IDE、CI/CD管道 中以及在持續(xù)集成構(gòu)建期間使用SAST掃描。

出于測試和重構(gòu)目的,請確保開發(fā)人員正在編寫單元測試,并且質(zhì)量保證正在編寫功能測試。通常,請考慮所有可能的測試策略,并確保盡可能創(chuàng)建并自動化安全性和其他測試。

為您的項目任務(wù)和功能定義“完成”
即使任務(wù)或功能看起來已完成并在開發(fā)人員的桌面上編譯,但事實并非如此。你需要有一個明確的流程來定義工作——從頭到尾。

最佳做法包括:
?需求捕獲
?工作范圍
?定義驗收標準
?為代碼開發(fā)單元和功能測試用例
?進行 同行代碼評審
?集成測試、安全測試以及從所有階段到最終環(huán)境測試的自動化

鼓勵反饋和溝通
團隊和開發(fā)人員之間的反饋和溝通對于項目的成功至關(guān)重要。

重要的是,您的開發(fā)人員能夠從代碼提交中獲得快速反饋,以便他們能夠及早解決編碼問題,并為項目干系人提供有關(guān)項目進度、指標和潛在風(fēng)險的見解。

在自動化之外,為開發(fā)人員提供足夠的時間進行代碼審查、規(guī)劃和回顧非常重要。這些都將有助于確保在消除通信障礙時保持高開發(fā)速度。

為您的項目選擇合適的工具

項目的一個重要部分是選擇正確的工具。工具選擇很重要,因為它有助于標準化您的項目,并使團隊中的每個人都能“說同一種語言”。這為以下方面提供了整個團隊的好處:
?生產(chǎn)力
?公共知識
?測試和調(diào)試
?入職

為了幫助確保為團隊選擇最有效的工具集,請考慮以下準則:
?研究和查看所有工具選項,并根據(jù)項目和團隊要求對其進行評估。
?了解工具選擇的成熟度以及可用的支持類型,例如技術(shù)支持、幫助資源和主動維護。
?考慮工具、團隊的經(jīng)驗水平以及招聘新開發(fā)人員的能力將受到怎樣的影響。
?檢查工具集之間的兼容性。

無論您選擇哪種工具集,我們都建議它包括以下內(nèi)容:
?代碼存儲庫和版本控制 ,用于跟蹤和管理對源代碼、數(shù)字資產(chǎn)和大型二進制文件的更改。
?靜態(tài)代碼分析器和SAST工具,用于強制實施安全編碼實踐,并識別缺陷、漏洞和合規(guī)性問題。
?應(yīng)用程序生命周期管理工具在項目的整個 應(yīng)用程序生命周期 管理中提供端到端的可追溯性。

為您的軟件開發(fā)項目設(shè)置 DevSecOps

將 DevOps 的速度和規(guī)模 與安全編碼實踐相結(jié)合 ,DevSecOps是必不可少的軟件安全最佳實踐。通過遵循DevSecOps方法,您可以:
?盡可能多地自動化流程—安全性、配置、管理、測試等。這將為開發(fā)人員騰出時間專注于新的代碼和功能。
?定義成功/失敗指標,并主動監(jiān)控和報告項目結(jié)果。這有助于您更快地發(fā)現(xiàn)問題和漏洞,做出更明智的決策,并在整個應(yīng)用程序中強制實施項目要求。
?采取措施保護您的基礎(chǔ)架構(gòu)。安全性不僅對您的最終產(chǎn)品很重要,而且對您公司的程序和政策也很重要。確保您從整體上考慮安全性,并從上到下促進安全文化。
?持續(xù)監(jiān)控和實施軟件安全合規(guī)性。將安全工具(如SAST、DAST和SCA)集成到DevSecOps管道中,以便在整個開發(fā)生命周期中主動跟蹤和實施安全性。

選擇Perforce工具以確保項目成功
Klocwork SAST for C,C++,C#,Java,JavaScript,Python,and Kotlin 可識別安全性、質(zhì)量和可靠性問題。這有助于強制遵守編碼標準,以確保您的代碼免受安全漏洞的影響。Klocwork旨在輕松擴展到任何規(guī)模的項目,使您能夠在編寫代碼時自動進行源代碼分析。

此外,Klocwork的差異分析使您能夠僅對已更改的文件執(zhí)行快速增量分析 ,同時提供與完整項目掃描結(jié)果相同的結(jié)果。這確保了盡可能短的分析時間。

通過使用Klocwork,您還將獲得以下好處:
?在開發(fā)早期檢測代碼漏洞、合規(guī)性問題和規(guī)則沖突。這有助于加快代碼審查和手動測試工作。
?執(zhí)行行業(yè)和編碼標準,包括CWE、CERT、OWASP和DISA STIG。
?報告一段時間內(nèi)和跨產(chǎn)品版本的合規(guī)性。

了解 Klocwork 如何幫助確保您的下一個項目取得成功。注冊免費試用版。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4814

    瀏覽量

    68849
收藏 人收藏

    評論

    相關(guān)推薦

    AN197 GD32L23x軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《AN197 GD32L23x軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 01-17 16:18 ?0次下載
    AN197 GD32L23x<b class='flag-5'>軟件開發(fā)指南</b>

    嵌入式軟件開發(fā)符合ISO 26262 功能安全標準

    ISO 26262 功能安全標準的要求可能非常具有挑戰(zhàn)性,尤其是當(dāng)您的汽車系統(tǒng)中的某些部件相比其他部件具有更高的安全風(fēng)險時。開發(fā)者如何在整個軟件開發(fā)生命周期中保持對每一個汽車
    發(fā)表于 01-15 12:04 ?0次下載

    DevSecOps自動化在安全關(guān)鍵型軟件開發(fā)中的實踐、Helix QAC&amp;amp; Klocwork等SAST工具應(yīng)用

    DevSecOps自動化旨在通過在軟件開發(fā)生命周期的各個階段集成安全流程,使用自動化工具和最佳實踐來簡化開發(fā)、
    的頭像 發(fā)表于 01-03 16:05 ?112次閱讀
    DevSecOps自動化在<b class='flag-5'>安全</b>關(guān)鍵型<b class='flag-5'>軟件開發(fā)</b>中的<b class='flag-5'>實踐</b>、Helix QAC&amp;amp; Klocwork等SAST工具應(yīng)用

    BQ7690x軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《BQ7690x軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 11-07 10:19 ?1次下載
    BQ7690x<b class='flag-5'>軟件開發(fā)指南</b>

    活動回顧 艾體寶 開源軟件供應(yīng)鏈安全最佳實踐 線下研討會圓滿落幕!

    艾體寶與Mend舉辦研討會,聚焦開源軟件供應(yīng)鏈安全,邀請行業(yè)專家分享合規(guī)管理、治理之路及最佳實踐,圓桌討論加深理解,助力企業(yè)更安全穩(wěn)健發(fā)展。
    的頭像 發(fā)表于 10-30 17:52 ?513次閱讀
    活動回顧 艾體寶 開源<b class='flag-5'>軟件</b>供應(yīng)鏈<b class='flag-5'>安全</b>的<b class='flag-5'>最佳</b><b class='flag-5'>實踐</b> 線下研討會圓滿落幕!

    華為云聯(lián)合中國信通院發(fā)布 智能化軟件開發(fā)落地實踐指南

    9 月 19 日,在華為全聯(lián)接大會 2024(HUAWEI CONNECT 2024)上,華為云聯(lián)合中國信通院及合作伙伴,重磅發(fā)布國內(nèi)首部《智能化軟件開發(fā)落地實踐指南》(下稱《指南》)
    的頭像 發(fā)表于 10-09 20:13 ?647次閱讀
    華為云聯(lián)合中國信通院發(fā)布 智能化<b class='flag-5'>軟件開發(fā)</b>落地<b class='flag-5'>實踐</b><b class='flag-5'>指南</b>

    PGA460軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《PGA460軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 10-09 10:30 ?1次下載
    PGA460<b class='flag-5'>軟件開發(fā)指南</b>

    PGA450-Q1軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《PGA450-Q1軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 09-30 14:25 ?0次下載
    PGA450-Q1<b class='flag-5'>軟件開發(fā)指南</b>

    TUSS44x0軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《TUSS44x0軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 09-14 10:59 ?0次下載
    TUSS44x0<b class='flag-5'>軟件開發(fā)指南</b>

    BQ769x2軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《BQ769x2軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 08-26 09:12 ?0次下載
    BQ769x2<b class='flag-5'>軟件開發(fā)指南</b>

    RTOS開發(fā)最佳實踐

    基于RTOS編寫應(yīng)用程序時,有一些要注意事項。在本節(jié)中,您將學(xué)習(xí)RTOS開發(fā)最佳實踐,例如POSIX合規(guī)性、安全性和功能安全認證。
    的頭像 發(fā)表于 08-20 11:24 ?490次閱讀

    BQ769x2 軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《BQ769x2 軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 08-12 14:41 ?0次下載

    2024 ACT汽車軟件安全技術(shù)周 龍智即將攜全方位汽車軟件開發(fā)解決方案亮相,助力應(yīng)對汽車軟件開發(fā)功能安全

    ,分享推動汽車軟件開發(fā)與功能安全的創(chuàng)新實踐。 ATC作為汽車技術(shù)會議領(lǐng)域的領(lǐng)先平臺,專注于汽車電子與軟件版塊的技術(shù)交流將近10年歷程,深耕行業(yè)問題,觸達客戶需求。 2024年7月18-
    的頭像 發(fā)表于 07-08 16:17 ?579次閱讀
    2024 ACT汽車<b class='flag-5'>軟件</b>與<b class='flag-5'>安全</b>技術(shù)周 龍智即將攜全方位汽車<b class='flag-5'>軟件開發(fā)</b>解決方案亮相,助力應(yīng)對汽車<b class='flag-5'>軟件開發(fā)</b>功能<b class='flag-5'>安全</b>

    keil arm軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《keil arm軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 01-26 15:51 ?7次下載

    嵌入式軟件開發(fā)軟件開發(fā)的區(qū)別

    嵌入式軟件開發(fā)軟件開發(fā)是兩個不同的概念,它們在一些關(guān)鍵方面有著明顯的區(qū)別。嵌入式軟件開發(fā)是指開發(fā)嵌入在硬件設(shè)備中的軟件,而
    的頭像 發(fā)表于 01-22 15:27 ?2365次閱讀