首页
下载
关于
Search
1
Dependency check配置本地数据库mysql
40 阅读
2
开源防病毒引擎ClamAV
34 阅读
3
制作qcow2格式镜像
33 阅读
4
n2n内网穿透保姆教学
30 阅读
5
Go实现加班通知你老婆的脚本
26 阅读
日常记录
网络安全
Python
运维
Go
登录
Search
标签搜索
Python
算法
Go
定时任务
AiiCi
累计撰写
9
篇文章
累计收到
75
条评论
今日撰写
0
篇文章
首页
导航栏
日常记录
网络安全
Python
运维
Go
页面
下载
关于
用户登录
登录
搜索到
1
篇与
运维
的结果
2024-05-01
Dependency check配置本地数据库mysql
一、简介 Dependency Check 是一款开源的静态分析工具,主要用于检测项目中的依赖库是否存在已知的安全漏洞。它是由 OWASP(Open Web Application Security Project)开发和维护的,旨在帮助开发者在构建软件时提前识别和修复安全隐患。以下是 Dependency Check 的一些关键特性和功能:二、核心功能安全漏洞检测: Dependency Check 通过扫描项目的依赖库和插件,检测其中是否包含已知的安全漏洞。它会检查常见的依赖管理系统(如 Maven、Gradle、NPM、Yarn、Composer 等)所引用的库版本,并与已知漏洞数据库进行比对。漏洞数据库: 工具主要依赖于 National Vulnerability Database (NVD) 和其他来源(如 NPM Advisory、OSS Index 等)来获取漏洞信息。这些数据库包含了大量的已知安全漏洞及其详细信息。生成报告: Dependency Check 在扫描完成后生成详细的报告,报告中列出了所有发现的漏洞,风险等级,受影响的组件及其版本,以及解决这些漏洞的建议和链接。多语言支持: 支持多种编程语言和包管理工具,包括 Java、.NET、Node.js、Python、Ruby、PHP 等,这使得它在不同技术栈的项目中都能使用。集成与自动化: 可以与 CI/CD 管道集成,自动化依赖库的安全检查。例如,可以通过 Jenkins、GitHub Actions 等工具在构建过程中自动运行 Dependency Check,确保每次构建都不会引入新的漏洞。三、使用方式命令行工具: Dependency Check 提供了一个命令行工具,可以直接在开发环境或 CI 环境中运行。用户可以通过命令行参数指定要扫描的项目路径和其他配置选项。插件形式: 支持作为插件集成到构建工具中,例如 Maven、Gradle、SBT、Ant 等,使得在构建过程中自动进行安全检查。REST API: 提供了 REST API,允许用户通过网络请求方式进行扫描和获取报告,适用于需要自定义集成的场景。优点提前发现漏洞:在开发和构建过程中提前发现并修复依赖库中的安全问题,减少生产环境中漏洞带来的风险。全面的报告:详细的报告帮助开发者快速理解和解决问题。自动化和集成:与各种 CI/CD 工具的良好集成,使安全检查流程自动化,减少手动操作的时间和错误。例子运行 Dependency Check 扫描 Maven 项目:dependency-check --project myProject --scan /path/to/project --format HTML --out report.html在 Maven 项目中使用 Dependency Check 插件:<build> <plugins> <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> <version>6.0.3</version> <executions> <execution> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin> </plugins> </build>通过这些功能,Dependency Check 帮助开发团队提升项目的安全性,减少因第三方依赖库漏洞导致的安全事件风险。四、配置本地数据库目前支持的数据库包括:h2、mysql、oracle、sql server、postgresQL。这里我们以mysql作为实例讲解!初始化数据库,执行链接中的脚本即可https://github.com/jeremylong/DependencyCheck/blob/main/core/src/main/resources/data/initialize_mysql.sql很重要!需要将mysql的驱动放到 dependency-checklib 目录下,使用下面的脚本即可,它会先进行导入数据库然后再进行检测。第一次使用去掉-n参数,如果加了-n不会同步数据库#!/bin/bash ######################################### # Author: AiiCi # # Time: 2024-05 # # description: 依赖单扫描 # ######################################### DIR="/root/dependency-check/bin" #可执行文件目录 TAGGET="/home/backupJenkins/workspace" #扫描目录 OUTPUT="/root/out_dependency-check" #输出目录 if [ -z $1 ];then echo -e "\e[31mUSE: $0 ProjectName\e[0m" exit 1 fi ls $TAGGET/$1/target/ >/dev/null 2>&1 if [ $? -ne 0 ];then echo -e "\e[31m$TAGGET/$1/target/ directory not found\e[0m" exit 1 fi cd $DIR ./dependency-check.sh --project $1 --disableRetireJS --disableNodeJS -s $TAGGET/$1/target/ --dbDriverName com.mysql.cj.jdbc.Driver --connectionString jdbc:mysql://10.169.140.235:3306/dependencycheck --dbUser dcuser --propertyfile /root/dependency-check/pwd.properties -n -o $OUTPUT/$1 -l info.log cd - >/dev/nulldbDriverName:表示数据库的dirver名称connectionString:表示连接数据库的字符串,执行初始化脚本后创建的数据库叫dependencycheckdbUser:是用户名,初始化的用户名叫 dcuserpropertyfile:这个参数是表示dcuser 的密码,需要在properties文件中存储,形式是:data.password=DC-Pass1337! 这个密码是执行初始化脚本后的默认密码-n 表示不同步数据库如果需要批量执行可以选择下列脚本:#!/bin/bash ######################################### # Author: AiiCi # # Time: 2024-05 # # description: 依赖全扫描 # ######################################### DIR="/root/dependency-check/bin" #可执行文件路径 TAGGET="/home/backupJenkins/workspace" #扫描路径 OUTPUT="/root/out_dependency-check" #输出路径 PROJECTS=($(ls $TAGGET|grep -v "tmp")) #项目列表去掉了tmp缓存目录 cd $DIR for project in "${PROJECTS[@]}"; do echo -e "\e[32m当前执行项目 $project\e[0m" ./dependency-check.sh --project $project --disableRetireJS --disableNodeJS -s $TAGGET/$project/target/ --dbDriverName com.mysql.cj.jdbc.Driver --connectionString jdbc:mysql://10.169.140.235:3306/dependencycheck --dbUser dcuser --propertyfile /root/dependency-check/pwd.properties -n -o $OUTPUT/$project done cd - >/dev/null
2024年05月01日
40 阅读
3 评论
0 点赞