はじめに

このブログでは、近年注目されている生成 AI を活用したセキュリティ運用について検討します。

最近の生成 AI モデルは、最大トークンサイズが多くなってきて一度に多くの情報を扱うことができるようになっています。
(最大トークンサイズとは、生成 AI が一度に処理することができるデータサイズのこと)

これは、巨大な PDF や CSV などのデータを受け取り、推論可能ということを示しています。
具体的に言うと、システムが出す大量のデータからの要約が可能ということです。

今回は、脆弱性管理の Insight を得ることができないか、試してみたいと思います。

脆弱性管理の課題

脆弱性管理は、Linux や Windows Server の OS レイヤーや、アプリの Library、Framework などのアプリレイヤーで実施されています。

脆弱性管理の課題は多くあります。

  • 報告される脆弱性の数が多く、管理しきれない
  • システムの影響を考えて、パッチを適用できない
  • 継続的な対応ができない
  • 組織として、全体把握ができていない

これらの問題に対して、組織は脆弱性管理に関する規定を設けて対応しています。
これらの運用を生成 AI でサポートすることができないか試してみます。

脆弱性の増加

特に、今回試したい課題は報告される脆弱性の数が多いという問題です。
脆弱性を扱うデータベースの一つである JVN iPedia のまとめた情報 によると、右肩上がりに脆弱性の報告件数が伸びていることが確認できます。

このことから分かるように、脆弱性そのものの数が増えていることもあり脆弱性への対応が難しくなっています。

脆弱性管理ポリシーの整備

お客様組織の中でも、脆弱性に対して一律に CVSS スコアのみを元にして対応するのではなく、Exploit (攻撃実証コード) の有無、外部ネットワークからの到達可能性、情報公開日などを元にして対応するようセキュリティ規定にまとめています。

これにより、CVSS スコアのみを指標とする対策と比較して、危険な脆弱性に注力するとともに、サービスの中断を最小限に抑えるなどの効果が出ています。

しかし、この対策は脆弱性情報を管理して、どのように対応するかポリシーに基づく対応が必要となるため、新たな稼働の発生という問題も生じています。

脆弱性管理の生成 AI 活用

今回は、これらの課題に対して生成 AI によるアプローチを試します。

今回の生成 AI エージェントは、組織の規定と脆弱性情報を読み取り、Insight を得ることを目的とします。
Insight は膨大な情報から抽出した、意味のある知見という意味で利用します。

今回は、AWS SAM で簡単に扱えることから Amazon Bedrock と Amazon Nova Lite で試してみます。

Amazon Nova Lite の情報ページには、最大トークン数 300K との記載があります。
そのため、長大な情報からの推論を試すのに適していると考えました。

テスト環境

今回の環境ですが、脆弱性の数が 642 findings 存在しています。
これらの脆弱性を、文字列として表すと 1,001,778 文字 となります。

念のため申し添えますが、セキュリティセクションで保有している脆弱性のあるインスタンスを Inspector でスキャンしています。
インターネットからアクセスできるような環境に脆弱なインスタンスをおいているわけではないので、ご承知おきください。

この環境に対して、調査する生成 AI を作成し、試しました。

それぞれ、以下のようなプロンプトを用いています。

システムプロンプト

あなたは、セキュリティアナリストです。
ユーザーの脆弱性管理を支援することがあなたの目的です。

アナリストレポートは <rules></rules> の内容を遵守してください。

<rules>
- 日本語で回答を生成してください。
- 400文字程度のアナリストレポートを生成してください。 
- どのように対応したらいいか、具体的なアドバイスを提供してください。
- ビジネス上のリスク (サービスの一時中断) なども考慮してください。
- マネジメント層に対するレポートをして、全体的な傾向と対策を指南する。
- 特に対応を必要とするリスクがある場合、明示してください。
- 脆弱性の列挙してはいけません。
</rules>

ユーザーからの入力は、以下のセクションを含みます。
- <policy></policy> 
    - 顧客の脆弱性管理に関するポリシー
- <vulnerabilities></vulnerabilities>
    - 脆弱性情報

回答は、 <output></output> で指定される内容をテンプレートとして出力してください。

<output>
    # 1. 全体的な傾向と対策

    # 2. 直ちに修正が必要な脆弱性

    # 3. アップデートに注意を有する脆弱性

    # 4. その他

</output>

ユーザープロンプト

<policy>
  外部ネットワークから攻撃可能な脆弱性かつ、High 以上の脆弱性は即時対応をしてください。
  攻撃コードが公開された脆弱性を検知した場合は、CISO に報告が必要となります。

  High 以上の脆弱性がある場合、3ヶ月以内に対応を実施してください。
  業務影響を最小化するため、対応計画を作成して脆弱性のあるパッケージを更新してください。

  それ以外の脆弱性については、1年以内のシステムメンテナンスに合わせて更新の実施が必要です。
</policy>
<vulnerabilities>
  <vulnerability>
    <awsAccountId>xxxxxxxxxxxx</awsAccountId>
    <firstObservedAt>2025-04-15T03:50:26.020Z</firstObservedAt>
    <lastObservedAt>2025-05-23T11:50:01.532Z</lastObservedAt>
    <updatedAt>2025-05-23T11:50:01.532Z</updatedAt>
    <severity>MEDIUM</severity>
    <title>CVE-2025-21639 - kernel</title>
    <description>In the Linux kernel, the following vulnerability has been resolved:

sctp: sysctl: rto_min/max: avoid using current->nsproxy</description>
    <status>ACTIVE</status>
    <exploitAvailable>NO</exploitAvailable>
    <fixAvailable>YES</fixAvailable>
    <packageVulnerabilityDetails>
      <vulnerabilityId>CVE-2025-21639</vulnerabilityId>
      <cvss>
        <baseScore>5.5</baseScore>
        <scoringVector>CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H</scoringVector>
        <source>AMAZON_CVE</source>
        <version>3.1</version>
      </cvss>
      <cvss>
        <baseScore>5.5</baseScore>
        <scoringVector>CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H</scoringVector>
        <source>NVD</source>
        <version>3.1</version>
      </cvss>
      <vulnerablePackages>
        <arch>X86_64</arch>
        <epoch>0</epoch>
        <fixedInVersion>0:5.15.178-120.178.amzn2</fixedInVersion>
        <name>kernel</name>
        <packageManager>OS</packageManager>
        <release>201.855.amzn2</release>
        <remediation>yum update kernel</remediation>
        <version>5.10.213</version>
      </vulnerablePackages>
    </packageVulnerabilityDetails>
  </vulnerability>
  ...
</vulnerabilities>

出力

# 1. 全体的な傾向と対策

現在、外部ネットワークから攻撃可能な脆弱性が存在しており、そのうち High 以上の脆弱性が3件見つかりました。これらは直ちに修正する必要があります。残りの脆弱性は Medium レベルであり、1年以内のシステムメンテナンス時に更新が計画されています。脆弱性管理ポリシーに基づき、システムの安定性とセキュリティを確保するため、脆弱性のあるパッケージを更新し、業務への影響を最小限に抑える必要があります。

# 2. 直ちに修正が必要な脆弱性

直ちに修正が必要な脆弱性は、以下の3件です。これらの脆弱性は、High 以上の評価であり、外部ネットワークから攻撃可能であることが確認されています。

- CVE-2024-50142 (kernel)
- CVE-2024-50143 (kernel)
- CVE-2024-50144 (kernel)

これらの脆弱性はサービスの中断やデータ漏洩につながる可能性があるため、速やかに対応計画を作成し、修正パッチを適用してください。

# 3. アップデートに注意を有する脆弱性

特に注意を要する脆弱性は CVE-2024-50144 (kernel) です。この脆弱性は外部ネットワークから攻撃可能かつ、CVSS スコアが7.8と高く、システムの重要な部分に影響を与える可能性があります。また、修正パッチがすでに公開されているため、早急な更新を推奨します。

# 4. その他

その他の Medium レベルの脆弱性については、業務に影響を与えないタイミングでの更新が推奨されます。ただし、定期的なシステムメンテナンスに合わせて更新を実施し、全体的なシステムセキュリティを維持してください。

検証結果

びっくりしました。
とてもびっくりしました。

実際に試してみたところ、想定より多くの情報を処理できました。

Usage metadata を確認すると、ぎりぎりのラインなのかなと思います。
カタログスペックの 300,000 を超えている結果ですが、適切なアウトプットが出力されており、エラーも出ていないことから処理できてることが確認できます。

   "usage_metadata": {
        "input_tokens": 390007,
        "output_tokens": 442,
        "total_tokens": 390449
    }

しかし、検証したかった大規模な入力データを扱い、Insight を得るという目的は達成できました。

実運用のための Tips

もし、このブログを参考にして実運用をしたい方がいることに備えて、以下の Tips を参考として残します。

今回の検証は、大規模データ検証のために、あえて Filter 条件を緩く設定しています。
実運用を試したい場合は、重要度が Low 以下の情報を除外するなど余裕のある Token 数の入力を心がけてください。

特に Low データなど、重要度の低いデータが入力に含まれていると、推論の精度が低下する可能性があります。

また、費用については Amazon Nova Lite (ap-northeast1) (2025/06/05 現在) で USD 0.000072 / 1,000 token なので、 300,000 token / リクエスト だと USD 0.0216/リクエスト 程度かなと思います。

まとめ

脆弱性管理において、大規模なデータを確認して Insight を得るというのは、作業負荷の高いものです。

特に、組織ポリシーに基づいて脆弱性情報を分析する作業は、時間と労力を要し、担当者の負担が大きい作業となります。

組織ポリシーは、組織が重要な Insight を得るための指針を示すものです。
生成 AI にこれらの大規模データを渡し、組織ポリシーに基づいた Insight を得られるということは、企業の目的に対して十分な成果を得ていると言えるでしょう。

これは、組織の重要な課題の一つである脆弱性管理を効率的に解決できる可能性を示しています。

大規模データの処理にも生成 AI を活用してください。