モバイルセキュリティベンダーのZecOpsは1月4日、iOSをターゲットとしたマルウェア向けの新しい攻撃手法の情報を公開した。同社が発見したのは、デバイスのシャットダウンプロセスを偽装して、実際には電源がオフになっていないのに、電源をオフにしたかのように見せかける手法だ。
ZecOpsの研究者が「NoReboot」と名付けたこの手法は、ユーザーによるシャットダウン操作をハイジャックすることで電源オフを中断させる。その上で、ユーザーが電源が入ったままであることに気付くきっかけになる次のような物理的なフィードバックを無効にすることで、電源オフ状態を完全に模倣するという。
- 着信や通知からの呼び出し音
- タッチフィードバック
- バイブレーション
- 画面表示
- カメラインジケーター
デバイスからはこれらの反応が完全に消え失せるため、ユーザーはデバイスが動作しているかどうかの判別を付けることができない。この偽装の手口は、シャットダウンプロセスに使用される「InCallService」と「SpringBoard」、「Backboardd」の3つのデーモンにコードを挿入することで実現できるという。
電源オフ状態を模倣している最中にユーザーが電源オンの操作を行った場合は、電源ボタンの操作を検出してイベントをフックすることによって、カーネルを操作することなくシステムプロセスの再起動を実現する方法が発見されたという。
マルウェアがこの手法を悪用するシナリオとしては、バッテリー残量の低下を偽装するなどデバイスのシャットダウン操作を行わせた上で、ユーザーが電源が切れていると思い込んでいる間にデバイスをリモート操作するといった例が挙げられている。また、この手法を使えばユーザーによるデバイスの再起動をコントロールできることから、再起動による悪意のあるプロセスのリセットを防止することにも利用できるという。
ところで、iOSデバイスには通常のシャットダウン操作のほかに、「音量Up」と「音量Down」のボタンを順番にすばやく押し、Appleロゴが表示されるまで電源ボタンを長押しするという「強制再起動」の操作が用意されている。ZecOpsによれば、この手法ではこの「強制再起動」までは偽装できないという。ただし、意図的にAppleロゴを早く表示させることでユーザーに電源ボタンから手を離させ、これによって強制再起動が行われたと誤認させることは可能と研究者は指摘している。
本稿執筆時点では、NoRebootのような方法を悪用したマルウェアは観測されていないとのことだが、この手法は特別なバグを利用したものではないためパッチを当てることが難しいという。ZecOpsのレポートはセキュリティ研究者やリバースエンジニアリングを学開発者のために公開されたもので、概念実証(PoC)コードがGitHub上で公開されている。