一款组织资产与漏洞管理工具,集成 Jira,专为生成应用安全报告而设计。
请注意,该项目正处于早期开发阶段。


.env 文件并提供以下属性:MYSQL_DATABASE="bulwark"
MYSQL_PASSWORD="bulwark"
MYSQL_ROOT_PASSWORD="bulwark"
MYSQL_USER="root"
MYSQL_DB_CHECK="mysql"
DB_PASSWORD="bulwark"
DB_URL="172.16.16.3"
DB_ROOT="root"
DB_USERNAME="bulwark"
DB_PORT=3306
DB_NAME="bulwark"
DB_TYPE="mysql"
NODE_ENV="production"
DEV_URL="http://localhost:4200"
SERVER_ADDRESS="http://localhost"
PORT=4500
JWT_KEY="changeme"
JWT_REFRESH_KEY="changeme"
CRYPTO_SECRET="changeme"
CRYPTO_SALT="changeme"
构建并启动 Bulwark 容器:
docker-compose up
启动/停止 Bulwark 容器:
docker-compose start
docker-compose stop
移除 Bulwark 容器:
docker-compose down
Bulwark 将在 localhost:4500 可用。
$ git clone (url)
$ cd bulwark
$ npm install
运行 npm install 将同时安装服务器端和客户端模块。此外,它还会运行脚本 npm run config,该脚本将动态设置环境变量并更新 Angular 环境。
设置 NODE_ENV="development"
$ npm run config
$ npm run start:dev
设置 NODE_ENV="production"
请注意:npm install 将自动以生产模式构建
$ npm run config
$ npm run build:prod
$ npm start
在根目录创建一个 .env 文件。应用程序将使用 dotenv 解析该文件。
DB_PASSWORDDB_PASSWORD="somePassword"
将此变量设置为数据库密码
DB_USERNAMEDB_USERNAME="foobar"
将此变量设置为数据库用户名
DB_URLDB_URL=something-foo-bar.dbnet
将此变量设置为数据库 URL
DB_PORTDB_PORT=3306
将此变量设置为数据库端口
DB_NAMEDB_NAME="foobar"
将此变量设置为数据库连接名称
DB_TYPEDB_TYPE="mysql"
该应用程序使用 MySQL 数据库开发。更多数据库选项请参见 typeorm 文档。
NODE_ENVNODE_ENV=production
设置此变量以确定 Node 环境
DEV_URL="http://localhost:4200"由 Angular 用于构建和提供应用程序
SERVER_ADDRESS="http://localhost"如果需要不同的服务器地址,请更新
PORT=4500如果需要不同的服务器端口,请更新
JWT_KEYJWT_KEY="changeMe"
将此变量设置为 JWT 密钥
JWT_REFRESH_KEYJWT_REFRESH_KEY="changeMe"
将此变量设置为刷新 JWT 密钥
CRYPTO_SECRETCRYPTO_SECRET="randomValue"
将此变量设置为 Scrypt 密码。
CRYPTO_SALTCRYPTO_SECRET="randomValue"
将此变量设置为 Scrypt 盐值。
.env 文件模板DB_PASSWORD=""
DB_URL=""
DB_USERNAME=""
DB_PORT=3306
DB_NAME=""
DB_TYPE=""
NODE_ENV=""
DEV_URL="http://localhost:4200"
SERVER_ADDRESS="http://localhost"
PORT=4500
JWT_KEY=""
JWT_REFRESH_KEY=""
CRYPTO_SECRET=""
CRYPTO_SALT=""
安装 sqlite3:
brew install sqlite3
导出编译器相关的环境变量:
export LDFLAGS="-L/opt/homebrew/opt/sqlite/lib"
export CPPFLAGS="-I/opt/homebrew/opt/sqlite/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/sqlite/lib/pkgconfig"
export NODE_OPTIONS=--openssl-legacy-provider
准备全新安装:
rm -rf node_modules
npm cache verify
npm i --force
$ npm run migration:init
$ npm run migration:run
初始启动时会创建一个用户账户,其凭据如下:
[email protected]changeMe首次登录后,请在个人资料部分更新默认用户密码。
该应用程序利用基于团队的最小权限访问授权。团队被分配一个角色,该角色决定了该团队可用的功能。用户将继承团队成员的权限。管理员拥有团队管理权限,并必须将用户分配到团队。最初创建的用户没有关联团队,因此将无法访问应用程序中的任何功能。
三种角色包括:
一个团队只能与一个组织关联。但是,一个团队可以与同一组织内的多个资产关联。用户可以属于多个团队。如果用户被分配到同一组织的多个团队,系统将选择权限最高的团队。
请注意:初始启动时,默认用户将自动分配到 Administrators 团队
| 管理员 | 测试员 | 只读 | |
|---|---|---|---|
| 用户个人资料管理 | x | x | x |
| 团队管理 | x | ||
| 用户管理 | x | ||
| 邀请用户 | x | ||
| 创建用户 | x | ||
| 电子邮件设置管理 | x | ||
| Jira 集成 | x | ||
| 组织:读取 | x | x | x |
| 组织:完全写入 | x | ||
| 资产:读取 | x | x | x |
| 资产:完全写入 | x | ||
| 评估:读取 | x | x | x |
| 评估:完全写入 | x | x | |
| 漏洞:读取 | x | x | x |
| 漏洞:完全写入 | x | x | |
| 将漏洞导出到 Jira | x | x | |
| 报告生成 | x | x | x |
用户可以生成一个 API 密钥,用于替代其授权令牌。此 API 密钥允许用户对应用程序执行所有其被授权的操作。
此操作将生成一对密钥:
Bulwark-Api-Key
Bulwark-Secret-Key
请将生成的密钥保存在安全的地方。之后你将无法再次检索这些密钥。
API 密钥对的值必须匹配并附加到以下 HTTP 请求头中:
Bulwark-Api-KeyBulwark-Secret-Key示例:
GET /api/assessment/1 HTTP/1.1
Host: localhost:4500
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Bulwark-Api-Key: {{changeMe}}
Bulwark-Secret-Key: {{changeMe}}
Origin: http://localhost:4200
Connection: close
Referer: http://localhost:4200/
Pragma: no-cache
Cache-Control: no-cache
欢迎提交拉取请求。对于重大更改,请先打开一个 issue 讨论您希望更改的内容。有关更多信息,请阅读贡献指南。