サーバーも狙われる 〜RFI攻撃によるボットの感染〜:ITpro

PHPのリモートファイルインクルードを使った攻撃のお話です。

サーバーを攻撃する手法の一つにリモート・ファイル・インクルード(以下,RFI)攻撃がある。RFIスクリプト言語PHPで作成されたWebアプリケーションのぜい弱性を突くことで,リモートからWebページに攻撃コードを挿入し実行させる攻撃である。攻撃者は悪意のあるURLリクエストをWeb サーバーに送るだけで,サーバーから情報を盗み出したり,データを改ざんしたりできる。ボットを埋め込む方法としても使われるため,注意が必要である。

そういえば某所で某人が検索すれば脆弱性のこってるサイトイパーイ!って言ってたなw

最新のぜい弱性を調査し,ぜい弱性があるサイトを検索サイトから調査する

httpdとかのプロセスでApacheと同一ユーザだったら見分け付かないだろうなぁ。

フェイク・プロセスを作成する

構築側からすれば怪しさ100%だが、何をやっているか検知する側やユーザにとっては何してるかわからないだろうな。

コードを難読化して検知されないようにする

へぇーサーバ感染型ボットってPerlで書かれた物が多いんだ。

RFI攻撃で感染するボットはPHPで記述されたものだけとは限らない。他のスクリプト言語で作成されたボットが送り込まれる可能性もある。実は,サーバーに感染するボットはPHPよりもPerlで作成されたものの方が多い

対策方法は以下だけではないが、全体としてよりセキュアな環境を準備すべきだろう。

対策は,PHPの設定ファイルであるphp.iniファイルでallow_url_fopen, allow_url_includeをオフにすることである。これによりリモートのファイルを読み込まなくなり,RFI攻撃は成功しなくなる。Webアプリケーションの仕様でこの設定をオフにできない場合は,include()など外部ファイルを読み込ませる関数に与える文字列を検査し,読み込む必要がない文字列を排除することで対処できる。

screenshot