Mac OS X USB Keyboard Root Access

SecureMac.com に、『Mac OS X USB Keyboard Root Access』と題されたAdvisoryが掲載されています。



要旨としては、Mac OS Xでは起動時にCommand+Sを押しておくとシングルユーザで起動しますが、実はControl+Cを押しておくことで、initがクラッシュしてしまいシングルユーザモード(と同等のroot shell prompt?)でログインできてしまうというものです。
影響範囲は、Mac OS X 及び Mac OS X Server 10.2.8以前の全てのバージョンです。Pantherには影響しません。
前述のAdvisoryには「Mac OS X 10.2.7以前(恐らく10.2.8も)」の様に書かれていますが、10.2.8も影響します。
また、Mac OS X Serverに関してはAdvisoryに書いてありませんが、これも影響します。



一般的に、シングルユーザモードでの起動を制限する方法としてはAppleの提供しているOpen Firmware Password 1.0.2(参考:Open Firmware Password 1.0.2 に関する情報とソフトウェアのダウンロード(TIL))の使用が有効なのですが、このControl+C押しでの起動では、Open Firmware Password 1.0.2を用いたパスワードプロテクトを回避してシングルユーザモードでログインできてしまいます。



悪意のある者にControl+Cキーを押しながらマシンを起動されてしまうような事態では、既に物理的アクセスをマシンに対して許してしまっているということですから、この問題に対処する必要を感じない方もいるかもしれません。
ですが、もしこの問題に対処したいと考えるのであれば、以下の様にOpen Firmwareでのパスワードプロテクトを有効にして下さい。
ただし、以下の文章の意味が分からない場合には実行しない方が良いでしょう。また、実行する際は全て自己責任でお願いします。

  1. マシンの起動時にCommand+Option+O+Fキーを押しておき、Open Firmwareを呼び出す。
  2. passwordと入力
  3. パスワードを入力するよう求められるので、適宜に入力(これがOpen Firmwareのパスワードとなる)
  4. 確認のために、再度パスワードを入力
  5. setenv security-mode fullと入力
  6. reset-allと入力し再起動

これで、マシンの起動時に必ずOpen Firmwareのパスワードを求められるように設定され、Control+C押し起動でシングルユーザモードに入られることも無くなります。
なお、Open Firmwareのパスワードプロテクトを解除するには、

  1. Command+Option+O+Fキー押しで起動
  2. setenv security-mode noneと入力
  3. Open Firmwareのパスワードを聞かれるので入力
  4. reset-allと入力し再起動

とします。



以下の参考情報にも必ず目を通し、まずはこの問題に対処する必要があるかどうか判断してみて下さい。



なお、この問題が修正されるかどうかについて、Appleからの発表はまだ無いようです。



追記:古暮さんの投稿である[harden-mac:0537] を追加。
推測を交えてらっしゃるとはいえ、かなり納得できました。