Macに深刻な脆弱性が発生

脆弱性は大きな問題に発展する可能性が低い軽微なものから、システムの乗っ取りや破壊につながりうる深刻なものまで、いくつかのレベルに分類することができますが、今回macOS High Sierra(macOS 10.13 -10.13.1)に発見された脆弱性は特に深刻かつ致命的なものでした。

その脆弱性とは、パスワードなしで「root」の権限を行使できるというものです。macOSでは、重要なシステム設定を変更するときやアプリをインストールするとき、ダイアログを表示して「管理者」のユーザID/パスワードを確認しますが、rootはいわば"管理者のなかの管理者"、システム上のありとあらゆるファイルに対し読み書きや変更/削除といった処理を制限なしに実行できる特別な存在です。パスワードの覗き見やシステムの破壊など、造作もありません。それが野放しだったわけですから、どれほど深刻だったか理解できることでしょう。

今回の脆弱性についてAppleの動きは早く、対象のMacに自動ダウンロードされる「セキュリティアップデート 2017-001」を問題発覚からほどなく公開したため、すでに問題は収束しています。しかし、なにがどのように危険なのか完全に理解しているMacユーザは意外に少数かもしれません。rootという存在がなぜmacOSにあるのかは他の記事(リンク)を参照いただくとして、ここではなぜ「管理者」が必要か、「管理者」とどう付き合っていくべきかを説明してみます。

  • ユーザ欄に「root」と入力するだけ、パスワード不要でrootとして権限行使できる脆弱性が発見されました(現在は対策済)

最初に登録したユーザが「管理者」

Macをセットアップするとき、ひと組のユーザIDとパスワードを必ず登録します。ほとんどのMacユーザは、そのユーザアカウントを使いふだんの作業を行っているのではないでしょうか。意識する機会は少ないかもしれませんが、このユーザアカウントこそMacにおける「管理者」です。

ややこしい話ですが、この「管理者」はrootと同等の権限を行使できるものの、rootとは明確に異なります。macOSにrootは存在しますがパスワードを持たず(設定可能なものの非推奨)、システムにログインすることはできません。それではシステム管理上不都合があるため、一般ユーザのうち一部を「管理者」とし、必要に応じてrootと同等の権限を行使できるようにしたわけです。重要な変更を行うときダイアログが現れてパスワードの入力を求めるのは、その確認という意味合いです。

ふだん何気なく利用している最初に登録したユーザアカウントですが、パスワードが漏えいすると管理者権限が行使されるという点では危険な存在です。管理者権限を持つユーザは慎重に扱い、一般ユーザに対し安易に管理を許可しないことを徹底しましょう。

  • 最初に登録したユーザは「管理者」としての権限が与えられます(無効化はできません)

  • 管理者の確認が必要なときにダイアログを表示し、パスワードの入力をもって許可されたものとみなします

「ディレクトリユーティリティ」の役割

日常のシステム管理は「管理者」が担うことがmacOSの運用方針ですが、rootを有効にすることも可能です。そのとき利用するアプリが「ディレクトリユーティリティ」で、Finderを使い「システム」→「ライブラリ」→「CoreServices」→「Applications」の順にフォルダを開くと起動できます。

このアプリは、macOSでつねに稼働している「LDAP」というディレクトリサービス(ユーザ名やパスワードなどの情報を動的に管理/参照できる機構)に直接アクセスするときに利用します。macOSの初期設定ではrootにパスワードがないため、一般ユーザのようにログインすることはできませんが、このアプリを使いパスワードを設定することでログインが可能になります(rootの有効化)。

ごく普通のMacユーザがこのアプリを利用する機会はほとんどなく、ユーザ管理はシステム環境設定「ユーザとグループ」パネルを利用すればじゅうぶんですが、macOSというシステムの根幹にこのような機構があることを知っておいて損はありません。

  • ディレクトリユーティリティ上でrootは「System Administrator」として表示されます

使わないアカウントを無効化する

今回発見されたmacOSの脆弱性は、ゲストユーザ(機能は限定されるがパスワードなしでログインできる特殊なユーザ)でも実行できるものでした。Macに直接触れることさえ可能な状況であれば、誰でもrootとして振る舞えるということになるので、非常に危険です。ふだんゲストユーザを使う機会がないのであれば、無効化しておくほうが無難でしょう。

  • 使う予定のないユーザアカウントは無効化しておきましょう

最新のセキュリティアップデートを適用する

rootを有効化しない、むやみに「管理者」を増やさない、ゲストユーザなど使う予定のないユーザアカウントは削除/無効化しておくことは、管理者権限にかかわる脆弱性につけ込まれない第一歩です。しかし、今回発覚した脆弱性はユーザの権限管理を徹底したところで防ぎきれるものではなく、その意味で限界があります。

脆弱性による被害を未然に防ぐには「穴」を塞ぐこと、つまり対策を講じたパッチ(ソフトウェアアップデート)を早急に適用することも重要です。自動ダウンロードされないセキュリティアップデートもありますから、App Storeから通知があった場合は先延ばしにせず、できるだけ早く適用しましょう。

  • 再びキーボードが表示されますセキュリティアップデートを先延ばしにしてはいけません