← 記事一覧へ

44のAIエージェントと国内の標的リスト:2026年、日本を狙うAI攻撃基盤の実態

TrendAIが日本を狙う攻撃者サーバー3件を分析。うち1件は44のエージェントを動かすCyberStrikeAI。MicrosoftはARTEXをStorm-0940に結び付けました。分かったこと、未証明のこと、検知の方法。

事案の発生時期: 攻撃活動は2026年1〜10月、国内12件の不正アクセスは8月10日〜10月13日出典確認日: 2026/10/28更新日: 2026/10/28

30秒でわかる要点

要点
TrendAI(10月27日)は日本を狙う攻撃者サーバー3件を報告。1件はCyberStrikeAIの44エージェントで国内16組織以上を検証し、2件は人が主導してAIが補助しました。MicrosoftはARTEXをStorm-0940に結び付け、ソウル警察庁はARTEXを使った一味を検挙。いずれも当記事が分析した国内12件の帰属を示すものではありません。
対応するチーム
SIEM、EDR、IT運用、委託先リスク、法務・プライバシー
最初のアクション
管理画面をインターネットから外し、初期パスワードや使い回しのパスワードを変え、機器やアプリの設定ファイルにある秘密情報を更新してください。Entra IDでは10月1日以降の外部アプリのサインインと認証情報の変更を確認します。
不確実性・注意点
TrendAIの報告書は当サイトから開けず、事例の詳細は独立した2件の要約に基づきます。標的リストの国内組織名はどの出典にもなく、12件と結び付いたツールもありません。使われたAIモデルも不明です。
表紙:日本を狙うAI攻撃基盤。TrendAIのCyberStrikeAI事例で44のAIエージェント、国内16組織以上を検証にかけた。Storm-0940がARTEXで2,250超のテナントを標的にした。エージェントの特徴に合うが、どのツールとも結び付いていない国内の漏えい12件。
実務への示唆

AIは国内組織への新しい入口を見つけたわけではありません。古い入口を、より速く、日本語で、疲れずに試しているのです。自社の管理画面、初期パスワード、設定ファイル、信頼している委託先アプリのうち、千回目の試行でも開いてしまうものはどれでしょうか。

TrendAIが分析し、10月27日に公表した3つの攻撃者サーバーは、日本を狙うAI攻撃を攻撃者の側から見せています。 1つのサーバーでは、オープンソースの基盤CyberStrikeAIが作業を44のエージェントに分担させ、国内の少なくとも16組織を、TrendAIのいう「検証」にかけていました。残る2つでは人が攻撃を指揮し、AIは計画やツールの作成に使われていました。同じ週に、MicrosoftはARTEXを、Microsoft 365の2,250を超えるテナントへのサインインを試みた中国寄りの攻撃者に結び付け、ソウル警察庁はARTEXで約90の組織を攻撃した一味を検挙しました。本記事は10月20日に「ARTEXだったのか?」という問いとして公開したもので、今回これらの情報をまとめ直しました。変わらない点が1つあります。当記事が特徴を照合した国内12件の漏えいと結び付いたツールは、どの出典にもありません。

10月24日以降に変わったこと

  • 攻撃者の側が見えた。 TrendAIの研究者Bakuei Matsukawa氏とJoseph C. Chen氏は、ツール、スクリプト、標的リスト、結果、ログ、コマンド履歴が残る公開状態の3つの環境を調べました。韓国と日本で既に報告されたARTEXの攻撃とは別のものだとしています。
  • ARTEXに国家寄りの利用者が判明。 Microsoftは、同社が中国国家寄りとするStorm-0940が遅くとも2026年9月からARTEXを使い、ConnectWise Cloud Backupのサプライチェーン侵害を行ったとしています。
  • ARTEXの犯罪利用者が検挙された。 ソウル警察庁は10月26日、約90の組織への侵入と820万件の個人情報窃取で7人を検挙したと発表しました。首謀者はARTEXを使っていました。
  • CyberStrikeAIはJPCERT/CCの一覧に既に載っていた。 10月23日の更新で、JPCERT/CCは国内の攻撃試行に悪用されたAIペネトレーションテスト基盤として、Cairn、CyberStrikeAI、ARTEXを挙げました。TrendAIの報告は、そのうちの1つが実際に使われた様子を描いています。

当サイトの評価。 AIは今や、攻撃コードの作成から攻撃全体の実行まで、日本への攻撃の実務に組み込まれています。それでも通る入口は、防御側が既に知っているものです。インターネットに出た管理画面、初期パスワード、設定ファイルに残った認証情報、サイト機能の不備、信頼しすぎた委託先アプリ。TrendAI自身のまとめは「AIは攻撃者の人手を増やしたが、仕事は依然として鍵のかかっていない扉を探すことだ」です。

日本を狙う3つの攻撃者サーバー

TrendAIは3つの事例を、AIが作業のどこまでを担ったかで分けています。TrendAIの報告書は当サイトの作業環境から開けませんでした。以下は報告書の独立した2つの要約、The Hacker News(英語)とDEV Communityの解説(英語)に基づき、片方にしかない記述はその旨を示します。

事例 AIの役割 時期 標的 侵入の方法 取られたもの・作られたもの
1. CyberStrikeAI 工程を回した。44のエージェントが偵察からC2、永続化、窃取、報告まで担当 2026年10月の短期間 特定できる組織が少なくとも19、うち少なくとも16が国内。台湾と香港も標的 公開された弱点の検証。日本語のフォームと偽のログイン画面 組織ごとに同じ形式の報告書と証拠一覧
2. 人が主導、AIが補助 言語モデルが計画とツール開発を速めた 2026年8〜9月の24日間 安い推論能力を狙ったAIワークフロー基盤と推論サービス。GISサーバー GISサーバーが既定の認証情報のまま公開されていた GISへの侵入で、地籍情報と商業記録、Windowsの認証情報、メールのデータ
3. 人が主導、AIがツールを作成 AIは攻撃者のツールとスクリプトを書いただけ 2026年1〜10月に少なくとも6回 Cisco、Citrix、F5、ヤマハのエッジ機器、公開されたVPN機器とWebLogicサーバー。WebLogicのリストには英国、フランス、イタリア、カタール、コロンビアの組織も 公開済みの脆弱性、管理機能、設定ファイル内の認証情報 要約には記載なし
  • 「検証」は「侵害」ではありません。 事例1の基盤は、弱点が本物かを確かめて証拠を記録していました。DEVの解説によれば、試行の大半は失敗し、基盤は標的ごとに通信量を絞っていました。最も深い侵入は、ログイン不要の古い公開Webシステムの管理画面から始まりました。TrendAIは、AI自身の記録が実行前の作業を完了と書くなど過信していたとも指摘しています。この3点はDEVの解説にのみあります。
  • 攻撃者が同じだという証拠はない。 TrendAIは3事例の攻撃者が共通である証拠を見つけておらず、どのAIモデルが使われたかも特定できていません。
  • ヤマハの件。 ある要約によれば、ヤマハ機器への侵入は製品の脆弱性を使わず、攻撃者が既に持っていた設定ファイルの認証情報だけで行われました。ヤマハのRTXルーターは国内の小規模事業所で広く使われており、事例3の攻撃者にとって使いやすい入口でした。
  • TrendAIのそれまでの見解。 TrendAIは10月12日、国内の最近の事案と攻撃者によるAI利用との関連は確認していない(英語)と書いていました。今回の報告は日本を狙うAI主導の標的化を示しますが、被害組織名や公表済みの漏えいとの対応は示していません。

CyberStrikeAI:公開コードから分かること

当サイトは10月28日に公開リポジトリを取得して読みました。コードは一切実行していません。CyberStrikeAIはGo言語で書かれたApache-2.0のプロジェクトです。最初のコミットは2025年11月8日でEd1s0nZの名義、現在のコードはAIPentestという組織を本拠としています。10月28日時点の版は1.7.24です。

  • 何をするための作りか。 単独、計画と実行、統括の各モードによるマルチエージェントの制御、nmap、nuclei、sqlmapなどのスキャナーを包む90のツール定義、ナレッジベース、WebShellの管理、リスナー、暗号化ビーコン、タスクキューを持つC2を内蔵しています。Telegram、WeChat、Slackなどのチャットアプリから操作できます。READMEは、許可されたシステムにだけ使うよう求めています。
  • スキルは攻撃者のチェックリストのよう。 同梱のinitial-access-phishingスキルは、パスワードスプレー、多要素認証を破る中間者型フィッシング、デバイスコードフィッシング、Microsoft 365へのOAuth同意フィッシングを並べています。unlimited-attack-scopeスキルは中国語で「遮られたら道を変え、達するまで止まらない」とエージェントに指示しています。
  • 44エージェントは既定ではない。 リポジトリは9月中旬の1.7.18から1.7.24まで、どの版でも16のエージェント定義を同梱しています。TrendAIが数えた44は、攻撃者が独自に拡張した構成か、数え方の違いを示します。要約はどちらかを明らかにしていません。
  • 安全ルールは日本を対象にしていない。 9月8日以降、既定のルールが政府ドメインに向けたツール実行を止めます。当サイトはソースから写したこのルールのパターンを、見本のホスト名で試しました。.gov、gov.cn、gov.uk、gov.krは止めますが、日本のgo.jp(中央省庁)、lg.jp(自治体)、ac.jpとed.jp(教育機関)は止めません。しかも攻撃者はこのルールを自由に無効にできます。DEVの要約によれば事例1の標的は主に中小企業と地方の公的機関で、既定のルールでは国内の役場で基盤が止まることはありません。
  • 以前にも使われていた。 Amazonは2月、ロシア語話者で金銭目的の攻撃者が商用AIサービスを使い、2026年1月11日から2月18日に55か国以上で600台超のFortiGateに侵入したと報告しました。FortiGateの脆弱性ではなく、公開された管理ポートと弱いパスワードによるものです。Team Cymru(英語)は、Amazonが公表したサーバーの1台でCyberStrikeAIが動いていたことを確認し、1月20日から2月26日にCyberStrikeAIを動かすアドレスを21件数えました。多くは中国、シンガポール、香港にありました。Team Cymruは開発者が中国政府と一定のつながりを持つと評価していますが、これは同社の評価であり確定した事実ではありません。Amazonの報告(英語)

ARTEX:国家寄りの利用者と犯罪グループ

ARTEXは、GitHubのアカウントAutumn-27が公開したオープンソースのマルチエージェント型ペネトレーションテストシステムです。最初の公開は2026年7月26日で、10月8日に開発者は更新を止めて非公開化すると表明しました。piyolog CrowdStrikeは10月7日、中国語話者とみられる正体不明の攻撃者が、言語モデルとともにARTEXを使って韓国の金融機関を攻撃したと報告しました。CrowdStrike(英語) 新たな2つの報告で、利用者がさらに2つ加わりました。

Storm-0940(Microsoft、10月21日)。 Microsoftの報告は当サイトが直接読みました。Microsoft(英語)

  • Microsoftによれば、Storm-0940は「遅くとも2026年9月から」ARTEXを使い、防衛や半導体からシンクタンクまでの数百の組織を攻撃しました。一部では、最初に狙ってから3時間以内にクラウドの特権を得ています。
  • 10月10日から14日、144.172.64[.]99という1つのアドレスが、8組織の327アカウントにパスワードスプレーを行いました。失敗したサインインは15万1,000件を超え、10月11日には毎分2,900件に達し、応答のほぼ98%がロックアウトでした。成功はありませんでした。
  • 攻撃者のエージェントは、ConnectWiseの複数のクラウドアプリのIDを掌握した後、アプリが既に持つ信頼を使って、利用者のサインインなしに顧客のテナントへサインインし、2,250を超えるテナントで試みました。一部ではディレクトリを読み、アプリに認証情報を追加し、ロールを変更し(あるアプリは自らをグローバル管理者にしました)、Azure Key Vaultの秘密情報を大量に読み出しました。Microsoftの結論は「標的化の大半は成功しなかったが、Storm-0940は短期間に多くの組織でクラウドの特権的な永続性を得た」です。
  • MicrosoftはARTEXの画面を日本語に切り替えられること、ARTEXを使う攻撃者を「複数の地域で」確認していることを記しています。日本の被害組織名は挙げていません。
  • Microsoftが挙げたUser-Agentのうちpython-requests/2.34.2とcurl/7.88.1は、JPCERT/CCがケースBに挙げた文字列と同じです。どちらも一般的なクライアントであり、一致は確認する理由にはなっても、キャンペーン同士のつながりではありません。

ソウルの一味(警察発表、10月26日)。 韓国の報道によれば、ソウル警察庁は、大企業の系列会社、病院、大学などの約90の組織から約820万件の個人情報を盗み、うち38の組織に計3億6,000万ウォンの暗号資産を要求した7人を検挙しました。32歳の首謀者はIT専攻ではなく、セキュリティ企業で点検業務に就きながら独学で手口を身に付けました。警察は首謀者がARTEXを使ったとし、警察自身も攻撃の時間帯、手口、アドレスの分析にAIを使いました。捜査は6月の被害企業の申し立てから始まりました。韓国日報(韓国語) · SBS(韓国語) · News1(韓国語)

  • 一味の活動はARTEXより古い。 報道によれば活動の始まりは2025年9月で、ARTEXの最初の公開より10か月早いものです。ARTEXで説明できるのは後半の活動だけです。日本でも同じ注意が必要です。ツールが存在する前に始まった波を、そのツールだけのせいにはできません。
  • CrowdStrikeの攻撃者とは別。 CrowdStrikeが報告した攻撃者は韓国の銀行を狙い、ソウルの一味は別のグループです。無関係な少なくとも3つの攻撃者がARTEXを使っており、ツールが分かっても攻撃者は特定できません。

AIはどこまでの作業をしたのか

報告によって、自動化の度合いは大きく異なります。2026年の6事例を、各出典自身によるAIの役割の説明に基づいて、1つの尺度に並べました。

左から右へ、AIの関与が少ないものから多いものへ並べた3列。AIはツールを書く:TrendAIの事例3。Cisco、Citrix、F5、ヤマハのエッジ機器、VPN、WebLogic。2026年1〜10月に少なくとも6回。日本と、リストにある他の5か国。AIが人を補助する:TrendAIの事例2。既定の認証情報のままのGISサーバーと、安い推論能力を狙ったAI基盤。8〜9月の24日間、日本。FortiGateへの攻撃。1月11日〜2月18日に55か国以上で600台超、サーバーの1台でCyberStrikeAIを確認。AIが工程を回す:TrendAIの事例1。44のエージェントを持つCyberStrikeAI、日本語のフォームと偽ログイン画面、19組織以上のうち16以上が国内。ARTEXを使うStorm-0940、2,250超のテナントへのサインイン試行。ARTEXを使うソウルの一味、約90の組織と820万件。

図1:2026年の6事例を、AIが担った作業の割合で並べた。各カードに記した出典に基づくオリジナル図版。

日本と韓国の外でも、同じ形が繰り返されています。下の表は、この2か月に報告されたエージェント主導のその他の攻撃と、証拠の確かさです。

報告 報告者 AIがしたこと 規模 証拠
10月19日 NorForge(Dark Reading経由、英語) 中国語話者の攻撃者が、JPCERT/CCが挙げる3基盤の1つであるCairnを動かした 1,200超のサイトを試行し、100超の企業に関係。ロイターはDeere、SharkNinja、Cumminsを挙げた 攻撃者の管理画面。持ち出されたデータ量は不明
10月21日 Straiker(Runtime Wire経由、英語) オープンソースのPentAGIを基にしたCARLIY0Sが、Claude、Grok、Kimiのモデルに別々の役割を与えた 中南米の金融機関400超が標的 攻撃者のファイル。標的数であり侵害の確認ではない。Anthropicがアカウントを停止
10月21日 Symantec(Infosecurity Magazine経由、英語) 「Skynet mode」のエージェントが公開されたモデルのエンドポイントを乗っ取り、約74のツールで最大10万ステップを実行し、Moneroを採掘する ハニーポットで捕捉 侵害の確認なし
9〜10月 GreyNoise(英語)、Hunt.io CodexのハーネスとDeepSeekのモデルで作ったエージェントがPaperCut NG/MFを悪用し、被害者ごとに情報をまとめた 48か国395組織の440台 ベンダーの観測と、公開状態の攻撃者ディレクトリ
9月 Unit 42(英語) 人が指揮するエージェントがネットワークを把握し、コードリポジトリを漁り、root権限を奪った 1社。50超のATT&CK技術を使い、10時間未満で侵害 インシデント対応
2026年 Unit 42(英語) DeepSeekのモデルがHermes Agentを通じて攻撃者として振る舞った 約460の標的。CVE-2026-3055によるCitrix NetScalerの侵害3件を確認 インシデント対応
  • 報じられているが、当サイトは確認していないもの。 これらの報告の要約には、インドの大学を攻撃したBUGSTERという攻撃者、Zerofotという認証情報収集の仕組み、RAGEというフレームワーク、ランサムウェア攻撃者によるClaude Codeの利用、APEX AI、MessiahGPT、DarkGPTとして売られる地下ツールも登場します。Zerofot、RAGE、これらのツール名は元の公表を見つけられず、残りは報道ごとに件数が異なるため、表には入れていません。
  • 共通するのは速さ。 Help Net Security(英語)によれば、Microsoftの2026年版デジタル防衛レポートは、脆弱性の発見から武器化までの期間の中央値を24時間を大きく下回るとしています。当サイトはレポート本体を開けず、表現を確認できていません。

国内の対応機関が語っていること

  • JPCERT/CC、10月8日公開、10月23日更新。 注意喚起JPCERT-AT-2026-0030は、標的ごとにさまざまな既知の脆弱性を探るケースA、公開スマートフォンアプリを解析してAPIとキーを見つけ、画面が呼ばない内部APIを、ヘッダーの付け外し、不正な形式のトークン、ブラインドNoSQLインジェクションで攻撃するケースB、そして10月23日からは、Cairn、CyberStrikeAI、ARTEXなどのAIペネトレーションテスト基盤を悪用し、Webアプリ、設定・バックアップファイル、インターネットに公開されたWSUSサーバーを狙うケースEを挙げています。ケースBには、Tor出口ノードやレジデンシャルプロキシ経由のアクセスと、正規アプリと同じUser-Agentも加わりました。JPCERT/CC
  • マクニカ、10月7日。 2026年に国内で公表されたWebシステムからの漏えいを10月6日までに119件数え、うち81件が7月以降でした。サイト全体を調べ、機能やアクセス権の不備を試行錯誤で探る攻撃者の姿を描き、標的は図書館の蔵書検索にまで及びます。AIの利用を証明するログはないものの、この規模のサイトごとの探索は人間だけでは難しいと指摘しています。マクニカ
  • NICT、10月13日。 「A2B」攻撃の注意喚起は、AIがアプリを解析してサーバーに到達する作業を速め得ると警告しています。NICTは、特定の企業の被害をこの手口によるものとはしていません。NICT

公表一覧をつなぐアドレスが1つある。 JPCERT/CCのケースEには38.244.50[.]120があり、CrowdStrikeは韓国の事案でこれをARTEXのインスタンスと公開ディレクトリのホストとして報告していました。報告上、同じアドレスが登場するということです。各時点で誰が管理していたかは示しておらず、JPCERT/CCはこのアドレスの観測期間も記載していません。JPCERT/CCはJA3 93c7d42c0df602fb91589311534831f5 とJA4 t13d181100_85036bcba153_d41ae481755e も公表し、JA4は一般的なPythonのHTTPクライアントと共通するとしています。どちらも照合の手がかりであり、エージェントの証明ではありません。

10月23日にケースB・Eへ追加された10件のIP情報をダウンロード。注意喚起の文脈と期間を転記したもので、帰属判断や検証済みの検知ルールではありません。掲載アドレスへの接続は行っていません。

国内の漏えい12件:まだ仮説のまま

初版では、当サイトの漏えいトラッカーにある直接攻撃のすべてを、ARTEXのようなエージェントが各社の公表に残すはずの痕跡と照らし合わせました。基準と12件の結果は維持し、新しい報告で変わった行はありません。

基準 各社の公表で確認すること
1. 公開後 不正アクセスの開始が2026年7月26日(ARTEX v0.1.0)以降
2. アプリ・API・サイトの不備 サイトの機能、API、仕様の悪用(当サイトの分類で「app-api」)、またはその会社のWebアプリケーションの不備(「web-flaw」)
3. その会社自身のシステム 委託先の基盤、盗まれた認証情報、ランサムウェアではなく、その会社自身のインターネット向けサービス
4. 機械的な痕跡 アクセス量、繰り返し、遮断後の再侵入、機械的なアクセスへの言及

当サイトのトラッカーにある87件のうち、直接攻撃28件に基準を当てはめました。トラッカーは2026年10月9日以降の公表を網羅し、それ以前は選んだ事案のみを収めています。

確認されたものではありません。以下の組織が公表した漏えいは、3つの基準をすべて満たします。これはAIペネトレーションテストエージェントと矛盾しないということです。ARTEX、CyberStrikeAI、その他のAIが使われた証拠ではなく、いずれの組織もそう述べていません。

組織 不正アクセス(公表による) 公表された経路 機械的な痕跡 規模
IDARE(Fivot) 8月10日〜9月27日 カスタマーサポート用の外部ソフトウェアの脆弱性。データベースが複数回読み出された 7週間にわたる繰り返しの読み出し 129,659人
ローソンID 9月12〜17日 アプリの仕組みを迂回してアカウント情報に到達 記載なし 2,155,345アカウント
777CON-PASS(サミーネットワークス) 9月25日から、9月30日に攻撃元を遮断 ユーザー情報とホール情報を返すリクエスト。情報を返さない仕様に変更して対処 アクセス量の異常な増加から発覚 調査中
Studio 9月30日〜10月1日 サイト制作サービスの一部機能の脆弱性。流出の可能性がある情報に復号鍵を含む 記載なし 登録する全顧客に流出の可能性
skyticket 経路1(アドベンチャー) 10月2〜4日 管理機能を悪用し、他のサーバーやクラウドのデータに到達 別のページが2か月間プログラムで閲覧された(経路3) 約1,464万件
infoQ(GMOリサーチ&AI) 10月2日から、10月3日に判明 会員サイトの脆弱性 記載なし 会員情報948,498件
ファンケル・アテニア 10月3〜10日 ECサイトの機能。原因の機能は停止済み 記載なし 785,496人
コミューン 10月5〜7日 招待リンクを取得できる不備。その後コミュニティ管理者になりすまし メンテナンス中に残っていた経路から再侵入 約30.7万人
リゾートトラスト 10月5日20時30分〜23時30分 予約サイトの異常な作動。脆弱性を改修 3時間の集中したアクセス 約6.2万件
バイトル(ディップ) 10月6日 サイトの一部機能の仕様の不備。アクセス元は海外 記載なし 最大3,885,771件のメールアドレス
ココナラ 10月8日 スキルマーケットの脆弱性 2時05分に遮断、13時ごろ再侵入、15時ごろ持ち出し 2,294件のファイル
ソースネクスト 10月9〜13日 会員情報APIの悪用 記載なし 最大22,519,960件

注意事項。 この表が示すのは可能性にすぎません。掲載は、その会社自身の公表が今回の基準に合致することを意味するだけで、ARTEX、CyberStrikeAI、他のAIツール、または同じ攻撃者の被害を受けたことを意味するものではありません。ここに挙げたいずれの会社も、規制当局、CERT、警察のいずれも、AIツールが使われたとは述べていません。各行は2026年10月19日時点の各社の公表に基づきます。掲載された組織の方で、この評価を変える情報をお持ちの場合はお問い合わせください。該当する行を訂正し、下記の更新履歴に記載します。

2026年7月20日から10月31日までのタイムライン。黄色の横棒は各社の公表による国内12件の不正アクセス期間で、8月10日に始まるIDAREから10月13日に終わるソースネクストまで。縦線は日付の分かる出来事:7月26日のARTEX v0.1.0、9月18日のARTEX v0.3.13による官公庁・教育機関の既定除外、9月27日からの韓国の銀行への攻撃、10月8日のARTEXの非公開化表明、10月10〜14日のStorm-0940のパスワードスプレー、10月21日のMicrosoftによるStorm-0940の報告、10月23日のJPCERT/CCによるARTEX・CyberStrikeAI・Cairnの明記、10月26日のソウル警察庁による7人の検挙、10月27日のTrendAIの報告。時期の重なりは、ツールが使われた証拠ではありません。

図2:12件の不正アクセス期間と、AI攻撃ツールに関する日付の分かる出来事。オリジナル図版。

12件に共通すること。 広く知られた脆弱性を必要とした事案はほとんどありません。公表が描いているのは、作られたとおりに動いた機能が、本来許されない相手に応えたことです。他人のデータを返すAPI、リクエストを通してしまう仕様、非公開のはずの招待リンク、外部から届く管理機能。かつては各サイトを人手で調べる必要があり、まれだったサイトごとの不備であり、記録用プロキシを持つエージェントが根気よくこなすよう作られている作業です。

一部だけ合致するもの、合致しないもの。

  • 経路は合致するが開始日が分からない:セイコーマートアプリ、ニッポンレンタカーアプリ、ミスターマックス、アエナ。アエナの公表は原因を機械的かつ継続的なアクセスとしており、当サイトが持つ公表の中で最も自動化を示す痕跡です。
  • **経路が公表されていない:**バーガーキング・ジャパン、焼肉きんぐ、ブックオフ、ビューティガレージ、大起水産、コミックシーモア、エムスリー、メドレー、アルカディアのSpeeCAN RAIDEN。
  • **合致しない:**日経の開発用クラウド(盗まれた認証情報)、IDCフロンティアのクラウド(ランサムウェア)、ACCESSの台湾子会社(BIツール経由で、既知のMetabaseの脆弱性を突くスクリプトによる侵入。JPCERT/CCのケースCに合致)。
  • 委託先経由の被害(コミューン、IDCフロンティア、Studio、アルカディアの顧客による公表59件)は、委託先で1件として数えています。

12件の帰属判断に至らない理由

  1. TrendAIは被害組織を挙げていない。 事例1は10月、12件の多くと同じ月に、国内の少なくとも16組織を検証にかけました。検証は侵害ではなく、どちらの要約も標的と公表済みの事案を結び付けていません。
  2. ツールは共有されている。 ARTEXの利用者は無関係な少なくとも3者に増え、CyberStrikeAIは公開され1月から使われています。仮に公表がツール名を挙げても、攻撃者は特定できません。
  3. 公表アドレスは被害企業とのつながりではない。 38.244.50[.]120 はJPCERT/CCとCrowdStrikeの両方の一覧にありますが、期間も12件との関係も示されていません。
  4. 増加はARTEXより前に始まっている。 マクニカの集計は7月に急増し、ARTEXの最初の公開は7月26日、ソウルの一味は2025年9月から活動していました。
  5. 一般的な道具。 curl と python-requests は、JPCERT/CCのケースBにも、MicrosoftのStorm-0940の指標にも、ありふれたスクリプトにも現れます。
  6. 同じ作業は人にもできる。 今回の基準が描くのは攻撃者の類型であって、1つの製品ではありません。

攻撃者の視点

これらの報告にある基盤が国内の組織に対してどう動くかを、MITRE ATT&CKに対応させました。公開情報から組み立てたモデルであり、特定の事例の再現ではありません。

段階 具体的な動き ATT&CK
準備 借りたサーバーにエージェント基盤を立て、言語モデルをつなぐ。数十のエージェントを持つCyberStrikeAIやARTEX T1583.003 Virtual Private Server; T1588.007 Artificial Intelligence
入口探し 管理画面、エッジ機器のログイン、WebLogicの管理コンソール、GISサーバー、AIのエンドポイント、放置された設定・バックアップファイルを洗い出す T1595.002 Vulnerability Scanning; T1594 Search Victim-Owned Websites
侵入 GISサーバーの初期パスワード、ヤマハやVPNの設定から取った認証情報、公開済みのエッジ機器の脆弱性 T1078.001 Default Accounts; T1552.001 Credentials In Files; T1133 External Remote Services; T1190 Exploit Public-Facing Application
信頼の借用 委託先アプリが持つ同意を使い、利用者なしで顧客のテナントにサインインする。Storm-0940の手口 T1199 Trusted Relationship; T1195 Supply Chain Compromise; T1078.004 Cloud Accounts
スプレー 1つのアドレスから毎分数千回、多数のテナントにパスワードを試す T1110.003 Password Spraying
日本語でのフィッシング 日本語のフォームや偽ログイン画面、OAuth同意やデバイスコードの誘導を作る T1566.002 Spearphishing Link; T1056.003 Web Portal Capture
居座り アプリに認証情報を足す、ロールを付ける、Webシェルを置く、C2ビーコンを動かす T1098.001 Additional Cloud Credentials; T1098.003 Additional Cloud Roles; T1505.003 Web Shell; T1071.001 Web Protocols
持ち出し Key Vaultの秘密情報、メール、ファイルを読み、C2の通信路で送る T1555.006 Cloud Secrets Management Stores; T1530 Data from Cloud Storage; T1041 Exfiltration Over C2 Channel
計算資源の窃取 他人のAIエンドポイントやクラウドのモデル用アカウントで推論を動かす T1496.004 Cloud Service Hijacking
目立たない工夫 標的ごとに通信量を絞り、VPNや住宅用のアドレスを回し、正規アプリのUser-Agentをまねる T1090.002 External Proxy; T1090.003 Multi-hop Proxy

基盤は自らの安全策をどう回避するか。 ARTEXの官公庁・教育ドメインの既定除外も、CyberStrikeAIの.gov型ドメインの除外も、攻撃者が管理するソフトウェアの設定にすぎません。CyberStrikeAIの既定は日本の政府ドメインをそもそも認識しません。攻撃者の手元のツールにある安全策は、防御側が頼れる対策ではありません。

通信量を絞ることの意味。 数十の組織を同時に相手にする基盤は、1組織ずつにはゆっくり臨めます。標的ごとのレート制限や組織ごとの警報のしきい値には異常が出ません。目立つのは広がりです。1つの送信元が長時間にわたり、多くの種類の入口を試します。下のクエリはそれを探します。

防御側の視点

1. 報告にある入口を閉じる

  • 管理画面。 エッジ機器、ルーター、WebLogic、GISの管理画面をインターネットから外すか、多要素認証付きのVPNの内側に置いてください。事例3はこれらを足場にしていました。
  • 初期パスワードと使い回し。 すべての機器とサーバーの初期設定を変えてください。GISサーバーと、委託業者が設置したものから始めます。
  • 設定ファイルは鍵を持っている。 機器から持ち出された設定ファイルには有効な認証情報があると考えてください。エッジ機器やルーターが侵害されたら、管理者パスワードだけでなく、設定にあるすべてのパスワード、事前共有鍵、APIキーを更新します。
  • AIのエンドポイントも標的。 モデルサーバー、AIワークフローツール、LLMゲートウェイに認証を必須にし、利用額に上限を設け、クラウドのモデル用キーをコードに置かないでください。事例2もSymantecのエージェントも、無料の推論能力を狙っていました。
  • テナント全体の権限を持つ委託先アプリ。 Entra IDでアプリケーション権限を持つ外部アプリを洗い出し、使っていないものを外し、各社にアプリの背後の認証情報をどう守っているかを確認してください。

2. パターンを探す

各クエリは全文とダウンロードで公開しています。KQLはMicrosoft Learnのテーブル定義に照らして構文と意味を解析しましたが、実環境のワークスペースでは実行していません。結果は手がかりとして扱ってください。

委託先アプリが新しいネットワークからサインインし、ディレクトリを変更する(Microsoft Sentinel、Storm-0940の手口)。ダウンロード

// Illustrative; not executed against a live workspace. Microsoft Sentinel / Log Analytics:
// AADServicePrincipalSignInLogs and AuditLogs. The Storm-0940 pattern Microsoft described on 21 October 2026:
// a third-party app signs in from a network it has not used in the previous 30 days, then the same service
// principal adds credentials, assigns roles or grants consent. Review candidates, not verdicts: vendors move
// hosting, so confirm with the vendor before you revoke anything, and preserve the logs first.
let Window = 7d;
let Baseline = 30d;
let PublishedAppIds = dynamic(["506e08f9-6e9a-4da4-942b-a099a03644ae", "24205314-2b89-4e07-a2a4-579e898a5640",
    "0de14c77-b9b0-4137-9360-34878a929827"]);  // ConnectWise app IDs in Microsoft's 21 October 2026 post
let MicrosoftOwnerTenants = dynamic(["f8cdef31-a31e-4b4a-93e4-5f571e91255a", "72f988bf-86f1-41af-91ab-2d7cd011db47"]);
let ChangeOperations = dynamic(["Add service principal credentials", "Add member to role", "Add eligible member to role",
    "Add scoped member to role", "Add app role assignment to service principal", "Add delegated permission grant",
    "Consent to application", "Add owner to application", "Add owner to service principal"]);
let VendorSignIns = AADServicePrincipalSignInLogs
    | where TimeGenerated > ago(Window + Baseline)
    | where ResultType == "0"
    | where (AppOwnerTenantId != AADTenantId and not(AppOwnerTenantId in (MicrosoftOwnerTenants)))
        or AppId in (PublishedAppIds)
    | extend Network = iff(isempty(AutonomousSystemNumber), IPAddress, strcat("AS", AutonomousSystemNumber));
let Known = VendorSignIns
    | where TimeGenerated <= ago(Window)
    | summarize KnownNetworks = make_set(Network, 500) by AppId;
let NewNetworkSignIns = VendorSignIns
    | where TimeGenerated > ago(Window)
    | join kind=leftouter Known on AppId
    | where isnull(KnownNetworks) or not(set_has_element(KnownNetworks, Network)) or AppId in (PublishedAppIds)
    | summarize FirstNewSignIn = min(TimeGenerated), LastNewSignIn = max(TimeGenerated), SignIns = count(),
        Networks = make_set(Network, 10), IPs = make_set(IPAddress, 20), UserAgents = make_set(UserAgent, 10),
        CredentialTypes = make_set(ClientCredentialType, 5), Resources = make_set(ResourceDisplayName, 10)
        by AppId, ServicePrincipalId, ServicePrincipalName;
let ChangesByApps = AuditLogs
    | where TimeGenerated > ago(Window)
    | where OperationName in~ (ChangeOperations) or OperationName contains "Certificates and secrets management"
    | extend ActorServicePrincipalId = tostring(InitiatedBy.app.servicePrincipalId)
    | where isnotempty(ActorServicePrincipalId)
    | summarize FirstChange = min(TimeGenerated), Changes = make_set(OperationName, 20),
        ChangedTargets = make_set(tostring(TargetResources[0].displayName), 20) by ActorServicePrincipalId;
NewNetworkSignIns
| join kind=leftouter ChangesByApps on $left.ServicePrincipalId == $right.ActorServicePrincipalId
| extend ChangedDirectoryAfterNewSignIn = isnotnull(FirstChange) and FirstChange >= FirstNewSignIn
| project-away ActorServicePrincipalId
| order by ChangedDirectoryAfterNewSignIn desc, FirstNewSignIn asc

機械の速さのパスワードスプレー(Microsoft Sentinel)。ダウンロード

// Illustrative; not executed against a live workspace. Microsoft Sentinel / Log Analytics: SigninLogs and
// AADNonInteractiveUserSignInLogs. Password spraying at machine pace: one source failing against many accounts
// within a minute. Storm-0940's 10-14 October 2026 campaign peaked at 2,900 failures a minute, and nearly 98% of
// its responses were lockouts. Thresholds are starting points; tune them to your tenant before alerting.
let Window = 14d;
let FailuresPerMinute = 60;
let AccountsPerMinute = 10;
let FailureCodes = dynamic(["50126", "50053"]);  // invalid username or password; account locked or source blocked
let SignIns = union isfuzzy=true SigninLogs, AADNonInteractiveUserSignInLogs
    | where TimeGenerated > ago(Window);
let Bursts = SignIns
    | where ResultType in (FailureCodes)
    | summarize Failures = count(), Accounts = dcount(UserPrincipalName), Lockouts = countif(ResultType == "50053"),
        UserAgents = make_set(UserAgent, 5), Apps = make_set(AppDisplayName, 5)
        by IPAddress, AutonomousSystemNumber, Minute = bin(TimeGenerated, 1m)
    | where Failures >= FailuresPerMinute or Accounts >= AccountsPerMinute;
let Sources = Bursts
    | summarize BurstMinutes = count(), PeakFailuresPerMinute = max(Failures), PeakAccountsPerMinute = max(Accounts),
        TotalFailures = sum(Failures), TotalLockouts = sum(Lockouts), FirstBurst = min(Minute), LastBurst = max(Minute),
        SampleUserAgents = take_any(UserAgents), SampleApps = take_any(Apps)
        by IPAddress, AutonomousSystemNumber
    | extend LockoutPercent = round(100.0 * TotalLockouts / TotalFailures, 1);
let Successes = SignIns
    | where ResultType == "0"
    | summarize FirstSuccess = min(TimeGenerated), SuccessfulAccounts = make_set(UserPrincipalName, 20) by IPAddress;
Sources
| join kind=leftouter Successes on IPAddress
| extend SucceededFromSameSource = isnotnull(FirstSuccess)
| project-away IPAddress1
| order by SucceededFromSameSource desc, PeakFailuresPerMinute desc

AWS上の推論能力の窃取(AWSコネクタを使うMicrosoft Sentinel。TrendAIの事例2やSymantecのエージェントのようなケース)。ダウンロード

// Illustrative; not executed against a live workspace. Microsoft Sentinel: AWSCloudTrail (Amazon Web Services
// connector). Inference theft: a key or role that lists or unlocks models, or deletes invocation logging, and
// invokes models from an address it has not used in the previous 30 days. TrendAI's second Japan case and
// Symantec's "Skynet mode" agent both went after cheap inference. Whether model invocations reach CloudTrail
// depends on how your trail is configured; check that before you read an empty result as a clean one.
let Window = 7d;
let Baseline = 30d;
let Recon = dynamic(["ListFoundationModels", "GetModelInvocationLoggingConfiguration"]);
let Unlock = dynamic(["PutUseCaseForModelAccess", "CreateFoundationModelAgreement", "PutFoundationModelEntitlement"]);
let Blind = dynamic(["DeleteModelInvocationLoggingConfiguration"]);
let Invoke = dynamic(["InvokeModel", "InvokeModelWithResponseStream", "Converse", "ConverseStream"]);
let Bedrock = AWSCloudTrail
    | where TimeGenerated > ago(Window + Baseline)
    | where EventSource == "bedrock.amazonaws.com"
    | extend Caller = coalesce(UserIdentityAccessKeyId, UserIdentityArn);
let Known = Bedrock
    | where TimeGenerated <= ago(Window)
    | where EventName in (Invoke)
    | summarize KnownIPs = make_set(SourceIpAddress, 500) by Caller;
Bedrock
| where TimeGenerated > ago(Window)
| summarize Invocations = countif(EventName in (Invoke)),
    InvocationIPs = make_set_if(SourceIpAddress, EventName in (Invoke), 50),
    ReconCalls = countif(EventName in (Recon)), UnlockCalls = countif(EventName in (Unlock)),
    LoggingDeletes = countif(EventName in (Blind)),
    BearerTokenCalls = countif(tostring(parse_json(AdditionalEventData).callWithBearerToken) =~ "true"),
    DeniedCalls = countif(isnotempty(ErrorCode)), Regions = make_set(AWSRegion, 10), UserAgents = make_set(UserAgent, 10),
    FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated)
    by Caller, UserIdentityArn, RecipientAccountId
| join kind=leftouter Known on Caller
| extend NewInvocationIPs = set_difference(InvocationIPs, coalesce(KnownIPs, dynamic([])))
| where array_length(NewInvocationIPs) > 0 or UnlockCalls > 0 or LoggingDeletes > 0
| extend ReconAndInvoke = ReconCalls > 0 and Invocations > 0
| project-away Caller1, KnownIPs
| order by LoggingDeletes desc, UnlockCalls desc, ReconAndInvoke desc, Invocations desc

多くの種類の入口をゆっくり探る動き(AzureのApplication Gatewayのログと、同じ考え方のSplunkのWebデータモデル版)。KQLをダウンロード · SPLをダウンロード

// Illustrative; not executed against a live workspace. Azure Monitor Logs: resource-specific AGWAccessLogs.
// Slow, wide probing of the doors used in TrendAI's three Japan cases: admin panels, WebLogic, edge-device login
// pages, GIS servers, AI endpoints, and configuration or backup files. A platform that throttles its traffic to
// each target stays under rate limits, so this looks for breadth over hours rather than volume. If a CDN or
// another proxy fronts the gateway, ClientIp is that proxy. Review candidates, not verdicts.
let Window = 7d;
let AuthorisedScanners = dynamic(["REPLACE_WITH_AUTHORISED_SCANNER_IP"]);
let Probes = AGWAccessLogs
    | where TimeGenerated > ago(Window)
    | where not(ClientIp in (AuthorisedScanners))
    | extend Path = tolower(tostring(split(RequestUri, "?")[0]))
    | extend Door = case(
        Path matches regex @"^/(arcgis/(admin|manager|rest/admin)|geoserver/(web|rest))", "GIS server",
        Path matches regex @"^/(v1/(models|chat/completions|completions|embeddings)|api/(tags|generate|ps)|rest/workflows|console/api)", "AI endpoint",
        Path matches regex @"^/(remote/login|\+cscoe\+/|vpn/index\.html|logon/logonpoint|tmui/|mgmt/tm/)", "Edge-device login",
        Path matches regex @"^/(console/login|wls-wsat|_async|bea_wls_internal)", "WebLogic",
        Path matches regex @"(^/\.env|/\.git/|/web\.config|/wp-config\.php|\.(bak|old|sql|tar|tgz|zip|7z)$|^/backup)", "Config or backup file",
        Path matches regex @"^/(admin|administrator|manager|phpmyadmin|actuator|server-status)(/|$)", "Admin panel",
        "")
    | where isnotempty(Door);
let Pace = Probes
    | summarize PerMinute = count() by ClientIp, Minute = bin(TimeGenerated, 1m)
    | summarize PeakPerMinute = max(PerMinute), ActiveMinutes = count() by ClientIp;
Probes
| summarize Requests = count(), Doors = make_set(Door), Paths = dcount(Path), SamplePaths = make_set(Path, 15),
    Statuses = make_set(HttpStatus, 10), Hosts = make_set(Host, 10), UserAgents = make_set(UserAgent, 5),
    ActiveHours = dcount(bin(TimeGenerated, 1h)), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated)
    by ClientIp
| join kind=inner Pace on ClientIp
| extend DoorCount = array_length(Doors)
| where DoorCount >= 2 and Paths >= 5
| extend Throttled = PeakPerMinute <= 30 and ActiveHours >= 3, GotA200 = set_has_element(Statuses, 200)
| project-away ClientIp1
| order by Throttled desc, DoorCount desc, Paths desc
| tstats summariesonly=true count FROM datamodel=Web WHERE earliest=-7d BY Web.src Web.uri_path Web.status _time span=1m
| rename Web.* AS *
| search NOT src IN ("REPLACE_WITH_AUTHORISED_SCANNER_IP")
| eval path=lower(uri_path)
| eval door=case(match(path, "^/(arcgis/(admin|manager|rest/admin)|geoserver/(web|rest))"), "GIS server", match(path, "^/(v1/(models|chat/completions|completions|embeddings)|api/(tags|generate|ps)|rest/workflows|console/api)"), "AI endpoint", match(path, "^/(remote/login|\+cscoe\+/|vpn/index\.html|logon/logonpoint|tmui/|mgmt/tm/)"), "Edge-device login", match(path, "^/(console/login|wls-wsat|_async|bea_wls_internal)"), "WebLogic", match(path, "(^/\.env|/\.git/|/web\.config|/wp-config\.php|\.(bak|old|sql|tar|tgz|zip|7z)$|^/backup)"), "Config or backup file", match(path, "^/(admin|administrator|manager|phpmyadmin|actuator|server-status)(/|$)"), "Admin panel")
| where isnotnull(door)
| stats sum(count) AS per_minute values(door) AS doors values(path) AS path_list values(status) AS statuses BY src _time
| eval hour=floor(_time/3600)
| stats sum(per_minute) AS requests max(per_minute) AS peak_per_minute dc(hour) AS active_hours dc(doors) AS door_count values(doors) AS doors dc(path_list) AS paths values(statuses) AS statuses min(_time) AS first_seen max(_time) AS last_seen BY src
| where door_count >= 2 AND paths >= 5
| eval throttled=if(peak_per_minute <= 30 AND active_hours >= 3, "yes", "no"), got_a_200=if(isnotnull(mvfind(statuses, "^200$")), "yes", "no")
| convert ctime(first_seen) ctime(last_seen)
| sort 0 -door_count -paths
  • 端末とサーバー。 WebShellとC2を内蔵する基盤は、サーバー側にいつもの痕跡を残します。Webサーバーのプロセスがシェルを起動する、Webルートに新しいスクリプトができる、Webサーバーから外向きの通信が出る。当サイトのPHP2Shellの検知パックに、これらを捉えるSentinelとCrowdStrikeのルールがあります。
  • APIとサイトの機能。 12件の形には、skyticketの分析の列挙とエラー急増の検索、APIセキュリティガイドの試験が引き続き使えます。

3. 公表された指標は慎重に使う

MicrosoftによるStorm-0940の指標をダウンロード。3件のアドレス、10月15日と16日にだけ意味を持つ3件のVPNアドレス、ConnectWiseの3つのアプリID、5つのUser-Agentを、期間と注意点とともに収めています。アプリIDは正規の委託先のものです。自社テナントで見つかっても、導入済みであることを示すだけで、悪用されたことを示すものではありません。下の表は、韓国のARTEX事案について公表された指標を保持しています。一致は日時と活動の確認を要する手がかりであり、不一致も安全の証明ではありません。

指標 種類 出典 期間 文脈
38.244.50[.]120 IPアドレス CrowdStrike、2026年10月7日 2026年9月下旬〜10月上旬 韓国の報告でARTEXのインスタンスと公開ディレクトリを置いていた。10月23日にJPCERT/CCのケースEにも掲載。観測期間は未記載
101.53.80[.]20, 205.214.59[.]31, 124.155.252[.]63, 154.201.79[.]246, 23.248.249[.]90, 23.158.220[.]98, 103.248.148[.]84, 203.160.133[.]172, 209.209.85[.]38 IPアドレス CrowdStrike、2026年10月7日 2026年9月下旬〜10月上旬 攻撃者が使ったプロキシ
xcai[.]pro ドメイン CrowdStrike、2026年10月7日 2026年9月下旬〜10月上旬 言語モデルAPIの再販業者とみられる
38.11.173.x(隣接する2つの/24帯と報告) IPアドレス帯 Team Cymru、2026年10月2日 2026年10月上旬 ARTEXを動かしていたホスト。攻撃基盤とは確認されていない

ARTEXの通信については、韓国のTheoriがSuricataとSigmaのルールを無償で公開しています。遮断に使う前に、自社の通信で確認してください。Digital Today(英語)

4. 委託先アプリが悪用されたら

  1. まず保全する。 何かを変える前に、Entraのサインインと監査のログ、Purviewの監査記録、Graphの活動を出力してください。Microsoftは10月1日からの確認を勧めています。
  2. 削除せずに封じ込める。 アプリのサービスプリンシパルは削除せずに無効化し、各テナントでのオブジェクトIDを記録します。表示名ではなくアプリIDで探してください。
  3. エージェントが加えたものを探す。 任意のアプリへの新しい認証情報、新しい所有者、アプリロールの割り当て、同意の付与、ロールの割り当て(特にグローバル管理者)、条件付きアクセスの変更。
  4. 読まれ得たものを更新する。 Key Vaultの秘密情報と、アプリが届いたすべての鍵。そのうえで、委託先自身の鍵の更新でアクセスが消えたかを確かめます。
  5. 報告する。 国内ではJPCERT/CCに報告し、個人データが影響を受けた可能性があれば、個人情報保護委員会への報告義務を判断してください。

5. 対応すべきチーム

チーム 確認する範囲 次の一手 必要な証跡
IT運用 エッジ機器、ルーター、WebLogic、GISサーバー、AIのエンドポイント 管理画面をインターネットから外し、初期パスワードを変え、設定に残る秘密情報を更新する 資産一覧、変更記録、日付
SIEM / SOC 10月1日以降のEntraのサインインと監査ログ、8月以降のWebとゲートウェイのログ 上の4つの検索を定期実行し、Microsoft、CrowdStrike、JPCERT/CCの指標を期間付きで確認する 実行計画、結果
EDR Webサーバーと、届いてしまう入口の背後にあるもの WebサーバーからのシェルやWebルートの新しいスクリプト、ビーコンを探す プロセスツリー、ファイルの時系列
委託先管理 テナント全体の権限を持つアプリの提供企業 アプリの認証情報の守り方と、侵害時の連絡方法を各社に尋ねる 書面の回答
法務・プライバシー 更新が必要になり得る公表 調査でAI基盤の利用が判明したら公表するかを決める。他社の防御に役立つ 判断の記録

まだ分かっていないこと

  • TrendAIのリストにどの組織があったのか、そのうち漏えいを公表した組織はあるのか。
  • TrendAIの3事例を動かしたAIモデルは何か。44のエージェントは攻撃者独自の構成だったのか。
  • Storm-0940が国内のテナントに到達したか。Microsoftの報告は国内の組織を挙げていません。
  • 国内12件のそれぞれに、何らかのツールが使われたのか。
  • 公表されていない被害がどれだけあるのか。当サイトのトラッカーが見ているのは公表だけです。

出典と更新履歴

新しい報告

ARTEXと韓国の銀行への攻撃

国内

当サイトの関連記事:skyticketの3つの経路 · ソースネクストの会員API · ローソンID · 国内の漏えい公表60日間のまとめ

方法。 87件は当サイトの漏えいトラッカーから取りました。トラッカーは各社自身の日付と経路を記録しています。「直接攻撃」には、被害を受けた委託先の顧客を含めず、委託先で1件と数えています。CyberStrikeAIに関する記述は、2026年10月28日にコミット5affb4d時点の公開リポジトリを当サイトが読んだ結果です。タグ付きの各版でエージェント定義とツール定義を数え、既定のドメインルールのパターンを別に用意した試験プログラムで見本のホスト名に当てました。リポジトリのコードは一切実行していません。Storm-0940のダウンロードにある指標は、すべてMicrosoftのページと照合しました。

2026年10月20日: 「ARTEXだったのか?」として初版を公開しました。出典は2026年10月19日(日本時間)に確認しました。ARTEXのリポジトリは当サイトでは開けず、日付と機能はpiyologの整理とCrowdStrikeによります。

2026年10月24日: JPCERT/CCの10月23日更新を追記し、初版のIP一致ゼロという結論を修正し、指標のダウンロードと検知上の限界を加えました。ネットワーク制限により、JPCERT/CCの詳細調査ブログとCrowdStrikeの報告は再取得できませんでした。

2026年10月28日: 題名を改め、TrendAIの3つの攻撃者環境、MicrosoftのStorm-0940の報告、ソウルでの検挙を軸に構成し直しました。CyberStrikeAIのコードの読解、AIの役割の図、その他の攻撃の表、更新した攻撃者の視点、4つの検索、Storm-0940の指標のダウンロード、新しい表紙を加えました。12社の表は変更しておらず、再監査もしていません。当サイトの作業環境からは、TrendAIの報告書、JPCERT/CC、Team Cymru、Amazon、Unit 42、GreyNoise、韓国の報道機関のページを開けず、検索エンジンによるページの抜粋に頼りました。TrendAIの事例の詳細は独立した2件の要約に基づきます。Microsoftの報告とCyberStrikeAIのリポジトリは直接読みました。クエリは実環境で実行しておらず、掲載アドレスへの接続も行っていません。

記事一覧へ →Read in English ↗