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

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

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

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

北匯信息POLELINK ? 2023-05-08 10:51 ? 次閱讀

安全的軟件開發(fā)最佳實踐是必要的,因為安全風險無處不在。在網(wǎng)絡(luò)攻擊盛行的時代,它們可以影響每個人,包括個人、公司和政府。因此,確保軟件開發(fā)的安全性至關(guān)重要。

在這里,我們將解釋了什么是安全軟件,如何確保軟件的安全性,并提供安全軟件開發(fā)的最佳實踐。

沒有安全的軟件開發(fā)會發(fā)生什么?

網(wǎng)絡(luò)攻擊成為頭條新聞。DuquStuxnet在 2010年和2011年讓每個人都在談?wù)?。而且,從那時起,網(wǎng)絡(luò)攻擊只會變得更糟。WannaCry在2017年襲擊了重要的系統(tǒng),包括英國的國家醫(yī)療服務(wù)體系。GitHub在 2018年初遭到拒絕服務(wù)攻擊。2021年的 Log4j 漏洞至今仍在被利用。

嵌入式系統(tǒng)無法幸免于安全軟件風險

嵌入式系統(tǒng)越來越容易受到這些風險的影響。這導(dǎo)致了醫(yī)療設(shè)備和汽車行業(yè)的召回。而且,汽車行業(yè)尤其容易受到網(wǎng)絡(luò)威脅。

這是一個巨大的問題。

針對嵌入式系統(tǒng)的網(wǎng)絡(luò)攻擊可能導(dǎo)致對以下方面的大規(guī)模破壞:

?關(guān)鍵基礎(chǔ)設(shè)施,包括發(fā)電、石油和天然氣精煉。

?電信。

?運輸。

?水和廢物控制系統(tǒng)

5 個關(guān)鍵的安全軟件開發(fā)風險因素

五個關(guān)鍵的安全軟件開發(fā)風險因素是:

  1. 相互依存的系統(tǒng)使軟件成為最薄弱的環(huán)節(jié)。
  2. 軟件大小和復(fù)雜性使測試復(fù)雜化。
  3. 外包軟件供應(yīng)鏈增加了風險暴露。
  4. 復(fù)雜的攻擊會帶來更多的風險。
  5. 遺留軟件被復(fù)用。

當今應(yīng)用程序安全(AppSec) 環(huán)境中的常見問題

如今,為嵌入式系統(tǒng)、移動設(shè)備、電動汽車、銀行和交易服務(wù)開發(fā)了各種類型的軟件應(yīng)用程序。然而,經(jīng)常被忽視的是,許多應(yīng)用程序和數(shù)字體驗的設(shè)計和操作都沒有安全措施,如果安全性不是重中之重,這可能會有風險。

即使優(yōu)先考慮安全性并實施安全的軟件開發(fā)實踐,公司仍然可能措手不及。當今應(yīng)用程序安全環(huán)境中的常見問題包括:

?第三方庫和框架中的漏洞:許多應(yīng)用程序依賴于 第三方庫和框架 ,如果不定期更新,可能會將漏洞引入應(yīng)用程序。

?注入攻擊:注入攻擊涉及攻擊者將惡意代碼或命令 注入 應(yīng)用程序的輸入字段(如登錄表單或搜索框),以獲得對應(yīng)用程序或其基礎(chǔ)數(shù)據(jù)庫的未經(jīng)授權(quán)的訪問。

?跨站點腳本 (XSS):XSS攻擊涉及攻擊者將惡意代碼注入網(wǎng)站或 Web 應(yīng)用程序,然后可以在用戶的瀏覽器中執(zhí)行,從而可能竊取敏感數(shù)據(jù)或代表用戶執(zhí)行未經(jīng)授權(quán)的操作。

?不安全的身份驗證和授權(quán):設(shè)計或?qū)嵤┎划數(shù)纳矸蒡炞C和授權(quán)機制可能允許攻擊者繞過安全控制并訪問敏感數(shù)據(jù)或功能。

?日志記錄和監(jiān)視不足:如果沒有足夠的日志記錄和監(jiān)視,則可能難以檢測和響應(yīng)安全事件或確定安全問題的根本原因。

?移動應(yīng)用程序安全性:隨著移動設(shè)備的激增,確保移動應(yīng)用程序的安全性變得越來越重要。移動應(yīng)用程序可能容易受到一系列攻擊,包括針對設(shè)備本身或應(yīng)用程序后端服務(wù)器的攻擊。

?云安全:隨著云計算的使用越來越多,確?;谠频膽?yīng)用程序的安全性變得至關(guān)重要。基于云的應(yīng)用程序可能容易受到一系列攻擊,包括針對云基礎(chǔ)架構(gòu)、應(yīng)用程序本身或存儲在云中的數(shù)據(jù)的攻擊。

可以使用一個或多個安全編碼合規(guī)性度量(如OWASP Top 10 、 CWE Top 25 和 CERT 規(guī)則集)來檢測上述列表中的項目,以實現(xiàn)安全軟件開發(fā)。

SAST 工具如何幫助確保安全軟件工程的最佳實踐 ?

越來越多的組織正在投資軟件安全開發(fā)和網(wǎng)絡(luò)安全技術(shù),其中包括SAST工具,如 Klocwork 。盡管在網(wǎng)絡(luò)安全覆蓋范圍方面取得了許多進展,但大部分努力都集中在事后增加安全性和改進威脅檢測上。

許多人現(xiàn)在意識到SAST 的重要性 ,并實施一個安全的開發(fā)過程。

僅僅應(yīng)用新的安全技術(shù)是不夠的。軟件本身需要縮小風險差距。如果窗戶保持打開狀態(tài),在前門上安裝更堅固的鎖是沒有用的。

為什么軟件開發(fā)中的安全性很困難?

安全軟件的優(yōu)先級不夠大

對于大多數(shù)開發(fā)人員來說,軟件開發(fā)中的安全性并不是一個足夠重要的優(yōu)先事項。

有句老話說,你需要:

?快速進入市場。

?涵蓋計劃的所有功能。

?維持高水平的質(zhì)量。

但是,您只能擁有三個中的兩個。因此,雖然質(zhì)量是對話的一部分,但安全性往往被拋在后面。

功能和截止日期推動開發(fā)清單。而且,安全軟件通常不是一項功能或要求。因此,它很少被解決。

質(zhì)量不一定保證安全

提高軟件質(zhì)量和軟件完整性 可以 減少缺陷導(dǎo)致的安全漏洞。但是,QA通常不考慮黑客攻擊。

嵌入式開發(fā)中的活動部件太多

嵌入式系統(tǒng)龐大而復(fù)雜。

有新的和舊的代碼- 以及連接組件。而且,嵌入式系統(tǒng)在各種操作系統(tǒng)上運行。

多個開發(fā)團隊合作開發(fā)軟件。而且,它們通常遍布世界各地。

更不用說確保軟件正常運行已經(jīng)足夠困難了。確保軟件安全可能更加困難。

沒有足夠的安全培訓

不幸的是,許多參與軟件開發(fā)的人不知道如何識別安全問題。這包括某些軟件需求的安全影響,或者說缺乏這些需求。

而且,他們不知道安全性是如何影響軟件的:

?建模

?架構(gòu)

?設(shè)計

?實現(xiàn)

?測試

?準備分發(fā)和部署

因此,開發(fā)人員可能無法設(shè)計安全軟件。可能缺乏安全要求。而且,開發(fā)人員可能不了解錯誤如何變成安全漏洞。

沒有人擁有安全

大多數(shù)嵌入式開發(fā)團隊都沒有負責軟件安全的人員。相反,他們依靠各種角色(從產(chǎn)品管理到開發(fā)再到QA)來確保軟件安全。而且,這并不總是有效。

安全軟件開發(fā)的10 個最佳實踐

了解我們可能會遇到上述一個或多個常見的AppSec 問題后,請問問自己:“確保代碼開發(fā)、實踐、流程或方法安全的最有效方法是什么?

現(xiàn)代思維表明,安全軟件開發(fā)與創(chuàng)建軟件應(yīng)用程序的方法有關(guān),這些應(yīng)用程序是出于安全考慮而有意設(shè)計和執(zhí)行的。

即使您可以訪問用于掃描和分析軟件的最佳測試工具鏈,此過程也應(yīng)需要實施各種實踐和方法,以識別和減輕軟件開發(fā)生命周期每個階段的潛在安全威脅和弱點。

以下是安全軟件開發(fā)的10 個最佳實踐:

1. 威脅建模

威脅建模涉及分析軟件體系結(jié)構(gòu)并識別潛在的安全威脅和漏洞。這有助于在設(shè)計軟件時考慮到安全性并實施必要的安全控制。

2. 安全編碼

開發(fā)人員必須遵守安全編碼實踐,例如輸入驗證、安全數(shù)據(jù)存儲和安全通信協(xié)議。安全編碼實踐有助于防止常見的安全漏洞,例如 SQL 注入、跨站點腳本和緩沖區(qū)溢出攻擊。

3. 代碼審查

代碼審查涉及審查開發(fā)人員編寫的代碼,以識別潛在的安全問題。這有助于在開發(fā)過程的早期檢測和糾正安全漏洞。

4. 測試

定期安全測試(包括滲透測試和漏洞掃描)可以幫助識別軟件中的潛在安全漏洞。這有助于在部署軟件之前修復(fù)安全問題。

5. 安全配置管理

配置管理可確保使用安全配置部署軟件系統(tǒng)。這包括配置訪問控制、網(wǎng)絡(luò)設(shè)置和其他與安全相關(guān)的設(shè)置,以降低未經(jīng)授權(quán)的訪問風險。

6. 訪問控制

訪問控制確保只有授權(quán)人員才能訪問軟件系統(tǒng)。這包括實施用戶身份驗證和授權(quán)機制,以及基于角色的訪問控制。

7. 定期更新和補丁

定期軟件更新和補丁有助于解決安全漏洞并降低安全漏洞的風險。及時了解系統(tǒng)中使用的所有軟件組件的安全補丁和更新非常重要。

8. 安全培訓

參與軟件開發(fā)過程的開發(fā)人員和其他人員應(yīng)定期接受安全培訓,以確保他們了解安全的重要性和安全軟件開發(fā)的最佳實踐。

9. 事件響應(yīng)

組織應(yīng)制定明確定義的事件響應(yīng)計劃來響應(yīng)安全事件。這包括識別潛在的安全事件、控制安全事件的影響以及從安全事件中恢復(fù)。

10. 持續(xù)監(jiān)控

持續(xù)監(jiān)控有助于實時檢測和響應(yīng)安全事件。這包括監(jiān)控系統(tǒng)日志、網(wǎng)絡(luò)流量和用戶行為,以發(fā)現(xiàn)任何安全漏洞的跡象。

通過遵循這些最佳實踐,組織可以開發(fā)安全可靠的軟件應(yīng)用程序,以抵御潛在的安全威脅和漏洞。在軟件開發(fā)的每個階段優(yōu)先考慮安全性至關(guān)重要,以防止未經(jīng)授權(quán)的訪問并保護敏感數(shù)據(jù)。

使用靜態(tài)代碼分析工具幫助確保安全的軟件開發(fā)

靜態(tài)代碼分析支持安全開發(fā)過程,因為所有安全缺陷中有一半 是在源代碼級別引入的。因此,在編寫代碼后立即查找和修復(fù)錯誤至關(guān)重要。

但是,許多開發(fā)人員缺乏安全培訓。而且,在代碼審查期間識別安全問題可能很困難。安全錯誤可能很微妙,即使對于訓練有素的開發(fā)人員也很容易被忽視。

靜態(tài)代碼分析工具可以彌合這一知識差距,它們標記安全漏洞并加速代碼審查。

使用靜態(tài)分析,開發(fā)人員可以識別錯誤,包括:

?內(nèi)存泄漏

?訪問沖突

?算術(shù)錯誤

?數(shù)組和字符串溢出

這最大限度地提高了代碼質(zhì)量,并最大限度地減少了錯誤對產(chǎn)品和項目時間表的影響。

此外,靜態(tài)代碼分析工具(例如用于C / C++的 Helix QAC ,以及 Klocwork C,C++,C#Java,JavaScript,Python和Kotlin)可用于遵守CERT C(或MISRA)編碼規(guī)則。而且,他們可以更快地識別CWE編碼錯誤。

詳細了解如何應(yīng)用安全編碼標準以更好地確保安全的軟件開發(fā)過程。

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

    關(guān)注

    5052

    文章

    18909

    瀏覽量

    300715
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    4611

    瀏覽量

    86984
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    ECU電控軟件開發(fā)及測試介紹

    本文重點介紹符合AutoSar架構(gòu)的應(yīng)用軟件開發(fā)、MBD開發(fā)模式下的軟件質(zhì)量評估與優(yōu)化方案、復(fù)雜場景下的ECU性能壓力測試方案。
    的頭像 發(fā)表于 09-26 14:25 ?3074次閱讀
    ECU電控<b class='flag-5'>軟件開發(fā)</b>及測試介紹

    9月12日云技術(shù)研討會 | ECU電控軟件開發(fā)及測試全流程解決方案

    本次研討會,經(jīng)緯恒潤將結(jié)合業(yè)務(wù)團隊多年來在軟件開發(fā)和測試領(lǐng)域的工程實踐經(jīng)驗,分享探討基于AutoSar架構(gòu)的應(yīng)用軟件開發(fā)、基于MBD開發(fā)軟件
    的頭像 發(fā)表于 09-26 14:18 ?1268次閱讀
    9月12日云技術(shù)研討會 | ECU電控<b class='flag-5'>軟件開發(fā)</b>及測試全流程解決方案

    RTOS開發(fā)最佳實踐

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

    BQ769x2 軟件開發(fā)指南

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

    嵌入式軟件開發(fā)與AI整合

    嵌入式軟件開發(fā)與AI整合是當前技術(shù)發(fā)展的重要趨勢之一。隨著人工智能技術(shù)的快速發(fā)展,嵌入式系統(tǒng)越來越多地集成了AI算法,以實現(xiàn)更復(fù)雜的智能功能。以下是關(guān)于嵌入式軟件開發(fā)與AI整合的詳細分析
    的頭像 發(fā)表于 07-31 09:25 ?569次閱讀
    嵌入式<b class='flag-5'>軟件開發(fā)</b>與AI整合

    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 ?438次閱讀
    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>

    【《軟件開發(fā)珠璣》閱讀體驗】+ 心得

    【《軟件開發(fā)珠璣》閱讀體驗】+ 心得 感謝電子發(fā)燒友論壇提供的讀書機會。讀這本書使我在編程方面多了位資深老師。 在軟件項目開發(fā)領(lǐng)域的時,我閱讀了《軟件開發(fā)珠璣》這本書。它以獨特的視角和
    發(fā)表于 06-23 17:56

    上位機軟件開發(fā)用什么語言

    上位機軟件開發(fā)是指開發(fā)用于與下位機(如PLC、單片機等)進行通信、控制和數(shù)據(jù)處理的計算機軟件。上位機軟件在工業(yè)自動化、物聯(lián)網(wǎng)、智能家居等領(lǐng)域有著廣泛的應(yīng)用。選擇合適的編程語言對于
    的頭像 發(fā)表于 06-06 10:44 ?1171次閱讀

    廣告電商+超級云APP結(jié)合 # 軟件開發(fā)# 模式開發(fā)# 小程序開發(fā)# App開發(fā)

    軟件開發(fā)APP
    jf_01576396
    發(fā)布于 :2024年04月09日 17:42:13

    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 ?2015次閱讀

    嵌入式軟件開發(fā)流程

    電子發(fā)燒友網(wǎng)站提供《嵌入式軟件開發(fā)流程.ppt》資料免費下載
    發(fā)表于 11-17 14:37 ?3次下載
    嵌入式<b class='flag-5'>軟件開發(fā)</b>流程

    AUTOSAR軟件開發(fā)流程簡介

    AUTOSAR軟件開發(fā)流程簡介 AUTOSAR軟件開發(fā)流程是指在AUTOSAR架構(gòu)下進行軟件開發(fā)的一系列步驟和方法。它包括以下幾個主要階段: 需求分析:在這個階段,根據(jù)汽車電子系統(tǒng)的需求,定義和分析
    的頭像 發(fā)表于 10-27 15:55 ?2904次閱讀
    AUTOSAR<b class='flag-5'>軟件開發(fā)</b>流程簡介