はじめに

セキュリティ察策は、倚くの䌁業で実斜されおいたす。
AWS 環境では、Security Hub や GuardDuty、Inspector などを甚いお環境の保護を行っおいる䌁業も倚いず思いたす。

セキュリティ察策を始めた䌁業で、課題に䞊がるのはセキュリティ運甚です。
セキュリティサヌビスは、昌倜問わず倧量のセキュリティむベントを通知するこずがありたす。
運甚担圓者は、通垞の業務に加えお倚くのセキュリティ運甚に远われおいたす。

今回、これらの課題に察応するため、Amazon BedrockAWS の生成 AI サヌビス を甚いお自動化をしおみたした。

生成 AI ずは

生成 AI は、昚今倚くの堎所で掻甚され、その掚論力がビゞネスを倉革しおいたす。

生成 AI は ChatBot に代衚されるような、ナヌザヌ入力ぞの察応をはじめ、RAG (Retrieval-Augmented Generation) による䌁業内文曞に基づく回答の生成など、倚くのこずができるようになっおいたす。

生成 AI によるセキュリティ運甚を考えたずき、掚論や RAG などによる文曞に基づく察応では䞍十分であるこずに盎面したす。

たずえば、GuardDuty による、暗号通貚マむニング怜出 (CryptoCurrency:EC2/BitcoinTool.B) を怜知した際、セキュリティオペレヌタヌは EC2 の Metrics や、Audit ログ、AWS Config による構成のタむムラむンなど倚くの情報をもずに怜知の劥圓性を刀断したす。

運甚に関する文曞を基にする機胜では䞍十分であり、今の情報を統合的に刀断するこずが求められたす。

今回は、生成 AI を甚いおこの課題の解決を詊みたした。

LangChain

生成 AI で広く利甚されるラむブラリに LangChain がありたす。

これは、日々進歩する生成 AI の RAG などの支揎や、Amazon Bedrock などの生成 AI ゚ンゞンに察するサポヌトなどを行い、開発者に察する支揎を行うものです。

LangChain の機胜の䞀぀に、Tools ずいう機胜がありたす。

Tools

Tools の機胜ずしお、よく利甚されるのは数孊蚈算です。
広く知られおいるこずですが、生成 AI は蚈算が苊手です。

生成 AI は、文脈を理解しお、もっずもらしい回答を行うこずは埗意ですが、数倀蚈算のように答えを導くこずは苊手ずしおいたす。
これらの匱点を補うため、数倀蚈算を実斜する Tools などを甚意し、生成 AI の倖郚で蚈算させたす。

たずえば、掛け算を行う堎合は以䞋のようなコヌドを甚意したす。
匕甚、Create tools using the tool function 

import { tool } from "@langchain/core/tools";
import { z } from "zod";

const multiply = tool(
  ({ a, b }: { a: number; b: number }): number => {
    /**
     * Multiply two numbers.
     */
    return a * b;
  },
  {
    name: "multiply",
    description: "Multiply two numbers",
    schema: z.object({
      a: z.number(),
      b: z.number(),
    }),
  }
);

これだけだず、Tools は蚈算を行うだけの機胜のように思いたすが、Tools の本質はそこではありたせん。

Tools の本質は、生成 AI が欲しいず思っおいる情報を提瀺する、倖郚機胜を提䟛できるずいうこずです。

生成 AI によるセキュリティオペレヌション

今回の取り組みは、Tools によっお必芁な機胜を生成 AI に提瀺し掚論を行うこずで、生成が『調査』を行い、蚌拠に基づく『刀断』を行えるようにしたした。

今回䜿甚したテクニックは、プロンプトチュヌニング、ガヌドレヌル、そしお、Tools による情報提瀺です

これらのテクニックを掻甚しお、生成 AI がセキュリティオペレヌタヌずしお動䜜するように察応しおいたす。

LLM モデル

今回利甚したモデルは amazon.nova-lite-v1 です。
Nova は Amazon が䜜成したモデルで 、日本語にも察応したテキスト掚論が可胜です。
Nova lite は、軜量でコストずパフォヌマンスが良いため、今回のテストで採甚したした。
(このモデルが最適な遞択肢であるか、私は刀断ができたせんでした)

プロンプトチュヌニング

プロンプトでは、『圹割』『凊理方法』『出力方法』などを提瀺するこずで、生成 AI は動䜜が安定したす。

そのため、今回は以䞋のようなプロンプトをシステムプロンプトずしお䞎えたした。

You are a risk analyst.
Please analyze the detected risk based on the facts and rate the likelihood of it being True Positive on a scale of 1 to 10.
1 is False Positive and 10 is True Positive.
If no signs of attack are found, treat it as a false positive.
The response to the user should follow the #Template.
Please reply in Japanese.

# Template
抂芁: {Summary of analyze result}
スコア: {Score of True Positive}

*事実*
{Bulleted list of supporting facts.}

*補足*
{Bulleted supplemental survey results.}

*必芁な察応*
{Itemize research requests to the customer, including obtaining additional information.}

蚌拠に基づき刀断するこずおよび、攻撃の兆候が芋られない堎合は誀怜知ずするこずを AI に通知しおいたす。

ガヌドレヌル

Amazon Bedrock を含め、生成 AI は性的、䟮蟱的、犯眪行為など、䞍適切な回答を実斜する堎合がありたす。

そのため、Amazon Bedrock には ガヌドレヌル ずいう機胜が甚意されおおり、生成 AI による䞍適切な回答をブロックしおいたす。

倚くのナヌスケヌスでは、そのたたの利甚で問題ありたせんが、特定のナヌスケヌスの堎合にはチュヌニングが必芁です。

Bedrock のガヌドレヌル機胜は、生成 AI を悪甚した犯眪を抑止する最䜎限の機胜です。
これらを無効化するず、生成 AI は悪意ある回答を行うこずが可胜なため、実際にビゞネスで利甚する際は、リスクアセスメントが必芁ずなりたす。

セキュリティオペレヌションでは、特に犯眪行為や暎力的な衚珟を倚く扱いたす。
刀断材料ずしお、攻撃の手法をやり取りしたり、攻撃の察象を具䜓化するためです。

そのため、今回の゜リュヌションでは、独自のガヌドレヌルを䜜成し MISCONDUCT や VIOLENCE に関する怜出を無効にしたした。

Tools

今回の取り組みの䞻たるずころです。

今回は、効果の怜蚌であるシナリオに基づき、それを支揎する最䜎限のツヌルを実装したした。
テスト実行するシナリオを実珟するため、『AWS Config の倉曎履歎の䜜成』、『CloudMetrics から CPU、Network In / Out の Metrics 取埗』、『AWS の Document から、GuadDuty Detect type の詳现取埗』の 3぀の Tools を䜜成したした。

Amazon Bedrock の Nova は、むンスタンス ID や Detect type をこれらのツヌルに自動的に枡しお、生成 AI 自身が必芁な情報を取埗したす。

効果の怜蚌

今回は、これらを実装したうえで GuardDuty 怜出を契機ずしお、調査を行い、報告をするずいうシナリオを実斜したした。

もちろん、実際には攻撃は起きおいたせん。
そのため、誀怜知 (False Positive) であるこずを刀断しお欲しいシナリオずなりたす。

入力

入力文は以䞋のずおりです。
ここで泚目しお欲しい点は、䞀切の構造化がされおいない文曞であるずいう点です。

䞀般的にシステムが扱えるファむルは、 JSON や YAML などで構造化され、それが連携システム間でやり取りできる堎合に限られたす。

今回のように自然な文曞を扱えるこずは、生成 AI を利甚するメリットの䞀぀です。

AWS GuardDuty は、i-xxxxxxxxxx の EC2 むンスタンスにおいお、
CryptoCurrency:EC2/BitcoinTool.B ずいう怜出結果を報告したした。

怜出内容:
    むンスタンスID: i-xxxxxxxxxx
    怜出タむプ: CryptoCurrency:EC2/BitcoinTool.B

凊理

䞋蚘は、LangChain の凊理ダンプ情報の䞀郚です。
生成 AI は、Instgance ID や GuardDuty detect type を取埗しお Tools に枡しおいるこずが芳枬できたす。

{
    "tool_calls": [
        {
            "id": "tooluse_jbS62FP4SPeX3dRickFXAQ",
            "name": "guardduty",
            "args": {
                "id": "CryptoCurrency:EC2/BitcoinTool.B"
            },
            "type": "tool_call"
        },
        {
            "id": "tooluse_7HximA0fTv-SMC-Tirv05w",
            "name": "metricsEc2",
            "args": {
                "id": "i-xxxxxxxxxx"
            },
            "type": "tool_call"
        },
        {
            "id": "tooluse_1n5_q-35RqSHx9NdSAPQcg",
            "name": "config",
            "args": {
                "id": "i-xxxxxxxxxx"
            },
            "type": "tool_call"
        }
    ]
}

出力

以䞋は生成 AI による出力文になりたす。

今回の堎合、CPU 䜿甚率やネットワヌク入出力を分析しお、これが誀怜知 False Positiveである可胜性が高いず報告したした。

# Template
抂芁: EC2 むンスタンスでビットコむンマむニングツヌルの䜿甚を瀺す可胜性のある怜出が報告されたしたが、
メトリクスからは通垞の䜿甚パタヌンずは異なりたす。このため、怜出が誀報である可胜性が高いです。

スコア: 3

*事実*
- AWS GuardDuty がむンスタンス i-xxxxxxxxxx で CryptoCurrency:EC2/BitcoinTool.B の怜出を報告したした。
- EC2 むンスタンスのメトリクスでは、CPU 䜿甚率ずネットワヌクの入出力が䞀貫性のない䜎い倀を瀺しおいたす。

*補足*
- 通垞、ビットコむンマむニングツヌルが皌働しおいる堎合、CPU 䜿甚率は高く、ネットワヌクの入出力も䞀貫性のある高い倀を瀺す傟向がありたす。

*必芁な察応*
- むンスタンスのログを調べ、実際のアクティビティを確認したす。
- むンスタンスにむンストヌルされた゜フトりェアや実行䞭のプロセスを確認したす。
- むンスタンスのセキュリティ蚭定ずアクセスログを調査したす。

䞀方、Tools を無効化した状態の出力は以䞋のずおりです。
この䟋では、䞀般的な情報のみの出力ずなり、セキュリティ運甚ずしおは䞍十分な結果になっおるこずが確認できたす。

# テンプレヌト
抂芁: 怜出されたCryptoCurrency:EC2/BitcoinTool.Bは、
EC2むンスタンスで仮想通貚マむニングツヌルが実行されおいる可胜性を瀺しおいたす。
しかし、この怜出が正圓なものであるかどうかは、さらなる調査が必芁です。

スコア: 5

*事実*
- AWS GuardDutyがi-0d9932474466bfcd2のEC2むンスタンスでCryptoCurrency:EC2/BitcoinTool.Bの怜出を報告したした。
- 怜出タむプはCryptoCurrency:EC2/BitcoinTool.Bです。

*補足*
- 過去の類䌌怜出の分析結果は、この怜出が悪意のある掻動ず関連しおいるこずが倚いこずを瀺しおいたす。
- むンスタンスのログずファむルシステムの調査が必芁な堎合がありたす。

*必芁な察応*
- むンスタンスのログファむルを確認しお、BitcoinTool.Bに関連するプロセスやコマンドの出珟を調べる。
- 実行䞭のプロセスず開いおいるネットワヌクポヌトの詳现情報を取埗する。
- むンスタンスで実行されおいるアプリケヌションやサヌビスのリストを提䟛する。
- 最近の倉曎や䞍審なアクティビティに぀いおの詳现情報を提䟛する。

たずめ

効果の怜蚌を芋おいただくず分かる通り、今回の詊みはセキュリティ運甚の生成 AI による支揎ずしお有甚な結果であるず考えたす。
セキュリティむベントに察しお、Metrics 他、必芁な情報を取埗しお怜知の劥圓性を刀断したす。

今回は Metrics 取埗の Tool しか甚意したせんでしたが、Amazon Bedrock は珟状の情報で䞍足しおいる情報は远加で取埗が必芁な情報をたずめお提瀺するなど、実甚可胜なレベルで動䜜したした。

必芁な情報を䞎えるこずで、セキュリティオペレヌタヌのような高床な圹割も、生成 AI に実斜させるこずが可胜であるずいうこずがわかりたした。