【衝撃】パスワード空欄でエンター連打→Mac乗っ取り完了…Appleが土下座した「I am root」事件、たった一つの変数が招いた地獄
パスワードを空欄のままエンターを連打するだけで、世界で最も安全と信じられてきたパソコンが完全に乗っ取られる。2017年、macOS High Sierraで発覚した「I am root」事件は、Apple史上最大級の失態として世界を震撼させた。システム全体を支配できる最強のアカウント「root」が、誰でもマウスを数回クリックするだけで手に入ってしまったのだ。高度なハッキング技術も、悪意あるプログラムも必要ない。あまりにも初歩的で、あまりにも致命的な脆弱性が、天下のAppleの厳重なセキュリティを一瞬で無力化した。
通常、Macのrootアカウントは無効化され、誰も使えない状態に封印されている。管理者権限を必要とする操作でも、ユーザーは自分のパスワードを入力して一時的に権限を昇格させる仕組みだ。ところがこのバグでは、ログイン画面やシステム環境設定の認証ダイアログでユーザー名に「root」と入力し、パスワードを空欄のまま「ロック解除」ボタンを数回押すだけで、その封印が破られた。成功すれば、他人のデータの閲覧やパスワード変更、最悪の場合は内部データの全消去まで可能になる。目の前のMacに触れられる環境であれば、誰でも一瞬でシステムを完全支配できてしまう状態だった。
世界中に宣伝してしまったゼロデイ Twitter暴露が引き起こした祭り
この脆弱性をさらに深刻化させたのは、発見と報告の過程が完全にイレギュラーだったことにある。発見したのはセキュリティの専門家ではなく、一般的なソフトウェア開発者だった。業務中のトラブルシューティングで偶然バグに遭遇した彼は、事態の深刻さを正確に把握しないまま、TwitterでAppleの公式サポートアカウント宛に「ログインボタンを数回押すだけで誰でもrootでログインできる」と全世界に向けて投稿してしまった。
本来、重大な脆弱性は開発元に非公開で報告し、修正パッチが完成するまで公表を控えるのが鉄則だ。対策が整う前に公開すれば、世界中の攻撃者に「今なら簡単に侵入できます」と宣伝するのと同じだからだ。これを「ゼロデイ暴露」と呼ぶ。ツイートは数時間で世界中のテックメディアや開発者の間に爆発的に拡散し、Twitterでは「#iamroot」がトレンド入り。多くのユーザーが半信半疑で自分のMacを試し、実際にロックが解除される様子を画面録画して共有する異常な祭り状態となった。元NSAのエドワード・スノーデン氏も反応するほどの騒ぎとなり、Appleは何の準備期間も与えられないまま、全世界のユーザーが危険にさらされる最悪のスタートを切らざるを得なくなった。
たった一つの変数を確認し忘れた Open Directoryに潜んだ論理エラー
なぜこのような初歩的なバグが許されたのか。Macの認証は「Open Directory」というバックグラウンドのデーモンが管理している。ユーザーがパスワードを入力すると、このプログラムが内部の検証ロジックを呼び出し、パスワードの正否を判定する。通常はより強固な暗号化データである「シャドウハッシュ」を読み込んで検証するが、無効化されているrootアカウントにはそもそもシャドウハッシュが存在しない。取得に失敗したシステムは、古いレガシーなパスワード検証の仕組みに自動的に切り替えて処理を続行した。
ここまでは想定内のフォールバックだった。問題はその先にある。パスワードを比較する文字列比較関数自体は「一致しませんでした」という結果を正しく返していた。にもかかわらず、その結果を受け取る上位のプログラムが、認証結果を記録する状態変数を確認する処理を完全に欠落させていたのだ。システムは「パスワードが一致したか」ではなく、「パスワード比較の処理自体がエラーで落ちずに完了したか」だけを見てしまった。処理がクラッシュしなかったことをもって、認証成功と誤認したのである。テストの答案が合っているかを見ずに、名前が書いてあれば満点にしてしまうようなものだ。C言語ベースの古いコードにありがちな、単純だが致命的な論理エラーだった。
2回押す理由 親切心の自動アップグレードが裏目に出た瞬間
さらに、このバグを成功させるにはエンターを複数回押す必要があった点にも、もう一つの“親切心”が絡んでいる。システムは空のパスワードを正しいと勘違いした後、「このアカウントは古い形式のパスワードを使っているようだ。最新の安全な形式にアップグレードして保存し直そう」と判断した。結果、攻撃者が入力した空の文字列が、rootアカウントの正式なパスワードとしてシステムに上書き保存され、同時に無効化されていたアカウントのステータスも有効に書き換えられた。間違ったパスワードをシステムが勝手に正解として登録してしまったのだ。
1回目の処理はアカウントの更新作業として扱われるため、ログイン自体は一旦拒否される挙動になる。そして2回目に同じ空欄で認証を送ると、もはやrootは「空のパスワードが設定された有効なアカウント」として存在しているため、通常の正規ログインとして完全に突破できてしまう。ユーザーの利便性を追求した自動更新機能が、最悪の形で裏目に出た瞬間だった。古いエラー処理の不備と、親切心の自動化という全く異なる設計思想が、最悪の噛み合い方をした。
なぜテストで見逃されたのか APFS移行と年次リリースの圧迫
この脆弱性が見逃された背景には、2017年のmacOS High Sierraが抱えていた大規模な技術的転換がある。同バージョンではファイルシステムがAPFSという全く新しい独自規格へ強制移行され、暗号化やパスワード保存の仕組みなど認証に関わる根幹プログラムが大量に書き換えられていた。実際、この時期はAPFSのパスワードがヒント欄に平文表示されるなど、認証関連の重大バグが連続して発生しており、品質保証部門のテストや検証が全く追いついていない状態だった。
加えて、テスト設計の死角も指摘される。通常のテストでは「正しいユーザーが正しいパスワードを入れたか」「間違ったパスワードで弾かれたか」といった分かりやすいパターンを重点的に確認する。だが今回の条件は「無効化されたアカウントに対し、レガシー関数を経由し、自動更新が発動する」という極めて特殊な複合条件だった。複数の条件が重なるケースは自動テストをすり抜けやすい。さらにAppleは毎年必ず新しいOSをリリースする厳しいスケジュールを敷いており、十分なテスト時間を確保できなかったことが大きな要因とされている。野心的な変革とスケジュールの圧迫がもたらした、構造的な悲劇だった。
物理だけではない リモートで乗っ取られ、無効化しても蘇るゾンビ化
脅威は目の前のパソコンだけに留まらなかった。米国の公的セキュリティ評価でも最高クラスの深刻度と判定されたこの脆弱性は、特定の条件下でネットワーク越しのリモート奪取も可能だった。Macの設定で「画面共有」や「リモートマネジメント」が有効になっている場合、同じネットワーク内から接続画面を開き、rootと空欄パスワードの連打で遠隔から画面をハイジャックできた。学校や企業のように管理のためにリモート設定を有効にしている環境では、組織全体の情報漏洩リスクが極めて高かった。
さらに厄介だったのが、通常の方法では防げない「ゾンビ化」だ。多くのユーザーは設定画面からrootを明示的に無効化すれば安全だと考えたが、前述の通りバグの本質は空のパスワードで勝手にアカウントを有効化してしまうことにある。いくら設定で無効化しても、再びログイン画面で空欄連打されれば、また有効化されてしまう。倒しても蘇るゾンビのような挙動だった。パッチが配布されるまでの有効な回避策は、ターミナルから強固なパスワードを意図的に設定して上書きを物理的にブロックする方法、あるいは「dsenableroot -d」コマンドでシステムの深い経路から無効化する方法の2つに限られ、一般ユーザーにはハードルが高すぎた。
24時間の緊急パッチが招いた二重の災害
AppleはTwitter暴露からわずか24時間未満という異例のスピードで緊急セキュリティアップデートを配信し、パッチを手動で入れないユーザーには自動的な強制インストールまで実行した。公式声明では「セキュリティは最優先事項ですが、今回はつまずいてしまいました」と普段は見せない謝罪の言葉を発表した。だが、その焦りがさらなる災害を生んだ。
パッチ適用直後、多くのユーザーでネットワーク越しのファイル共有機能が完全に壊れた。認証プログラムの挙動を急激に変更したことで、社内ネットワークなどで使われる認証チケットの整合性が崩壊したためだ。Appleは慌ててこの破損を修復する補足アップデートをサイレントリリースする羽目になった。さらに深刻だったのが、パッチ適用後に最新のOSバージョン10.13.2へアップデートすると、脆弱性が復活してしまったことだ。OSのアップデートファイルの中に、修正前の古いプログラムが混ざったままになっており、せっかくのパッチを上書きしてしまった。安全だと思って更新した途端、再びノーガード状態に戻るという、パッケージングとバージョン管理の典型的なミスで、Appleの品質管理に対する信頼は大きく揺らいだ。
ネットの反応
また古い話を引っ張り出して来たな。でも何度聞いても空欄で管理者になれるのは信じられない
パスワード空でエンター連打とかゲームの裏技かよ。天下のAppleがこれやるのが一番怖い
学校のMac全部これだったのかと思うと管理者の胃に穴が開くレベル。リモートでもいけるとか悪夢すぎる
無効化してもゾンビみたいに蘇るの草。設定画面のオンオフが効かないバグってどういうことだよ
24時間でパッチ出したのは凄いけど、ファイル共有壊してさらに10.13.2で復活はドタバタすぎて笑えない
AIの所感
「I am root」事件が突きつけたのは、どれだけ堅牢な暗号化や複雑な認証基盤を築いても、たった一つの変数の確認漏れで全てが崩れるという現実だ。APFSへの野心的な移行と年次リリースのプレッシャー、レガシーなエラー処理と親切心の自動化が交差する一点に、誰も気づかない小さな亀裂が潜んでいた。Twitterでのゼロデイ暴露が引き起こした世界的な祭り、ゾンビ化するアカウント、緊急パッチが生んだ二重の災害は、技術だけでなく運用やコミュニケーションの脆弱性も露呈した。ソフトウェアが複雑になるほど、見落とされた小さな埃がシステム全体を崩壊させるリスクは高まる。絶対はないという前提で、テストとバージョン管理、そして脆弱性報告の在り方をどう設計するかが、今なお問われている。

