Macはスリープ中に何をしているのか? ... 言われてみると気になりますよね (^^
(この記事は、2023年3月8日にKirk McElhearn(https://www.intego.com/mac-security-blog/author/kirk-mcelhearn/)およびJoshua Long( https://www.intego.com/mac-security-blog/author/joshlong/ )によってMac Security Blogに投稿されたWhat does your Mac do when it’s sleeping?の翻訳です)
最近のコンピュータは、使っていなければスリープするように設計されています。お使いのMacをスリープさせると、ディスプレイは消え、ほとんどのコンピュータの動作が停止します。このスタンドバイモードは、電力消費を抑えることを目的としています。しかしお使いのMacは完全に眠ってしまっているわけではなく、実は色々な処理を行っています。
この記事では、Macがスリープする際に何が起きるのか、スリープモードの種類、そしてMacがスリープ中に何が行われているのかを説明します。最後にスリープ中のMacに対して注意しておくべき、セキュリティの問題に触れます。
■Macをスリープさせる方法
お使いのMacは、いくつかの方法でスリープさせることができます。最も簡単な方法は、Appleメニュー > スリープを選ぶことです。お使いのMacのディスプレイは即座に消え、macOSは重要でない処理を一時停止させるための幾つもの動作をバックグラウンドで行います。あるいは、Command-Option-メディア排出キー(お使いのキーボードに該当キーがあれば)を押してもMacをスリープさせられます。ラップトップMacなら、ディスプレイを閉じるのが最も簡単な方法でしょう。
Touch IDのないデスクトップMacあるいはMacBookの場合、電源ボタンを押してもMacをスリープさせられます。Touch ID付きのラップトップあるいはMagic Keyboardで電源/Touch IDボタンを押すと、Macは即座にログイン画面を表示します。ここでEscキーを押すと、画面は消えます。Macを再度使う際には、Touch IDセンサーに正しい指を押し当て続ければお使いのMacがスリープ解除され直前の画面を表示します。
Macを使っていない時にディスプレイが自動で消えるように設定することもできます。お使いのMacによって若干内容は異なりますが、その設定はApple メニュー > システム設定… > ロック画面にあります。デスクトップMacをお使いの場合は、「使用していない場合はディスプレイをオフにする」の隣の時間を選んで指定してください。MacBookの場合は「バッテリ駆動時に使用していない場合はディスプレイをオフにする」と「電源アダプタ接続時に使用していない場合はディスプレイをオフにする」でそれぞれバッテリ駆動時と電源アダプタ接続時の時間を別々に設定できます。
https://www.intego.com/mac-security-blog/wp-content/uploads/2023/03/sleep-settings.png
Montereyのような古いmacOSをお使いの場合、設定の手順は若干異なります。設定は、Appleメニュー > システム環境設定… > バッテリにあります。
スリープしているMacをスリープ解除するには、ディスプレイを開くかキーボード上のキーを押します。
■Macのスリープの種類
ラップトップの場合はスリープ中にバッテリ切れになる可能性があるので、macOSには安全なスリープ機能が搭載されています。ラップトップをスリープさせると、Macは開いているアプリを含めたその状態を保存し、アプリが対応していればその書類も保存されます。この機能により、仮にバッテリ切れになってもデータの損失を防げます。Macを再び使う際には、保存された状態が読み込まれるのです。
ターミナルで利用できるpmsetコマンドを使うと、お使いのMacのスリープ設定を確認し、必要なら設定を変更することができます。 pmset -gを実行すると、下図のような内容が表示されます(この画面は、私のM2 MacBook Airのものです):
https://www.intego.com/mac-security-blog/wp-content/uploads/2023/03/pmset-air.png
こうした設定の内容や変更の仕方については、ターミナルでman pmsetと入力すれば確認できます。お使いのMacがどのようにスリープするのかを知るために、ここで見るべきメインの設定は、hibernatemode(ハイバーネーションモード)です。
Macを安全にスリープさせるために、3種類のハイバーネーションモードが用意されています。
デスクトップMacでデフォルトとなっている hibernatemode 0 では、コンピュータはメモリの内容を維持しています。Macはスリープ解除された際にメモリの内容を使用するため、スリープ中に電源が落ちてしまうとデータを損失します。デスクトップMacを停電や電圧低下が多い地域でお使いで、外部のバックアップ電源として使えるUPS(無停電電源装置)を使っていない場合は、この設定を変更した方が無難でしょう。
ラップトップMacでデフォルトとなっている hibernatemode 3 では、Macはメモリのコピーをディスクに保管し、スリープ中もメモリに電源を供給します。スリープ解除されると、Macはスリープ中に電源が落ちてしまったのでない限りメモリからデータを読み込みます。電源が落ちてしまっていたら、ハイバーネーション用のイメージからデータを読み込みます。
最後に、hibernatemode 25 はターミナルでpmsetコマンドを使ってのみ設定できます。Macはメモリの中身をディスクに保存し、メモリの電源も落とします。スリープ解除されると、Macはハイバーネーション用のイメージからデータを読み込みます。このモードではスリープする際もスリープ解除される際も通常より時間がかかりますが、バッテリの減りは少なくなります。
なお、ラップトップMacがスリープ中にバッテリ容量が50%以下になると、Macは自動的にハイバーネーションになります。
ほとんどの人にとっては、ラップトップMacのバッテリをギリギリまで効率よく使う必要がない限り、デフォルトの状態のまま使用していいれば良いはずです。こうしたハイバーネーションモードにより、Macをスリープ解除すると素早く仕事に戻ることができるということだけ知っていれば、ここで説明したような情報はさほど重要ではありません。
■Macがスリープ中に起きること
お使いのMacは、スリープ中にも色々な処理を行っています。ネットワークアクセスがあったらスリープ解除するように設定していると(ラップトップMacではシステム設定 > バッテリ > オプション…; デスクトップMacではシステム設定 > 省電力)、お使いのMacは「スリープ中」でも活発に動作しています(Intel Macをお使いの場合、この設定は PowerNap と呼ばれます)。
下図のダイアログに表示されている通り、ネットワークアクセスによるスリープ解除が有効な場合はiCloud経由でアップデートされるアプリに対するネットワーク通信をMacが受信できる状態になります。例えば、メール、カレンダー、ノート、メッセージなどのアプリは、Macがスリープ中でもアップデートされます。さらに「見つける」は、お使いのMacがスリープ中でも場所を発信できます。Macに電源アダプタが接続されていれば、Mac App Storeからのアップデートもダウンロードされますし、Time Machineバックアップも実行されます。さらにさらに言えば、バックアップソフトのようなサードパーティのソフトウェアの中にも、処理を実行するためにMacをスリープ解除できるものがあります。
https://www.intego.com/mac-security-blog/wp-content/uploads/2023/03/wake-for-network.png
この機能を無効にすると、電力消費を抑えられます。お使いのバッテリを可能な限り長く使いたければ、この設定を無効にするのも良い考えです。
ネットワークアクセスによるスリープ解除あるいはPowerNapが有効だと、お使いのMacは共有プリンタ、あるいはミュージックアプリなどの特定のリソースを共有することができます。別のユーザがネットワーク経由でお使いのMacに接続し、共有ボリュームをマウントすることもできます。接続を開始すると、ラップトップMacでディスプレイが閉じられていてもMacはスリープ解除されます。
しかし、お使いのMacはスリープ中にもっともっと色々なことをしています。
次のスクリーンショットは、Menus( https://bjango.com/mac/istatmenus/ )が24時間のCPU動作を示したものです。これを見ると、MacBook Airがスリープ中にもCPUの使用率が突発的に上がっていることがわかります。
https://www.intego.com/mac-security-blog/wp-content/uploads/2023/03/cpu-sleep.png
このMacの動作の詳細を知るには、ターミナルで pmset -g log と入力してReturnあるいはEnterキーを押します。非常に長いログに、お使いのMacがスリープ中に起きたことが表示されます。
この情報を見るためのもっと簡単な方法もあります。
Sleep Aid( https://ohanaware.com/sleepaid/ )は、このログを読み込み、そのデータを見やすく表示してくれるアプリです。
https://www.intego.com/mac-security-blog/wp-content/uploads/2023/03/sleep-aid.png
私は、M2 MacBook Airを木曜日の午後2時頃にスリープにし、月曜日の朝にスリープ解除しました。上のスクリーンショットを見ると、日曜日の深夜までスリープしていたことが記録されています。お分かりの通り、このスリープ中に色々なことが起きています。ちなみにSleep Aidを使えば、お使いのMacがスリープしていない時を見つけることができます。それぞれのラインをクリックすることで、プッシュ通知、電源管理、そしてネットワーク処理が起動したことがわかります。
https://www.intego.com/mac-security-blog/wp-content/uploads/2023/03/sleep-aid2.png
こうしたイベントは、場合によっては1分続くこともありますがほとんどが短時間です。Macがhibernatemode 25に設定されていたなら、こうしたイベントは一切起きていないはずです。
当然ながら、こうした全ての処理が電力を消費します。私のMacBook Airのバッテリはスリープ時には満タンでしたが、月曜日の朝に94時間のスリープからスリープ解除した際にはバッテリ残量は84%でした。計算すると、平均で1時間当たり満タンの0.17%ずつバッテリが消費されたことになります。通常の使用においてはたいした問題ではありませんが、旅行中などでお使いのラップトップMacを充電できないまましばらく使わずに保管しなければならないような場合は、再びMacを使うまでできるだけバッテリ残量を残しておきたいと思うはずです。であれば、スリープさせるのではなく電源を切っておくべきでしょう。
■スリープ中のMacに対するセキュリティ
お使いのMacをネットワークアクセスによってスリープ解除できるとなると、そこにセキュリティ上の問題はないのか心配になる人もいるでしょう。
使っているmacOSのバージョンが最新でなく、また古いソフトウェアをインストールしているような場合、技術的に言えば、ネットワーク上でお使いのMacを見つけた誰かが脆弱性を突いてリモートアクセスできるかも知れません。あるいは、あなたを標的にしている誰かが何らかの方法で必要なパスワードを知ってしまったら、お使いのMacで画面共有やファイル共有、リモートログインのようなサービスを利用しているとリモートであなたのMacに接続することができるでしょう。こうしたサービスや他のサービスが有効になっているかは、macOS Ventura以降では システム設定 > 一般 > 共有 で確認できます。古いmacOSバージョンの場合は、システム環境設定 > 共有で確認できます。お使いのMacに攻撃者があらかじめマルウェアを仕込んでいたら、あるいはユーザが意図せずにマルウェアをインストールさせられていたら、そのマルウェアがMacをスリープ解除し、マルウェアの作者にリモートアクセスする機会を提供するかも知れません。
Macに限らずラップトップあるいはノートブックコンピュータをお使いの場合は、ホテルの客室などでスリープ中のパソコンを誰かが使用する “悪意あるメイド攻撃” に注意するべきです。前述のとおり、Macをスリープさせてもデータはシステムメモリ(RAM)に維持され、場合によってはそのようなデータに個人情報が含まれていることがあるでしょう。ハッキングの多くはMacに物理的にアクセスすることで実現されるわけで、強力なパスワードを設定していたとしてもMacを誰もいない場所に放置すればセキュリティ上の危険性が高まります。これまでにも攻撃者がラップトップMacのThunderboltや他の外部ポート経由でRAMからデータを取り出す、いわゆる “DMA(direct memory access)” 攻撃のような物理攻撃が少なからず行われているのです。
敵が洗練された悪意のある開発者で、お使いのMacに物理的にアクセスできたとすると、何も起きずに済むはずがありません。
“悪意あるメイド攻撃”の可能性に不安を感じるなら、あなたが不在の間に誰かがお使いのMacBookのディスプレイを開くと警告を出すDoNotDisturb( https://objective-see.org/products/dnd.html )というアプリもあります。ただし、以前はiPhoneにリアルタイムで警告を表示できるコンパニオンアプリがあったのですが、現在このコンパニオンアプリはApp Storeにありません。なので現状では、MacBookに再度ログインした際に誰かがディスプレイを開いたことをDoNotDisturbが教えてくれるだけです。そのため、MacBookを開いた誰かが完全にログインして警告を消去してしまうような洗練された技術を持っている場合は効果がありません。高度な技術を持った攻撃者がスリープ中のお使いのMacに物理的にアクセスできたとすれば、Mac上からその証拠やデータ漏洩の証拠を全てきれいに消し去ってしまうのも朝飯前でしょう。
旅行中、お使いのMacに攻撃者が物理的にアクセスするかも知れないということが心配でたまらない場合は、常に持ち歩いて目につく場所に置いておくべきです。国によっては国境を越える際、コンピュータを簡単にチェックするために一時的に担当者に渡すよう指示され、渡したコンピュータがどこかへ持って行かれることがあります。非合理的な検査を行ったり場合によっては押収したりと、旅行者の権利を侵害する、あるいは無視するような国に行く場合は、Macは家に置いておいて使い捨てのデバイスを持って行くべきです。
■スリープ中もMacは多くの処理をしています。
まとめると、お使いのMacはスリープ中も多くの処理をしています。Mシリーズチップを搭載するMacの消費電力は小さいですが、ラップトップMacを数日間に渡りスリープ状態で放置するとバッテリが空になる可能性があることに注意してください。私の場合、6時間ごとに1%ずつ減りました。金曜日の午後に仕事を終えて、ラップトップMacの電源を抜いて週末の間は放置したとすると、8から10%のバッテリを消費するでしょう。満タンのバッテリで月曜日の朝を迎えたければ、Macを電源に接続しておくか、システム終了しておく必要があります。
スリープ中のMacに対するセキュリティの懸念は、家、事務所、旅行中など、使用中の環境がどれだけ信頼できて安心できるかで変わってきます。信頼できない環境にあって、かつホテルの客室や検問所を通る時のように見張り続けられないのであれば、使っていない時はラップトップMacをシステム終了しておくのが無難です。このような状況では、お使いのMacに“悪意あるメイド攻撃”を仕掛けられる可能性は常にあるのです。
■お使いのMacは安全ですか?
Mac用のセキュリティソリューションを検討しているなら、ACT2の次のIntego製品ページで機能や目的に合った製品があるかご確認ください:
季節の変わり目、体調管理には十分ご注意ください。
皆様のご健康とご活躍を、心からお祈りしております。
いつもありがとうございます。
株式会社アクト・ツー
Software Product Team