DevOps模式下的代碼自動化安全檢測實踐
什麼是DevOps?
DevOps(Development和Operations的組合詞)是一組過程、方法與系統的統稱,用於促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。
它是一種重視“軟件開發人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例。透過自動化“軟件交付”和“架構變更”的流程,來使得構建、測試、發佈軟件能夠更加地快捷、頻繁和可靠。
爲什麼需要引入自動化代碼掃描?
目前,安全防護只是特定團隊的責任,一般是在開發的最後階段纔會介入。當開發週期長達數月、甚至數年時,這樣做沒什麼問題;但是隨着現在項目迭代週期的加快,這種做法已經行不通了。採用 DevOps 可以有效推進快速頻繁的開發週期(有時全程只有數週或數天),但是過時的安全措施則可能會拖累整個流程,即使最高效的 DevOps 計劃也可能會放慢速度。
如何引入代碼自動化掃描平臺?
DevOps流程圖分爲計劃、編碼、構建、測試、發佈、部署、運營、監控階段,具體實現是在項目測試到部署階段引入代碼自動化掃描。
以下使用Jekins+git+mysql+sonarqube爲例實現全自動代碼掃描。
Jenkins安裝
1.官網下載jenkins.war安裝包
2.通過命令方式啓動:java -jar jenkins.war --httpPort=9090
3.啓動完成後記錄生成的密碼
4.訪問http://localhost:8080/,進行插件安裝
5.啓動頁面
mysql安裝
首先官網下載相應版本,然後解壓到相應目錄下,首先path添加mysql的bin目錄
對mysql進行配置初始化,路徑端口如需更改需自行調整
CMD控制檯(管理員)進入bin目錄,進行初始化mysqld --initialize --user=mysql --console,成功後記錄下控制檯輸出的初始密碼Q(6aH.?.wiqo(後續可修改),用來登錄
CMD控制檯(管理員)進入bin目錄,安裝mysqld –install
啓動服務net start mysql
連接mysql數據庫,並且建立sonar的數據庫和用戶
<code>CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;</code><code>CREATE USER "sonar" IDENTIFIED BY "password";</code><code>GRANT ALL ON sonar.* TO "sonar"@"%" IDENTIFIED BY "password";</code><code>GRANT ALL ON sonar.* TO "sonar"@"localhost" IDENTIFIED BY "password";</code><code>FLUSHPRIVILEGES;</code>
sonarqube安裝
修改sonar配置,\conf下sonar.properties中MySQL中配置,用戶名和密碼需要與設置保持一致
<code>sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false</code><code> sonar.jdbc.username=root</code><code> sonar.jdbc.password=sonar123</code><code> sonar.sorceEncoding=UTF-8</code><code> sonar.login=sonar</code><code> sonar.password=sonar</code>
進入sonar目錄E:\sonarqube-7.6\bin\windows-x86-64,通過StartSonar.bat初始化並啓動sonar,完成後訪問http://localhost:9000/,初始密碼admin/admin
啓動後的sonar頁面
持續集成
上面我們安裝好了mysql、jenkins、sonarQube,現在進行持續集成
1.jenkins配置jdk和SonarQube Scanner
在sonar中生成令牌
2.新建item,並進行配置(本例中使用得是github上的代碼庫)
3.構建配置
4.點擊構建可以看到構建正在進行
5.控制檯可以看到詳細信息
6.運行成功後可以在sonar上看到掃描結果
到此全部結束,這樣在項目部署到環境上進行測試時,就可以同步檢測代碼相關漏洞情況。
杜元飛,從業7年,註冊信息安全專業人員,對代碼審計、滲透測試有豐富經驗。 作者郵箱:[email protected],歡迎大家提出寶貴的建議!
聲明:本文來自網安前哨,版權歸作者所有。文章內容僅代表作者獨立觀點,不代表安全內參立場,轉載目的在於傳遞更多信息。如有侵權,請聯繫 [email protected]。