第1回目の任天堂のゲーム機「Wii」のセキュリティについて書いた「Wiiのセキュリティを調べてみた」の反響が良かったので,今回はソニー・コンピュータエンタテインメントの家庭用ゲーム機「PLAYSTATION 3」(PS3)のセキュリティについて書きたいと思います。

 2006年11月に発売されたPS3は,Wiiと同様にインターネットに接続できます。PS3をインターネットに接続することで,ユーザーは新しいシステム・ソフトウエアやゲームの体験版などをダウンロードできることから,すでにPS3をインターネットに接続しているユーザーは多いと思います。

 このようにインターネットに接続される家庭用ゲーム機のセキュリティはセキュリティ技術者として気になりますので,実際にポート・スキャンを行いネットワーク経由の能動的な攻撃に耐えられる設定になっているか調べてみました。

 図1は有名なポート・スキャナであるNmapというツールを使って,PS3に対して全てのポートにTCPポート・スキャンとUDPポート・スキャンを行い,さらにOS推測を行った結果です。MACアドレスの下位3バイトは念のため隠させていただきました。このままではセキュリティ技術者にしか結果がわからないと思いますので,結果を簡単に表1にまとめてみます。


図1 PS3をポート・スキャンしたときの画面
[画像のクリックで拡大表示]

表1 PS3をポート・スキャンした結果
[画像のクリックで拡大表示]

 表1からわかることは,ネットワーク経由で情報を一方的に送り付けることができるポートがTCPでは全くなく,UDPでは0番ポート,68番ポート,1024番ポート,62477番ポート,62486番ポートが開いている可能性が高いということです。UDPの68番ポートは,DHCPサーバーからIPアドレスなどの情報を取得するDHCPクライアントが使用するポートです。0番ポート,1024番ポート,62477番ポート,62486番ポートについては何に使っているのかわかりませんでしたが,62477番ポートと62486番ポートは静的ではなくポート番号が変わることがあります。またOS推測を行った結果,NmapはNetBSDと推測しています。これはPS3のTCP/IPの実装が,NetBSDのTCP/IPの実装に似ていることを意味します。

 ポート・スキャンの結果を見るとPS3では複数のUDPポートが開いている可能性が高いことから,これらのポートに対して攻撃者から悪意のある情報が送り込まれる危険性が考えられます。これらのポートを使用しているプログラムにバッファ・オーバーフローなどのぜい弱性が含まれていると,PS3を操作不能にされたりデータを改ざんされたり,最悪の場合は攻撃者が送り込んだコードを一方的に実行されたりする恐れがあります。

 ちなみにPS3とWiiのポートスキャンの結果を並べたものが表2ですが,PS3の方がWiiよりも開いているポートが多くあることがわかります。開いているポートが多いほど侵入者は多くの種類の攻撃を試みることができるので,Wiiよりも開いているポートが多いPS3の方が攻撃者に狙われやすいと言えます。


表2 PS3とWiiのポート・スキャンの結果
[画像のクリックで拡大表示]

 ただ実際には,多くの人がNAPT(network address port translation)を使って家庭内のローカル・ネットワークにあるPS3をインターネットに接続していることから,インターネット側から直接PS3を攻撃することは容易ではありません。また,これらのポートに対して侵入に成功するような攻撃方法は現時点では見つかっていないことから,今回私が調べた限りの結果としては,PS3はネットワーク経由の能動的な攻撃に耐えられる安全な状態でインターネットに接続されていると言えそうです。

Wiiと同じ問題を抱える

 このようにPS3はネットワーク経由の能動的な攻撃に耐えられる安全な状態なのですが,残念ながらWiiと同じ問題を持っていることが分かりました。それは,PS3が返信するパケットのIPフラグメントIDにWiiと同様の規則性があることです。この規則性によって,PS3を隠れ蓑にしてほかのコンピュータのポート・スキャンができてしまいます。

 第1回でも説明しましたがIPフラグメントとは,一度に送信することができない大きなIPパケットをいくつかに分割して送信する仕組みのことです。分割された各パケットを識別するためにパケットの送信元が割り当てる値(識別子:ID)がIPフラグメントIDであり,IP(Version 4)ヘッダーに埋め込んで送信し,受信側はこのIDを基に断片化されたパケットを再構成します。

 実際にPS3のIPフラグメントIDを調べた様子が図2です。図2にはHping2を使ってICMP Echo RequestパケットをPS3に10回送信し,そのパケットに対してPS3が返信したパケットの情報が表示されています。「id=+1」と表示されていることから,IPフラグメントIDが連番になっていることが分かります。IPフラグメントIDが連番で何が問題なのかと思われるかもしれませんが,このようにIPフラグメントIDに規則性があると,IPフラグメントIDポート・スキャンに利用される恐れがあります。


図2 Hping2でPS3のIPフラグメントIDの規則性を調べたときのログ
[画像のクリックで拡大表示]