近年、ASM(Attack Surface Management)や脆弱性スキャナ(例:OpenVAS, Nesuss, OWASP ZAP)によって、組織が保有する資産と脆弱性の検出は自動化されつつある。また、クラウドサービスにより、マイクロサービス化が進んでいる以上、システムの複雑化もある。そのため、システム全体の構造を可視化するために、draw.io等を用いてアーキテクチャ図を作成するケースも増えている。
しかし、脆弱性診断のレポート結果から、パッチ処理を当てる際に、検出された膨大な脆弱性の中から「どれを最優先で修正すべきか」を判断する作業は、依然として人手に依存している。
そのため、セキュリティエンジニアがいない限り、細かなセキュリティホールを放置し、セキュリティリスクを高めることにつながる。
また、実際にクラッカーが攻撃する場合、資産情報が多くあるサーバーやサービスを狙うために、そこに近づくための攻撃シナリオを想定し、そのシナリオに沿うような脆弱性を狙う。
そこで、攻撃経路ベースでの脆弱性診断補助ツールを構築し、実際に攻撃されやすい箇所を自動的に特定し、優先すべきセキュリティリスクを発見することが重要だと考える。
ただ、既存研究として、MulVALなど、攻撃経路を自動推定するツールも存在する。しかし、テキストベースでの出力が中心であり、実際にマップで表示されるわけではないため、現代の複雑なシステム構成や可視化要求に十分対応しているとは言い難い。
また、threat-thinkerという、AIを使用した脅威モデリングにより、セキュリティリスクを可視化するOSSツールも存在するが、本テーマにおいては、脆弱性診断レポートとdraw.ioによる現実的な攻撃シナリオを推定することを目標としているため、差別化もされている。
本プロジェクトでは、アーキテクチャ構造情報(Draw.io) とASM/脆弱性管理ツールの検出結果 を統合し、実際に攻撃されやすい箇所を自動的に特定・優先度付けするモダンな仕組みを開発し、最終的に、視覚的に見えるものに可視化して、出力する。
前提として、アーキテクチャ図と脆弱性診断ツールによる診断結果レポートが存在し、攻撃チェーンを自動でマッピングしたと仮定する。