Vulnerability Report TUI Tool は、securityonline.info の脆弱性レポート用 RSS フィードから、指定された日付から過去7日間(1週間)のレポートを取得し、ターミナル上で一覧表示・閲覧するための TUI (Terminal User Interface) アプリケーションです。
- 脆弱性レポートの取得・表示:
- 指定された日付(デフォルトは当日)から過去7日間(1週間)に公開された脆弱性レポートの一覧を RSS フィードから取得して表示します。
- キーワードハイライト:
- 設定ファイルで指定された特定のキーワード(例:
CVSSなど)をマゼンタでハイライト表示します。
- 設定ファイルで指定された特定のキーワード(例:
- ブラウザ連携:
- TUI 上でレポートを選択し Enter キーを押すと、自動的に既定のブラウザで対象のレポートの Web ページを開きます。
- Chatwork連携:
- TUI 上で選択したレポートの情報を Chatwork に投稿することができます(
Cキー)。
- TUI 上で選択したレポートの情報を Chatwork に投稿することができます(
- Go: 1.18 以上推奨
- インターネット接続(RSS フィードの取得およびブラウザでのリンク閲覧用)
引数を省略して実行すると、現在の日付(当日)のレポートを取得します。
go run main.go特定の日付のレポートを表示したい場合は、YYYYMMDD 形式の引数を指定します。
go run main.go 20260522以下のコマンドを実行して、アプリケーションを単一の実行可能バイナリとしてビルドできます。
make buildビルドが完了すると、プロジェクトのルートディレクトリに vuln-tui バイナリが生成されます。このバイナリは単体で実行可能です(※ただし、キーワードハイライト機能を利用する場合は、実行するディレクトリに vulnerability-report.json が配置されている必要があります)。
生成されたバイナリの実行例:
./vuln-tuiワークスペース直下の vulnerability-report.json にて、ハイライトしたいキーワードおよび Chatwork 連携の設定を定義することができます。
{
"highlight": [
"CVSS",
"Cisco",
"Fortinet"
],
"chatwork": {
"api_token": "YOUR_CHATWORK_API_TOKEN",
"room_id": "YOUR_ROOM_ID"
}
}設定ファイルに記載されたキーワードは、タイトル一覧に表示される際に**マゼンタ(Magenta)**でハイライトされます。
設定ファイルの chatwork 項目は、以下の環境変数を設定することで上書きまたは直接指定することが可能です。
CHATWORK_API_TOKEN: Chatwork API トークンを上書きします。CHATWORK_ROOM_ID: Chatwork ルーム ID を上書きします。
TUI 画面では以下のキーボードショートカットを使用できます:
| キー | アクション |
|---|---|
↑ / k |
カーソルを上に移動 |
↓ / j |
カーソルを下に移動 |
Enter / Space |
選択中の記事をブラウザで開く |
C |
選択中の記事を Chatwork へ投稿 |
r |
最新のフィード情報を再取得(リフレッシュ) |
q / Ctrl+C |
アプリケーションを終了 |
コードのフォーマット、静的解析、およびユニットテストの実行には、付属の Makefile を使用できます。
- コードの自動フォーマット
make fmt
- 静的解析 (Linter) の実行
make lint
- テストの実行
go test -v ./...