PSP Ver2.0のセキュリティーホール

巷で騒ぎになっているようですが、ここでは別の(画像とビュアーという)観点から語ってみます。

BMPは非圧縮な画像のため、この手のセキュリティーホールが入る余地はほとんど無いですが、
JPEGやTIFFやPNGといった圧縮画像や画像コメント情報があるフォーマットにはセキュリティーホールは沢山あります(言い過ぎかな…)

偽のヘッダ情報と、それに付随した特殊なコード(簡単な例だと特定アドレスへの分岐命令等)を
ファイル内に埋め込むことで、ビューアーがその領域をアクセスすると任意のコードが実行できるようになっちゃいます。

今回ポイントは、
予め壁紙登録しておくPNG画像は画像ではなくプログラムコードであり、
それが壁紙としてVRAM上に表示されている(メモリ上に展開されている)

というところでしょうか。

で、問題のTIFF画像をXMBから読みに行くと、サムネイル画像を展開する際にバッファオーバーフローを引き起こし、
壁紙として表示中のVRAM上のアドレスにジャンプして任意のプログラムを実行させるという手順を踏んでいます。

実際にTIFF画像によって発生させて実行することのできるコードサイズには限りはあるのですが
今回は壁紙登録という裏技(?)を使ってVRAM上のアドレスにジャンプするだけのコードを埋め込んでおけばよいということで
あとはVRAMのメモリ容量が許す限りの任意のコードが実行できるようになります。
(今回のは本体Versionを1.0にすりかえてるだけでしょうか)

うまいことを考えましたね・・・(分かってしまえば簡単ですが)

まぁWindowsでさえこの手の画像関係のセキュリティーパッチは今でも当たってるので
(最近だと2005年7月のJPEG GDI+関係のパッチでしょうか)
PSPに常に最新のセキュリティーを保てというのは酷かもしれません。

が、既に自明になっているセキュリティーホールに関してはちゃんと潰しておいたほうがよいのではないでしょうか?

#せっかく9月頭に2.0のファームリリースしたのだからそれ以前に判明してる分ぐらいは…

あとファームのアップデートが99%で失敗したり、その後の起動時に警告が出るのは
PSPの設定ファイルがVer1.0系とVer2.0系に互換性がないためだと思います。
設定ファイルが壊れてしまうのはよくあること(?)なので
「工場出荷時の設定に戻す」という機能は必要だとは思いますが、これが仇になりましたかね。

と、ここまで書きましたが、この手の質問には特に回答しないので全ては自己責任ということで。

#よく理解せずにやっちゃうと壊れちゃうかもしれませんよ!(と警告はしておく


[今回の総括]
え?JVIEWのセキュリティーホールですか?
そりゃいっぱいありますよ!なんも対策してないので!えぇ(汗

#明日は我が身 (ガクブル
[PR]
by maman_jv | 2005-09-29 13:00 | PSP全般
<< 高速PLC (追記) 昔に書いたJVIEW妄想案が別... >>