PyPI公式パッケージ telnyx がサプライチェーン攻撃で汚染 — TeamPCPによるWAVステガノグラフィ攻撃の全容

サプライチェーン攻撃とは、ソフトウェアの開発・配布の過程(サプライチェーン)に侵入し、正規のパッケージやツールに悪意あるコードを混入させる攻撃手法です。開発者が信頼して利用しているライブラリが攻撃の入口になるため、通常のセキュリティ対策では気づきにくいのが特徴です。 2026年3月27日、PyPIで月間74万ダウンロードを誇る通信プラットフォーム Telnyx の公式 Python SDK(telnyx)が、まさにこのサプライチェーン攻撃によって汚染されました。攻撃者グループ TeamPCP が悪意あるバージョン 4.87.1 および 4.87.2 を公開しました。これらは import するだけでマルウェアが実行される極めて危険なものです。 何が起きたのか タイムライン 2026年3月27日 03:51 UTC — 悪意あるバージョン 4.87.1 と 4.87.2 が PyPI に公開 同日 10:13 UTC — PyPI によって当該バージョンが隔離(quarantine) 約6時間にわたり、pip install telnyx を実行したユーザーは悪意あるバージョンをインストールする可能性がありました。 攻撃の仕組み 悪意あるコードは telnyx/_client.py に注入されていました。パッケージを import するだけで自動実行される仕組みです。攻撃は以下の手順で進行します: 初期実行: import telnyx だけでマルウェアコードが発動 ペイロード取得: リモートサーバーから WAV 音声ファイルをダウンロード ステガノグラフィ(データを別のファイルに隠す技術): WAV ファイルのオーディオフレーム内に実行ファイルが埋め込まれている 環境別の挙動: Windows: 永続的な実行ファイルをドロップ Linux/macOS: クレデンシャル(認証情報)を窃取 WAV ファイル内に実行ファイルを隠すステガノグラフィ手法は、通常のセキュリティスキャンやウイルス対策ソフトでは検出が困難です。音声ファイルという無害に見えるファイル形式を悪用している点が巧妙です。 TeamPCP のサプライチェーン攻撃キャンペーン 今回の telnyx 攻撃は単独の事件ではありません。TeamPCP は2026年3月20日以降、以下のような連鎖的なサプライチェーン攻撃を展開しています: 対象 種別 影響 Trivy セキュリティスキャナー CI/CD クレデンシャルの窃取 Checkmarx (KICS) セキュリティツール 同上 LiteLLM AI/LLM プロキシ 認証情報の窃取 telnyx 通信 API SDK クレデンシャル窃取 + マルウェアドロップ 攻撃パターンは一貫しています: ...

2026年3月27日 · 2 分

Claude Code で Laravel→Django 全自動移行をやってみた(1/3)計画編

業務管理システム(PHP/Laravel 6.20)を Python/Django 4.2 に移行するプロジェクトを、Claude Code の自律実行でほぼ全自動で完遂しました。 移行元: Laravel 6.20 / PHP 8.0 / MySQL 5.7 / Blade テンプレート 移行先: Django 4.2 LTS / Python 3.11+ / MySQL 8.0 / Django Templates 所要時間: 約 5.5 時間(準備フェーズ除く) 成果物: 17 モデル / 50+ テンプレート / 199 テスト / 15,000 行の Python コード 本記事は 3 部構成です。 計画編(本記事)— なぜやったか、どう計画したか 自動化基盤編 — Claude Code を自律実行させるフレームワークの設計 実行結果・教訓編 — 実際に何が起きたか、次回への教訓 プロジェクトの背景 移行対象は、ある業種特化の業務管理システムです。契約管理・マスタ管理・CSV インポート・Excel エクスポート・月次締処理・外部サービス連携(OAuth2 / REST / GraphQL)など、典型的な業務アプリの機能を一通り備えています。 ...

2026年3月26日 · 3 分

Claude Code で Laravel→Django 全自動移行をやってみた(2/3)自動化基盤編

前回の計画編では、移行の方針とフェーズ設計を紹介しました。本記事では、計画を実際に自律実行するためのフレームワーク設計を解説します。 全体アーキテクチャ 自律移行の仕組みは、大きく 3 つのレイヤーで構成されています。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ┌─────────────────────────────────────────────────────┐ │ オーケストレーション層: run-issue.sh │ │ - Issue 読み込み → ブランチ作成 → Claude 起動 │ │ - リトライ → Push → PR 作成 → マージ → Issue 閉じ │ └──────────────────┬──────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────┐ │ 実行層: Claude Code (claude -p) │ │ - ソースコード調査 → 設計 → 実装 → テスト │ │ - コミット(push はしない) │ │ - サブエージェント: explorer / architect / reviewer│ └──────────────────┬──────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────┐ │ 品質保証層: Hooks + CI + verify-phase.sh │ │ - Pre-commit: ruff format + check │ │ - PostToolUse: 編集時の即座リント │ │ - CI: lint → Django check → pytest │ │ - Phase 検証: ファイル存在 + 機能チェック │ └─────────────────────────────────────────────────────┘ 責務分離の原則 最も重要な設計原則は、ワークフロー制御と実装作業の責務分離です。 ...

2026年3月26日 · 5 分

Claude Code で Laravel→Django 全自動移行をやってみた(3/3)実行結果・教訓編

計画編で方針を、自動化基盤編でフレームワークを紹介しました。最終回では、実際に 15 Issue を自律実行した結果と、得られた教訓を共有します。 実行結果サマリー タイムライン 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 12:06 ── Phase 0: 初期セットアップ ────── 12分 (リトライ1回) 12:18 ── Phase 1-1: マスタモデル ──────── 14分 (リトライ1回) 12:33 ── Phase 1-2: 契約モデル ──────── 12分 12:45 ── Phase 1-3: 入金・会計モデル ──── 9分 12:57 ── Phase 2: 認証 & API ────────── 12分 (リトライ1回) 13:09 ── Phase 3-1: テンプレート ──────── 16分 (リトライ2回) 13:25 ── Phase 3-2: マスタ CRUD ────── 21分 13:46 ── Phase 4-1: 契約検索 ──────── 12分 13:58 ── Phase 4-2: 契約 CRUD ──────── 16分 14:14 ── Phase 4-3: 支払・入金 ──────── 21分 (リトライ1回) 14:35 ── Phase 5-1: CSV インポート ──── 24分 (リトライ1回) 14:59 ── Phase 5-2: Excel エクスポート ── 24分 (リトライ1回) 15:00 ── Phase 6: 月次締処理 ──────── 10分 15:34 ── Phase 7: テスト ──────────── 20分 (リトライ2回) 15:54 ── Phase 8: デプロイ準備 ──────── 8分 合計: 約 5.5 時間 数値で見る結果 項目 数値 完了 Issue 15 / 15 総コミット 84 うち修正コミット (fix:) 16 (19%) リトライ発生 Issue 8 / 15 (53%) 最大リトライ回数 2 回 Python コード行数 約 15,000 行 テンプレート 50+ ファイル テスト数 199 テスト通過率 100% 1 Issue あたり平均時間 15〜25 分 うまくいったこと 1. inspectdb による正確なモデル定義 既存 DB ダンプから inspectdb でモデル雛形を生成し、それを整理する方式は非常に効果的でした。カラム名・型・制約が実 DB と完全一致するため、「モデル定義を書いたが DB と合わない」問題が発生しませんでした。 ...

2026年3月26日 · 4 分

insanely-fast-whisper: 150分の音声を98秒で文字起こしする CLI ツール

音声の文字起こし(トランスクリプション)は AI の実用的な応用の一つだが、長時間の音声ファイルを処理するには時間がかかる。insanely-fast-whisper は、OpenAI の Whisper モデルを Flash Attention 2 とバッチ処理で高速化し、150分の音声をわずか98秒で文字起こしできる CLI ツールだ。 概要 insanely-fast-whisper は、Hugging Face の Transformers、Optimum、flash-attn を組み合わせた文字起こし CLI だ。2026年3月時点で GitHub スター 11,000 以上を獲得しており、コミュニティ主導で開発が進んでいる。 主な特徴: 高速処理: Nvidia A100 GPU で 150分の音声を約98秒で文字起こし 簡単なインストール: pipx install でワンコマンド導入 複数モデル対応: Whisper large-v3、distil-whisper など Mac 対応: Apple Silicon (MPS) でも動作 翻訳機能: 文字起こしだけでなく、英語への翻訳も可能 ベンチマーク Nvidia A100 (80GB) での 150分音声の処理時間比較: 構成 処理時間 large-v3 (fp32) 約31分 large-v3 (fp16 + batching + BetterTransformer) 約5分 large-v3 (fp16 + batching + Flash Attention 2) 約1分38秒 distil-large-v2 (fp16 + batching + BetterTransformer) 約3分16秒 distil-large-v2 (fp16 + batching + Flash Attention 2) 約1分18秒 large-v2 (Faster Whisper, fp16) 約9分23秒 Flash Attention 2 の効果が顕著で、BetterTransformer と比較しても約2.5〜3倍の高速化を実現している。 ...

2026年3月25日 · 2 分

autoresearch:Karpathyが公開した「寝ている間にAIが100実験を自律実行する」630行のスクリプト

OpenAI初期メンバーであるAndrej Karpathyが、autoresearchというオープンソースツールを公開しました。わずか630行のPythonスクリプトで、寝ている間にAIエージェントが約100の機械学習実験を自律的に実行してくれるというものです。 Karpathy「12月からコードを1行も書いていない」 Karpathyは「12月から自分でコードを1行も書いていない」と告白しています。代わりに公開したのがこのautoresearchで、プログラマーの仕事が「コードを書く」から「設計する」へとシフトしていることを象徴しています。 autoresearchの仕組み autoresearchはシンプルな仕組みで動作します: AIエージェントにトレーニングスクリプトと固定の計算バジェット(通常5分間のGPU時間)を渡す エージェントが自分のソースコードを読み、改善の仮説を立てる コードを修正し、実験を実行する 結果が改善されたかを評価し、改善なら保持・悪化なら破棄する このサイクルを繰り返す トレーニングは常に5分間で実行されるため、1時間あたり約12実験、一晩で約100実験が自動的に回ります。 実績と反響 Shopify CEO Tobias Lütke: 一晩で37実験を実行し、性能19%向上を達成 Karpathy自身: 700以上の実験を2日間で実行(Fortune誌報道) GitHub: 公開1週間で数万スターを獲得(現在54,000以上) 技術的特徴 シングルGPU対応: 高価なクラスタは不要 630行のスクリプト: コードベースが小さく、理解・カスタマイズが容易 MITライセンス: 誰でも自由に利用可能 Python製: train.py を中心としたシンプルな構成 リポジトリ GitHub: karpathy/autoresearch 「書く」から「設計する」への転換 autoresearchが示唆しているのは、世界最高峰のプログラマーの仕事が「AIにコードを書かせる」段階をすでに超え、AIエージェントに実験を設計・実行させるフェーズに入っているということです。Karpathyは将来的に、エージェント群が協調して小さなモデルをチューニングし、有望なアイデアを段階的にスケールアップさせる「研究コミュニティのエミュレーション」を構想しています。

2026年3月23日 · 1 分

Browser Use CLI 2.0 — Playwrightを超える次世代ブラウザ自動化ツール

Browser Use CLI 2.0 がリリースされた。Playwright より速く、コストも半分。起動中の Chrome にそのまま接続できるこのツールは、AI エージェント時代のブラウザ自動化の本命になりそうだ。 Browser Use とは Browser Use は、AI エージェントのためのブラウザ自動化フレームワーク。GitHub スター数は 85,000 超で、Python ベースのオープンソースプロジェクトだ。 従来の Playwright がセレクタベースで要素を特定するのに対し、Browser Use はページ上のインタラクティブな要素をインデックスで管理する。セレクタのメンテナンスが不要で、AI エージェントとの相性が良い。 CLI 2.0 の主な特徴 2026年3月22日にリリースされた CLI 2.0 では、以下の改善が入った。 処理速度 2 倍・コスト半減 バックグラウンドデーモンがブラウザをコマンド間で維持するため、コマンド実行あたりのレイテンシは約 50ms。毎回ブラウザを起動する Playwright と比べて圧倒的に速い。 起動中の Chrome に接続可能 3 つのブラウザモードをサポートする: マネージド Chromium: ヘッドレスで自動管理 リアル Chrome: 既存のユーザープロファイル(Cookie、セッション)をそのまま利用 クラウドブラウザ: Browser Use Cloud API 経由 リアル Chrome モードでは、ログイン済みのセッションをそのまま使える。API が提供されていないサービスでも、ブラウザを直接操作して自動化できる。 AI コーディングツールとの統合 Claude Code、Cursor など主要な AI コーディングツールから直接利用できる。ターミナルからブラウザを操作するワークフローがシームレスになった。 セットアップ 1 2 3 4 5 6 7 8 # インストール(pip install browser-use でも可) uv pip install browser-use # Chromium のインストール browser-use install # 環境チェック browser-use doctor なぜ CDP 直叩きが効くのか Browser Use の高速性の鍵は、Chrome DevTools Protocol(CDP)を直接利用している点にある。 ...

2026年3月21日 · 1 分

DuckDB・Apache Arrow・Parquetの関係を整理する:列指向エコシステムの全体像

DuckDB は「SQLite の分析版」とも呼ばれるインプロセス OLAP データベースです。Apache Arrow、Apache Parquet と同じ列指向の思想を持ちますが、三者の役割はそれぞれ異なります。この記事では DuckDB のアーキテクチャ、Arrow・Parquet との関係、そして従来の行指向 DB との違いを整理します。 Parquet・Arrow・DuckDB の位置付け Parquet Arrow DuckDB 何か ディスク上の列指向ファイル形式 インメモリ列指向データフォーマット(仕様+ライブラリ) SQL データベースエンジン レイヤー ストレージ(ディスク) データ交換(メモリ) クエリ実行(エンジン) 目的 効率的な永続化・圧縮 アプリケーション間のゼロコピーデータ交換 SQL クエリの実行・最適化 三者は列指向エコシステムの異なるレイヤーを担っており、補完関係にあります。 [ディスク] Parquet ファイル(列指向・圧縮済み) ↓ 読み込み(必要な列だけ) [メモリ] Arrow フォーマット(列指向・ゼロコピー) ↓ クエリ実行 [エンジン] DuckDB(ベクトル化 SQL 実行) Parquet は「データの保存形式」、Arrow は「メモリ上のデータの並べ方の規格」、DuckDB は「SQL を実行するエンジン」です。三者とも列指向という共通思想を持つため、組み合わせるとデータ変換のオーバーヘッドがほぼ発生しません。 DuckDB の高速性を支える3つの柱 1. 列指向ストレージ 行単位ではなく列単位でデータを格納します。分析クエリ(SUM, AVG, GROUP BY など)で必要な列だけを読み込むため、I/O が効率的です。 2. ベクトル化実行エンジン 1行ずつではなく、列のチャンク(ベクトル)単位で処理します。これにより CPU キャッシュのヒット率が上がり、SIMD 命令も活用できます。 3. 自動並列化 マルチコアを自動的に活用し、クエリを並列実行します。ユーザー側で並列化の設定を意識する必要はありません。 ...

2026年3月19日 · 3 分

ForceMemo: GitHub アカウントを乗っ取り Python リポジトリにバックドアを仕込む新型攻撃

2026年3月上旬から、GitHub アカウントを侵害して Python リポジトリに悪意あるコードを注入する「ForceMemo」と呼ばれる大規模攻撃キャンペーンが確認されています。force-push によるコミット履歴の書き換えと、Solana ブロックチェーンを利用した C2(Command and Control: 攻撃者がマルウェアに指令を送る仕組み)通信という巧妙な手法が特徴です。 攻撃の概要 ForceMemo は、以下の流れで Python プロジェクトを侵害します: GitHub アカウントの侵害 — GlassWorm と呼ばれる情報窃取マルウェアが VS Code / Cursor 拡張機能から GitHub トークンを抽出 コードの改ざん — 侵害したアカウントで setup.py、main.py、app.py、manage.py 等に難読化されたマルウェアを注入 痕跡の隠蔽 — force-push でコミット履歴を書き換え、タイムスタンプを維持することで改ざんを検知困難に C2 通信 — Solana ブロックチェーンのメモ機能を使ったコマンド&コントロール通信 GlassWorm による初期侵入 攻撃の起点となる GlassWorm は情報窃取型マルウェアで、VS Code および Cursor の拡張機能を経由して感染します。窃取対象となる GitHub トークンの格納先は多岐にわたります: VS Code / Cursor 拡張機能のストレージ git credential fill の出力 ~/.git-credentials ファイル GITHUB_TOKEN 環境変数 窃取されたトークンを使って正規のアカウントとしてリポジトリにアクセスし、コードを改ざんします。 force-push による履歴改ざん 通常のコミットであれば git log で変更履歴を追跡できますが、ForceMemo は force-push を使ってコミット履歴自体を書き換えます。さらにタイムスタンプも維持するため、リポジトリのメンテナーやユーザーが改ざんに気づきにくい構造になっています。 ...

2026年3月19日 · 1 分

6ヶ月でAIエンジニアになるロードマップ — 無料リソースだけで学ぶ完全ガイド

この記事では、Python基礎からLLM/RAG開発、MLOpsまでを6ヶ月で学ぶロードマップを、すべて無料のリソースで紹介する。各月のゴールと具体的な教材リスト付き。 AIエンジニアの求人は前年比143%増加している。米国での平均年収は約17万5,000ドル。インドでは10件の求人に対して1人しか適格な候補者がいない状況だ。 学位は不要。ブートキャンプも不要。必要なスキルを学ぶためのリソースはすべて無料で公開されている。この記事では、AI分野のコンテンツクリエイターであるNav Toor氏が提唱する6ヶ月のロードマップを紹介する。1ヶ月ずつ、6つのフェーズで構成されている。 Month 1: Python とプログラミング基礎 すべてのAIフレームワーク、ライブラリ、ツールはPythonの上に構築されている。このステップを省略したり、急いで済ませたりしてはいけない。 学ぶべき内容: 変数、関数、ループ、条件分岐、データ構造(リスト、辞書、セット)、オブジェクト指向プログラミング、ファイル操作、エラー処理、Git/GitHub の基本。 リソース Python for Everybody(Dr. Chuck, ミシガン大学) — YouTubeとCourseraで無料公開。史上最も人気のあるPythonコース CS50P: Introduction to Programming with Python(Harvard, David Malan) — YouTube で無料。ハーバード品質、前提知識不要 Automate the Boring Stuff with Python(Al Sweigart) — オンラインで無料閲覧可能。初日から実践的なPython Git and GitHub for Beginners(freeCodeCamp) — YouTube で無料。1時間で必要な知識をカバー マイルストーン: CSVを読み込み、データを処理し、結果を出力するPythonスクリプトを書ける。GitHubアカウントに3つ以上のプロジェクトがプッシュされている。 Month 2: 数学と統計 数学の学位は不要だ。モデルがなぜ動くのか、うまくいかないときにどう対処すべきかを理解できる程度の数学で十分だ。 学ぶべき内容: 線形代数(ベクトル、行列、内積、固有値)、微積分(微分、勾配、連鎖律)、確率(ベイズの定理、分布)、統計(平均、分散、仮説検定、回帰)。 リソース 3Blue1Brown: Essence of Linear Algebra — YouTube で無料。16本の動画。史上最高の数学ビジュアルコンテンツ 3Blue1Brown: Essence of Calculus — YouTube で無料。同じクオリティと明快さ Khan Academy: Statistics and Probability — 無料。包括的。自分のペースで学習可能 MIT 18.06: Linear Algebra(Gilbert Strang) — MIT OCW で無料。大学講義のゴールドスタンダード StatQuest with Josh Starmer — YouTube で無料。専門用語なしで統計を解説 マイルストーン: 勾配降下法を直感的に理解できる。損失関数の役割と、行列乗算がニューラルネットワークで重要な理由を説明できる。 ...

2026年3月18日 · 2 分