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下 ...
随机推荐
- django模型系统一
django模型系统一 1.数据库的连接配置 django连接mysql的配置流程 安装pymysql ** pip install pymysql 修改配置 修改setting的配置文 ...
- Android 异步下载
package com.example.demo1; import java.io.File; import java.io.FileOutputStream; import java.io.IOEx ...
- 东芝 B-EV4 打印机 串口打印命令
最近在做项目时候使用了东芝的B-EV4打印机,在打印Excel时候由于字体太小,导致打印非常模糊.只能通过串口名称发送打印指令进行打印.在做项目的时候查了很多关于B-EV4打印机的资料,和打印命令.资 ...
- yum源搭建
1:vim /etc/yum.repo.d/ll.repo [local] 这里不能有空格,如[local yum] name=local baseurl=file:///yum gpgcheck ...
- select 查询
使用as给字段起别名,例如:select name as 姓名 from student; 模糊匹配(like) "_":一个占位符.例子:select * from studen ...
- [转]使用python爬取东方财富网机构调研数据
最近有一个需求,需要爬取东方财富网的机构调研数据.数据所在的网页地址为: 机构调研 网页如下所示: 可见数据共有8464页,此处不能直接使用scrapy爬虫进行爬取,因为点击下一页时,浏览器只是发起了 ...
- Excel技巧--文件批处理
先认识几个dos命令: ren 旧文件名 新文件名:更改文件名: dir 文件路径 /b > 目标路径/表名.xls:查询指定文件路径下的所有文件,写入到目标路径下的excel文件中: md 新 ...
- 设置Tomcat管理员用户名和密码
http://dove19900520.iteye.com/blog/1774980 今天tomcat出点问题,然后我就想进入tomcat manager看看,结果怎么输入密码都不行,后来网上查了查才 ...
- 删除iis日志(deliislogs.vbs)
'path 目录 'ext 文件扩展名'expiredDays 保留多少天以内的文件Sub LogCleaner(path,ext,expiredDays) On Error Resume Next ...
- docker stats监控容器资源消耗
在容器的使用过程中,如果能及时的掌握容器使用的系统资源,无论对开发还是运维工作都是非常有益的.幸运的是 docker 自己就提供了这样的命令:docker stats. 默认输出 docker sta ...