依赖漏洞检查
为什么应该检查项目依赖项
JHipster使用了许多技术,项目在选择时非常谨慎。但也许该项目错过了那些许多依赖项中的一个漏洞,或者您添加或更新了一个触发新漏洞的依赖项。
根据OWASP十大最关键Web应用程序安全风险,使用具有已知漏洞的组件(即依赖项)排名第9,并且有许多已知的(恶意或非恶意)第三方依赖项提供的安全漏洞故事。
为什么JHipster默认不提供依赖性检查
默认情况下,在JHipster构建中提出依赖性检查已经讨论了几次(#6329,#8191)。总而言之,拥有一个真实的报告(消除假阳性)和依赖于上下文是很复杂的(安全性总是在实际风险/批评和防止它的努力之间进行权衡)。
如果您在JHipster的某个依赖项中检测到漏洞,该怎么办?
如果您在JHipster的某个依赖项中发现了漏洞,请检查该漏洞是否已打开现有 问题。
如果没有提到任何内容,请创建一个问题并按照模板(包括重现漏洞,安全报告,博客文章等的步骤)。
确保JHipster团队致力于提供高质量,企业级和安全的开发堆栈,并且这个问题将成为我们的首要任务。
如何检查JHipster项目的依赖项
检查服务器端
要检查Java依赖项是否具有已知的常见漏洞和暴露(也称为CVE),请访问NIST国家漏洞数据库,该数据库维护最新列表。
OWASP项目提供Maven和Gradle插件来自动检查整个依赖关系链,生成报告甚至阻止构建(不推荐,在进行持续集成时它可能非常激进)。
使用Maven
添加owasp依赖检查插件:
<build>... <plugins> ... <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> <version>3.3.1</version> <executions> <execution> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin> .. </plugins> ...</build>
运行./mvnw verify
将在target
目录下生成依赖性检查报告。
使用Gradle
请参阅OWASP Gradle Dependency Check插件文档
更新build.gradle
文件以应用OWASP dependency-check-gradle插件。
buildscript { repositories { mavenCentral() } dependencies { classpath 'org.owasp:dependency-check-gradle:3.3.1' }}apply plugin: 'org.owasp.dependencycheck'if(project.hasProperty('strict-security')) { check.dependsOn dependencyCheckAnalyze}
Running ./gradlew dependencyCheckAnalyze
在build/report
目录中生成依赖性检查报告。
使用依赖性检查更新持续集成构建是通过运行完成的 ./gradlew check -Pstrict-security
检查客户端
从版本6开始,NPM默认包含每个依赖项安装的安全审核。有关详细信息,请查看“ 关于安全审核” 页面。