Horusec 是一个开源的安全漏洞扫描器,旨在识别你软件项目中的安全漏洞。它集成到开发流程中,帮助开发人员在早期开发阶段检测并修复安全问题。它扫描代码,发现如SQL注入、跨站脚本(XSS)和不安全配置等安全问题,支持多种编程语言的代码。
这里简单介绍一下Horusec的工作方式和它的主要特点:
- 集成:Horusec 可以集成到软件开发生命周期的各个阶段中,包括 CI/CD 管道。它支持多种编程语言和框架。
- 分析类型包括:
- 静态应用程序安全测试(SAST):在不执行程序的情况下分析源代码中的安全隐患。这有助于识别代码注入和不安全配置等问题。
- 动态应用程序安全测试(DAST):测试运行中的应用程序,以发现运行时出现的安全漏洞,例如身份验证漏洞或SQL注入。
3. 报告和警报:分析完成后,Horusec 会生成详细的报告,详细列出识别出的漏洞、其严重程度以及修复建议,帮助用户了解并解决这些问题。
4. 自定义设置:Horusec 允许用户自定义其规则和配置,以满足特定需求或专注于特定漏洞类型。
开始安装:首先,你需要安装Horusec。安装过程一般包括下载CLI工具并将其设置为可执行文件。
下载 Horusec 的 tar.gz 文件:
curl -LO https://github.com/ZupIT/horusec/releases/download/v1.0.0/horusec-linux-amd64.tar.gz
此命令用于下载 horusec-linux-amd64.tar.gz 文件。
解压下载的文件:
tar -xzf horusec-linux-amd64.tar.gz
此命令用于解压刚刚下载的 tar.gz 文件。
将解压后的文件移动到正确的目录:
sudo mv horusec /usr/local/bin/
此命令将解压后的文件移动到 /usr/local/bin/ 目录,以便可以全局访问。
简单的使用方法
安装完成后,你可以使用Horusec(一个代码扫描工具)来扫描你的项目。进入项目根目录,并在命令行中输入以下命令:
horusec 扫描一下。
配置扫描设置
您可以使用一些参数来自定义扫描行为,比如:
请选一个项目文件夹
运行 `horusec scan --path /path/to/your/project` 命令。
确定要报告的漏洞的严重程度:
horusec 扫描 --高严重性
指定一个特定的语言或编程框架:
horusec scan --language go
该命令用于扫描Go语言代码
看结果扫描完成后,Horusec 生成报告。默认显示在终端。也可以导出到文件。
运行 horusec scan --output-format json > horusec-report.json
命令,这会将扫描结果以 json 格式输出到 horusec-report.json 文件。
将Docker扫描集成到CI/CD中
stages:
- build
- scan
build:
stage: build
script:
- docker build -t your-image:tag .
安全代码扫描:
stage: scan
script:
- horusec scan --path . # 执行horusec扫描,路径为当前目录
artifacts:
报告:
sast: horusec-report.json
- Horusec :最适合在开发阶段检测源代码中的漏洞。
- Trivy :理想用于在部署前扫描 Docker 镜像和文件系统中的已知漏洞,使其更符合口语化的表达习惯。
Horusec的样本报告格式:
Horusec 通常提供详细的报告,格式可以是 JSON、HTML 或纯文本。这里是一个 JSON 报告格式的示例:
{
"vulnerabilities": [
{
"id": "CVE-2023-12345",
"description": "用户模型中的SQL注入漏洞。",
"severity": "严重",
"file": "app/models/user.go",
"line": 42,
"code_snippet": "db.Query(\"SELECT * FROM users WHERE id = \" + userId)",
"recommendation": "使用参数化查询以防止SQL注入。",
"status": "未解决"
},
{
"id": "CVE-2023-67890",
"description": "个人资料视图中的跨站脚本攻击(XSS)漏洞。",
"severity": "中等",
"file": "app/views/profile.html",
"line": 30,
"code_snippet": "<div>{{ userProfile.name }}</div>",
"recommendation": "清理用户输入以防止XSS攻击。",
"status": "未解决"
}
],
"metadata": {
"scan_date": "2024-09-09T14:30:00Z",
"scanner_version": "v2.0.0",
"project": "我的应用程序",
"total_vulnerabilities": 2
}
}
Horusec HTML 报告示例,
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Horusec 扫描报告</title>
<style>
body { font-family: Arial, sans-serif; }
.container { max-width: 800px; margin: auto; padding: 20px; }
h1 { color: #333; }
.vulnerability { margin-bottom: 20px; }
.vulnerability h2 { margin: 0; color: #e74c3c; }
.vulnerability p { margin: 5px 0; }
</style>
</head>
<body>
<div class="container">
<h1>Horusec 安全扫描报告</h1>
<p><strong>日期:</strong> 2024-09-09</p>
<p><strong>项目:</strong> 我的应用程序</p>
<p><strong>总漏洞:</strong> 2</p>
<div class="vulnerability">
<h2>CVE-2023-12345</h2>
<p><strong>描述:</strong> 用户模型中的 SQL 注入漏洞。</p>
<p><strong>严重性:</strong> 高</p>
<p><strong>文件:</strong> app/models/user.go</p>
<p><strong>行:</strong> 42</p>
<p><strong>代码片段:</strong> db.Query("SELECT * FROM users WHERE id = " + userId)</p>
<p><strong>建议:</strong> 使用参数化查询来防止 SQL 注入。</p>
<p><strong>状态:</strong> 未解决</p>
</div>
<div class="vulnerability">
<h2>CVE-2023-67890</h2>
<p><strong>描述:</strong> 个人资料页面中的跨站脚本 (XSS) 攻击漏洞。</p>
<p><strong>严重性:</strong> 中等</p>
<p><strong>文件:</strong> app/views/profile.html</p>
<p><strong>行:</strong> 30</p>
<p><strong>代码片段:</strong> <div>{{ userProfile.name }}</div></p>
<p><strong>建议:</strong> 清理用户输入以防止 XSS 攻击。</p>
<p><strong>状态:</strong> 未解决</p>
</div>
</div>
</body>
</html>
Trivy 扫描报告示例:
# Trivy 安全扫描报告
**日期:** 2024-09-09
**图像:** my-app:latest
**Trivy 版本:** v0.36.0
**总漏洞数量:** 2
## 漏洞
### CVE-2023-23456
- **软件包:** libssl
- **已安装版本:** 1.1.1d
- **修复版本:** 1.1.1e
- **严重性:** 高,
- **描述:** libssl 中的缓冲区溢出可能导致远程代码执行。
- **层:** sha256:abcd1234
- **参考资料:**
- [CVE-2023-23456 详情如下](https://example.com/CVE-2023-23456)
### CVE-2023-34567
- **软件包:** nginx
- **已安装版本:** 1.18.0
- **修复版本:** 1.18.1
- **严重性:** 高,
- **描述:** nginx 中的路径遍历攻击漏洞。
- **层:** sha256:efgh5678
- **参考资料:**
- [CVE-2023-34567 详情如下](https://example.com/CVE-2023-34567)
Horusec 帮助开发人员在开发的早期阶段发现并解决安全问题,通过阻止脆弱代码的构建和部署来提高应用程序的整体安全状况。
共同学习,写下你的评论
评论加载中...
作者其他优质文章