Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Building “Sentinel”: multi-agent cybersecurity news triage and publishing system on AWS

2025年09月29日に「Dev.to」が公開したITニュース「Building “Sentinel”: multi-agent cybersecurity news triage and publishing system on AWS」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

SentinelはAWSで動くサイバーセキュリティニュース自動処理システムだ。RSSフィードから情報を集め、AI(Bedrock AgentCore)を使い重複排除、関連性判断、要約、公開までを自動で行う。サーバレス技術で信頼性と拡張性を確保し、人の確認も加えることで、大量情報を効率的に整理・提供する。

ITニュース解説

Sentinelというシステムは、大量のサイバーセキュリティニュース記事の中から、組織にとって本当に重要な情報だけを効率的に見つけ出し、整理して、適切な人に届けるための自動化された仕組みである。現代ではインターネット上に膨大な情報が溢れており、手作業で必要なニュースを追いかけるのは非常に困難だ。そこで、このSentinelシステムは、主にAWSの技術を使い、この情報過多という課題を解決するために作られた。

このシステムの目的は、様々なニュースサイトから情報を自動で収集し、記事の重複を排除したり、組織に関連するキーワードを基にフィルタリングしたり、サイバー攻撃の種類や脅威アクターといった重要な情報を抽出したりすることである。最終的には、整理された情報を自動で公開したり、必要に応じて人間のセキュリティ担当者がレビューしたりして、社内全体に共有できるようにする。これにより、セキュリティ担当者の負担を減らし、常に最新の脅威情報にキャッチアップできる体制を構築する。

Sentinelの全体的な仕組みは、複数の小さなプログラムが連携し合って一つの大きなタスクをこなす「マイクロサービス」という考え方に基づいている。各プログラムはAWSのLambdaというサービス上で動作し、必要な時にだけ実行されるため、コストを抑えつつ高い柔軟性を持つ。これらのプログラムの実行順序や連携は、AWS Step Functionsというサービスが管理している。ニュースの取り込みは、定期的にEventBridgeというサービスによってスケジュールされ、システムが自動的に動き出す。

このシステムでは、情報の流れの信頼性が非常に重視されている。例えば、ニュースフィードが一時的に大量に押し寄せた場合でも、システム全体が停止しないように、SQSというメッセージキューサービスを使って処理の負荷を分散させている。これにより、一時的な急増にも耐えられるようになっている。また、万が一途中でエラーが発生しても、処理が止まってしまわないよう、DLQ(デッドレターキュー)という仕組みでエラーメッセージを隔離し、後で再処理できるようにする。さらに、同じ記事が何度も処理されてしまうことを防ぐために、記事のURLを基にした「冪等性」という考え方を取り入れ、重複処理を防いでいる。

収集したニュース記事のデータは、DynamoDBというデータベースサービスに保存される。このデータベースは高速で大量のデータ処理に適しており、記事の状態やタグ、重複グループといった情報に基づいて効率的に検索できるように設計されている。記事の検索機能については、OpenSearch Serverlessという検索エンジンサービスが使われている。ここでは、キーワードによる検索だけでなく、「埋め込み」という、テキストの意味を数値のデータに変換する技術を使い、内容が似ている記事(ニアデュプリケート)を検出するセマンティック検索も可能だ。これにより、表現は違うが内容は同じような記事を正確に探し出すことができる。

このシステムの特徴は、AWS BedrockというAIサービスを積極的に活用している点にある。Bedrockは、大規模言語モデル(LLM)と呼ばれる、人間のように文章を理解し生成するAIを利用するための基盤サービスだ。Sentinelでは、このBedrockを使って、記事が組織にとってどれだけ関連性が高いかをスコアリングしたり、記事の中からCVE ID(脆弱性識別子)や脅威アクター、マルウェアといった重要なエンティティ(実体)を自動で抽出したりする。また、記事の要約を作成したり、記事の内容を「埋め込み」に変換して、似た記事を探すのに利用したりもする。

特に注目すべきは、「エージェント」という自律的なプログラムの導入である。これは、Strandsというツールを使って定義され、Bedrock AgentCoreというサービス上で実行される。初期段階では、Step Functionsが直接Lambda関数を呼び出すことで、システムが確実に動作するかを検証した。その後、機能フラグを切り替えるだけで、Step Functionsが直接Lambdaを呼び出す代わりに、これらのエージェントが適切なタイミングでツール(Lambda関数)を選択し、実行するという、より高度な自動化を実現している。例えば、「Ingestor Agent」はニュースを取り込み、関連性を評価し、重複排除を行い、公開の判断を下す。また「Analyst Assistant Agent」は、人間からの自然言語での問い合わせに応答し、データベースから情報を引き出したり、コメントを投稿したりする手助けをする。

もちろん、AIが完璧な判断を下せない場合もある。そのため、このシステムには「Human in the loop」、つまり人間の介入の仕組みが組み込まれている。例えば、AIが記事の関連性について確信が持てなかったり、不正確な情報(幻覚)や個人情報(PII)の含まれる可能性を検出したりした場合には、自動的に人間のセキュリティ担当者によるレビューが促される。担当者はAmplifyというWebアプリケーションを通して、AIの判断根拠を確認し、記事の承認や却下、タグや要約の修正などを行うことができる。これにより、AIの自動化と人間の専門知識が組み合わさって、より高品質なサイバーセキュリティ情報を提供することが可能になる。

セキュリティと運用もこのシステムにとって非常に重要な要素だ。ユーザー認証にはCognitoを、データ暗号化にはKMSを、Webアプリケーションの保護にはWAFを利用するなど、多層的なセキュリティ対策が講じられている。また、システム全体がどのように動作しているかを把握するために、ログはJSON形式で統一され、X-Rayというサービスで処理の追跡が可能になっている。これにより、問題が発生した際に迅速に原因を特定できる。コストも厳しく監視されており、日次および月次のコストモニターが設定され、予算を超えないように管理されている。

このシステムを開発する中で、いくつかの重要な教訓が得られた。まず、複雑なAIエージェントを導入する前に、基本的なデータ処理パイプラインが確実に動作することを確認することが重要だった。エージェントは、既存の安定したツール(Lambda関数など)の上に「層」として追加する形が最も効果的だということも分かった。また、機能フラグを使うことで、新しい機能を安全に導入したり、問題が発生した際に迅速に元の状態に戻したりできるようになった。信頼性は、個々の機能だけでなく、システム全体として考えるべき課題であり、データ処理の正確性やレイテンシー、コストなどの指標を常に測定し、改善に役立てることが肝要である。

Sentinelは、今後もさらなる進化を遂げる予定だ。例えば、より多くの情報源(NVD、STIX/TAXIIフィードなど)から情報を取得し、記事のエンティティをより詳細に分析する機能を追加する計画がある。AIの判断精度を高めるための評価ループを強化したり、エージェントがより深い推論や自己検証を行えるようにしたりすることも視野に入っている。ユーザーインターフェースの改善や、より高度な検索機能、コスト最適化の自動化、マルチテナンシーへの対応、そして継続的なセキュリティ強化もロードマップに含まれている。

結論として、Sentinelは、ノイズの多い大量のサイバーセキュリティニュースの中から、信頼性があり、安全で、説明可能な方法で重要な情報を抽出し、配信する強力なパイプラインを構築できたことを示している。このシステムは、バッファリングや冪等性といった堅牢な基盤の上に、AIエージェントによるインテリジェントな処理を組み合わせることで、自動化の恩恵を最大化しつつ、人間の監視と介入によって品質を保証するという理想的な形を実現していると言える。今後も、よりスマートで、より安価で、より堅牢なシステムへと進化し続けるだろう。

関連コンテンツ

関連IT用語

関連ITニュース