prowler-cloud/prowler
GitHub: prowler-cloud/prowler
全球最广泛使用的开源云安全平台,支持跨多云环境自动化执行安全态势评估与合规检查。
Stars: 13160 | Forks: 2023
Prowler is the Open Cloud Security platform trusted by thousands to automate security and compliance in any cloud environment. With hundreds of ready-to-use checks and compliance frameworks, Prowler delivers real-time, customizable monitoring and seamless integrations, making cloud security simple, scalable, and cost-effective for organizations of any size.
Secure ANY cloud at AI Speed at prowler.com
Join our Prowler community!
# 描述
**Prowler** 是全球使用最广泛的_开源云安全平台_,可在**任何云环境**中自动化安全和合规性检查。凭借数百个现成的安全检查、修复指南和合规框架,Prowler 旨在实现_“以 AI 速度保护任何云”_(Secure ANY cloud at AI Speed)。Prowler 提供**AI 驱动**、**可定制**且**易于使用**的评估、仪表板、报告和集成功能,使各种规模组织的云安全变得**简单**、**可扩展**且**具有成本效益**。
Prowler 包含数百个内置控制项,以确保符合标准和框架,包括:
- **Prowler ThreatScore:** 加权风险优先级评分,帮助您首先关注最关键的安全发现
- **行业标准:** CIS、NIST 800、NIST CSF、CISA 和 MITRE ATT&CK
- **监管合规与治理:** RBI、FedRAMP、PCI-DSS 和 NIS2
- **敏感数据和隐私框架:** GDPR、HIPAA 和 FFIEC
- **组织治理和质量控制框架:** SOC2、GXP 和 ISO 27001
- **云特定框架:** AWS Foundational Technical Review (FTR)、AWS Well-Architected Framework 和 BSI C5
- **国家安全标准:** ENS(西班牙国家安全方案)和 KISA ISMS-P(韩国)
- **自定义安全框架:** 根据您的需求量身定制
## Prowler App / Prowler Cloud
Prowler App / [Prowler Cloud](https://cloud.prowler.com/) 是一个基于 Web 的应用程序,简化了跨云提供商账户运行 Prowler 的流程。它提供了一个用户友好的界面来可视化结果并简化您的安全评估。



## Prowler CLI
```
prowler
```

## Prowler Dashboard
```
prowler dashboard
```

## 攻击路径
攻击路径会自动扩展每次完成的 AWS 扫描,生成一个 Neo4j 图谱,该图谱结合了 Cartography 的云资产清单与 Prowler 的发现。该功能在每次扫描后在 API worker 中运行,因此需要:
- 一个可访问的 Neo4j 实例(Docker Compose 文件已经提供了 `neo4j` 服务)。
- 以下环境变量,以便 Django 和 Celery 可以连接:
| 变量 | 描述 | 默认值 |
| --- | --- | --- |
| `NEO4J_HOST` | API 容器使用的主机名。 | `neo4j` |
| `NEO4J_PORT` | Neo4j 暴露的 Bolt 端口。 | `7687` |
| `NEO4J_USER` / `NEO4J_PASSWORD` | 具有创建每个租户数据库权限的凭据。 | `neo4j` / `neo4j_password` |
每次 AWS 提供商扫描都会自动将一个攻击路径摄取作业排入队列。其他云提供商将在未来的迭代中添加。
# Prowler 概览
| 提供商 | 检查项 | 服务 | [合规框架](https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/compliance/) | [类别](https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/misc/#categories) | 支持 | 界面 |
|---|---|---|---|---|---|---|
| AWS | 572 | 83 | 41 | 17 | 官方 | UI, API, CLI |
| Azure | 165 | 20 | 18 | 13 | 官方 | UI, API, CLI |
| GCP | 100 | 13 | 15 | 11 | 官方 | UI, API, CLI |
| Kubernetes | 83 | 7 | 7 | 9 | 官方 | UI, API, CLI |
| GitHub | 21 | 2 | 1 | 2 | 官方 | UI, API, CLI |
| M365 | 75 | 7 | 4 | 4 | 官方 | UI, API, CLI |
| OCI | 51 | 13 | 3 | 12 | 官方 | UI, API, CLI |
| Alibaba Cloud | 61 | 9 | 3 | 9 | 官方 | UI, API, CLI |
| Cloudflare | 29 | 2 | 0 | 5 | 官方 | CLI, API |
| IaC | [参见 `trivy` 文档。](https://trivy.dev/latest/docs/coverage/iac/) | N/A | N/A | N/A | 官方 | UI, API, CLI |
| MongoDB Atlas | 10 | 3 | 0 | 3 | 官方 | UI, API, CLI |
| LLM | [参见 `promptfoo` 文档。](https://www.promptfoo.dev/docs/red-team/plugins/) | N/A | N/A | N/A | 官方 | CLI |
| OpenStack | 1 | 1 | 0 | 2 | 官方 | CLI |
| NHN | 6 | 2 | 1 | 0 | 非官方 | CLI |
# 💻 安装
## Prowler App
Prowler App 提供了针对不同环境量身定制的灵活安装方式:
### Docker Compose
**要求**
* 已安装 `Docker Compose`:https://docs.docker.com/compose/install/。
**命令**
```
VERSION=$(curl -s https://api.github.com/repos/prowler-cloud/prowler/releases/latest | jq -r .tag_name)
curl -sLO "https://raw.githubusercontent.com/prowler-cloud/prowler/refs/tags/${VERSION}/docker-compose.yml"
# 可以在 .env 文件中自定义 environment variables。不建议在生产环境中使用默认值。
curl -sLO "https://raw.githubusercontent.com/prowler-cloud/prowler/refs/tags/${VERSION}/.env"
docker compose up -d
```
配置完成后,通过 http://localhost:3000 访问 Prowler App。使用您的电子邮件和密码注册以开始使用。
### Docker Pull 安装的常见问题
您可以在 [故障排除](./docs/troubleshooting.mdx) 部分找到更多信息。
### 从 GitHub 安装
**要求**
* 已安装 `git`。
* 已安装 `poetry` v2:[poetry 安装](https://python-poetry.org/docs/#installation)。
* 已安装 `pnpm`:[pnpm 安装](https://pnpm.io/installation)。
* 已安装 `Docker Compose`:https://docs.docker.com/compose/install/。
**运行 API 的命令**
```
git clone https://github.com/prowler-cloud/prowler
cd prowler/api
poetry install
eval $(poetry env activate)
set -a
source .env
docker compose up postgres valkey -d
cd src/backend
python manage.py migrate --database admin
gunicorn -c config/guniconf.py config.wsgi:application
```
**运行 API Worker 的命令**
```
git clone https://github.com/prowler-cloud/prowler
cd prowler/api
poetry install
eval $(poetry env activate)
set -a
source .env
cd src/backend
python -m celery -A config.celery worker -l info -E
```
**运行 API Scheduler 的命令**
```
git clone https://github.com/prowler-cloud/prowler
cd prowler/api
poetry install
eval $(poetry env activate)
set -a
source .env
cd src/backend
python -m celery -A config.celery beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler
```
**运行 UI 的命令**
```
git clone https://github.com/prowler-cloud/prowler
cd prowler/ui
pnpm install
pnpm run build
pnpm start
```
## Prowler CLI
### Pip 包
Prowler CLI 是 [PyPI](https://pypi.org/project/prowler-cloud/) 中的一个项目。因此,它可以在 Python >3.9.1, <3.13 环境下使用 pip 安装:
```
pip install prowler
prowler -v
```
### 容器
**可用的 Prowler CLI 版本**
根据您的需求,提供以下版本的 Prowler CLI:
- `latest`:与 `master` 分支同步。请注意此版本不稳定。
- `v4-latest`:与 `v4` 分支同步。请注意此版本不稳定。
- `v3-latest`:与 `v3` 分支同步。请注意此版本不稳定。
- `` (release):对应特定版本的稳定发布。您可以在[这里](https://github.com/prowler-cloud/prowler/releases)找到完整的发布列表。
- `stable`:始终指向最新的发布版本。
- `v4-stable`:始终指向 v4 的最新发布版本。
- `v3-stable`:始终指向 v3 的最新发布版本。
容器镜像可在此处获取:
- Prowler CLI:
- [DockerHub](https://hub.docker.com/r/prowlercloud/prowler/tags)
- [AWS Public ECR](https://gallery.ecr.aws/prowler-cloud/prowler)
- Prowler App:
- [DockerHub - Prowler UI](https://hub.docker.com/r/prowlercloud/prowler-ui/tags)
- [DockerHub - Prowler API](https://hub.docker.com/r/prowlercloud/prowler-api/tags)
### 从 GitHub 安装
需要 Python >3.9.1, <3.13,以及 pip 和 Poetry:
```
git clone https://github.com/prowler-cloud/prowler
cd prowler
eval $(poetry env activate)
poetry install
python prowler-cli.py -v
```
# ✏️ 高层架构
## Prowler App
**Prowler App** 由四个关键组件组成:
- **Prowler UI**:基于 Web 的界面,使用 Next.js 构建,为执行 Prowler 扫描和可视化结果提供用户友好的体验。
- **Prowler API**:后端服务,使用 Django REST Framework 开发,负责运行 Prowler 扫描并存储生成的结果。
- **Prowler SDK**:一个 Python SDK,旨在扩展 Prowler CLI 的功能以实现高级功能。
- **Prowler MCP Server**:一个模型上下文协议服务器,为 Lighthouse(AI 驱动的安全助手)提供 AI 工具。这是 Lighthouse 功能的关键依赖项。

## Prowler CLI
**运行 Prowler**
Prowler 可以在各种环境中执行,提供灵活性以满足您的需求。它可以从以下位置运行:
- 您自己的工作站
- Kubernetes Job
- Google Compute Engine
- Azure Virtual Machines (VMs)
- Amazon EC2 实例
- AWS Fargate 或其他容器平台
- CloudShell
以及更多环境。

# 🤖 用于开发的 AI Skills
Prowler 包含一套全面的 **AI Skills**,可帮助 AI 编程助手理解 Prowler 的代码库模式和约定。
## 什么是 AI Skills?
Skills 是结构化的指令,为 AI 助手提供所需的上下文,以编写符合 Prowler 标准的代码。它们包括:
- 每个组件的**编码模式**(SDK, API, UI, MCP Server)
- **测试约定**(pytest, Playwright)
- **架构指南**(Clean Architecture, RLS 模式)
- **特定框架规则**(React 19, Next.js 15, Django DRF, Tailwind 4)
## 可用的 Skills
| 类别 | Skills |
|----------|--------|
| **通用** | `typescript`, `react-19`, `nextjs-15`, `tailwind-4`, `playwright`, `pytest`, `django-drf`, `zod-4`, `zustand-5`, `ai-sdk-5` |
| **Prowler** | `prowler`, `prowler-api`, `prowler-ui`, `prowler-mcp`, `prowler-sdk-check`, `prowler-test-ui`, `prowler-test-api`, `prowler-test-sdk`, `prowler-compliance`, `prowler-provider`, `prowler-pr`, `prowler-docs` |
## 设置
```
./skills/setup.sh
```
这将为遵循 [agentskills.io](https://agentskills.io) 标准的 AI 编程助手配置 skills:
| 工具 | 配置 |
|------|---------------|
| **Claude Code** | `.claude/skills/` (symlink) |
| **OpenCode** | `.claude/skills/` (symlink) |
| **Codex (OpenAI)** | `.codex/skills/` (symlink) |
| **GitHub Copilot** | `.github/skills/` (symlink) |
| **Gemini CLI** | `.gemini/skills/` (symlink) |
# 📖 文档
有关安装说明、使用详情、教程和开发者指南,请访问 https://docs.prowler.com/
# 📃 许可证
Prowler 根据 Apache License 2.0 获得许可。
许可证副本见 标签:Anthropic, AWS安全, Azure安全, Chrome Headless, CIS基准, Cloudflare, CSPM, DevSecOps, Docker, GCP安全, GDPR, HIPAA, ISO27001, Kubernetes安全, MITRE ATT&CK, NIST, Python, SOC2, TinkerPop, 上游代理, 云安全态势管理, 关系图谱, 前端应用, 基线检查, 安全合规, 安全防御评估, 属性图, 开源安全工具, 无后门, 汇编生成, 测试用例, 网络代理, 请求拦截, 足迹分析, 逆向工具, 逆向工程平台, 风险发现