Skip to content

Comprehensive vulnerability assessment management and automated report generation tool

Notifications You must be signed in to change notification settings

4equest/OpenRiskarm

Repository files navigation

open-riskarm

open-riskarmは、Webアプリケーションの脆弱性診断を効率化するための管理ツールです。診断対象の管理、指摘事項の登録・進捗管理、レポート生成などができます。

機能

  • 診断対象管理: 診断対象のWebサイト(ドメイン)情報を登録・管理
  • 指摘事項管理: 脆弱性や改善点の情報を登録し、ステータス(未着手, 対応中, 対応完了, 確認済み)を管理
  • 担当者・レビュアー設定: 各指摘事項に担当者とレビュアーを割り当て
  • テンプレート機能: よく利用する指摘事項をテンプレートとして保存し、再利用
  • レポート自動生成: 管理している情報から、PDF形式の脆弱性診断レポートを生成
  • Discord連携: 各種更新情報をDiscordに通知

必要なもの

  • uv
  • Python 3.9 以降
  • Node.js 18.x 以降
  • pnpm

インストールと起動

1. リポジトリのクローン

git clone https://github.com/4equest/open-riskarm.git
cd open-riskarm

2. 環境変数の設定 (任意)

プロジェクトのルートディレクトリに .env ファイルを作成することで、設定を上書きできます。 デフォルトではデータベースに app.sqlite が使用されます。

# .envファイルの設定例

# データベース(どこか別の所で管理するなら)の接続先 (デフォルト: sqlite:///app.sqlite)
SQLALCHEMY_DATABASE_URI=postgresql://user:password@host:port/dbname

# Flaskのシークレットキー
SECRET_KEY=your-super-secret-key

# JWTのシークレットキー
JWT_SECRET_KEY=your-super-secret-jwt-key

3. バックエンド (Flask) のセットアップ

  1. Python仮想環境の作成

    uv venv
  2. 依存ライブラリのインストール

    uv pip install -r requirements.txt

    もしかしたらuv syncの方がいいかもしれない 動かなかったら各自で追加してください

  3. Playwrightが利用するブラウザのインストール (PDF生成用)

    uv run playwright install
  4. データベースのマイグレーション(基本必要なし)

    uv run flask db upgrade
  5. 初期データ(管理者アカウント)の投入

    • ユーザー名: admin
    • パスワード: 4equest
    uv run flask seed

4. フロントエンド (React) のセットアップ

cd frontend
pnpm install

5. 開発サーバーの起動

concurrentlyでバックエンドとフロントエンドのサーバーが同時に起動します。

cd ..
pnpm dev
  • バックエンド (Flask): http://127.0.0.1:5000
  • フロントエンド (React): http://127.0.0.1:5173

本番環境へのデプロイ

pm2 を使ってアプリケーションを永続化して実行する場合、プロジェクトのルートディレクトリで以下のコマンドを実行します。 事前にフロントエンドのビルドが必要です。

# フロントエンドのビルド
cd frontend
pnpm build

# ルートディレクトリに戻ってpm2を起動
cd ..
pm2 start ecosystem.config.js

使い方

  1. ログイン: 初期管理者アカウント (admin / 4equest) でログインします。
  2. ユーザー作成: [Admin] -> [User Management] から、診断を担当する一般ユーザーを作成します。
  3. ドメイン作成: [Domains] ページから、診断対象のWebサイト情報を登録します。
  4. 指摘事項登録: 作成したドメインの詳細ページから、脆弱性や改善点などの指摘事項を登録します。テンプレートを利用することも可能です。
  5. 進捗管理: 各指摘事項のステータスを更新し、担当者やレビュアーを割り当てます。
  6. レポート生成: ドメイン詳細ページから、PDF形式のレポートを生成・ダウンロードします。

その他

データベースのマイグレーション

データベースのモデルに変更を加えた場合は、以下の手順でマイグレーションスクリプトを作成・適用してください。

  1. マイグレーションスクリプトの自動生成

    uv run flask db migrate -m "変更内容の要約"
  2. 生成されたスクリプトの確認・修正 (必要に応じて) (migrations/versions/ 以下に生成されます)

  3. マイグレーションの適用

    uv run flask db upgrade

About

Comprehensive vulnerability assessment management and automated report generation tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published