近年來(lái),這種做法已經(jīng)被重新檢查和改進(jìn),以包括DevSecOps 形式的安全問(wèn)題。將安全性集成到此方法中已經(jīng)在網(wǎng)絡(luò)空間中產(chǎn)生了重大變化,并且已證明在減少代碼漏洞方面更加有效。
要?jiǎng)?chuàng)建安全的高質(zhì)量代碼,團(tuán)隊(duì)可以采取幾個(gè)步驟。
更好編碼的3個(gè)步驟
更好的代碼歸結(jié)為幾件事:適當(dāng)?shù)陌踩珳y(cè)試、仔細(xì)的質(zhì)量保證、個(gè)人運(yùn)行時(shí)保護(hù)和代碼混淆。
01 代碼安全測(cè)試
代碼安全測(cè)試和分析是當(dāng)今競(jìng)爭(zhēng)激烈的世界的一個(gè)重要方面。適當(dāng)?shù)陌踩珳y(cè)試可以提醒開(kāi)發(fā)人員身份驗(yàn)證不足、信息泄露、二進(jìn)制保護(hù)不佳、格式字符串漏洞、傳輸層安全性不足等。手動(dòng)完成,這是一項(xiàng)繁瑣的工作,因此通常使用專業(yè)的代碼掃描解決方案來(lái)顯著降低此步驟的復(fù)雜性。
代碼安全測(cè)試的主要方法是使用靜態(tài)應(yīng)用程序安全測(cè)試或SAST。這種類型的測(cè)試涉及代碼掃描,以識(shí)別源代碼中的漏洞。這允許編碼人員重新檢查敏感性并采取預(yù)防措施來(lái)應(yīng)對(duì)可能的網(wǎng)絡(luò)攻擊。
SAST可以在軟件的早期開(kāi)發(fā)階段執(zhí)行,這意味著團(tuán)隊(duì)可以在應(yīng)用程序啟動(dòng)和運(yùn)行之前測(cè)試其安全性。使用正確的工具,組織可以在創(chuàng)建代碼時(shí)實(shí)時(shí)識(shí)別和監(jiān)控問(wèn)題。
測(cè)試軟件安全性的另一種方法是聘請(qǐng)專業(yè)安全機(jī)構(gòu)或內(nèi)部IT 安全團(tuán)隊(duì)。雖然這可能被證明是徹底和有效的,但它也可能變得昂貴和耗時(shí)。
當(dāng)開(kāi)發(fā)人員將第三方源代碼注入到他們的最終產(chǎn)品中時(shí),SAST工具被證明特別有用。第三方代碼有其優(yōu)點(diǎn),但開(kāi)源組件也有其缺點(diǎn)。最引人注目的是弱代碼或惡意代碼的威脅。這些問(wèn)題使得開(kāi)發(fā)人員不希望將第三方代碼添加到最終產(chǎn)品中,但SAST 工具通過(guò)分析代碼和構(gòu)建詳細(xì)報(bào)告來(lái)提供保證——即使是在外包代碼上。
這個(gè)過(guò)程可以由專門(mén)的安全團(tuán)隊(duì)完成,但資源緊張通常會(huì)導(dǎo)致組織轉(zhuǎn)而尋找代碼安全工具。
02 代碼質(zhì)量測(cè)試
代碼質(zhì)量取決于團(tuán)隊(duì)的目標(biāo)和他們工作的組織的優(yōu)先級(jí)。但是,可以通過(guò)兩個(gè)主要特征來(lái)識(shí)別高質(zhì)量代碼:可靠性和一致性。干凈的代碼應(yīng)該經(jīng)得起時(shí)間的考驗(yàn)——以及例行測(cè)試的審查。
更好的代碼質(zhì)量還會(huì)帶來(lái)更高的代碼安全性和應(yīng)用程序的可用性。因此,團(tuán)隊(duì)必須確保代碼的質(zhì)量符合標(biāo)準(zhǔn)。
由于沒(méi)有一個(gè)特定的標(biāo)準(zhǔn)可以衡量代碼的質(zhì)量,因此質(zhì)量測(cè)試會(huì)根據(jù)應(yīng)用程序和開(kāi)發(fā)人員的要求而有所不同。為了衡量給定代碼段的質(zhì)量,這些測(cè)試評(píng)估以下特征:
?可靠性
?可維護(hù)性
?可測(cè)試性
?可移植性
?可重用性
通過(guò)從這些角度檢查代碼,開(kāi)發(fā)人員可以減少在整個(gè)代碼中發(fā)現(xiàn)的缺陷數(shù)量。不幸的是,當(dāng)單個(gè)程序員測(cè)試代碼質(zhì)量時(shí),平均只有不到50% 的缺陷得到糾正。因此,開(kāi)發(fā)人員可以使用一些工具和實(shí)踐來(lái)確保質(zhì)量。
使用單一編碼標(biāo)準(zhǔn)
提高代碼質(zhì)量的最佳方法就是使用單一的編碼標(biāo)準(zhǔn)。這可以在軟件開(kāi)發(fā)生命周期開(kāi)始時(shí)完成,并將在整個(gè)應(yīng)用程序中促進(jìn)更一致的風(fēng)格。
運(yùn)行代碼分析器
現(xiàn)代靜態(tài)分析器具有很大的通用性,不僅能夠分析代碼中的安全漏洞,還可以通過(guò)實(shí)時(shí)反饋測(cè)試不連貫或低質(zhì)量的代碼。為了有效地做到這一點(diǎn),這些代碼掃描工具在軟件開(kāi)發(fā)的早期階段運(yùn)行,并在代碼的每一部分完成后使用,以保持一致性。雖然這些并不能完全消除錯(cuò)誤代碼的可能性,但代碼分析器可以顯著降低甚至在代碼審查階段開(kāi)始之前就遇到此類問(wèn)題的可能性。
執(zhí)行單元測(cè)試
單元測(cè)試是一種隔離代碼的單個(gè)部分并通過(guò)初始化該部分并用一個(gè)動(dòng)作刺激它以觀察結(jié)果來(lái)檢查它的技術(shù)。這可確保代碼按預(yù)期運(yùn)行并處于可接受的質(zhì)量水平。
執(zhí)行代碼審查
代碼審查是確保代碼質(zhì)量的主要手段。此步驟應(yīng)始終由專門(mén)的專業(yè)人員配合使用相關(guān)工具來(lái)完成。
03 代碼混淆和運(yùn)行時(shí)保護(hù)
只要有足夠的努力和時(shí)間,所有代碼都可以被逆向工程的概念是眾所周知的。然而,很大一部分代碼——尤其是在 Android、Java和 .NET上開(kāi)發(fā)的代碼——幾乎可以立即被破解。為了保護(hù)代碼免受惡意行為者的侵害,開(kāi)發(fā)人員使用代碼混淆使攻擊者對(duì)其進(jìn)行逆向工程變得極其復(fù)雜。
混淆的方法各不相同,但主要是在不改變實(shí)際軟件工作的情況下通過(guò)分層代碼來(lái)執(zhí)行。
重命名混淆
這種方法改變了變量和對(duì)象的名稱。這允許在代碼中進(jìn)行一層又一層的更改,這將使逆向工程成為反編譯器和人類都成倍困難的任務(wù)。
實(shí)施虛擬代碼
這是一種非?;镜行У募夹g(shù),可將偽代碼添加到軟件中。該代碼不會(huì)影響程序的邏輯流程,但會(huì)使反編譯程序可用的數(shù)據(jù)量更大,因此更難處理。
使用運(yùn)行時(shí)應(yīng)用程序自我保護(hù)
RASP是開(kāi)發(fā)人員與軟件代碼一起實(shí)施的框架,用于報(bào)告和防止對(duì)系統(tǒng)的外部攻擊。RASP 通過(guò)不斷分析正在運(yùn)行的軟件的工作并收集該信息以消除威脅來(lái)運(yùn)行。這項(xiàng)技術(shù)相當(dāng)發(fā)達(dá),2012 年首次部署,因此市場(chǎng)上有幾家頂級(jí)供應(yīng)商。
使用更高質(zhì)量的代碼改進(jìn)軟件開(kāi)發(fā)
軟件開(kāi)發(fā)絕非易事,執(zhí)行手動(dòng)安全測(cè)試、維護(hù)和進(jìn)一步保護(hù)可能會(huì)使組織退縮并使他們無(wú)法完成基本的業(yè)務(wù)任務(wù)。
對(duì)于混淆和運(yùn)行時(shí)保護(hù),PreEmptive可幫助組織提高應(yīng)用程序的彈性。為了節(jié)省時(shí)間和降低風(fēng)險(xiǎn),我們鼓勵(lì)企業(yè)使用 KiuwanInsights 開(kāi)源解決方案等工具來(lái)測(cè)試代碼質(zhì)量、修復(fù)漏洞并確保合規(guī)性。
審核編輯 :李倩
-
編碼
+關(guān)注
關(guān)注
6文章
945瀏覽量
54852 -
分析器
+關(guān)注
關(guān)注
0文章
93瀏覽量
12520 -
代碼
+關(guān)注
關(guān)注
30文章
4791瀏覽量
68694
原文標(biāo)題:Kiuwan:更好編碼的3 個(gè)步驟
文章出處:【微信號(hào):哲想軟件,微信公眾號(hào):哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論