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

選擇內(nèi)置磁致伸縮位移傳感器的3個步驟

信道編碼和信源編碼的區(qū)別
拉線編碼器接線指南:步驟與注意事項

拉線編碼器關(guān)鍵參數(shù)詳解
拉線編碼器安裝指南:步驟與注意事項

編碼器的工作原理及其主要作用
base64編碼和解碼的使用方法
如何使用ASCII碼進(jìn)行編碼
簡述光刻工藝的三個主要步驟
磁電式編碼器好還是光電式編碼器
深視智能點激光/點光譜使用編碼器觸發(fā)采集操作說明

音頻數(shù)據(jù)的pcm編碼后還原過程的失真是由于
編碼器的工作原理及接線方式
改善升壓轉(zhuǎn)換器PCB布局的五個步驟

評論