代码安全检查

  • 需要安装SonarQube(版本6.7,安装了Findbugs插件)
  • MySQL >=5.6,笔者安装的是MySQL 5.7版本
  • Jenkins需要安装下列插件:
    • SonarQube Scanner for Jenkins
    • Sonar Quality Gates Plugin

注意点:

  • Sonar需要配置"质量阈"
  • Sonar需要配置"web回调接口"
  • 具体script和declarative类型的pipeline代码请参见本文最后

 

 

 

依赖安全检查

  • Jenkins需要安装以下插件

    • Static Code Analysis Plug-ins
    • OWASP_Dependency_Check

注意点:

  • 关于搭建本地NVD镜像,这个是可以做到;如何使用本地镜像是个问题,不知道如何使用
  • Doc只提到OWASP_Dependency_Check客户端可以使用本地镜像

查出的结果如下:

 

安全自动化

此部分目前暂时没有实现

  • 目前有现成的security zap for pipeline插件(gradle)
  • 且需要有现成的跑web自动化的代码

附件

  • pipeline script
node {
stage('Build') {
echo 'Building....'
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'global_credentials', url: 'http://***/Test-myown.git']]])
sh "mvn -DskipTests clean install package sonar:sonar"
def mvnHome = tool 'M3'
def gitDefault = tool 'gitDefault'
def jdkver = tool 'jdk8'
def mysonar = tool 'SonarQube Scanner 6.7'
echo "---${mvnHome}/bin/mvn---"
echo "---${gitDefault}---"
echo "---${jdkver}---"
echo "---${mysonar}---"
}
stage('SonarQube analysis') {
echo "starting codeAnalyze with SonarQube......"
withSonarQubeEnv {
sh 'mvn -DskipTests clean install package org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar'
}
}
stage('Quality Gate') {
timeout(3) {
def qg = waitForQualityGate()
echo "---before qg:${qg.status}---"
if (qg.status != 'OK') {
error "未通过Sonarqube的代码质量阈检查,请及时修改!failure: ${qg.status}"
}
echo "---after qg:${qg.status}---"
}
}
stage('Dependency Check') {
dependencyCheckAnalyzer datadir: '', hintsFile: '', includeCsvReports: false, includeHtmlReports: true, includeJsonReports: false, includeVulnReports: true, isAutoupdateDisabled: false, outdir: '', scanpath: '', skipOnScmChange: false, skipOnUpstreamChange: false, suppressionFile: '', zipExtensions: ''
dependencyCheckPublisher canComputeNew: false, defaultEncoding: '', failedTotalHigh: '', healthy: '', pattern: '', unHealthy: ''
dependencyCheckUpdateOnly()
// dependencyTrackPublisher()--shibai失败,youchucuo有出错tishi
}
}
  • pipeline declaractive
node {
stage('SCM') {
git credentialsId: 'global_credentials', url: 'http://***/Test-myown.git'
}
stage('SonarQube analysis') {
echo "starting codeAnalyze with SonarQube......"
withSonarQubeEnv {
sh 'mvn -DskipTests clean install package org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar'
}
} stage('Quality Gate') {
timeout(3) {
def qg = waitForQualityGate()
echo "---before qg:${qg.status}---"
if (qg.status != 'OK') {
error "未通过Sonarqube的代码质量阈检查,请及时修改!failure: ${qg.status}"
}
echo "---after qg:${qg.status}---"
}
} }
 参考: https://testerhome.com/topics/11326
 

pipeline-安全测试的更多相关文章

  1. Pipeline组测试说明

    PIPELINE组测试报告 前言:我们组与学霸系统的其他两个小组共同合作开发,组成学霸系统的团体工作.作为学霸系统的一环,我们组起到承上启下的作用,因此,面向群体以及功能实现都是为给下一个组的工作做好 ...

  2. Redis学习笔记7--Redis管道(pipeline)

    redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...

  3. (7)redis pipeline

    redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常 会阻塞并等待redi ...

  4. redis学习笔记之pipeline

    redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常 会阻塞并等待redi ...

  5. hadoop之计数器和管道的mrunit测试

    引言 hadoop的调试真心让人灰常恼火,而且从企业实际出发,集群的资源是有限的,不可能在集群上跑一遍又一遍根据log去调试代码,那么使用MRUnit编写测试单元,显得尤为重要.MRUnit中的Map ...

  6. 分布式缓存Redis之Pipeline(管道)

    Redis的pipeline(管道)功能在命令行中没有,但redis是支持pipeline的,而且在各个语言版的client中都有相应的实现. 由于网络开销延迟,就算redis server端有很强的 ...

  7. 【redis】pipeline - 管道模型

    redis-pipeline 2020-02-10: 因为我把github相关的wiki删了,所以导致破图...待解决.(讲真github-wiki跟project是2个url,真的不好用) 因为用的 ...

  8. Redis学习笔记2-redis管道(pipeline)

    redis的管道(Pipelining)操作是一种异步的访问模式,一次发送多个指令,不同步等待其返回结果.这样可以取得非常好的执行效率.这就是管道,调用方法如下: 来源:http://blog.csd ...

  9. 8.Jenkins进阶之流水线pipeline基础使用实践(1)

    ​目录一览: 0x01 基础实践 (1) Maven 构建之 Pipeline Script (2) Maven 构建之 Pipeline Script from SCM (3) Jenkins pi ...

  10. elasticsearch系列(二) esrally压测

    环境准备 linux centOS(工作环境) python3.4及以上 pip3 JDK8 git1.9及以上 gradle2.13级以上 准备过程中的坑 这些环境准备没什么太大问题,都是wget下 ...

随机推荐

  1. 421. Maximum XOR of Two Numbers in an Array

    这题要求On时间复杂度完成, 第一次做事没什么思路的, 答案网上有不贴了, 总结下这类题的思路. 不局限于这个题, 凡是对于这种给一个  数组,  求出 xxx 最大值的办法, 可能上来默认就是dp, ...

  2. oracle存储结构

    数据库的物理存储结构 select * from v$datafile; 数据库的逻辑存储结构,从表空间开始查起一个数据库对象的逻辑存储结构如下表空间-段-区-块 select * from dba_ ...

  3. 前端 --- 5 BOM 和 DOM

    一.BOM BOM(Browser Object Model)是指浏览器对象模型, 它使 JavaScript 有能力与浏览器进行“对话”. 1. window 对象 一些常用的Window方法: ( ...

  4. Linux配置snmp

    机器环境 [root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) [root@linux- ...

  5. grafna与饼状图

    官网: https://grafana.com/plugins/grafana-piechart-panel/installation            https://grafana.com/p ...

  6. spring boot通过Interceptor和HandlerMethodReturnValueHandler实现统一处理为controller返回对象统计处理时间

    思路:实现思路都是基于Aop实现,方式上可以通过spring aop和spring mvc的aop机制都能实现. 通过Interceptor的可以实现为controller插入开始时间和执行结束时间, ...

  7. centos7如何安装部署Zabbix

    参考http://www.cnblogs.com/momoshouhu/p/8041293.html 1.关闭selinux和firewall 1.1检测selinux是否关闭 [root@local ...

  8. 刘志梅 201771010115 《面向对象程序设计(java)》 第九周学习总结

    实验九 异常.断言与日志 实验时间 2018-10-25 1.实验目的与要求 (1) 程序中会出现的错误:用户输入错误.设备错误.代码错误.物理限制. 在Java程序设计语言中,异常对象都是派生于Th ...

  9. Numpy学习笔记(二)

    (1)NumPy - 切片和索引 l  ndarray对象中的元素遵循基于零的索引. 有三种可用的索引方法类型: 字段访问,基本切片和高级索引. l  基本切片 Python 中基本切片概念到 n 维 ...

  10. Java笔记Spring(四)

    spring web项目启动入口 1.首先看一下传统Java Web的配置文件web.xml,网上找的一个,参考地址:https://blog.csdn.net/github_36301064/art ...