目前主流的開發(fā)采用的是devops模式(開發(fā)、測試、運(yùn)維一體化)。隨著互聯(lián)網(wǎng)安全要求越來越高,對網(wǎng)絡(luò)安全就越發(fā)變得重要了。傳統(tǒng)的測試工程師主要是對功能、接口、性能方面做測試,而對安全方面測試考慮很少。需要專業(yè)的白帽子工程師來實(shí)現(xiàn)測試,對人的要求較高。目前提出devsecops模式 也就是增加安全測試這塊。
DevSecOps 是一種把安全的最佳實(shí)戰(zhàn)集成到DevOps的流程里面。 DevSecOps包括創(chuàng)立一種 安全即代碼(‘Security as Code’ )的文化,從而在發(fā)布開發(fā)工程師和安全團(tuán)隊(duì)之間,建立一種可以持續(xù)的,靈活合作的機(jī)制和流程,從而把在傳統(tǒng)軟件開發(fā)流程里面最后由安全測試團(tuán)隊(duì)把關(guān)掃描的安全工作,左移到整個(gè)軟件開發(fā)的全流程,從而大大降低了應(yīng)用在上線后出現(xiàn)的安全隱患,也大大加快了上線的速度,同時(shí)也讓其他非安全團(tuán)隊(duì)的軟件人員在開發(fā),測試,發(fā)布的全過程中,有安全意識,而不是時(shí)候補(bǔ)救,甚至大大修改框架
下面介紹jenkins+Acunetix實(shí)現(xiàn)自動化安全測試
1)安裝jenkins 關(guān)于Acunetix的插件
在jenkins 插件管理市場中 搜索到Acunetix 插件
安裝完成后在已經(jīng)安裝插件列表中會顯示
安裝好插件后,重啟jenkins 使得插件生效
2)安裝Acunetix 證書到 JAVA keystore 中
2.1) Acunetix ca 證書是什么東西,在哪里呢?
使用到Acunetix 會用到https 所以我們需要將Acunetix ca證書安裝到j(luò)enkins 依賴的jdk java keystore中。
Acunetix on windows
Acunetix ca在哪里呢,下面以windows為例,介紹一下
我這里使用的是
acunetix_14.1.210316110.exe 安裝版本,安裝后會在D:ProgramDataAcunetixcerts 目錄下生成 ca證書
Acunetix on linux
我使用的是Docker 容器版本的官方的鏡像secfa/docker-awvs,官方鏡像地址
容器里面ca 證書在哪呢?目錄結(jié)構(gòu)在
/home/acunetix/.acunetix/data/certs
2.2 jdk 如何導(dǎo)入Acunetix ca 證書呢?
Jenkins on Windows
查找當(dāng)前jenkins 依賴的jdk. 我們的jdk是windows 環(huán)境的,所以我的jre security 目前在
D:developjavajdk1.8.0_211jrelibsecuritycacerts
我們使用cmd命令行執(zhí)行如下命令
keytool -import -trustcacerts -alias AcunetixCA -keystore "D:developjavajdk1.8.0_211jrelibsecuritycacerts" -file D:ProgramDataAcunetixcertsca.cer
解釋 通過 keytool 導(dǎo)入 證書 Java keystore 目錄“ D:developjavajdk1.8.0_211jrelibsecuritycacerts
導(dǎo)入 目標(biāo)Acunetix ca “D:ProgramDataAcunetixcertsca.cer
輸入密碼 changeit
確認(rèn)已在Windows上成功安裝證書
keytool -list -keystore "D:developjavajdk1.8.0_211jrelibsecuritycacerts" -alias AcunetixCA
輸入密碼 changeit
顯示如下信息
Jenkins on Linux
從命令提示符運(yùn)行以下命令:
keytool -import -trustcacerts -alias AcunetixCA -keystore /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el8_1.x86_64/jre/lib/security/cacerts -file /home/acunetix/.acunetix/data/certs/ca.cer
確認(rèn)已在Windows上成功安裝證書
keytool -list -keystore /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el8_1.x86_64/jre/lib/security/cacerts -alias AcunetixCA
3)jenkins 配置Jenkins and Acunetix
在jenkins 中 manage Jenkins ——Configure System
在Acunetix API Key 增加Acunetix key
點(diǎn)擊“添加” 按鈕 設(shè)置Jenkins 憑據(jù)提供者
Acunetix key 是從哪獲取的呢?
登陸Acunetix 平臺在點(diǎn)擊profile
通過復(fù)制生成的api key 列如
1986ad8c0a5b3df4d7028d5f3c06e936cf9fc21aaf2a947ff88827667d8186740
復(fù)制的到上面Jenkins 憑據(jù)提供者中的secret 中
點(diǎn)擊Test Connection 驗(yàn)證配置是否成功
4)jenkins 項(xiàng)目中配置Acunetix實(shí)現(xiàn)自動安全測試
新建ddd項(xiàng)目,添加acunetix scan 配置
1 Scan Type
這里面根據(jù)掃描的類型(完全掃描、掃描高風(fēng)險(xiǎn)漏洞、掃描XSS漏洞、掃描SQL注入漏洞、弱口令檢測、Crawl Only,僅爬蟲、惡意軟件掃描)等屬性進(jìn)行掃描
2 Scan Target
這個(gè)里面是根據(jù)acunetix 平臺中目前存在的目標(biāo)項(xiàng)列出,我們根據(jù)自己的實(shí)際項(xiàng)目選擇一個(gè)目標(biāo)項(xiàng)目
3.Fail the build if threat level is
這個(gè)根據(jù)自己實(shí)際項(xiàng)目來(不要使構(gòu)建失敗、高危、中危和高位、低位中危高危)
目前我們設(shè)置有漏洞也不阻止構(gòu)建失敗
4.Generate Report
這里面會根據(jù)報(bào)告模版創(chuàng)建各種報(bào)告,目前我們默認(rèn)就選擇developer 就可以了
這里面報(bào)告和acunetix平臺報(bào)告相對應(yīng)
設(shè)置好點(diǎn)擊保存
5)jenkins 項(xiàng)目中實(shí)現(xiàn)自動安全測試
點(diǎn)擊項(xiàng)目構(gòu)建,完成項(xiàng)目 編譯、打包、單元測試、接口測試、安全測試等。
我這里只是設(shè)置了安全測試 其他這里就不做重點(diǎn)介紹。
構(gòu)建后自動生成安全測試報(bào)告
以上,我們通過jenkins+Acunetix 實(shí)現(xiàn)了 安全自動化測試,這樣我們再結(jié)合其他單元測試、自動化接口測試,就實(shí)現(xiàn)了簡單的DevSecOps功能了.






