PS Vitaで任意のコードを実行できるネイティブexploit 3.18向けに公開へ





wololo.netで、Acid_Snake氏がネイティブVitaハッキングのリリース準備をしていることを示唆しています。

先日PSP exploitを大量に流出させやらかしてしまったAcid_Snake氏ですが、彼曰く「qwikrazor87氏がシーンをぶっ壊したので手伝ってやった。いい機会なのでePSP開発から足を洗ってネイティブVitaハッキングに取り組む」決意をしたそうです。世界には他にも同じePSP開発に取り組んでいた人たちが大勢いることを全く顧みず、さも自分達だけがすべてを決めているかのような振る舞いは…まあ、それはいいとして、彼の記事によるとPS Vitaのネイティブexploitをリリースする準備をどうやら計画しているようです。

Acid_Snake氏の記事にはいろいろ技術的な話も書かれていますが、全部翻訳すると私の寝る時間が無くなるので要約だけしておきます。

PS VitaでePSP(PSPエミュレータ)ではないところで任意のコードを実行するというのがVitaのネイティブハッキングです。ネイティブハックとはPSPのゲームを起動させて、あくまでもPSP環境でコードを実行するePSPハックとは異なり、VitaのHome画面であるLive Areaから直接Hello Worldを表示するようなものだとイメージしてください。

現時点で調査が進んでいるVitaネイティブハックがどのようなものなのかをAcid_Snake氏が記事にしています。それがどんなものかというと、WebKitに存在する脆弱性を利用するというものです。

WebKit(ウェブキット)はオープンソースのウェブブラウザレンダリングエンジンで、MacのSafariなどにも使われていますが、オープンソースですのでそれ以外のプラットフォームにも移植されています。その一つがPS Vitaなのです。

ちょうどWii UでブラウザのWebKitに存在する脆弱性を利用し任意のコードが実行できるようにするWii U Browser Exploitと同じだと思ってください。Wii UにもWebKitが使われています。

Vitaでネイティブコードを実行できるようにするきっかけとして使われるWebkit exploitは/talkフォーラムではbballing1というハンドルネームを使っているCodeLion氏が中心となった開発チーム”Team mayh3m”がコードネーム”Project Mayhem”として開発していました。

ところが、CodeLion氏によると最近になって次のVitaのアップデート 3.20でソニーがWebkitのアップデートを行い今開発中のexploitを対策してくるという事実を知り(どうやって分かったのかについては非公開のようです)、今回のAcid_Snake氏の記事によりユーザーへ3.18向けのWebkit exploitを準備している事実を周知すると共に、3.20へのアップデートを実施しないよう呼びかけているのです。

つまり、3.20が公開された時点でこのWebkit exploitも公開されます。最初に公開されるのはHello World表示程度かもしれませんが、開発環境もリリースする準備をしているようですので近日中にVitaシーンの流れが大きく変わりそうです。

Vitaネイティブハッキングのコードネーム”Project Mayhem”のMayhemには、”大混乱”という意味があります。”Project Mayhem”でシーンがひっくり返るというニュアンスを込めているのかもしれません。

Tags: , , , , ,

  1. とり’s avatar

    随分前にSKFU氏がホームエリアにあるMPOだったかMGSPWだったかのゲームアイコンのままタイトルだけ書き換えてある画像を公開した事がありましたが、今回のこれはそれに近いものなんですかね?

  2. 173210’s avatar

    今回のはユーザーモードのExploitなので違います。
    例のあれはCMAとかPackage Installerの不具合、あるいはカーネルモードのExploitです。

  3. 173210’s avatar

    >最初に公開されるのはHello World表示程度かもしれませんが、開発環境もリリースする準備をしているようですので近日中にVitaシーンの流れが大きく変わりそうです。
    実際は、彼らが計画を変えなければそういったことにはなりません。
    彼らか作っているのはただのROPコンパイラです。
    ROPコンパイラはROPガジェットを使ったROPチェインを作成するものです。
    ROPガジェットは何らかの命令を実行し、次のROPガジェットを実行するものです。
    つまり、ROPチェインはこのような形になります。
    ROPガジェット→命令→ROPガジェット→命令→…
    このようにROPガジェットが間に入ることにより、かなりの遅延(オーバーヘッド)が発生します。

    しかし、絶対このような形に留まるというわけではありません。
    読み書きと実行が可能なメモリ領域を割り当てられれば、自作のコードを読み込み、ROPから離脱できます。
    それを彼らはユーザーモードでは不可能だと考えていましたが、実際は可能です。
    なぜそれが分かったかというと、UVLoaderにそういった記述があったからです。
    https://github.com/yifanlu/UVLoader/blob/master/load.c

    UVLoaderを移植することができれば、まさに言った通りのものができるでしょう。

  4. siorin’s avatar

    こんにちわ。いつも読ませていただいてます。

    >exploit 3.18向け
    現在3.15のままですが、ファームウェア3.20 が配信される前に3.18へのアップデートを行っておいた方がよいのでしょうか…?

  5. 椎名水澄’s avatar

    webkitの変更が特に行われてなければ3.18以下のvitaでも理論上は使えると思います。

    あ、まもすけさん。毎回書き込み環境変わってすいません。

  6. PSP’s avatar

    任意のファームウエアにアップデートしたいんだけど、どうすればいいですか?

  7. siorin’s avatar

    >webkitの変更が特に行われてなければ3.18以下のvitaでも理論上は使えると思います。

    ありがとうございます。
    3.15のまま様子見したいとおもいます。

Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">