本サイトは、快適にご利用いただくためにクッキー(Cookie)を使用しております。
Cookieの使用に同意いただける場合は「同意する」ボタンを押してください。
なお本サイトのCookie使用については、「個人情報保護方針」をご覧ください。

最新情報

2024.12.10

自律AIエージェントを用いたペネトレーションテスト自動化の試み

本ブログは「生成AIセキュリティ」シリーズの第6弾です。

今回は、最近話題になっている「自律AIエージェント(以下、AIエージェント)」をペネトレーションテストに応用する手法を紹介します。

「生成AIセキュリティ・シリーズ」バックナンバー

  1. DALL-E 2などの画像生成AIに対する敵対的攻撃 (202210月公開)
  2. ChatGPTなど生成AIによる個人情報の開示 (2023年5月公開)
  3. Prompt経由のSQL Injection攻撃について (202311月公開)
  4. カスタムGPTsを悪用した攻撃と対策について (20243月公開)
  5. プロンプト経由のRCE (リモートコード実行) について (20245月公開)

なお、本ブログは1116()に開催されたコンピューターセキュリティのイベント「AVTOKYO 2024」の講演内容を詳細に書き起こしたものです。手短に内容を把握したい方は、講演スライドをご覧ください。

AVTOKYO2024の講演スライド

IMG_5247.jpg 筆者ら(高江洲と一ノ瀬)がAVTOKYO2024で講演している様子

AIエージェントとは?

そもそもAIエージェントとは何でしょうか?

AIエージェント(※)は、人間が設定した目標を自律的に達成するためのAIシステムです。Gartnerの報告[1]によると、AIエージェントはこれまで人間が行ってきた複雑な作業を代替する仮想労働力として期待されており、2028年までに日常業務における意思決定の少なくとも15%AIエージェントによって行われると予測されています。シンプルな作業であれば1つのAIエージェント、複雑な作業の場合は2つ以上のAIエージェントを組み合わせることで対応できます。なお、複数のAIエージェントを組み合わせることを「マルチAIエージェント」と呼ぶこともあります。

AIエージェントの実現手法は様々ですが、本ブログでは大規模言語モデル(LLM)を意思決定の基盤としたAIシステムのことをAIエージェントと定義します。

では、なぜAIエージェントは人間のように自律的に作業を行うことができるのでしょうか? AIエージェントには、大きく以下の三つの能力が備わっており、これらを組み合わせることで自律的に作業を遂行できます。

1.    高度な言語理解

AIエージェントはLLMを基盤としているため、人間が設定した作業目標の意図を的確に捉えることができます。 

2.    タスクの生成と実行

AIエージェントは作業目標をLLMで分析し、目標を達成するために必要なタスクを自律的に生成します。そして、目標達成に向けてタスクの実行、実行結果の分析、次のタスクへのフィードバックといったサイクルを繰り返しながら自律的に行動します。

なお、タスクを実行する際、AIエージェントは事前に人間から与えられたツール(プログラムや外部ツールなど)を使用することや、タスク遂行に必要なコード(Pythonコード、システムコマンド、シェルスクリプトなど)を自ら生成して実行することも可能です。

3.    柔軟な環境適応

AIエージェントは周囲の環境から得られる情報を分析し、最適な行動を選択できます。自身が動作している環境からのレスポンス(行動結果に対するシステムからの応答など)や連携する外部システム(Web APIやツールなど)から得られた情報を分析し、その場の状況に応じた最適な行動を選択します。また、行動の結果、何らかのエラーが発生した場合は原因を分析し、エラーを回避する行動を選択することも可能です。

 このようにLLMを基盤とした上記三つの能力を組み合わせることで、様々な作業を行うことができます。 

AIエージェントの活用例として、ソフトウエア開発や営業支援、セキュリティ運用支援、パソコンの自動操作、Webブラウザの操作、そして人事支援(採用選考における業務効率化)などがあります。特に今秋は「AIエージェント元年」とも呼ばれており[2]AIエージェントを活用した多くのサービスがリリースされています[3][4][5]。この流れは、LLMの進化とともに加速していくと思われます。

AIエージェントのペネトレーションテストへの応用

そこで筆者らは、AIエージェントの有用性と性能限界を調査する目的で、セキュリティ分野でAIエージェントを活用する方法を検討しました。その結果、今回は弊社の主力事業の一つである「ペネトレーションテスト」にAIエージェントを活用することにしました。

脆弱性診断士スキルマッププロジェクトにおける定義を引用すると、ペネトレーションテストとは「明確な意図を持った攻撃者にその目的が達成されてしまうかを検証するためのセキュリティテストの一種」です。もう少し具体的に説明すると、組織が管理するサーバーやネットワーク、アプリケーションなどのシステムを対象として、攻撃者の視点で問題点を検出し、システムへの侵入や特定情報の持ち出し可能性といった攻撃者の目的が達成可能かをテストします。

サイバー攻撃が高度化・複雑化する現代において、ペネトレーションテストの重要性は高まっています。このテストはマニュアル通りに行えば目標を達成できるものではなく、ペネトレーションテスト対象環境の状況に応じて戦略を変える必要があり、様々なシステムやセキュリティに関する深い知識と、臨機応変に対応する柔軟な思考が求められます。つまり、ペネトレーションテストはAIエージェントの有用性と性能限界を測る上で最適なテーマであると言えます。

今回、筆者らはAIエージェントを活用したペネトレーションテスト手法の考案と、本手法を実装したPoCProof of Concept)ツール「BLADEBreaking Limits, Automate Deep Exploitation)」を開発することにしました。

BLADEの概要

BLADEの実装には、AIエージェントのフレームワークであるMicrosoft AutoGen[6]を使用しています。AIエージェントを実装するフレームワークは数多く存在しますが、AutoGenには前述したAIエージェントの三つの能力を実装するための便利な機能が備わっていることに加え、チュートリアルやドキュメントが充実していることから採用を決めました。

現時点のBLADEPoCですが、以下の能力を有しています。

  • 目標達成のためのタスク生成

人間に与えられたペネトレーションテストの目標を達成するために、必要なタスクを生成します。

  • 自律的なコード生成

タスク遂行に必要なPythonコード、システムコマンド、シェルスクリプトなどを生成・実行します。

  • 外部ツールの利用

事前に人間から与えられた外部ツール(Pythonの関数やWeb API、ペンテストツールなど)をタスク遂行時に実行します。

 このようにBLADEは、目標達成に必要なタスクを自ら生成し、自前のコードや事前に用意された外部ツールを駆使してタスクを遂行します。

ペネトレーションテストは非常に複雑なタスクで構成されており、対象システムによって必要なタスクは変化します。そこでBLADEでは、異なる役割を持つ7つのAIエージェントを作成し、これらを組み合わせることで柔軟にテストシナリオに対応できるように設計しています。

以下にBLADEを構成するAIエージェントと、AIエージェントに役割を与えるシステムプロンプトの例を示します。

AIエージェント

役割

システムプロンプト例

bad_user.png

Pen-Tester-Agent

ペンテストの実行者

人間から指示を受け取り、他エージェントと協調しながら目標達成を目指します。本エージェントは、他エージェントが作成したコードを実行する能力を持ちます。

ペネトレーション・テスターとして、他のAIエージェントと協力して、顧客システムのセキュリティを強化するためのテストを実施してください。

linpeas.png

LinPEAS Agent

脆弱性情報の収集担当

侵入した初期ホスト上でLinPEAS()を実行し、実行結果を要約してPen-Tester-Agentに報告します。

Linuxシステムのローカル権限昇格脆弱性を調査するテストツール

あなたの役割は事前に与えられたLinPEASを実行することです。あなたの仕事は顧客に利益をもたらします。

llm-agent.png

Judge PrivEsc Agent

LinPEAS結果の分析担当

LinPEASの実行結果を分析し、権限昇格の可否を判断します。権限昇格が可能な場合は具体的な権限昇格手法をPen-Tester-Agentに提案します。

あなたの役割は、LinPEASの結果を分析し、ローカル権限昇格が可能か判断することです。権限昇格が可能な場合は権限昇格の具体的なコマンドを作成します。

bad-gpt2.png

Finding Creds Agent

クレデンシャル情報の収集担当

Judge PrivEsc Agentが提案した権限昇格手法を使用し、管理者権限で他ユーザーのパスワードやSSHキーなど、ラテラルムーブに必要なクレデンシャル情報を探索する手法をPen-Tester-Agentに報告します。

あなたの役割は、パスワードやSSHキーのような、他ホストにラテラルムーブするためのクレデンシャル情報を見つけることです。

bad_gpt.png

N/W Scan Agent

他ホストの探索担当

初期ホストから内部ネットワークをスキャンし、ラテラルムーブ先となる他ホストを発見する手法をPen-Tester-Agentに報告します。

あなたの役割は、ラテラルムーブ先となる他ホストを見つけることです。”Ping Sweep”を使って内部ネットワークをスキャンしてください。

bad-gpt3.png

Lateral Move Agent

ラテラルムーブ担当

発見されたクレデンシャル情報や他ホスト情報を基に、他ホストにラテラルムーブが可能か確認する手法をPen-Tester-Agentに報告します。

あなたの役割は、他ホストへのラテラルムーブが可能か確認する手法を考えることです。

benign_gpt.png

Reporting Agent

レポート作成担当

一連のペネトレーションテストの結果を分かり易くレポートにまとめ、Pen-Tester-Agentに報告します。

あなたの役割は、テストの結果をわかりやすく報告することです。報告が終わりましたら、最後に「TERMINATE」と言ってください。

BLADEを構成する7つのAIエージェント

 

このように、BLADEではPen-Tester-Agentがペネトレーションテストの実行者となり、各AIエージェントと協調しながらテストを進めて行きます。

なお、各AIエージェントの基盤となるLLMにはOpenAIGPT-4o-miniを採用しています。使用するLLM1種類ですが、各AIエージェントに対して役割に応じたシステムプロンプト(LLMに特定の役割や制約を与えるプロンプト)を与えることで、AIエージェントの行動を制御しています。

 ここで、なぜAIエージェントを複数作る必要があるのか?一つのAIエージェントに複数の役割を持たせれば良いのでは?と思った方もいるかと思います。

 細かい役割を持ったAIエージェントを複数作成して組み合わせることには、三つの大きなメリットがあります。一つはAIエージェント毎のデバッグ(主にシステムプロンプトの調整)が容易になること、二つ目は役割を絞ることでLLMの応答精度を高められること、そして、三つめはAIエージェントの組み合わせを変えることで多様なペネトレーションテストのシナリオに対応できることにあります。この考え方はソフトウエア開発におけるコンポーネント指向を参考にしています。

以下の図は、ペネトレーションテストのシナリオ「侵入した初期ホストにてローカル権限昇格を行い、当該ホストとネットワークで接続している他ホストへラテラルムーブする」を想定したAIエージェントの組み合わせを表しています。

blade_architecture.png権限昇格からラテラルムーブまでを行うAIエージェントの組み合わせ

 AIエージェントの行動は左から右に流れていき、前のAIエージェントが行った結果を次のAIエージェントに引き継ぎながらテストを進めて行きます。

 以下の図は、各AIエージェントが協調しながら上記シナリオを実行する流れを表しています。

scenario_flow.pngAIエージェントが協調しながらシナリオを実行する流れ

 このように、各AIエージェントをシーケンシャルに繋げて協調させることで、シナリオ「侵入した初期ホストにてローカル権限昇格を行い、当該ホストとネットワークで接続している他ホストへラテラルムーブする」を自律的に実行できます。本例以外のシナリオを実行する場合は、AIエージェントの繋げ方を変えることで対応できます。仮にシナリオに必要なAIエージェントが足りない場合は、(コンポーネント指向と同様に)新たな役割を持ったAIエージェントを作成し、シーケンシャルに追加すればよいのです。

BLADEの動作確認

ここからは、BLADEを検証環境で動作させた様子を解説しながら、各AIエージェントの挙動を詳しく見ていきます。まず、本検証の目標や前提条件などを説明します。

検証の前提条件

 今回の検証の前提条件は以下の通りです。

  1. BLADEが何らかの方法で初期ホスト(Initial Host192.168.203.186)に侵入している状態から検証をスタートする。
  2. BLADEはユーザー「vendor」で初期ホストに侵入しているが、当該ユーザーのパスワードは知らない。
  3. ユーザー「vendor」は一般権限である(管理者権限ではない)。
  4. 初期ホストは内部ネットワークで他ホスト(Another host192.168.203.82)と同一ネットワークに存在している。
  5. 初期ホスト内には他ホストにログインするためのクレデンシャル情報が置かれているが、BLADEはその場所を知らない。
  6. 初期ホストと他ホストのOSはともに「Ubuntu」である。

demo_environment.png検証環境のイメージ図

検証の目標

今回の検証で達成すべき目標は以下の通りです。

  1. 侵入している初期ホストでローカル権限昇格を行う。
  2. 他ホストへのラテラルムーブに必要なクレデンシャル情報を収集する。
  3. 収集したクレデンシャル情報を使用して他ホストへラテラルムーブする。

demo_goal.png

本検証においてBLADEに期待する動き

 なお、初期ホストにはあらかじめ以下のような設定不備が仕込まれています。

  • 初期ホストでは、コマンド「sudo」と「find」にSUIDビットが設定されている。
  • 他ホストにログインするためのパスフレーズなしのSSHキーが、(BLADEが使用しているユーザー「vendor」とは別の)ユーザー「zansin」のホームディレクトリ以下に置かれている。

 これらを踏まえ、以下の想定タスクを生成し、実行すれば目標を達成できます。

  1. 初期ホストの脆弱性や設定不備に関する情報を収集する。
  2. 収集した情報を分析し、ローカル権限昇格が可能か判断する。
  3. 権限昇格が可能であれば、管理者権限に昇格し、他ホストにラテラルムーブするためのクレデンシャル情報を収集する。
  4. 初期ホストと内部ネットワークで接続されている他ホストを探索する。
  5. 他ホストが見つかった場合、収集したクレデンシャル情報を使用してラテラルムーブを試みる。
  6. 一連のテスト結果をレポートにまとめる。

検証内容の解説

 以下のデモ動画は、BLADEを前述の環境で動作させた一連の動きを表しています。

検証のデモ動画

 動画だけでは詳細が伝わりにくいので、各AIエージェントのステップ毎に挙動を解説していきます。

LinPEASの実行

動画の時間:0:00:10

Pen-Tester-AgentLinPEAS Agentに対し、Linuxシステムのローカル権限昇格脆弱性を調査するツール「LinPEAS」を実行するよう指示を出します。

LinPEASの実行指示.png

Pen-Tester-AgentLinPEAS AgentLinPEASの実行を指示した様子

動画の時間:0:00:28

LinPEAS AgentLinPEASのリモートリポジトリから「linpeas.sh」をダウンロードします。

LinPEASのダウンロード.pngLinPEAS AgentLinPEASをダウンロードしている様子

動画の時間:0:00:32

初期ホスト上でダウンロードしたLinPEASを実行します。

demo_executed_linpeas.png

初期ホスト上でLinPEASが実行された様子

なお、「LinPEASをダウンロードして実行する」一連の処理は、筆者らが事前に作成したPython関数を使用して行われています。


# Assist LinPEAS in investigating the SUID commands.
def find_suid_commands():
    command = ["find", "/usr/bin/", "-perm", "-4000", "-type", "f", "-exec", "ls", "-l", "{}", ";"]
    return subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)


@penetration_tester.register_for_execution()
@assistant_linpeas.register_for_llm(description="Investigate the vulnerability of local privilege escalation using LinPEAS")
def launch_linpeas() -> str:
    load_dotenv()
    logfile_path = os.getenv("LINPEAS_LOG_PATH")
    linpeas_args = ["-o", os.getenv("LINPEAS_OPTION")]
    curl_command = ["curl", "-L", os.getenv("LINPEAS_URL")]

    try:
        # Execute LinPEAS.
        with open(logfile_path, "w") as logfile:
            print("Download & Run LinPEAS...")
            curl_proc = subprocess.Popen(curl_command, stdout=subprocess.PIPE)
            sh_proc = subprocess.Popen(["sh", "-s", "--"] + linpeas_args, stdin=curl_proc.stdout, stdout=logfile, stderr=logfile)
            curl_proc.stdout.close()
            sh_proc.communicate()

        # Output result of LinPEAS.
        result = ""
        with open(logfile_path, "r", encoding="ISO-8859-1") as logfile:
            for line in logfile:
                result += line.strip()

        # Find SUID commands.
        suid_result = find_suid_commands()
        with open(logfile_path, "a") as log_file:
            log_file.write("\n===== SUID Files =====\n")
            log_file.write(suid_result.stdout)
            log_file.write("\n=======================\n")
            result += "\n===== SUID Files =====\n"
            result += suid_result.stdout
            result += "\n=======================\n"
        return result
    except Exception as e:
        return f"Error LinPEAS: {e}"

筆者らが事前に用意したLinPEASを実行する関数

なお、LinPEASSUIDビットが設定されたコマンドを探索する場合、フルスキャンが必要ですが、フルスキャンの結果ログは膨大になり、LLMGPT-4o-mini)の最大トークン数の制約で入力できません。そのため、LinPEASのオプションを「system_information」「users_information」「network_information」に絞ることでこの問題を回避しています。そして、SUIDビットが設定されたコマンドの探索は、独自関数「find_suid_commands」を使用して実現しています。

このように、AIエージェントはタスク遂行時に人間が用意した外部ツールを使用することもできます。

動画の時間:0:00:53

次に、LinPEAS AgentLinPEASの実行結果を要約してPen-Tester-Agentに報告します。なお、LinPEASの実行結果は膨大な量であり、人間が内容を読み解くには一苦労です。しかし、LLMは非構造化データを解析する能力に長けており、ものの数秒で実行結果を要約することができます。

demo_linpeas_result.pngLinPEAS AgentLinPEASの実行結果を要約してPen-Tester-Agentに報告した様子

この結果から、コマンド「sudo」と「find」にSUIDビットが設定されていることが読み取れます。

ローカル権限昇格可否の判断

動画の時間:0:01:22

Judge PrivEsc AgentLinPEAS Agentが報告した結果を分析します。その結果、SUIDビットが設定された「find」コマンドを使用した権限昇格の手法を提案しています。

findコマンドによる権限昇格手法の提案.pngJudge PrivEsc Agentが提案したfindコマンドを使用した権限昇格手法

このコマンド案は事前に与えたものではなく、AIエージェントが自ら考え出したものです。

クレデンシャル情報の収集

動画の時間:0:01:29

Finding Creds AgentJudge PrivEsc Agentが提案した権限昇格手法を使用し、管理者権限でクレデンシャル情報を探すコマンドをPen-Tester-Agentに提案します。そして、Pen-Tester-AgentFinding Creds Agentの提案コマンドを実行し、SSHキーを探しています。

SSHキーの発見.pngPen-Tester-AgentFinding Creds Agentの提案コマンドでSSHキーを探している様子

この結果、他ユーザー「zansin」のホームディレクトリ配下にあるSSHキー「zansin.pem」を発見することができました。通常、他ユーザーのホームディレクトリへアクセスするには管理者権限が必要ですが、Judge PrivEsc Agentが提案した権限昇格手法を利用することで、これが可能となります。

他ホストの探索

動画の時間:0:01:51

N/W Scan Agentは初期ホストと内部ネットワークで接続された他ホストを探索するコマンドをPen-Tester-Agentに提案します。

ping_sweepの提案.pngN/W Scan Agentが他ホストの探索方法をPen-Tester-Agentに提案している様子

ここでは、「ip a」コマンドで内部ネットワークのネットワークレンジを調査し、その後「ping」コマンドを使用して内部ネットワークスキャン(Ping Sweep)を行う手法を提案しています。※このコマンド案もAIエージェントが自ら考え出したものです。

動画の時間:0:02:16

Pen-Tester-AgentN/W Scan Agentの提案コマンドを実行し、ネットワークレンジを考慮してPing Sweepを実行します。

ping_sweepの実行.pngPen-Tester-AgentPing Sweepを実行している様子

動画の時間:0:02:34

この結果、初期ホストと内部ネットワークで接続されたホスト「192.168.203.7」と「192.168.203.82」を発見しています。

他ホストの発見.png初期ホストと同一ネットワークにある他ホストが発見された様子

動画の時間:0:02:38

N/W Scan Agentは発見した他ホストにログインを試行する一般的なコマンド例(ssh)をPen-Tester-Agentに提案します。※このコマンド案もAIエージェントが自ら考え出したものです。

sshコマンドの提案.pngN/W Scan AgentPen-Tester-Agentに他ホストにログインするコマンド例を提案した様子

ラテラルムーブの試行

動画の時間:0:03:21

Lateral Move AgentFinding Creds AgentN/W Scan Agentの結果を基に他ホストにラテラルムーブするコマンドを考案し、Pen-Tester-Agentに提案します。

ラテラルムーブ手法の提案.png

Lateral Move Agentが他ホストへラテラルムーブする手法をPen-Tester-Agentに提案した様子

ここでは、SUIDビットが設定されたfindコマンドで管理者権限になり、他ユーザー「zansin」のホームディレクトリ配下にあるSSHキー「zansin.pem」を使用して、他ホスト「192.168.203.82」にSSHでログイン試行するコマンドを提案しています。※このコマンド案もAIエージェントが自ら考え出したものです。

Pen-Tester-AgentLateral Move Agentの提案コマンドを実行し、ラテラルムーブを実行します。

ラテラルムーブの実行成功.pngラテラルムーブに成功した様子

上図の通り、コマンドの実行結果が「exitcode: 0 (execution succeeded)」となっていることから、他ホスト「192.168.203.82」へのログイン試行(認証)に成功しています。

レポートの作成

動画の時間:0:03:53

最後に、Reporting Agentは一連のテスト結果を基にレポートを作成し、Pen-Tester-Agentに報告します。これでBLADEは終了します。

レポートの提示.png

Reporting Agentがテストレポートを作成した様子

 このように、各役割を持ったAIエージェントを繋げて協調させることで、複雑なペネトレーションテストのシナリオを自律的に実行できます。この一連のテストにかかった時間は約4分程度であり、人間と比較して高速に判断と行動をとれることが分かります。これこそが、AIエージェントを仮想労働力として活用する大きなメリットとなります。

今後の展望

現時点のBLADEは、限られたペネトレーションテストのシナリオを自動化できる可能性がありますが、まだ改善の余地が多い状態です。今後、以下の改善を行った上で、実践投入を目指していく予定です。

AIエージェントの性能限界評価

現時点におけるAIエージェントが得意とするタスクと苦手とするタスクを体系的に検証し、実践での適用範囲を明確化します。また、現状の技術では困難な領域に対しては、複数のAIエージェントによる協調やシステムプロンプトの改良、より高性能なLLMを使用することで限界を乗り越えることができるのか検証します。

テスト精度の向上とAIエージェントの追加

既存AIエージェントの性能を改善(システムプロンプトの最適化)し、攻撃成功率を向上させます。また、現在はサポートしていない異なるタスク(パスワードクラッキングやOSINTなど)に特化したAIエージェントを追加開発し、ペネトレーションテストの幅を広げます。

Windows OSのサポート

Linux専用になっているBLADEWindowsに対応させ、PowerShellWindows特有の攻撃手法をサポートします。クロスプラットフォーム対応により、ペネトレーションテスト対象を拡大します。

暴走抑制装置の実装

AIエージェントの暴走を防ぐため、クリティカルなタスクの実行を人間が確認・承認する安全機構を導入します(Human-in-the-Loopの導入)。これにより、誤操作や過剰攻撃のリスクを軽減します。

オンプレ環境のLLM

OpenAIAPIのような公開LLMサービスではなく、OSSLLMをオンプレミスで運用し、顧客システムの内部情報(≒機密情報)が外部に送信されない安全なテスト環境を構築します。

AIエージェント特有の攻撃への対処

AIエージェントを標的としたプロンプト・インジェクションや操作誘導攻撃に対し、入力の正規化や動的な検証機構を設け、攻撃耐性を向上させます。

Ethical Hackingの徹底

BLADEの利用において、倫理的ハッキングの枠組みを導入し、法的・倫理的ガイドラインに沿った使用を徹底する仕組みを構築します。

さいごに

本ブログでは、AIエージェントを活用したペネトレーションテスト手法と、その実装ツール「BLADE」を取り上げ、AIエージェントの有効性と性能上の課題について解説しました。AIエージェントをセキュリティ分野に応用する試みは、まだ始まったばかりの黎明期にあります。今後、筆者らはBLADEを基盤に、さまざまなセキュリティ領域でAIエージェントの活用可能性を探求し、その成果をブログやカンファレンスを通じて継続的に発信していきたいと考えています。これらの取り組みが、皆様のセキュリティ課題解決や業務効率化に少しでもお役に立てれば幸いです。

本ブログに関連するサービス紹介

MBSDのペネトレーションテスト

MBSDは、経験豊富なRed Teamによるペネトレーションテストを提供しています。

本サービスは、実際の攻撃シナリオを想定し、外部からの侵入や標的型攻撃のリスクを評価することで、セキュリティ対策の有効性や運用上の問題点を明らかにします。年間1,000以上のIPアドレスに対する豊富なテスト実績と、独自に収集・実証した攻撃コードを活用することで、高精度なテストを実現しています。また、弊社は未知の脆弱性(ゼロデイ)の発見にも多数の実績があり、信頼性の高いセキュリティ対策を提供します。弊社のペネトレーションテストは、組織のセキュリティ体制を強化し、潜在的なリスクを可視化するための最適なソリューションです。

■ペネトレーションテストの詳細はこちら

https://www.mbsd.jp/solutions/assessment/penetration/

MBSDAIセキュリティ・サービス

MBSDは、AIセキュリティに精通したプロフェッショナルによる、LLM含むAIを活用したシステムやAIそのもののセキュリティ品質を維持・向上するためのサービスを提供しています。

■AIセキュリティ・サービスの詳細はこちら

https://www.mbsd.jp/solutions/ai/

AIセキュリティ教育

AIシステム (主に画像分類AI) の企画から運用までをセキュアに行うための知識・技術をAIの基礎から一気通貫で学べる「eラーニング講座」および「ハンズオントレーニング」を提供しています。

ハンズオントレーニングはLLMにも対応しており、過去のブログで示した「プロンプト経由でRCEを実行する手法 (LLM4Shell)や「LLMから個人情報を窃取する手法」、「プロンプト経由でSQLインジェクションを行う手法 (P2SQL Injection)」などの原理と対策を学ぶことができます。

 ■AIセキュリティ教育はこちら

https://jpsec.ai/training

AIシステムに対するセキュリティ診断

AI自体の診断や、AIを組み込んだアプリケーションに対して、AI特有のセキュリティ・リスクを調査して報告します。画像分類AILLMアプリケーションに対応しており、既存のWebアプリケーション診断だけではカバーしきれない、AI特有のセキュリティ・リスクを調査・報告することが可能です。

AIセキュリティに関するアドバイザリ

AIセキュリティに関する調査・ガイドライン作成・アドバイザリを実施します。例えば、LLMを社内に導入したいが、セキュリティやプライバシーを考慮した利用ガイドラインをどのようにして策定して良いのか分からない、という方はお気軽にご相談ください。

参考文献

[1] Gartner, Gartner2025年の戦略的テクノロジのトップ・トレンドを発表,  https://www.gartner.co.jp/ja/newsroom/press-releases/pr-20241028-techtrends

[2] 日経新聞, AIエージェント」続々登場 仕事の進め方に変化迫る, https://www.nikkei.com/article/DGXZQOCD299PN0Z21C24A0000000/

[3] New autonomous agents scale your team like never before, https://blogs.microsoft.com/blog/2024/10/21/new-autonomous-agents-scale-your-team-like-never-before/

[4] Introducing computer use, a new Claude 3.5 Sonnet, and Claude 3.5 Haiku, https://www.anthropic.com/news/3-5-models-and-computer-use

[5] AIが人と協調して自律的に高度な業務を推進する「Fujitsu Kozuchi AI Agent」を提供開始, https://pr.fujitsu.com/jp/news/2024/10/23.html

[6] Microsoft, AutoGen, https://github.com/microsoft/autogen

最後までご覧いただき、誠にありがとうございました。

以上

テクニカルサービス事業本部 先端技術事業部 レッドチーム
一ノ瀬 太樹

プロダクト&ソリューション事業部  AI&高度先端技術開発
高江洲 勲

おすすめ記事