
組織的な資産および脆弱性管理ツールで、Jira統合機能を備え、アプリケーションセキュリティレポートの生成を目的としています。
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を実行すると、サーバーサイドとクライアントサイドの両方のモジュールがインストールされます。さらに、Angular環境を更新するだけでなく、環境変数を動的に設定するスクリプトnpm run configが実行されます。
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初回ログイン後、プロファイルセクションでデフォルトユーザーのパスワードを更新してください。
アプリケーションはチームベースの認可による最小権限アクセスを利用しています。チームにはロールが割り当てられ、そのチームが利用できる機能が決まります。ユーザーはチームメンバーシップからロールを継承します。管理者はチーム管理アクセス権を持ち、ユーザーをチームに割り当てる必要があります。初期状態では、ユーザーはチームに関連付けられずに作成され、アプリケーションのどの機能にもアクセスできません。
3つのロールは以下の通りです:
チームは単一の組織にのみ関連付けることができます。ただし、チームは同じ組織内の複数の資産に関連付けることができます。ユーザーは複数のチームのメンバーになることができます。ユーザーが同じ組織の複数のチームに割り当てられている場合、システムは最も権限の高いチームを選択します。
注意: デフォルトユーザーは初回起動時に自動的にAdministratorsチームに割り当てられます
ユーザーは認証トークンの代わりに使用できる単一のAPIキーを生成できます。この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を開いてください。詳細はコントリビューションガイドラインをお読みください。
| 管理者 | テスター | 読み取り専用 | |
|---|---|---|---|
| ユーザープロファイル管理 | 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 |