AIエージェントが悪用されるのを待つだけで...

MMaximilian Schwarzmüller
컴퓨터/소프트웨어경제 뉴스AI/미래기술

Transcript

00:00:00非常に壊滅的なサプライチェーン攻撃が発生してから
00:00:06数時間後に、この動画を記録しています。多くのNPMやPythonパッケージへと
00:00:13拡大した攻撃です。録画している現時点では、いつどこで収束するか
00:00:19まだ分かっていません。私のYouTubeチャンネルに、この特定の攻撃について
00:00:25深く掘り下げた別の動画を作成しました。非常に巧妙な手口だったので
00:00:30詳細はそちらで解説していますが、とても興味深い内容です。ですが、ここでは
00:00:38サプライチェーン攻撃が多発するAI時代の、セキュリティとAIについて話したいと思います。
00:00:45状況はさらに悪化するでしょうし、多くの人がまだその危険性を十分に
00:00:54認識していないのではないかと危惧しています。開発者や、AI技術の利用者として
00:01:01すべきことはもっとあります。これは、あなたが開発者でなくても影響することです。
00:01:07これから説明するように、単にコードを書くことや、従来のサプライチェーン攻撃だけの
00:01:13話ではないからです。まずは基本から始めましょう。サプライチェーン攻撃とは何でしょうか?
00:01:20ソフトウェア開発におけるサプライチェーン攻撃とは、簡単に言えば
00:01:26利用している依存関係が侵害されることを意味します。一言で言えばそれが本質です。
00:01:35「侵害」には様々な意味がありますが、典型的なのは
00:01:41侵害されたパッケージに悪意のあるコードが含まれ、認証情報やトークンを収集することです。
00:01:49.envファイルやAWSの認証情報などの機密情報をハードドライブから探し出し、
00:01:56それらを使ってアカウントにアクセスしたり、さらに感染を広めたりします。
00:02:04オープンソースのメンテナであれ、クローズドソースであれ、他者が利用する
00:02:11パッケージやツールを開発しているなら、あなたのマシンを侵害することは
00:02:19攻撃者にとって非常に魅力的です。なぜなら、配布しているツールを侵害すれば
00:02:26より多くの人に影響を与えられるからです。Tanstackパッケージから始まった
00:02:32今回の攻撃も含め、これらは他のパッケージへと次々に感染を広げる
00:02:38ワームのようなもので、最終的にはそれらを使用するマシンすべてに影響を及ぼします。
00:02:44身を守るためにできることはいくつかあります。それについては
00:02:51もう一つの「Akatamine」チャンネルで別動画を作りました。例えば、
00:02:56公開から少なくとも3日以上経過したパッケージバージョンのみをインストールすることや、
00:03:02開発コンテナや仮想マシン内でコードを実行することなどが挙げられます。
00:03:08これらはすべて実践すべきことです。また、機密情報をプレーンテキストで保存してはいけません。
00:03:15代わりに、InfisicalやDopplerなどのサービスを使い、クラウド上などで
00:03:22暗号化された状態で管理してください。そうすれば、攻撃者がシステムをスキャンしても
00:03:28生データを見られることはありません。今すぐこれらを行うことが重要です。
00:03:37サプライチェーン攻撃は増加の一途をたどっています。なぜでしょうか?
00:03:42何年も前にはこのような攻撃が不可能だったから、というわけではありません。
00:03:49当時も可能でしたし、実際に起きていました。しかし、発生頻度が劇的に増えており、
00:03:56AIがその大きな要因となっています。では、AIの役割について見ていきましょう。
00:04:06AIによって攻撃の実行が容易になったことが大きな理由です。攻撃者は
00:04:14AIを使って、ターゲットにしたいパッケージのあらゆるリポジトリを分析できます。
00:04:22どのように構築され、配布されているのかを調べるのです。例えば、
00:04:30今回のTanstackへの攻撃では、メンテナはNPMの「Trusted Publishing」という
00:04:38理論上安全なプロセスを使用していました。これについても別動画で詳しく話していますが、
00:04:45彼らは特定のGitHub Actionsのイベントトリガーを、
00:04:51完全に安全ではない方法で使用していました。その結果、攻撃者は「キャッシュ汚染」を利用し、
00:05:00信頼できない環境から信頼された環境へと悪意のあるコードを送り込むことができたのです。
00:05:07詳細は別の動画をご覧ください。AIを使えば、リポジトリや
00:05:15GitHub ActionsなどのCI/CDワークフローの分析が容易になります。
00:05:22AIは膨大なスクリプトやコードを一括分析し、セキュリティ上の脆弱性を
00:05:30探し出すことができます。もちろん、メンテナ側もAIを使って自らの
00:05:38リポジトリをスキャンし、攻撃ベクトルを探すことができます。しかし、
00:05:45攻撃者はあらゆることを試せるため、常に優位に立っています。
00:05:52メンテナはすべてを予測しなければなりませんが、AIの助けがあっても完璧ではありません。
00:05:58AIは攻撃プロセスを簡略化してしまったのです。さらにAIは、
00:06:04悪意のあるコードを書くことも、あらゆるコードの作成も簡単にします。
00:06:12私の他の動画を見たことがある方はご存知でしょうが、私は
00:06:20コードレビューを重視し、すべてをAIに任せきりにしないことを推奨しています。
00:06:27AIを生産性向上のために活用すべきなのは明らかですが、その適切な
00:06:33使用量についてはまだ模索段階です。100%AI任せでコードを見ない人もいれば、
00:06:40私のようにそうでない人もいます。どちらにせよ、AIが大量のコードを
00:06:46吐き出すことを容易にしたのは確かです。悪意のあるコードに関して言えば、
00:06:53攻撃者が重視するのは、検知されにくく、目的を果たすコードです。
00:06:59美しさやベストプラクティスなどは二の次です。攻撃を成功させることこそが
00:07:06彼らのベストプラクティスであり、AIは悪意のあるコード作成や
00:07:13攻撃手法の立案を強力にサポートします。ですが、これは物語の
00:07:19一側面に過ぎません。もう一つの非常に重要な側面は、
00:07:26かつてないほど大量のコードが存在し、ターゲットが増え続けていることです。
00:07:35GitHubの信頼性やダウンタイムに関する一連の騒動をご存知でしょうか。
00:07:43その理由は、AIによってGitHubにプッシュされるコード量が爆発的に
00:07:49増えたからです。生成が容易になり、かつてないほど多くの人々が
00:07:55コードの内容を理解せずにソフトウェアを書くようになっています。
00:08:02内容を把握しないままコードを走らせることも増えていますが、
00:08:11例えば、5つのPDFを1つに統合したい時に、AIエージェントに任せるのは便利です。
00:08:18AIが書いた使い捨てのコードの内容など、普通は気にしませんよね。
00:08:24しかし、それを自分のシステムで実行する際、エージェントがPDF統合のために
00:08:32インストールしたパッケージが、サプライチェーン攻撃を受けていたらどうでしょう。
00:08:37PDFを結合することだけに集中していれば、どのパッケージが使われたかさえ気づきません。
00:08:43単発のタスクであれソフトウェア開発であれ、パッケージがインストールされる機会が
00:08:49激増しており、それがサプライチェーン攻撃を実行する側にとって
00:08:56これ以上ないほど魅力的な状況を生み出しています。
00:09:01セキュリティの知識が全くない人々が、格好のターゲットになっているのです。
00:09:06正直なところ、私たち開発者もリスクを頭では分かっていても、
00:09:14利便性を優先して、つい無頓着になってしまうことがあります。
00:09:22今こそ考えを改めるべきです。マシンを保護し、安全な環境で
00:09:31開発を行わなければなりません。仮想マシンや開発コンテナを使い、
00:09:37認証情報を放置しないことです。AIエージェントを使う際も、
00:09:442つの大きな危険性があるため注意が必要です。詳しく見ていきましょう。
00:09:531つ目の問題は先ほど触れた通りです。AIエージェントを
00:10:00コーディング以外の用途で使ったり、プログラムの補助として
00:10:08利用したりする場合、その挙動をすべて把握しているわけではありません。
00:10:17Claude Codeなどのツールを否定するわけではありません。むしろ、
00:10:23非常に有用なので、それらに関する講座も公開しているほどです。
00:10:30しかし、詳細を気にせず「この機能を実装して」と丸投げすれば、
00:10:35裏でどんなパッケージがインストールされているか気づかないかもしれません。
00:10:41それによって、知らないうちに侵害を受けてしまう可能性があります。
00:10:49防御策の一つは使用パッケージを制限することですが、AIエージェントが
00:10:54制御下にあれば、自分では決して入れないパッケージを追加するかもしれません。
00:11:00これが目に見える危険ですが、もう一つ、あまり目立たない危険があります。
00:11:07それは、AIエージェント自体が非常に魅力的な攻撃対象だということです。
00:11:15サプライチェーン攻撃はワームのように広がり、あらゆるパッケージに波及します。
00:11:23攻撃者にとって、Claude Codeやその他の有名なAIエージェントの
00:11:32リポジトリやコードベースを汚染することは、非常に大きな利益になります。
00:11:42AIエージェントのパッケージを標的とした、悪意のあるコードを送り込めれば、
00:11:52その中に「プロンプト注入」を忍ばせることが可能になるからです。
00:12:00単なるデータ流出だけでなく、エージェントのコード自体を書き換えて
00:12:08しまうのです。注入されたコードが情報を盗むのではなく、
00:12:15AIエージェントに「特別な指示」を埋め込むように調整されていたらどうでしょう。
00:12:22利用者のマシン上で、意図しない挙動をさせるための指示です。
00:12:28例えば、本来Anthropicの社員が設定すべきシステムプロンプトが、
00:12:34悪意のあるコードによって上書きされていたと想像してみてください。
00:12:39ユーザーの依頼をこなしているふりをしながら、裏で
00:12:46システム内から機密情報を探し出すような指示が下されていたら?
00:12:52さらにスキャンのための小規模なプログラムを書き、
00:13:00データをリモートサーバーに送信するように命じられていたら?
00:13:06これはまさにトロイの木馬です。突然、あなたのシステム上で
00:13:12AIエージェントが暴走を始めるのです。AI自体が邪悪になったわけでも、
00:13:20モデルに欠陥があるわけでもなく、エージェントのコードやプロンプトが侵害された結果です。
00:13:28これは決して非現実的な話ではなく、いつか必ず起きると断言できます。
00:13:34AIエージェントはあまりにも格好の標的なのです。
00:13:41サプライチェーン攻撃は、従来の認証情報の窃取という次元を超え、
00:13:49新たなステージへと進むでしょう。悪意のあるコードによって
00:13:54頻度は増すばかりですが 悪意あるコードによって AIエージェントが暴走する事態も起きるでしょう
00:14:01このように、この問題には多くの層が重なっています。これが私たちの直面している
00:14:08新たな現実なのです。インターネット黎明期のように、まだ模索の途中にあり、
00:14:14セキュリティをどう強化すべきかを見極めている段階です。
00:14:21明らかな対策としては、開発もAIエージェントの実行も、
00:14:26万が一の際に被害が出るような環境では行わないことです。
00:14:32重要な認証情報や機密データが保存されている場所で実行してはいけません。
00:14:37メインマシンではなく、隔離された仮想マシンやリモートマシンを使い、
00:14:42被害の範囲を限定的に抑えるべきです。何か問題が起きるのは
00:14:49時間の問題なのですから。その自覚を持つことが、まず何より重要です。
00:14:56状況は目まぐるしく変化しており、セキュリティは極めて重大な課題であり続けます。
00:15:03AIが加速し、モデルがより賢くなるにつれ、その重要性はさらに増すでしょう。
00:15:11AIが新たな可能性をもたらすと同時に、あまりに多くの利便性を
00:15:17提供してくれるからです。利便性は常に危険を伴います。注意をそらし、
00:15:23物事を見落とさせ、人を怠慢にさせるからです。
00:15:30AIは今やどこにでもあります。知識のない人々も使っていますし、
00:15:34専門知識がある人でさえ大きな危険にさらされています。
00:15:40私たちは考えを改め、エージェントを動かす場所やコードの扱い方に
00:15:49細心の注意を払わなければなりません。

Key Takeaway

AIによる攻撃プロセスの簡略化とコード生成量の爆発的増加に伴い、AIエージェントの実行環境をメインマシンから完全に隔離し、認証情報を暗号化管理することが不可欠である。

Highlights

  • サプライチェーン攻撃はNPMやPythonパッケージに急速に拡大しており、AIによるCI/CDワークフローの自動分析がその頻度を劇的に高めている。

  • 機密情報はプレーンテキストで保存せず、InfisicalやDopplerなどのサービスを使用してクラウド上で暗号化管理することでデータ流出を防げる。

  • 新しく公開されたパッケージは、安全性を確認するために少なくとも3日間はインストールを控える待機期間が必要である。

  • AIによってGitHubへプッシュされるコード量が爆発的に増加しており、コードの内容を理解せずに実行する利用者が格好の標的となっている。

  • AIエージェントのコードベースが汚染されると、プロンプト注入を通じてシステムプロンプトが書き換えられ、機密情報を外部送信するトロイの木馬と化す。

Timeline

サプライチェーン攻撃の現状と基本原則

  • サプライチェーン攻撃の本質は、ソフトウェアが依存している外部パッケージの侵害にある。
  • 攻撃者は侵害したパッケージを通じて、ハードドライブ内の.envファイルやAWS認証情報を収集する。
  • Tanstackパッケージから始まった攻撃のように、一つの脆弱性がワームのように他のパッケージへ次々と連鎖する。

開発者が利用するツールやライブラリを侵害することは、そのツールを使用する全ユーザーへ影響を広げられるため、攻撃者にとって極めて効率的な手法である。特にオープンソースのメンテナのマシンを狙うことで、信頼された配布チャネルを悪用した大規模な感染が可能になる。

被害を最小限に抑えるための即時対策

  • 公開から3日以上経過したパッケージバージョンのみを選択してインストールする手法が有効である。
  • コードの実行はメイン環境ではなく、開発コンテナや仮想マシンなどの隔離された環境で行う必要がある。
  • 認証情報はInfisicalやDopplerなどの暗号化管理サービスを利用し、プレーンテキストでの保存を排除する。

攻撃が発覚して報告されるまでのタイムラグを利用し、最新すぎるパッケージを避けることでリスクを回避できる。また、システムをスキャンされたとしても、機密データが暗号化されていれば攻撃者は生データを取得できない。

AIが加速させる攻撃の巧妙化とリスクの拡大

  • AIはGitHub ActionsなどのCI/CDワークフローにある脆弱性を一括で分析し、攻撃の糸口を見つけ出す。
  • GitHubへのコードプッシュ量が急増したことで、攻撃対象となるコードの総量がかつてない規模に達している。
  • PDF結合などの単純なタスクをAIエージェントに任せる際、裏でインストールされるパッケージの安全性を確認する仕組みが欠如している。

信頼された環境から悪意のあるコードを送り込む「キャッシュ汚染」などの高度な手口が、AIの分析能力によって容易に実行可能となった。利便性を優先してAIが生成したコードを内容理解なしに実行する傾向が、セキュリティ意識の低い新たなターゲット層を生み出している。

AIエージェント自体を標的とした新たな脅威

  • AIエージェントのパッケージが汚染されると、意図しない指示を埋め込むプロンプト注入が可能になる。
  • 侵害されたエージェントは、正規の動作を装いながら裏で機密情報を探し出し、リモートサーバーへ送信する。
  • モデル自体の欠陥ではなく、エージェントを動かすコードやプロンプトが侵害されることでAIはトロイの木馬へと変貌する。

Claude Codeのような強力なツールのリポジトリが汚染された場合、ユーザーのマシン上でAIが暴走を始める。本来のシステムプロンプトが悪意のある指示に上書きされることで、AIはユーザーの依頼をこなしつつ、システム全体を監視するスパイとして機能するようになる。

AI時代のセキュリティマインドセット

  • AIエージェントの実行は、重要なデータが存在しない隔離されたリモートマシンや仮想環境に限定すべきである。
  • 利便性の向上は、注意力を散漫にさせセキュリティ上の怠慢を招く大きな要因となる。
  • 何か問題が発生するのは時間の問題であるという前提で、防御策を講じることが最優先事項である。

AI技術が進化し利便性が高まるほど、人間は細部への注意を怠るようになる。インターネット黎明期と同様に、現在はセキュリティの標準化を模索している段階であり、利用者は常に最悪の事態を想定して行動しなければならない。

Community Posts

View all posts