IBM AI(「ボブ」)がマルウェアをダウンロードし、実行する

---  
**ポイント**  
- 「Downloads and Executes」を「ダウンロードし、実行」と訳すことで自然な日本語になります。  
- AIの名前はそのままカタカナで表記し、引用符で区切ります。

2026/01/09 3:19

IBM AI(「ボブ」)がマルウェアをダウンロードし、実行する --- **ポイント** - 「Downloads and Executes」を「ダウンロードし、実行」と訳すことで自然な日本語になります。 - AIの名前はそのままカタカナで表記し、引用符で区切ります。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

(以下は日本語訳です)

要約

IBM の新しい AI コーディングアシスタント「Bob」(クローズドベータ)は、ユーザーが任意のコマンドに対して「常に許可」オプションを有効にすると、攻撃者が自動的にマルウェアをダウンロードして実行できる重大なセキュリティ欠陥があります。
この脆弱性は、Bob CLI における間接プロンプト注入、リダイレクト演算子(

>
)で連結された別々のコマンドを検出できない不完全な権限ダイアログ、プロセス置換(
>(command)
)に対する制限不足、および
echo
のような無害コマンドを事前に付加して悪意あるペイロード全体を自動承認させる機能から生じています。

攻撃者は、ランサムウェア、クレデンシャル盗難、スパイウェア、デバイス乗っ取り、または暗号通貨採掘を可能にする任意のシェルスクリプトを配信できます。さらに、Bob の IDE は Markdown 画像、Mermaid ダイアグラム、および JSON スキーマを介してゼロクリックでデータ外部転送を行うことができ、これらのベクターは

storage.googleapis.com
などの攻撃者制御エンドポイントへの外部リクエストをトリガーし、クエリパラメータを漏洩させたり、悪意あるハイパーリンクを埋め込んだり、ファイル編集前に URL をプリフェッチしたりします。

IBM は「自動承認」機能を高リスクと特定し、ワイルドカードのないコマンドのみをホワイトリスト化することを推奨しています。研究者は Bob の一般公開リリース前にこれらの発見を公表し、ユーザーへの警告と悪用防止を図りました。

Bob を採用したユーザーおよび組織は、データ整合性・セキュリティ・IBM の AI オファリングへの信頼を脅かす静かなコード実行の脅威に直面しています

本文

脅威インテリジェンス

IBM の AI コーディングエージェント Bob が、間接プロンプト注入を利用したコマンド検証バイパスにより、人間の承認なしでマルウェアをダウンロード・実行できる脆弱性が判明しました。

この脆弱性は、ユーザーが任意のコマンドについて 「常に許可」 を設定した場合、悪意ある攻撃者が IBM Bob を利用してマルウェアをダウンロード・実行できるようになります。
IBM Bob は IBM の最新コーディングエージェントで、現在はクローズドベータ版です。以下の2つの形態で提供されています。

  • Bob CLI – ターミナルベースのコーディングエージェント(Claude Code や OpenAI Codex に似ています)。
  • Bob IDE – AI 搭載エディタ(Cursor に似ています)。

本記事では、Bob CLI がプロンプト注入攻撃に脆弱でマルウェア実行を招くこと、そして Bob IDE が既知の AI 専用データ外部転送ベクトルに対して脆弱であることを示します。

IBM はコマンド自動承認設定が 「高リスク」 であり、有害な操作を実行する可能性があると警告し、ホワイトリストの利用やワイルドカードの回避を推奨しています。本研究は IBM Bob の正式リリース前にユーザーへ急激なリスクを知らせるため公開披露しました。IBM Bob が一般アクセス版でさらなる保護機能を備えることを期待しています。


攻撃チェーン

  1. ユーザーの意図 – ユーザーは新しいリポジトリを探索したいと Bob に尋ねます。
  2. 操作 – README の末尾にある指示で、Bob がフィッシング訓練実施中だと誤認するよう誘導されます。
  3. プロンプティング – Bob は数回の
    echo
    コマンドを提示し、ユーザーは「常に許可」を選択します。
  4. 悪意あるコマンド – Bob は特殊に設計された危険なコマンドを提示し、ビルトイン防御を迂回させて攻撃者のサーバーから取得したスクリプトを即座に実行します。

Bob の3つの防御策(およびバイパス方法)

防御説明バイパス
複数コマンド承認
;
などの演算子を使った多段階コマンド要求時、各サブコマンドごとに実行許可を求めるリクエストが表示されます。例:モーダル「echo と cat の実行を許可しますか?」
リダイレクト演算子 (
>
) を使ってチェーン化すると、防御はサブコマンドを個別に認識できません。
コマンド置換制限Bob はセキュリティ対策として
$(command)
のようなコマンド置換を禁止しています。
コードはプロセス置換
>(command)
を十分に制御していないため、マルウェア取得コマンドの出力が実行入力として使用されます。
コマンド検知ロジックminified JS ソース中の関数:
function detectCommandSubstitution(cmd) {
  …
  if (
    … 
      (ch === "$" && nxt === "(") ||      
      (ch === "<" && nxt === "(" ... && !inBacktick) || 
      (ch === "`" && !inBacktick)         
  ) {
    return true;
  }
  …
  return false;
}

| このロジックは

>(command)
のケースを検知できないため、悪意のあるペイロードが検出から漏れます。 |

ユーザーがすでに「常に許可」を設定した

echo
を前置きすると、バイパス 1 と 2 によりペイロード全体が自動承認されてしまいます。


インパクト

任意のシェルスクリプトを配信できると、攻撃者は以下のような行為が可能です。

  • ランサムウェアでファイルを暗号化・削除
  • 認証情報を盗む、または間諜ソフトをデプロイ
  • デバイスを乗っ取り(リバースシェル開放)
  • 被害者を仮想通貨マイニングボットネットに誘導

これらの結果は、IBM Bob CLI の脆弱性からプロンプト注入がユーザー機器全体の完全な侵害へと発展することを示しています。


追加調査結果

さらに、Bob IDE は多くの AI アプリケーションに影響を与える既知のゼロクリックデータ外部転送ベクトルに対して脆弱であることが判明しました:

  • Markdown の画像 はモデル出力時に CSP(Content Security Policy)が適用され、攻撃者がログできるエンドポイント(例:
    storage.googleapis.com
    )へリクエストが送られます。
    • 画像をリンク化しボタン風にスタイリングするとフィッシングが可能です。
  • Mermaid ダイアグラム は外部画像をサポートしており、同じ CSP により画像要求で情報漏洩が起こります。
  • JSON スキーマ が事前取得されるため、攻撃者が動的に生成した URL をフィールドに挿入すると、ファイル編集の受理前にデータ外部転送が発生します。

これらのベクトルはユーザー操作なしにデータを漏洩させる可能性があるため、IBM Bob の IDE における CSP 強化と入力検証の徹底が不可欠です。

同じ日のほかのニュース

一覧に戻る →

2026/01/09 4:54

**200 行以内で書く Claude スタイルプログラムの作り方** 1. **目標を定義する** * プログラムが解決すべき問題(例:テキスト生成、データ分析など)を決める。 * 必要な入力・出力、および制約事項を概略化する。 2. **適切な言語とライブラリを選ぶ** * 迅速なプロトタイピングには Python を推奨。 * `openai` や `anthropic` SDK を使用し、必要最低限のモジュール(例:`json`、`time`)のみインポートする。 3. **コード構成** ```python # 1️⃣ インポート import os, json, time from anthropic import Anthropic # 2️⃣ 設定 api_key = os.getenv("ANTHROPIC_API_KEY") client = Anthropic(api_key=api_key) # 3️⃣ コア関数 def generate_text(prompt: str, max_tokens: int = 200) -> str: response = client.completions.create( model="claude-2.1", prompt=prompt, max_tokens_to_sample=max_tokens, temperature=0.7, ) return response.completion # 4️⃣ ユーティリティ関数 def save_output(text: str, path: str) -> None: with open(path, "w", encoding="utf-8") as f: f.write(text) # 5️⃣ メインフロー if __name__ == "__main__": prompt = input("Enter your prompt: ") result = generate_text(prompt) print("\nGenerated Text:\n", result) save_output(result, "output.txt") ``` 4. **200 行以内に収める** * 不要なコメントや冗長なログを避ける。 * 繰り返しコードの代わりに簡潔なヘルパー関数を使う。 5. **テストと検証** * `generate_text` と `save_output` 用に単純なユニットテストを書く。 * 複数サンプルプロンプトでスクリプトが安定して動作するか確認する。 6. **パッケージング(任意)** * `requirements.txt` を追加: ``` anthropic==0.3.2 python-dotenv==1.0.0 ``` * セットアップと使い方を簡潔に説明した README を用意する。 7. **最終チェックリスト** * 未使用のインポートや変数がないこと。 * 文字列はすべて `utf-8` でエンコードされていること。 * 新しい環境でもエラーなく実行できること。 このテンプレートに沿えば、200 行以内でクリーンかつ機能的な Claude スタイルプログラムが完成します。実験・拡張・デプロイの準備は万端です。

## Japanese Translation: (to address missing elements while keeping clarity):** > 本記事では、JSON形式のツール呼び出し(`read_file`、`list_files`、`edit_file`)を介してLLMと対話し、ディスク上のファイルを操作する軽量なコーディングエージェントの構築方法を示します。 > エージェントのコアループは、ユーザーからの自然言語リクエストをLLMに送信し、そのJSONレスポンスからツール呼び出しを解析して対応するローカル関数を実行し、結果を会話へフィードバックします。ツールが要求されなくなるまでこのプロセスを繰り返します。各ツールは構造化された辞書を返します(`read_file` → `{file_path, content}`、`list_files` → `{path, entries}`、`edit_file` → テキストの作成または置換)。 > システムプロンプトは自動的に生成され、各ツールの名前・説明(docstringから取得)とシグネチャを列挙することでLLMが正しく呼び出せるようにします。例ではAnthropic API経由でClaude Sonnet 4を使用していますが、クライアント初期化部分を書き換えるだけで任意のLLMプロバイダーへ切り替え可能です。 > 実装はインポート、環境変数読み込み(`dotenv`)、ターミナルカラー補助関数、および`resolve_abs_path`ヘルパーを含めて約200行のPythonコードです。プロダクション向けエージェント(例:Claude Code)は、このパターンにgrep、bash、websearchなど追加ツールや高度なエラーハンドリング、ストリーミングレスポンス、要約機能、および破壊的操作の承認ワークフローを組み込んでいます。 > 読者は新しいツールを追加したりLLMプロバイダーを切替えたりして、最小限のボイラープレートで高度なコーディング支援が実現できることを体験できます。 この改訂された概要は主要なポイントをすべて網羅し、未支持の推測を避けつつメインメッセージを明確に保ち、あいまい表現を削除しています。

2026/01/09 5:37

**Sopro TTS:** CPU 上で動作し、ゼロショット音声クローン機能を備えた 1,690 万パラメータのモデル。

## Japanese Translation: ``` ## Summary Soproは、1億6900万パラメータで構築された軽量な英語テキスト・トゥー・スピーチシステムです。リアルタイムのストリーミング合成と、わずか数秒の参照音声からのゼロショットボイスクラーニングを提供します。そのアーキテクチャは重いTransformerをドリーテッドWaveNetスタイルの畳み込みと軽量なクロスアテンション層に置き換え、M3コアマシンでCPUリアルタイム係数0.25(約7.5秒で30秒分の音声生成)を達成します。モデルは依存関係が最小限で、PyTorch 2.6.0のみを必要とし、低スペックハードウェアでも効率的に動作します。 Soproは単純なPython API(`SoproTTS.synthesize`)、コマンドラインインターフェイス(`soprotts …`)、およびUvicornまたはDockerで起動できる対話型Webデモを通じて、非ストリーミング(`SoproTTS.synthesize`)とストリーミング(`SoproTTS.stream`)の両方のモードをサポートします。ストリーミング出力は非ストリーミングモードとビットレベルで完全に一致しないため、最高品質を求めるユーザーは非ストリーミング合成を使用することが推奨されます。 トレーニングにはEmilia YODAS、LibriTTS‑R、Mozilla Common Voice 22、およびMLSなどの公開コーパスからデータが採用され、WaveNet、Attentive Stats Pooling、AudioLM、CSMといった確立された手法を組み込んでいます。ボイスクラーニングの品質はマイクロフォンの品質に依存し、システムは略語よりも音素レベルの参照音声を好みます。 Soproは低リソースフットプリント、CPUフレンドリー、そして簡単な統合性を備えているため、チャットボット、アクセシビリティツール、組み込みデバイス、および軽量TTSと高品質ボイスクラーニングが必要なリアルタイムアプリケーションに最適です。 ```

2026/01/09 0:07

ボーズは古いスマートスピーカーをブリック化せず、オープンソースとして公開しています。

## Japanese Translation: **修正版要約** ボーズは、サウンドタッチスマートスピーカーのAPIドキュメントをオープンソース化することを発表し、公式クラウドサポートを2026年5月6日まで延長しました。これは元々計画されていた期間より約6か月長いものです。また、新しいサウンドタッチアプリの更新ではローカル制御が追加されるため、ユーザーはクラウドサービス終了後も機能を維持できます。Bluetooth、AirPlay、Spotify Connect、および物理的なAUX接続を通じて音楽ストリーミングを継続でき、グループ化、初期設定、構成などのリモートコントロール機能も動作します。APIをオープンソースにすることで、ボーズはクラウドサービス停止によって残されたギャップを埋めるカスタムツールを開発者が構築できるようにしています。この動きは、公式シャットダウン後にデバイス機能を維持したPebbleのRebble Allianceなど、コミュニティ主導の取り組みと共鳴します。

IBM AI(「ボブ」)がマルウェアをダウンロードし、実行する --- **ポイント** - 「Downloads and Executes」を「ダウンロードし、実行」と訳すことで自然な日本語になります。 - AIの名前はそのままカタカナで表記し、引用符で区切ります。 | そっか~ニュース