什么是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]

相关文章