XcodeGhostに続き、またも新たなiOSマルウェアの報告が出ている。
セキュリティベンダーのパロアルトネットワークスが公式ブログで発表した10月4日の記事によると、マルウェアは「YiSpecter」と呼ばれ、2014年11月頃に出現し、中国・台湾を中心として広がったもの。

YiSpecterはiOSシステム内でプライベートAPIを不正使用し、ジェイルブレイク(脱獄)されたiOS端末だけでなくジェイルブレイクされていない端末も攻撃するという。
※ジェイルブレイク(脱獄)
開発者がOSなどにかけた制限を非正規な方法で撤廃し、ユーザー自が自由にソフトウェアを導入・実行できるようにすること。

◎YiSpecterに感染すると?
YiSpecterは、感染したiOS端末で
・任意のiOSアプリをダウンロード、インストール、起動する
・ダウンロードしたアプリを既存アプリに置き換える
・他のアプリ実行をモニタリングして起動時に広告を表示する
・Safariのデフォルトの検索エンジン、ブックマークなどを変更する
・C2サーバーに端末情報をアップロードする

といった動作を行う。

感染してもアプリアイコンがホーム画面に表示されなかったり、システムアプリと同じ名前を騙ったり、また、手動で削除しても自動的に再現してしまうとも言われている。

あげられている感染経路はアプリのインストール、インターネットサービスプロバイダ(ISP)のトラフィック(をハイジャックした感染ルートも確認されている)、SNSワームなど複数にわたる。

となると、注意のしようがないのでは……と思ってしまうが、各セキュリティベンダーは悪意あるトラフィックを遮断する対策をしているし、AppleはYiSpecterなどの攻撃を受ける脆弱性は「iOS 8.4」で修正済みとしている。

ここでは、YiSpecterのニュースを読み解くポイントを見ておこう。

◎プライベートAPIとは?
YiSpecterはプライベートAPIを不正利用するマルウェア
そもそも「プライベートAPI」とは何のことなのだろうか?

iOS用のアプリ開発では、Apple側が用意する「Xcode」(開発環境)、「iOS SDK」(開発キット)を使うことになる。iOS SDKはiOS上でプログラムを開発するためのツールキットで、簡単にわかりやすく、ごくごくざっくりいうと、iOS上でプログラムを動作させるためのツールや情報などの要素がつまっているものだ。API(Application Programming Interface)として扱いやすく準備されており、開発者はそれを使って、たとえば「ここをタップするとこうなる」というような振る舞いを組み立てていくのだ。

このとき、アプリ開発者が「機能としてできること」の範囲は、当然iOS SDKを提供するAppleが用意したものに制限される。言い方をかえると、iPhone/iPadにおいてサードパーティ製のアプリに許可されている動作はAppleにより制限されているということ。これはWindowsなど、ほかのOSでも同様である。

OSのシステムを改ざんする恐れのある動作などは外部のアプリには許可できない。OSを提供する者からすれば、安全に利用するためには、ある程度こうした制限があるのは当然のことだ。

つまり、開発者には公開されていない、iPhone/iPad自身のシステムだけが可能な動作があり、それがプライベートAPIと呼ばれる部分だ。どういう動作がプライベートAPIの部分なのかというと、たとえば、アプリのダウンロードやインストール、実行などの制御などがあたる。

開発者がプライベートAPIを自力で探し出して使うことも可能だが、プライベートAPIを使ったアプリは、Appleの審査でリジェクト(はねられて審査を通らない)されてしまうので、本来ならApp Storeには存在しない。

◎エンタープライズ証明書の悪用
また、感染の仕組みはどうだろう。

XcodeGhostの場合、開発環境自体の改ざんが感染を招く理由ということでわかりやすかったが、今回のYiSpecter、端末がジェイルブレイクされていなくても感染してしまうのはなぜか?
ここでのキーワードは、エンタープライズ証明書だ。

エンタープライズ証明書は、企業の従業員向けなど、クローズトの環境でアプリを配布するために用いるためのもので、Apple Developer Enterprise Programで使用できる環境だ(Apple Developer Enterprise Programは法人のみが購入可能)。

この証明書を用いれば、App Storeを経由しないアプリのダウンロード、インストールがインターネットから可能になる。チーム内での開発や企業が社内アプリを使う場合など、主に業務用で使われる。

エンタープライズ証明書の悪用によるジェイルブレイクされていない(市販のままの)iOS端末へのマルウェアは過去にも発見されている。また、プライベートAPIを使った攻撃の可能性についても指摘されていた。

今回、その2つを使ったマルウェアが出現したということなのだ。

前述のように、Appleも対応済みというので、ユーザー側はiOSのバージョンアップを随時行うことで大きな被害を避けることはできるだろう。

また、YiSpecterに感染しているとされる具体的な中国系のアプリ名もニュースで取り上げられているので、それらの利用を避けることはもちろん、たとえApp Storeからであろうとも、怪しげなアプリには手を出さないことだ。


大内孝子