自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么代碼安全掃描還不足夠

譯文
安全 應(yīng)用安全
2017年3月, Equifax公司服務(wù)器存儲(chǔ)的1.4億人的敏感信息被盜。這是怎么發(fā)生的?

 

【51CTO.com快譯】2017年3月, Equifax公司服務(wù)器存儲(chǔ)的1.4億人的敏感信息被盜。這是怎么發(fā)生的?

Equifax公司使用Apache Struts框架來(lái)運(yùn)行其網(wǎng)站。2017年3月初,Apache公司在Apache Struts中發(fā)現(xiàn)了一個(gè)安全漏洞(CVE-2017-5638),并于3月7日發(fā)布了一個(gè)安全補(bǔ)丁來(lái)修復(fù)上述漏洞。

3月9日,Equifax公司管理員收到通知為受到影響的軟件打好補(bǔ)丁,但他們沒(méi)有這樣做。3月12日,網(wǎng)絡(luò)攻擊者獲得了對(duì)Equifax公司內(nèi)部服務(wù)器的訪問(wèn)權(quán)限,從而發(fā)生了歷史上規(guī)模最大的一次數(shù)據(jù)泄露事件。

本文將探討如何通過(guò)一些步驟控制代碼質(zhì)量,并在文中簡(jiǎn)要描述安全掃描過(guò)程。然而,這次探討的不只是如何對(duì)代碼進(jìn)行安全掃描,而是對(duì)依賴項(xiàng)的掃描。

第三方依賴項(xiàng)有什么問(wèn)題

人們需要了解軟件行業(yè)中第三方組件的使用情況。以下是開(kāi)源技術(shù)提供商Black Duck公司對(duì)1000多個(gè)商業(yè)代碼庫(kù)進(jìn)行審計(jì)的主要發(fā)現(xiàn):

  • 96%的掃描應(yīng)用程序包含開(kāi)源組件。
  • 在2017年,開(kāi)源代碼的使用率從36%增加到57%。
  • 每個(gè)應(yīng)用程序的開(kāi)源組件平均數(shù)量為257個(gè)。

此外,根據(jù)Veracode公司的調(diào)查:

  • 應(yīng)用程序由多達(dá)90%的開(kāi)源代碼組成。
  • 開(kāi)發(fā)人員在2017年下載了520多億個(gè)Java組件(以及120億個(gè)Docker Hub組件)。
  • 開(kāi)源軟件的使用量在過(guò)去5年中增加了5倍。

很明顯,如今的軟件主要是由開(kāi)源依賴項(xiàng)構(gòu)建的,而第三方依賴項(xiàng)的數(shù)量在未來(lái)將會(huì)增長(zhǎng)。

(1)應(yīng)用程序安全風(fēng)險(xiǎn)

不幸的是,隨著第三方依賴項(xiàng)越來(lái)越多,在軟件中引入安全漏洞的風(fēng)險(xiǎn)也在增加。

開(kāi)源的全球性安全組織OWASP在2013年就意識(shí)到了這個(gè)問(wèn)題,并將“使用具有已知漏洞的組件”項(xiàng)目添加到OWASP的10大應(yīng)用程序安全風(fēng)險(xiǎn)的列表中。

組件(例如庫(kù)、框架和其他軟件模塊)以與應(yīng)用程序相同的權(quán)限運(yùn)行。如果利用易受攻擊的組件,可能會(huì)導(dǎo)致嚴(yán)重的數(shù)據(jù)丟失或服務(wù)器接管。使用具有已知漏洞的組件的應(yīng)用程序和API可能會(huì)破壞應(yīng)用程序的安全防御,并遭遇各種網(wǎng)絡(luò)攻擊和不良影響。

這并不意味著開(kāi)源軟件比專有組件風(fēng)險(xiǎn)更高,不必避免使用它。那么,這種風(fēng)險(xiǎn)有多大?根據(jù)Veracode公司發(fā)布的軟件安全狀況報(bào)告,其風(fēng)險(xiǎn)相當(dāng)高:近88%的Java應(yīng)用程序在組件中至少存在一個(gè)漏洞。

在討論解決這個(gè)問(wèn)題之前,先檢查一下運(yùn)行一個(gè)簡(jiǎn)單的Spring Boot應(yīng)用程序需要多少依賴項(xiàng)。

(2)Spring Boot應(yīng)用程序依賴項(xiàng)示例

使用Spring初始化程序生成了一個(gè)Spring Boot項(xiàng)目示例,其中包含一些流行的依賴項(xiàng),如下圖所示:

Spring Boot初始化示例項(xiàng)目設(shè)置:

因此,對(duì)于Spring Boot應(yīng)用程序示例,需要額外的55個(gè)JAR(37MB)才能使應(yīng)用程序成功啟動(dòng)和運(yùn)行。此外,JAR的數(shù)量取決于想要使用的附加功能/工具,它可能會(huì)變得更大。

例如,在目前正在處理的一個(gè)項(xiàng)目中,有262個(gè)依賴項(xiàng)。然而,大量的第三方依賴使得整個(gè)安全檢查過(guò)程非常困難。為什么?先了解一下如何檢測(cè)人工檢依賴項(xiàng)沒(méi)有已知的安全漏洞。

(3)第三方依賴掃描過(guò)程

以下人工依賴項(xiàng)檢查過(guò)程的步驟:

首先,收集給定的依賴識(shí)別信息(例如供應(yīng)商、產(chǎn)品和版本)以構(gòu)建通用平臺(tái)枚舉(CPE)。例如,org.springframework:spring-core:5.2.0.RELEASE的CPE將是cpe:/a:pivotal_software:spring_framework:5.2.0

其次,使用上一步中的標(biāo)識(shí)符搜索NVD等常見(jiàn)漏洞和暴露(CVE)數(shù)據(jù)庫(kù),并檢查給定依賴項(xiàng)是否存在任何漏洞。

然后,重復(fù)前兩個(gè)步驟55次(在這個(gè)示例中)

所以,看起來(lái)沒(méi)那么糟糕。在此忽略以上述方式進(jìn)行依賴項(xiàng)掃描需要一些時(shí)間并且需要人工進(jìn)行的事實(shí)。真正的問(wèn)題是新的漏洞可能隨時(shí)出現(xiàn)在CVE數(shù)據(jù)庫(kù)中。

用戶不能僅僅因?yàn)檫^(guò)去檢查過(guò)它們,就假設(shè)其依賴項(xiàng)將永遠(yuǎn)安全。這意味著必須在開(kāi)發(fā)/測(cè)試階段以及軟件在生產(chǎn)中運(yùn)行時(shí)檢查其依賴項(xiàng)。

自動(dòng)依賴項(xiàng)掃描

依賴項(xiàng)檢查是客戶必須定期做的事情。此外,需要檢查已經(jīng)發(fā)布的軟件的依賴性,以便可以在客戶發(fā)現(xiàn)軟件中的安全漏洞之前準(zhǔn)備一個(gè)補(bǔ)丁版本。

這并不是什么不尋常的事情。世界各地的公司越來(lái)越關(guān)注軟件安全。

以下了解是否有任何工具可以幫助保持依賴項(xiàng)免受漏洞影響。

以下是Java世界中兩個(gè)最流行的工具,它們使用戶能夠快速輕松地檢查漏洞數(shù)據(jù)庫(kù)的依賴關(guān)系:

  • WASP Dependency-Check——這是一種簡(jiǎn)單的工具,用于掃描Java和.Net應(yīng)用程序以識(shí)別已知易受攻擊的依賴項(xiàng)的使用情況??梢詫WASPDC用作獨(dú)立的命令行工具。此外,可以將其與最喜歡的構(gòu)建工具(Maven/Gradle)集成或?qū)⑵溆米鞒掷m(xù)集成(CI)/持續(xù)交付(CD)管道中的一個(gè)步驟(例如Jenkins)。
  • Snyk Open Source ——該工具比OWASPDC先進(jìn)得多(但是它每月只對(duì)數(shù)量有限的掃描免費(fèi))。它不僅掃描應(yīng)用程序依賴項(xiàng)并顯示潛在問(wèn)題。該工具可以優(yōu)先考慮最值得修復(fù)的問(wèn)題并建議自動(dòng)更新,因此檢查應(yīng)用程序代碼是否可以訪問(wèn)易受攻擊的功能,并檢查是否在運(yùn)行時(shí)調(diào)用了漏洞。

簡(jiǎn)而言之,這些工具可以幫助列出應(yīng)用程序中的第三方依賴項(xiàng),并指出存在已知漏洞的依賴項(xiàng)。此外,它們還提供了有關(guān)其發(fā)現(xiàn)嚴(yán)重性的信息。

但是,并非每個(gè)安全漏洞都會(huì)對(duì)應(yīng)用程序造成風(fēng)險(xiǎn)。例如,可能根本沒(méi)有在代碼中使用受影響的功能。這當(dāng)然需要更深入的分析,而不僅僅是簡(jiǎn)單的依賴漏洞掃描。

結(jié)語(yǔ)

總而言之,第三方依賴項(xiàng)掃描是左移安全方法的支柱之一。換句話說(shuō),這意味著應(yīng)該在開(kāi)發(fā)生命周期的早期集成安全掃描。

為此需要:

  • 工具——可以使用它來(lái)掃描應(yīng)用程序的依賴項(xiàng),例如OWASPDC。
  • 自動(dòng)掃描(定期和頻繁)——可以通過(guò)將掃描工具與持續(xù)集成(CI)服務(wù)器(例如Jenkins OWASP DC插件)或構(gòu)建工具(例如GradleO WASP DC插件)集成來(lái)實(shí)現(xiàn)這一點(diǎn)。
  • 漏洞審查和修復(fù)過(guò)程——一旦發(fā)現(xiàn)了漏洞,應(yīng)該仔細(xì)查看,并決定是忽略它還是將依賴項(xiàng)升級(jí)到最接近的安全版本。

以上提到的最后一點(diǎn)可能是最有問(wèn)題的一點(diǎn)。

首先,應(yīng)該讓信息安全團(tuán)隊(duì)參與審查依賴掃描工具的發(fā)現(xiàn)。根據(jù)嚴(yán)重性和對(duì)應(yīng)用程序的實(shí)際影響,可能不需要對(duì)它做任何事情而只需忽略它。但需要記住的是,這必須是一個(gè)慎重的決定。

其次,一旦決定需要修補(bǔ)漏洞,就應(yīng)該準(zhǔn)備好快速交付應(yīng)用程序的修補(bǔ)版本。特別是當(dāng)該版本已經(jīng)投入生產(chǎn)時(shí)。

原文標(biāo)題:Your Code Security Scanning Is Not Enough,作者:Artur Kluz

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2019-01-04 09:00:43

2016-06-06 11:14:21

DockerDelphix

2022-07-07 16:48:10

API應(yīng)用安全

2015-10-09 16:14:37

數(shù)據(jù)開(kāi)放

2013-05-27 09:15:07

2015-09-21 14:29:33

物聯(lián)網(wǎng)智能設(shè)備

2009-03-10 19:04:50

微軟IE8瀏覽器

2018-10-08 15:30:55

Linux開(kāi)源掃描工具

2009-07-17 19:18:47

桌面虛擬化服務(wù)器虛擬化IT

2022-12-22 21:01:11

2020-09-09 12:53:14

AMDNVIDIACPU

2016-02-24 11:49:00

2011-12-22 15:51:06

SSLVPN

2022-06-01 23:27:38

區(qū)塊鏈加密貨幣數(shù)字資產(chǎn)

2021-07-30 15:31:35

代碼重用漏洞攻擊

2017-08-14 18:00:13

共享單車摩拜

2016-12-16 12:08:11

公有云安全AWS IAM

2017-05-26 10:34:46

2020-12-10 11:35:14

Web安全掃描工具漏洞

2022-12-01 11:14:40

低代碼工具產(chǎn)品
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)