一、项目概览
专为GRC(治理、风险与合规)及网络安全态势管理设计的开源工具,提供标准框架内置、风险评估、修复计划跟踪等功能。
CISO Assistant由专注于网络安全、云和数据分析/人工智能的法国公司intuitem开发和维护。🇫🇷
相关资源
- 源码:https://github.com/intuitem/ciso-assistant-community
- 文档:https://intuitem.gitbook.io/ciso-assistant
- Discord
- 试用:https://intuitem.com/trial
- 用户体验文档 : https://intuitem.gitbook.io/ciso-assistant
- 趋势数据:https://trendshift.io/repositories/9343
- 路线图:https://roadmap.productboard.com/c483ebdf-87df-4dc2-96dc-a2e8c66aac63
- 免费试用云实例 : https://intuitem.com/trial/
二、核心特性
1、框架解耦设计
- 明确分离合规要求与安全控制措施实现
- 支持同时评估多个合规框架
2、内置知识库
- 预置60+国际安全标准(ISO27001/NIST CSF/GDPR等)
- 可扩展的威胁库和安全控制措施库
3、风险管理
- 可视化风险评估矩阵
- 自动化修复计划跟踪
- 证据收集与审计报告生成
三、快速入门 🚀
提示:开始的最简单方法是使用此处提供的免费云实例试用。
或者,一旦您在您的工作站或服务器上安装了 Docker 和 Docker-compose:
克隆仓库:
git clone https://github.com/intuitem/ciso-assistant-community.git
运行启动脚本
./docker-compose.sh
如果您正在寻找其他安装选项,您可能想查看文档。
如果您使用的是 Windows,请确保已安装 WSL 并在 WSL 命令行中触发脚本。它将代表您向 Docker Desktop 发送指令。
Docker Compose 文件可以调整以传递额外的参数以适应您的设置(例如,邮件设置)。
警告:如果您收到有关图像平台与主机平台不匹配的警告或错误,请提供详细信息并提交问题,我们将在不久后添加。您还可以使用 docker-compose-build.sh
(见下文)来构建适合您特定架构的版本。
注意:不要直接在生产环境中使用main
分支的代码,因为它是从上游合并的,在我们开发过程中可能会有破坏性更改。可以使用tags
标签的稳定版本或预构建镜像。
四、支持的框架 🐙
1、ISO 27001:2022 🌐
2、NIST网络安全框架(CSF)v1.1 🇺🇸
3、NIST网络安全框架(CSF)v2.0 🇺🇸
4、NIS2 🇪🇺
5、SOC2 🇺🇸
6、PCI DSS 4.0 💳
7、CMMC v2 🇺🇸
8、PSPF 🇦🇺
9、通用数据保护条例(GDPR):来自GDPR.EU的全文和清单 🇪🇺
10、Essential Eight 🇦🇺
11、NYDFS 500及2023-11修正案 🇺🇸
12、DORA(法案、RTS、ITS和GL) 🇪🇺
13、NIST人工智能风险管理框架 🇺🇸🤖
14、NIST SP 800-53 rev5 🇺🇸
15、法国LPM/OIV规则 🇫🇷
16、CCB网络安全框架 🇧🇪
17、NIST SP-800-66(HIPAA) 🏥
18、HDS/HDH 🇫🇷
19、OWASP应用安全验证标准(ASVS) 🐝🖥️
20、RGS v2.0 🇫🇷
21、AirCyber ✈️🌐
22、网络安全法案(CRA) 🇪🇺
23、TIBER-EU 🇪🇺
24、NIST隐私框架 🇺🇸
25、TISAX(VDA ISA)v5.1和v6.0 🚘
26、ANSSI卫生指南 🇫🇷
27、基本网络安全控制(ECC) 🇸🇦
28、CIS控制v8* 🌐
29、CSA CCM(云控制矩阵)* ☁️
30、FADP(联邦数据保护法) 🇨🇭
31、NIST SP 800-171 rev2(2021) 🇺🇸
32、ANSSI:针对生成性人工智能的安全建议 🇫🇷🤖
33、NIST SP 800-218:安全软件开发框架(SSDF) 🖥️
34、GSA FedRAMP rev5 ☁️🇺🇸
35、法国网络安全合规框架(3CF)v1(2021) ✈️🇫🇷
36、ANSSI:SecNumCloud ☁️🇫🇷
37、法国网络安全合规框架(3CF)v2(2024) ✈️🇫🇷
38、ANSSI:网络安全危机管理自我评估工具 💥🇫🇷
39、BSI:IT-Grundschutz-Kompendium 🇩🇪
40、NIST SP 800-171 rev3(2024) 🇺🇸
41、ENISA:5G安全控制矩阵 🇪🇺
42、OWASP移动应用安全验证标准(MASVS) 🐝📱
43、敏捷安全框架(ASF)- 基线 - 由intuitem提供 🤗
44、ISO 27001:2013 🌐(用于遗留和迁移)
45、欧盟人工智能法案 🇪🇺🤖
46、FBI CJIS 🇺🇸👮
47、运营技术网络安全控制(OTCC) 🇸🇦
48、安全控制框架(SCF) 🇺🇸🌐
49、NCSC网络安全评估框架(CAF) 🇬🇧
50、加利福尼亚消费者隐私法案(CCPA) 🇺🇸
51、加利福尼亚消费者隐私法案法规 🇺🇸
52、NCSC网络安全基础 🇬🇧
53、摩洛哥信息系统安全国家指南(DNSSI) 🇲🇦
54、Part-IS ✈️🇪🇺
55、西班牙国家安全方案(ENS) 🇪🇸
56、韩国ISA ISMS-P 🇰🇷
57、瑞士ICT最低标准 🇨🇭
58、Adobe通用控制框架(CCF) 🌐
59、BSI云计算合规标准目录(C5) 🇩🇪
60、突尼斯ANCS信息系统安全审计参考框架 🇹🇳
61、欧洲央行对金融市场基础设施的网络安全监督预期 🇪🇺
62、BSI对外部云服务使用的最低标准(版本2.1) 🇩🇪
63、成熟度评估表单 - 基础级别(DGA) 🇫🇷
64、NIS2技术和方法论要求 2024/2690 🇪🇺
65、沙特阿拉伯货币管理局(SAMA)网络安全框架 🇸🇦
66、数据安全指南(CNIL) 🇫🇷
67、国际武器贸易条例(ITAR) 🇺🇸
68、联邦贸易委员会(FTC)保护客户信息标准 🇺🇸
69、OWASP关于LLM治理和安全的清单 🌐
社区贡献
1、PGSSI-S (健康信息系统通用安全政策) 🇫🇷
2、ANSSI : GNU/Linux 系统配置推荐 🇫🇷
3、PSSI-MCAS (负责社会事务部门的信息系统安全政策) 🇫🇷
4、ANSSI : 信息系统关键部分保护推荐 🇫🇷
5、ANSSI : 系统日志架构安全推荐 🇫🇷
6、ANSSI : TLS 相关安全推荐 🇫🇷
7、新西兰信息安全手册 (NZISM) 🇳🇿
8、RSSI Santé 俱乐部数字安全声明 🇫🇷
9、阿尔及利亚国家信息安全参考框架 (RNSI), MPT 🇩🇿
10、意大利公共行政部门最小安全措施 ICT,AGID 🇮🇹
11、国家网络安全框架 v2,FNCS 意大利 🇮🇹
注意:*
这些框架需要通过其网站手动获取最新的 Excel 表格,因为它们的许可证阻止了直接使用。
查看 库 和 工具,了解所使用的领域特定语言以及如何定义您自己的语言。
即将推出
- 印度尼西亚PDP
- COBAC R-2024/01
- ICO数据保护自我评估
- NIST 800-82
- 还有更多:只需在Discord上询问。如果是开放标准,我们将为您免费提供!
五、添加您自己的库
库可以是一个框架、威胁或参考控制的目录,甚至是一个定制的风险矩阵。
请查看 tools
目录及其专用README。convert_library.py
脚本将帮助您从简单的Excel文件中创建库。一旦您以该格式结构化您的项目,只需运行脚本并使用生成的yaml文件。
您也可以在工具目录中找到一些特定的转换器(例如,用于CIS或CCM控制)。
还有一个工具,称为 prepare_mapping.py
,用于简化映射的创建,它将根据两个yaml框架库创建一个Excel文件。一旦填写完毕,这个Excel文件就可以通过 convert_library.py
工具进行处理,以获得最终的映射库。
六、本地测试 🚀
免费试用云实例 : https://intuitem.com/trial/ 。
要在本地简单运行 CISO Assistant,您可以使用 Docker Compose。
0、更新 Docker
确保您安装了最新版本的 Docker(>= 25.0)。
1、克隆仓库
git clone https://github.com/intuitem/ciso-assistant-community.git
cd ciso-assistant-community
2、启动预构建镜像的 docker-compose 脚本:
./docker-compose.sh
或者,您可以使用此变体来构建适用于您特定架构的 Docker 镜像:
./docker-compose-build.sh
当被要求时,请输入您的超级用户邮箱和密码。
您可以使用网络浏览器通过https://localhost:8443/访问CISO助理。
对于以下执行,直接使用 “docker compose up”。
[!TIP]
如果您想进行全新安装,只需删除存储数据库的db
目录(默认:backend/db)。
七、远程服务器上的Docker-compose
对于在远程服务器或虚拟机上的Docker设置,请查看具体说明此处
八、为开发设置CISO助理
需求
- Python 3.11+
- pip 20.3+
- poetry 1.8+
- node 18+
- npm 10.2+
- pnpm 9.0+
- yaml-cpp (使用 brew install yaml-cpp libyaml 或 apt install libyaml-cpp-dev 安装)
运行后端
1、克隆仓库。
git clone git@github.com:intuitem/ciso-assistant-community.git
cd ciso-assistant-community
2、在父文件夹中创建一个文件(例如:…/myvars),通过复制并修改以下代码将您的环境变量存储在其中,并将"<XXX>"
替换为您的私有值。请注意,不要将此文件提交到您的git仓库中。
强制变量
所有后端变量都有方便的默认值。
推荐变量
export DJANGO_DEBUG=True
# Default url is set to http://localhost:5173 but you can change it, e.g. to use https with a caddy proxy
export CISO_ASSISTANT_URL=https://localhost:8443
# Setup a development mailer with Mailhog for example
export EMAIL_HOST_USER=''
export EMAIL_HOST_PASSWORD=''
export DEFAULT_FROM_EMAIL=ciso-assistant@ciso-assistantcloud.com
export EMAIL_HOST=localhost
export EMAIL_PORT=1025
export EMAIL_USE_TLS=True
其他变量
# CISO Assistant will use SQLite by default, but you can setup PostgreSQL by declaring these variables
export POSTGRES_NAME=ciso-assistant
export POSTGRES_USER=ciso-assistantuser
export POSTGRES_PASSWORD=<XXX>
export POSTGRES_PASSWORD_FILE=<XXX> # alternative way to specify password
export DB_HOST=localhost
export DB_PORT=5432 # optional, default value is 5432
# Add a second backup mailer
export EMAIL_HOST_RESCUE=<XXX>
export EMAIL_PORT_RESCUE=587
export EMAIL_HOST_USER_RESCUE=<XXX>
export EMAIL_HOST_PASSWORD_RESCUE=<XXX>
export EMAIL_USE_TLS_RESCUE=True
# You can define the email of the first superuser, useful for automation. A mail is sent to the superuser for password initialization
export CISO_SUPERUSER_EMAIL=<XXX>
# By default, Django secret key is generated randomly at each start of CISO Assistant. This is convenient for quick test, # but not recommended for production, as it can break the sessions (see
# this [topic](https://stackoverflow.com/questions/15170637/effects-of-changing-djangos-secret-key) for more information).
# To set a fixed secret key, use the environment variable DJANGO_SECRET_KEY.
export DJANGO_SECRET_KEY=...
# Logging configuration
export LOG_LEVEL=INFO # optional, default value is INFO. Available options: DEBUG, INFO, WARNING, ERROR, CRITICAL
export LOG_FORMAT=plain # optional, default value is plain. Available options: json, plain
# Authentication options
export AUTH_TOKEN_TTL=900 # optional, default value is 3600 seconds (60 minutes). It defines the time to live of the authentication token
export AUTH_TOKEN_AUTO_REFRESH=True # optional, default value is True. It defines if the token TTL should be refreshed automatically after each request authenticated with the token
3、安装 poetry
访问poetry 网站获取说明:https://python-poetry.org/docs/#installation
4、安装所需的依赖项。
poetry install
5、推荐:安装预提交钩子。
pre-commit install
6、如果您想设置Postgres:
- 启动以下命令之一以进入Postgres:
psql as superadmin
sudo su postgres
psql
- 创建数据库 “ciso-assistant”
创建数据库 ciso-assistant;
- 创建用户 “ciso-assistantuser” 并授予其访问权限
创建用户 ciso-assistantuser,密码为 '<POSTGRES_PASSWORD>';
授予ciso-assistant数据库上所有权限给ciso-assistantuser;
7、应用迁移。
poetry run python manage.py migrate
8、创建一个Django超级用户,该用户将成为CISO Assistant管理员。
如果您已设置邮件发送器和CISO_SUPERUSER_EMAIL变量,则无需使用createsuperuser
创建Django超级用户,因为它将在首次启动时自动创建。您应该会收到一封带有设置密码链接的电子邮件。
poetry run python manage.py createsuperuser
9、运行开发服务器。
poetry run python manage.py runserver
10、配置 Git 钩子以生成构建名称。
cd .git/hooks
ln -fs ../../git_hooks/post-commit .
ln -fs ../../git_hooks/post-merge .
运行前端
1、进入前端目录
cd frontend
2、安装依赖项
npm install -g pnpm
pnpm install
3、启动开发服务器(确保Django应用正在运行)
pnpm run dev
4、在 http://localhost:5173 上访问前端
注:Safari 在此配置下无法正常工作,因为它需要 https 来确保 cookies 的安全。最简单的解决方案是使用 Chrome 或 Firefox。另一种选择是使用 caddy 代理。这是 docker-compose 中使用的解决方案,因此您可以将其作为示例使用。
5、环境变量
所有前端变量都有方便的默认值。
如果您将前端移动到另一台主机,您应该设置以下变量:PUBLIC_BACKEND_API_URL。其默认值是 http://localhost:8000/api。
当您使用“node server”而不是“pnpm run dev”启动时,您需要将ORIGIN变量设置为与后端中的CISO_ASSISTANT_URL相同的值(例如:http://localhost:3000)。
管理迁移
迁移由版本控制跟踪,https://docs.djangoproject.com/en/4.2/topics/migrations/#version-control
对于产品的第一个版本,建议从一个干净的迁移开始。
注意:要清理现有的迁移,请输入:
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -delete
在更改(或清理)之后,有必要重新生成迁移文件:
poetry run python manage.py makemigrations
poetry run python manage.py migrate
这些迁移文件应通过版本控制进行跟踪。
测试套件
要在后端运行API测试,只需在后台文件夹中的shell中输入“pytest”。
要在前端运行功能测试,执行以下操作:
- 在前端文件夹中,运行以下命令:
tests/e2e-tests.sh
测试框架的目标是防止任何回归,即所有测试都应成功,无论是后端还是前端。
九、API 和 Swagger
- API 文档在开发模式下可在
<backend_endpoint>/api/schema/swagger/
处访问,例如 http://127.0.0.1:8000/api/schema/swagger/
要与之交互:
- 使用您的凭据调用
/api/iam/login/
以获取令牌 - 然后将它作为头部
Authorization: Token {token}
传递给您的后续调用。注意它是 Token 而不是 Bearer。
十、为生产环境设置CISO Assistant
docker-compose-prod.yml突出了一个相关的配置,其中在前端之前有一个Caddy代理。它只暴露SSO的API调用。请注意,docker-compose.yml暴露了完整的API,这还不建议用于生产环境。
出于安全原因,设置DJANGO_DEBUG=False。
注:前端无法自动推断主机,因此您需要设置ORIGIN变量,或者HOST_HEADER和PROTOCOL_HEADER变量。请参阅关于sveltekit文档中关于这个棘手问题的说明。请注意,这种方法不适用于"pnpm run dev",这不应该成为生产环境中的担忧。
注:Caddy需要接收一个SNI头。因此,对于您的公共URL(在CISO_ASSISTANT_URL中声明的URL),您需要使用FQDN,而不是IP地址,因为如果主机是IP地址,浏览器不会传输SNI。另一个棘手的问题!
十一、支持的语言 🌐
- FR: 法语
- EN: 英语
- AR: 阿拉伯语
- PT: 葡萄牙语
- ES: 西班牙语
- DE: 德语
- NL: 荷兰语
- IT: 意大利语
- PL: 波兰语
- RO: 罗马尼亚语
- HI: 印地语
- UR: 乌尔都语
- CS: 捷克语
- SV: 瑞典语
- ID: 印度尼西亚语
十二、其它
用💜构建
- Django - Python Web 开发框架
- SvelteKit - 前端框架
- eCharts - 图表库
- Gunicorn - UNIX 下的 Python WSGI HTTP 服务器
- Caddy - 最酷的反向代理
- Gitbook - 文档平台
- PostgreSQL - 开源关系型数据库管理系统
- SQLite - 开源关系型数据库管理系统
- Docker - 容器引擎
- inlang - 全球化你的软件的生态系统
安全
我们非常重视遵循安全最佳实践。请将任何问题报告给 security@intuitem.com。
许可证
本存储库包含开源版CISO Assistant(社区版)的源代码,该版本在AGPL v3许可下发布,以及CISO Assistant的商业版(专业版和企业版),该版本在intuitem商业软件许可下发布。这种单仓库方法是为了简化而采用的。
顶级“enterprise”目录中的所有文件都在intuitem商业软件许可下发布。
顶级“enterprise”目录之外的所有文件都在AGPLv3许可下发布。
有关详细信息,请参阅LICENSE.md。有关商业版的更多详细信息,您可以通过contact@intuitem.com联系我们。
除非另有说明,所有文件均为© intuitem版权所有。
活动
2025-05-03(六)