掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
譯者 | 李睿

為潁泉等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及潁泉網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站建設(shè)、潁泉網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
審校 | 孫淑娟
軟件架構(gòu)師Bob和安全開(kāi)發(fā)工程師Alice是一家軟件開(kāi)發(fā)初創(chuàng)公司的成員。以下是他們之間關(guān)于開(kāi)發(fā)一套新的微服務(wù)的對(duì)話。
Bob說(shuō):“你聽(tīng)到通知了嗎?客戶交易已經(jīng)敲定。我們可以開(kāi)始為他們?cè)谠破脚_(tái)上使用的金融服務(wù)開(kāi)發(fā)分析應(yīng)用程序。”
Alice:“太棒了!那么應(yīng)該使用哪種編程語(yǔ)言構(gòu)建應(yīng)用程序?”
Bob:“還沒(méi)有確定。它可以基于任何一種軟件編程語(yǔ)言,但更重要的是它必須是安全的。我們所有的系統(tǒng)及其應(yīng)用程序都應(yīng)該打上最新的安全補(bǔ)丁,并且軟件版本應(yīng)該始終以正確的配置運(yùn)行。
我會(huì)通過(guò)電子郵件給你發(fā)送詳細(xì)的業(yè)務(wù)用例和技術(shù)要求。簡(jiǎn)而言之,它將是持續(xù)集成和交付的快速發(fā)展。那么你建議我們使用什么工具進(jìn)行端到端安全掃描?”
Alice說(shuō):“當(dāng)然,我會(huì)向你發(fā)送一份工具清單,這些工具將使我們能夠在生產(chǎn)部署之前檢測(cè)和修復(fù)漏洞。我認(rèn)為需要有一種有前途的方法來(lái)掃描和消除代碼或應(yīng)用程序可能帶來(lái)的網(wǎng)絡(luò)安全風(fēng)險(xiǎn)?!?/p>
Bob說(shuō):“太好了,我們更喜歡采用開(kāi)源掃描工具,但如果有的話,你可以列出對(duì)流行的第三方專有工具的見(jiàn)解。”
Alice開(kāi)始探索關(guān)于代碼掃描主題的各種現(xiàn)有資源。根據(jù)Bob提供的需求規(guī)范,她考慮了所有關(guān)鍵領(lǐng)域,例如代碼的靜態(tài)分析、面向互聯(lián)網(wǎng)的用戶界面(UI)和API端點(diǎn)的動(dòng)態(tài)分析以及依賴包的漏洞掃描。
而幾天過(guò)去了,她仍然感到困惑,難以做出決定,因?yàn)榈玫降拇蟛糠中畔⒍际腔谟脩艚巧蛙浖捎眯砸?guī)范而不是以代碼為中心的,雖然這從開(kāi)發(fā)人員角度來(lái)看是有用的,并且可以適應(yīng)需求。
以下將深入了解各個(gè)安全掃描工具內(nèi)容(這足以幫助Alice做出決定)。
以下是各種安全掃描工具的類(lèi)別:
WhiteSource具有SAST和SCA功能來(lái)執(zhí)行代碼的安全掃描。SAST能力可用于檢測(cè)源代碼中的漏洞,SCA可用于檢測(cè)開(kāi)源依賴項(xiàng)中的漏洞。WhiteSource幫助開(kāi)發(fā)人員修復(fù)漏洞。它與Jenkins、Bamboo、AzureDevOps、GIT和TFS集成。
SonarQube是一個(gè)用于檢查代碼質(zhì)量的開(kāi)源平臺(tái),并與GitHub、BitBucket、GitLab、Maven、Gradle、Travis、Jenkins、Bamboo和Azure DevOps集成。SonarQube可以測(cè)量關(guān)鍵指標(biāo),包括錯(cuò)誤、代碼缺陷、安全漏洞和重復(fù)代碼。SonarQube支持創(chuàng)建SonarQube插件,這有助于自定義代碼規(guī)則。
Code Risk Analyzer獲取所有基于Git的代碼、配置和部署工件,構(gòu)建依賴關(guān)系圖,并運(yùn)行合規(guī)性控制檢查管道。它會(huì)生成一個(gè)物料清單(BOM)文件,其中列出了所有第三方操作系統(tǒng)包和應(yīng)用程序包的依賴關(guān)系。它會(huì)發(fā)現(xiàn)物料清單(BOM)文件中列出的包中的漏洞。Code Risk Analyzer僅支持IBM Cloud?Continuous Delivery托管的github.com存儲(chǔ)庫(kù)、Git存儲(chǔ)庫(kù)和問(wèn)題跟蹤存儲(chǔ)庫(kù)。它可以啟用CRA來(lái)掃描拉取請(qǐng)求和合并。
HCL AppScan是一個(gè)全面的、基于云的應(yīng)用程序安全解決方案,與構(gòu)建環(huán)境、DevOps工具和IDE集成。AppScanon Cloud提供一整套測(cè)試技術(shù)(SAST、DAST、IAST和開(kāi)源)以提供最廣泛的覆蓋范圍。它可以使用AppScan UI設(shè)置誤報(bào)。
Gosec是一個(gè)安全工具,可以對(duì)Golang項(xiàng)目的安全漏洞進(jìn)行靜態(tài)代碼分析。Gosec通過(guò)將所有源代碼加載到AST(抽象語(yǔ)法樹(shù))中來(lái)工作,并應(yīng)用一組內(nèi)置規(guī)則來(lái)查找常見(jiàn)錯(cuò)誤,例如代碼中的秘密。它允許用//#nosecG101G102識(shí)別誤報(bào)。
Zed Attack Proxy(ZAP)是一種免費(fèi)的、開(kāi)源的動(dòng)態(tài)掃描工具,由開(kāi)放式Web應(yīng)用程序安全項(xiàng)目(OWASP)維護(hù)。ZAP專為Web應(yīng)用程序的滲透測(cè)試而設(shè)計(jì)。它設(shè)置警報(bào)過(guò)濾器以設(shè)置誤報(bào)。
|
工具名稱 |
用途 |
支持的語(yǔ)言 |
忽略列表 |
優(yōu)點(diǎn) |
缺點(diǎn) |
|
??WhiteSource Scanning?? |
開(kāi)源庫(kù)掃描工具。漏洞通過(guò)MITRE和NVD驗(yàn)證 |
Java、C#、C++、Golang、Node.js、Ruby、.Net、Dockerfiles、Javascript 等 |
Whitesource的配置文件以包含忽略列表 |
漏洞影響的細(xì)節(jié)很清楚,可用于所有依賴項(xiàng)的許可證類(lèi)型分類(lèi)與 Eclipse、VsCode、IntelliJ 等集成,問(wèn)題在存儲(chǔ)庫(kù)中修復(fù)后會(huì)自動(dòng)關(guān)閉 |
圖像掃描(操作系統(tǒng)包)和源代碼掃描不包括在內(nèi)。 |
|
??HCL ASOC?? |
源代碼靜態(tài)掃描和動(dòng)態(tài)掃描工具 |
Android、Kotlin、Java、c/c++、Golang、Groovy、JS、Python、PHP、Scala、Ruby、TypeScript等 |
在UI中標(biāo)記誤報(bào) |
一款涵蓋靜態(tài)代碼和動(dòng)態(tài)代碼掃描的工具。 掃描Dockerfile問(wèn)題誤報(bào)太多 |
誤報(bào)太多。 誤報(bào)設(shè)置適用于行號(hào),因此每次行號(hào)更改時(shí)都必須重新設(shè)置誤報(bào)。 主要關(guān)注 SQL 注入和 CSRF 相關(guān)漏洞, 不是廣泛的源代碼掃描。 |
|
??IBM CRA?? |
依賴掃描。 不是源代碼掃描。 使用 security.snyk.io 作為 CVE 數(shù)據(jù)庫(kù) |
Java, Node.js, Python, Golang, Docker files, Kubernetes, Terraform |
.cra/.fileignore(可以排除開(kāi)發(fā)依賴項(xiàng)(--excludedev)) |
執(zhí)行基本映像(操作系統(tǒng)包)掃描。 可以集成到管道中。 |
自動(dòng)創(chuàng)建的問(wèn)題沒(méi)有很多細(xì)節(jié)(管道有細(xì)節(jié)但沒(méi)有鏈接到問(wèn)題)。 修復(fù)后的問(wèn)題不會(huì)自動(dòng)關(guān)閉。 運(yùn)行管道時(shí)可能出現(xiàn)重復(fù),如果Dockerfile需要傳遞ARG,需要確保將ARG設(shè)置為環(huán)境變量。還可以使用Docker BUILDFLAG環(huán)境變量。 僅支持IBM Cloud? Continuous Delivery托管的Github.com存儲(chǔ)庫(kù)、Git存儲(chǔ)庫(kù)和問(wèn)題跟蹤存儲(chǔ)庫(kù)。 |
|
??OWASP ZAP?? |
開(kāi)源滲透測(cè)試工具 |
Java, Python, Node.js, .NET, PHP或者Go |
可以在 UI 中設(shè)置誤報(bào)。 使用配置文件忽略警報(bào)。 |
穩(wěn)定的滲透測(cè)試/動(dòng)態(tài)掃描解決方案。 自動(dòng)更新和拉取請(qǐng)求分析。 提供四種不同的掃描模式。 ?安全的 ?受保護(hù) ?標(biāo)準(zhǔn) ?攻擊 |
需要更好的報(bào)告格式。 主動(dòng)掃描很危險(xiǎn),根據(jù)應(yīng)用程序可能會(huì)創(chuàng)建/修改/刪除數(shù)據(jù)。 |
|
??SonarQube?? |
源代碼質(zhì)量和安全掃描工具。漏洞通過(guò)MITRE和NVD驗(yàn)證 |
Java(包括 Android)、C#、C、C++、JavaScript、TypeScript、Python、Go、Swift、COBOL、Apex、PHP、Kotlin、Ruby、Scala 等 |
沒(méi)有Sonar可以用來(lái)排除掃描代碼中的一行 |
對(duì)Java、C、C++等語(yǔ)言進(jìn)行廣泛的源代碼掃描,用于在代碼中檢測(cè): ?錯(cuò)誤 ?代碼缺陷 ?安全漏洞 ?重復(fù)代碼 提供有關(guān)如何修復(fù)代碼的詳細(xì)信息 根據(jù)OWASPTop10和CWETop25標(biāo)準(zhǔn)跟蹤項(xiàng)目安全性。 |
商業(yè)版不支持GitHub集成。 企業(yè)版價(jià)格高昂。 不掃描依賴項(xiàng)。這需要將插件集成到SonarQube。 定義政策/規(guī)則是一項(xiàng)挑戰(zhàn)。 測(cè)試覆蓋報(bào)告需要第三方覆蓋工具集成。 |
|
Gosec |
GoLang的代碼分析工具。漏洞由NVD驗(yàn)證 |
GoLang |
//#nosec G101 |
可以自定義Gosec以排除或包含某些測(cè)試。 gosec-track-suppressions可用于查看所有抑制。 Gosec將在Go模塊打開(kāi)時(shí)自動(dòng)獲取正在分析的代碼的依賴關(guān)系。 支持多種輸出格式,如text、json、yaml、csv、sonarqube、JUnit XML、html和golint。 |
映射CWE而不是CVE報(bào)告每個(gè)問(wèn)題。 |
盡管Alice之前沒(méi)有操作安全掃描工具的經(jīng)驗(yàn),但她不想嘗試每種工具,因?yàn)樗鼈儠?huì)為原型新軟件應(yīng)用程序環(huán)境帶來(lái)集成問(wèn)題的成本。
安全掃描工具的選擇是團(tuán)隊(duì)必須做出的重要決定。調(diào)查結(jié)果將進(jìn)一步導(dǎo)致關(guān)鍵決策,例如在安全掃描失敗的情況下阻止代碼交付,或在動(dòng)態(tài)代碼掃描的情況下,記錄可審計(jì)的可追溯過(guò)程以確認(rèn)測(cè)試的安全接受(即接受或忽略錯(cuò)誤正數(shù))。
而了解這些工具比較的細(xì)節(jié)之后,Alice將這些工具推薦給Bob,而這些工具很快就能入圍。
對(duì)于Bob來(lái)說(shuō),顯著避免使用不良的掃描工具比找到最好的工具更重要。Alice和Bob為此都很高興,因?yàn)榭梢怨?jié)省更多的時(shí)間,讓他們專注于實(shí)際業(yè)務(wù)需求開(kāi)發(fā)產(chǎn)品。
原文標(biāo)題:??Take Control of Your Application Security??,作者:Josephine E. Justin,Deepika Kothamasu,Swathi Pemmaraju

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流