• 招生咨詢熱線:4008-569-579 
  • 手機(jī)版
    用手機(jī)掃描二維碼直達(dá)商品手機(jī)版
招生咨詢熱線
4008-569-579
機(jī)構(gòu)主頁 > 培訓(xùn)資料 > 嵌入式開發(fā):向左移動(dòng)到安全連接的嵌入式系統(tǒng)
機(jī)構(gòu)主頁 > 培訓(xùn)資料>嵌入式開發(fā):向左移動(dòng)到安全連接的嵌入式系統(tǒng)

嵌入式開發(fā):向左移動(dòng)到安全連接的嵌入式系統(tǒng)

來源:廣州達(dá)內(nèi)教育        時(shí)間:2023-05-30        熱度:22℃        返回列表

在嵌入式開發(fā)中,如果底層架構(gòu)不安全,安全的應(yīng)用程序代碼在保護(hù)連接的嵌入式系統(tǒng)方面幾乎不起作用,但在一個(gè)以安全性為設(shè)計(jì)理念的系統(tǒng)中,它確實(shí)扮演著重要角色。

 

縱深防御和V型模式

傳統(tǒng)上,安全代碼驗(yàn)證的實(shí)踐在很大程度上是被動(dòng)的。代碼是通過遵循一些松散的指導(dǎo)方針開發(fā)的,然后經(jīng)過性能、滲透、負(fù)載和功能測試來發(fā)現(xiàn)漏洞,這些漏洞稍后會被修復(fù)。

一種更好、更主動(dòng)的方法確保代碼在設(shè)計(jì)上是安全的——沿著時(shí)間軸左移。這意味著一個(gè)系統(tǒng)化的開發(fā)過程,其中代碼是根據(jù)安全編碼標(biāo)準(zhǔn)編寫的,可追溯到安全需求,并在開發(fā)過程中進(jìn)行測試以證明符合這些需求。

 

這種主動(dòng)方法將安全相關(guān)的最佳實(shí)踐集成到功能安全領(lǐng)域的開發(fā)人員所熟悉的V-model軟件開發(fā)生命周期中。由此產(chǎn)生的安全軟件開發(fā)生命周期(SSDLC)代表了以安全為中心的嵌入式開發(fā)開發(fā)人員的轉(zhuǎn)變,并提供了一種實(shí)用的方法來確保漏洞被設(shè)計(jì)在系統(tǒng)之外或及時(shí)徹底地得到解決。

 

同樣的原則也可以應(yīng)用于DevOps生命周期,從而產(chǎn)生了DevSecOps。盡管DevSecOpsSSDLC的上下文不同,但左移對兩者來說意味著相同的事情,即早期和持續(xù)的安全性考慮。

 

盡早并經(jīng)常測試

這里描述的所有與安全相關(guān)的工具、測試和技術(shù)在每個(gè)生命周期模型中都有一席之地。在V模型中,它們在很大程度上類似于通常與功能安全應(yīng)用程序開發(fā)相關(guān)聯(lián)的過程,并對其進(jìn)行補(bǔ)充(1)。

1:基于V模型的安全軟件開發(fā)生命周期(SSDLC)中安全測試工具和技術(shù)的使用


DevSecOps模型中,DevOps生命周期在整個(gè)持續(xù)開發(fā)過程中與安全相關(guān)的活動(dòng)相疊加(2)

2:DevSecOps過程模型中安全測試工具和技術(shù)的使用[1]

 

V模型的情況下,需求可追溯性在整個(gè)嵌入式開發(fā)過程中得到維護(hù),在DevSecOps模型的情況下,需求可追溯性在每個(gè)開發(fā)迭代中都得到維護(hù)(在每個(gè)圖中以橙色顯示)。

 

一些SAST(靜態(tài))工具用于確認(rèn)遵守編碼標(biāo)準(zhǔn),確保復(fù)雜性保持在最低水平,并檢查代碼是否可維護(hù)。其他的用于檢查安全漏洞,但是僅限于在沒有執(zhí)行環(huán)境的情況下對源代碼進(jìn)行這種檢查。

 

白盒DAST(動(dòng)態(tài))使編譯和執(zhí)行的代碼能夠在開發(fā)環(huán)境中測試,或者更好的是,在目標(biāo)硬件上測試。代碼覆蓋率有助于確認(rèn)代碼滿足了所有安全性和其他需求,并且所有代碼都滿足了一個(gè)或多個(gè)需求。如果系統(tǒng)的關(guān)鍵程度需要,這些檢查甚至可以進(jìn)行到目標(biāo)代碼級別。

 

健壯性測試可以在單元測試環(huán)境中使用,以幫助證明特定的函數(shù)是有彈性的,無論是在它們的調(diào)用樹的上下文中。

在嵌入式開發(fā)中,傳統(tǒng)上與軟件安全相關(guān)的模糊和滲透黑盒測試技術(shù)仍然具有相當(dāng)大的價(jià)值,但在這種情況下,這些技術(shù)被用于確認(rèn)和演示在安全基礎(chǔ)上設(shè)計(jì)和開發(fā)的系統(tǒng)的健壯性。

 

提供雙向可追溯性

軟件工程術(shù)語的IEEE標(biāo)準(zhǔn)詞匯表將可追溯性定義為在開發(fā)過程的兩個(gè)或更多產(chǎn)品之間建立關(guān)系的程度,尤其是相互之間具有前任-繼任者或主從關(guān)系的產(chǎn)品。雙向可追溯性意味著可追溯性路徑被向前和向后維護(hù)(3)。

自動(dòng)化使得在不斷變化的項(xiàng)目環(huán)境中維護(hù)可追溯性變得更加容易。

3:雙向可追溯性

 

前向可追溯性表明所有需求都反映在嵌入式開發(fā)過程的每個(gè)階段,包括實(shí)現(xiàn)和測試。任何需求變更或者失敗的測試用例的影響都可以通過應(yīng)用影響分析來評估,然后再進(jìn)行處理。然后,可以對最終的實(shí)現(xiàn)進(jìn)行重新測試,以提供繼續(xù)遵循雙向可追溯性原則的證據(jù)。

同樣重要的是向后可追溯性,它突出了不滿足任何指定需求的代碼。疏忽、錯(cuò)誤的邏輯、功能蔓延和惡意后門方法的插入都會引入安全漏洞或錯(cuò)誤。

 

重要的是要記住,一個(gè)安全的嵌入式工件的生命周期一直持續(xù)到這個(gè)領(lǐng)域中的最后一個(gè)例子不再被使用。對這樣一個(gè)工件的任何妥協(xié)都需要一個(gè)響應(yīng),一個(gè)變更的或者新的需求,一個(gè)需要立即響應(yīng)的需求——通常是對開發(fā)工程師很久沒有接觸的源代碼。在這種情況下,自動(dòng)化的可追溯性可以隔離出所需要的東西,并且只對受影響的功能進(jìn)行自動(dòng)化測試。

 

實(shí)踐中的左移

開發(fā)安全關(guān)鍵應(yīng)用程序的個(gè)人和團(tuán)隊(duì)都熟悉左移原則所包含的概念。多年來,功能安全標(biāo)準(zhǔn)要求采用類似的方法。因此,許多在功能安全領(lǐng)域得到驗(yàn)證的最佳實(shí)踐適用于前面討論的安全關(guān)鍵型應(yīng)用程序,包括在一開始(V-model)或每次迭代之前(DevSecOps)建立功能和安全需求,盡早并經(jīng)常進(jìn)行測試,以及將雙向跟蹤需求應(yīng)用于嵌入式開發(fā)的所有階段。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部