OpenAIのmacOSアプリ署名が北朝鮮に狙われた全経緯

Axiosライブラリの汚染が、ChatGPTデスクトップアプリの「信頼の証明書」に到達していた。被害はなかった——と、OpenAIは言う。

OpenAIのmacOSアプリ署名が北朝鮮に狙われた全経緯
OpenAI

Axiosライブラリの汚染が、ChatGPTデスクトップアプリの「信頼の証明書」に到達していた。被害はなかった——と、OpenAIは言う。


macOSアプリの署名基盤が汚染された

OpenAIが4月10日にセキュリティ報告を公開した。世界最大のAI企業が、サプライチェーン攻撃というありふれた手口にやられた——という話だ。

事の発端は3月31日。JavaScriptの定番HTTPクライアントライブラリAxiosnpmパッケージが、北朝鮮系の攻撃グループによって乗っ取られた。メンテナーのアカウントが侵害され、バージョン1.14.1と0.30.4に悪意ある依存関係「plain-crypto-js」が注入された。この汚染されたバージョンがnpmレジストリ上に存在したのは、わずか約3時間。だが、週間1億回以上ダウンロードされるライブラリの3時間は、途方もなく長い。

OpenAImacOSアプリ署名用GitHub Actionsワークフローは、その3時間の窓に引っかかった。署名ワークフローが汚染版Axiosをダウンロードし、実行したのだ。

OpenAIの報告によれば、このワークフローはChatGPT Desktop、Codex、Codex CLI、Atlasといったアプリの署名・公証に使う証明書にアクセスできる状態だった。

つまり、攻撃者がこの証明書を盗み出せていれば、「OpenAI公式」を名乗る偽アプリを作成し、macOSセキュリティ機構をすり抜けさせることが理論上は可能だった。ユーザーのMacが「このアプリはOpenAI製です」と認識してしまう。そのシナリオが、一瞬だけ現実味を帯びた。

インシデントタイムライン
3月31日 00:21 UTC
Axiosの汚染版(v1.14.1 / v0.30.4)がnpmに公開。メンテナーアカウントが北朝鮮系グループUNC1069に侵害されていた
3月31日 ~03:20 UTC
汚染版が検出・削除。公開から約3時間の窓
攻撃窓:約3時間
3月31日(同日)
OpenAIのmacOSアプリ署名用GitHub Actionsワークフローが汚染版Axiosをダウンロード・実行。署名証明書にアクセス可能な状態だった
4月10日
OpenAIがセキュリティ報告を公開。証明書の流出は「なかった可能性が高い」と結論。証明書の更新・失効措置を発表
5月8日(予定)
旧証明書が完全に失効。旧バージョンのmacOSアプリは新規ダウンロード・初回起動がブロックされる
要アップデート
時刻はUTC基準(日本時間はUTC+9時間)。出典:OpenAI公式セキュリティ報告(2026年4月10日)

「被害なし」は本当か

OpenAIは、ユーザーデータへのアクセス、システムや知的財産への侵害、ソフトウェアの改ざん、いずれも確認されていないと断言している。署名証明書についても、ペイロードの実行タイミングやジョブの順序、その他の軽減要因から、証明書の流出はなかった可能性が高いと結論づけた。

ただし「可能性が高い」と「なかった」は違う。OpenAI自身もその差をわかっているからこそ、証明書を侵害されたものとして扱い、失効と更新を進めている。第三者のデジタルフォレンジック企業を起用し、Appleとも連携して旧証明書での新規公証をブロックした。

パスワードやAPIキーへの影響はなく、iOS・Android・Windows・Web版のアプリも影響を受けていない。今回の問題はmacOSアプリの署名プロセスに限定される。

ユーザーが取るべきアクションはシンプルだ。macOS上のChatGPT Desktop、Codex App、Codex CLI、Atlasを最新版に更新すること。5月8日以降、旧バージョンはアップデートもサポートも停止され、動作しなくなる可能性がある。

根本原因は「基本の欠如」だった

報告書の急所は、根本原因の説明にある。OpenAIは原因を「GitHub Actionsワークフローの設定ミス」と特定した。

具体的には、ワークフロー内のアクション指定にフローティングタグ(バージョンタグ)を使用しており、特定のコミットハッシュにピン留めしていなかった。さらに、新しく公開されたパッケージに対するminimumReleaseAge(最低公開経過日数)も設定されていなかった。

これは、セキュリティの世界では「初歩」にあたる対策だ。コミットハッシュのピン留めは、依存先の中身が知らないうちに変わることを防ぐ。minimumReleaseAgeは、公開直後のパッケージを自動的に取り込まないようにする安全弁として機能する。どちらかが設定されていれば、今回のインシデントは防げていた。

CI/CDパイプラインのセキュリティは、しばしばプロダクトコードほどの注意を受けない。しかしビルドパイプラインは、コードが「信頼できるもの」に変わる場所だ。そこが崩れれば、末端のすべてが揺らぐ。

評価額8500億ドルを超えるAI企業が、タグをハッシュにピン留めしていなかった。この事実だけで、ソフトウェアサプライチェーンセキュリティの現状がどれほど脆弱かを物語っている。

北朝鮮の影とAxios事件の全体像

今回の攻撃は、OpenAIだけを狙ったものではない。Google脅威インテリジェンスグループ(GTIG)は、Axiosの侵害を北朝鮮系の攻撃グループUNC1069の仕業と特定した。Microsoftも同じ活動を「Sapphire Sleet」として追跡しており、暗号通貨の窃取を主な動機とする国家支援型アクターだと分析している。

攻撃者はAxiosのメンテナーアカウントを乗っ取り、登録メールを攻撃者管理のProtonMailアドレスに変更。悪意あるバージョンを正規のリリースとして公開した。挿入されたマルウェアWindowsmacOSLinuxの全プラットフォームに対応する遠隔操作型トロイの木馬RAT)「WAVESHAPER.V2」だった。

Wizの推計によれば、Axiosクラウドおよびコード環境の約80%に存在する。3時間という短い窓でも、影響範囲は広大だ。GTIGのチーフアナリスト、ジョン・ハルトクイストは「全容はまだ不明だが、侵害されたパッケージの人気を考えれば、広範な影響が予想される」と述べている。


macOSユーザーが今すべきこと

対処は明確だ。OpenAImacOSアプリを使っているなら、アプリ内のアップデート機能か公式リンクから最新版をインストールすること。対象アプリと最低必要バージョンは以下の通り。

ChatGPT Desktopはバージョン1.2026.051以降、Codex Appは26.406.40811以降、Codex CLIは0.119.0以降、Atlasは1.2026.84.2以降が、新しい証明書で署名されたビルドになる。メール・メッセージ・広告経由のインストーラーには応じず、公式チャネルからのみ更新してほしい。

macOSアプリ 最低必要バージョン
アプリ 新証明書の最低バージョン
ChatGPT Desktop1.2026.051
Codex App26.406.40811
Codex CLI0.119.0
Atlas1.2026.84.2
5月8日以降、上記バージョン未満のアプリはアップデート・サポートが停止され、動作しなくなる可能性あり。アプリ内更新または公式リンクから最新版を取得すること

5月8日に旧証明書が完全に失効すれば、古いバージョンのアプリは新規ダウンロードも初回起動もmacOSにブロックされる。30日間の猶予は、十分な余裕に見えて、忘れた頃に閉まる扉でもある。


信頼の連鎖は、最も弱い環で切れる

今回のインシデントで実害は確認されていない。OpenAIの対応も、発覚から10日後の公開という点で速いとは言えないが、技術的な詳細を包み隠さず開示した姿勢は認めるべきだろう。だが、この事件が残す問いは消えない。

AIの安全性が語られるとき、議論の中心はモデルの暴走やハルシネーションだ。しかし現実の脅威は、もっと地味な場所に潜んでいる。ビルドパイプラインの設定ファイル。npmの依存関係ツリー。誰も読まないpostinstallスクリプト。最先端のAIを作る会社が、最も古典的な攻撃ベクトルに足をすくわれた。

信頼の連鎖は、最も強い環ではなく、最も弱い環で強度が決まる。OpenAIにとってその弱い環は、浮動タグひとつだった。


参照元

関連記事

Read more

Linux 7.0、Zen 3の誤検知エラーを土壇場で抑制

Linux 7.0、Zen 3の誤検知エラーを土壇場で抑制

Linux 7.0安定版のリリースが予定される当日、AMD Zen 3のユーザーを長らく悩ませてきた誤検知のハードウェアエラーを黙らせるパッチが、土壇場で送り込まれた。原因はハードウェアではなかった。 リリース当日の駆け込みパッチ Linux 7.0安定版のリリース当日、AMDのマシンチェック例外(MCE)ドライバに対する修正パッチが、ギリギリのタイミングでLinus Torvaldsへ送られた。送り主はx86メンテナのIngo Molnar。件名は素っ気なく、「Zen3クライアントで発生する誤ったハードウェアエラーをフィルタする」とだけ書かれていた。 変更行数はたった8行、対象ファイルは arch/x86/kernel/cpu/mce/amd.c の一か所のみ。リリース直前にカーネルへ入れるにしては、あまりに慎ましい修正だ。だが、この8行の裏には、Ryzen 5000シリーズのユーザーが抱え続けてきた不安があった。 Linux 7.0 直前パッチの概要 送信者Ingo Molnar(x86メンテナ) 宛先Linus Torvalds 件名x86/mc