pipeline-安全测试
代码安全检查
- 需要安装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-安全测试的更多相关文章
- Pipeline组测试说明
PIPELINE组测试报告 前言:我们组与学霸系统的其他两个小组共同合作开发,组成学霸系统的团体工作.作为学霸系统的一环,我们组起到承上启下的作用,因此,面向群体以及功能实现都是为给下一个组的工作做好 ...
- Redis学习笔记7--Redis管道(pipeline)
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...
- (7)redis pipeline
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常 会阻塞并等待redi ...
- redis学习笔记之pipeline
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常 会阻塞并等待redi ...
- hadoop之计数器和管道的mrunit测试
引言 hadoop的调试真心让人灰常恼火,而且从企业实际出发,集群的资源是有限的,不可能在集群上跑一遍又一遍根据log去调试代码,那么使用MRUnit编写测试单元,显得尤为重要.MRUnit中的Map ...
- 分布式缓存Redis之Pipeline(管道)
Redis的pipeline(管道)功能在命令行中没有,但redis是支持pipeline的,而且在各个语言版的client中都有相应的实现. 由于网络开销延迟,就算redis server端有很强的 ...
- 【redis】pipeline - 管道模型
redis-pipeline 2020-02-10: 因为我把github相关的wiki删了,所以导致破图...待解决.(讲真github-wiki跟project是2个url,真的不好用) 因为用的 ...
- Redis学习笔记2-redis管道(pipeline)
redis的管道(Pipelining)操作是一种异步的访问模式,一次发送多个指令,不同步等待其返回结果.这样可以取得非常好的执行效率.这就是管道,调用方法如下: 来源:http://blog.csd ...
- 8.Jenkins进阶之流水线pipeline基础使用实践(1)
目录一览: 0x01 基础实践 (1) Maven 构建之 Pipeline Script (2) Maven 构建之 Pipeline Script from SCM (3) Jenkins pi ...
- elasticsearch系列(二) esrally压测
环境准备 linux centOS(工作环境) python3.4及以上 pip3 JDK8 git1.9及以上 gradle2.13级以上 准备过程中的坑 这些环境准备没什么太大问题,都是wget下 ...
随机推荐
- SSM框架的配置
主要是这三个配置文件 web.xml(用来加载和初始化下面的配置文件) applicationcontet.xml(就是Spring的配置文件,一般包括声明式失误等等AOP) Sprimgmvc,xm ...
- Devexpress Winform MVVM
归纳总结备忘 Devexpress Winform MVVM Practice 前言 MVVM Devexpress 正文 databindings及 UI Triggers Command 委托Co ...
- 记账本NABCD分析
学生记账本NABCD分析 N(Need,需求) 随着我们进入大学开始逐步的扩大自己的消费水平,而我们每天无法准确的记住一笔一笔的消费记录.常常,每一个月末时我们在宿舍楼道听到不少学生抱怨这个月怎么花钱 ...
- Python小练习(二)
按照下面的要求实现对列表的操作: 1)产生一个列表,其中有40个元素,每个元素是0到100的一个随机整数 2)如果这个列表中的数据代表着某个班级40人的分数,请计算成绩低于平均 ...
- java-启动和关闭.exe程序
链接: https://www.cnblogs.com/pengpengzhang/p/8675740.html https://blog.csdn.net/ZHANGHUI3239619/artic ...
- 记录一个Q版openstack搭建教程地址
https://blog.csdn.net/networken/article/details/80682437 感谢这篇文章的作者,文档很详细,记录一下,希望对大家有帮助.
- Windows10关闭自动更新
1 使用windows+r调出运行,输入:services.msc2 找到Windows update,右键选择属性:将启动类型从自动改为手动.3 使用windows+r调出运行,输入:gpedit. ...
- 理解OpenShift(4):用户及权限管理
理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4) ...
- Java异常学习总结一
Java中的异常 定义 异常(Exception)就是在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序. 常见类型举例 所需文件找不到(ClassNotFoundException) 网 ...
- is,as,类库
is和as运算符: 所有类型的基类 object类型 - 基类:所有类型的基类,就类似是整个生物圈的生物类,是个大的概念 object o1 = new Random(); //object可以承载R ...