8月27日、海外のセキュリティ情報メディア「Help Net Security」に、オープンソースの脆弱性スキャナー「Nuclei」の紹介記事が掲載され、同プロダクトに注目が集まっている。
Nucleiは、YAMLベースのテンプレートを用いて動作する高速かつカスタマイズ可能なオープンソースの脆弱性スキャナーである。このスキャナーは、柔軟なテンプレートシステムにより、様々なセキュリティチェックを実行するために適応できる。カスタマイズ可能なテンプレートを使用して複数のターゲットにリクエストを送信し、誤検知ゼロを実現し、多数のホストに対して迅速なスキャンを行うことが可能である。Nucleiは、TCP、DNS、HTTP、SSL、ファイル、Whois、WebSocketなど、幅広いプロトコルに対応している。
Nucleiの主な特徴
- テンプレートライブラリ: 脆弱性や攻撃ベクターに特化したコミュニティ駆動のテンプレートコレクションを提供。
- ターゲット指定の柔軟性: URL、IPレンジ、ASNレンジ、ファイル入力など、様々なターゲット指定オプションをサポートし、スキャン範囲の柔軟な定義が可能。
- 一括スキャン: 複数のターゲットを一度に指定することで、大規模な資産やウェブサイトの効率的なスキャンを実現。
- カスタマイズ: スキャンテンプレートをカスタマイズして、特定のニーズに合わせたスキャンを実施し、関連するセキュリティチェックに焦点を当てることが可能。
- 並列スキャン: 並列スキャンをサポートし、スキャン時間を短縮し、大規模なターゲットに対する効率を向上。
- レポート生成: 脆弱性の詳細、重大度レベル、影響を受けるエンドポイント、推奨される修正手順など、実行可能な洞察を含む詳細なレポートを生成。
- CI/CDパイプラインとの統合: CI/CDパイプラインにシームレスに統合し、開発およびデプロイメントプロセスの一環として自動化されたセキュリティテストを実行。
- チケッティング統合: JiraやSplunkなどのツールとの双方向チケッティング統合により、脆弱性の修正と再テストを容易に実施。
- 出力形式のカスタマイズ: スキャン結果の出力形式をJSON、YAMLなどの形式でカスタマイズ可能。
- 動的変数: テンプレート内で変数を使用して、パラメータ化されたスキャンを実行し、柔軟なスキャン構成を実現。
- フィルター機能: ターゲットを指定するためのフィルターを適用し、スキャン範囲を絞り、特定の関心領域に焦点を当てることができる。
- 認証サポート: HTTP基本認証、JWTトークン認証など、さまざまな認証メカニズムをサポート。
- テンプレート内でのカスタムコードの埋め込み: Nucleiテンプレート内でカスタムコードを実行し、ユーザー定義のロジックを組み込んで高度なスキャンアクションを実行可能。
Nucleiは、2019年頃にGitHub上で公開されたオープンソースの脆弱性スキャナーであり、以降、セキュリティコミュニティ内で高い評価を得ている。このプロジェクトは積極的にメンテナンスされており、通常2週間ごとに更新が行われているため、新たに発見されたCVE(Common Vulnerabilities and Exposures)やその他の脆弱性に迅速に対応できるようになっている。
GitHub上では、19,000以上のスターを獲得しており、700人以上のコントリビューターが貢献している。また、専用のリポジトリには7,000以上のテンプレートが収められており、これらのテンプレートは300人以上のセキュリティ研究者やエンジニアによって継続的に拡充されている。
詳細は「Nuclei: Open-source vulnerability scanner」を参照していただきたい。