脆弱性をついた新しいPHPコード実行攻撃により、WordPressサイトが標的に!

0
2401

Secarmaのセキュリティ研究者であるサム・トーマス氏は、以前は危険性が低いと考えられていた機能を使用して、ハッカーがPHPプログラミング言語の重要な非直列化脆弱性を引き起こする、新しい開発手法を発見しました。

新しい技術は、WordPressやTypo3のような一般的なコンテンツ管理システムによって動かされるWebサイトを含み、数十万のWebアプリケーションでリモートコード実行攻撃が可能になるといいます。



脆弱性をついた新しいPHPコード実行攻撃により、WordPressサイトが標的に!

PHPの非直列化またはオブジェクト注入の脆弱性問題は、2009年に最初に文書化されました。攻撃者はunserialize()PHP関数に悪意のある入力を与えることによってさまざまな種類の攻撃を実行できます

この攻撃では、シリアル化によりデータオブジェクトをプレーンな文字列に変換し、関数ヘルププログラムをシリアル化して文字列からオブジェクトを作り直すプロセスにより実行されます。

Thomas氏は、攻撃者がPharアーカイブに対して低リスクの機能を使用し、広範囲のシナリオでunserialize()関数を使用する必要なく、逆シリアル化攻撃をトリガーできることを発見しました。

PHPのアーカイブ形式であるPharファイルは、ファイル操作関数(fopen、file_exists、file_get_contentsなど)がアーカイブファイルにアクセスしようとするたびにシリアル化されない形式ででメタデータを格納します。

これは、直接ファイル操作(file_existsなど)と、XML内の外部エンティティ処理中に発生する間接操作(XXE脆弱性が悪用されている場合など)の両方に当てはまります。

WordPressサイトに対するPHP逆シリアル化攻撃方法

先週のBlack Hatカンファレンスで公開された詳細な記事で、Thomas氏は、この攻撃がWordPressサイトに対してどのように実行され、Webサーバーを完全に制御するための、著者アカウントを使用する方法を実演しました。

攻撃者が悪意のあるペイロードオブジェクトを含む有効なPharアーカイブをターゲットのローカルファイルシステムにアップロードし、ファイル操作機能に「phar://」ストリームラッパーを使用してアクセスします

Thomas氏はまた、攻撃者が有効なJPEGに変換されたPharアーカイブであるJPEGイメージを使用して、脆弱性をついた攻撃をする可能性があることも明らかにしました。
アプリケーション内の特定のWordPressサムネイル機能を使い、権限を持つ攻撃者はメディアアイテムをアップロードおよび変更して、「ファイル_存在」の呼び出しで使用されるパラメータを制御し、非直列化を発生させることができます。

作成されたサムネイルが対象のWordPressサーバーにアップロードされると、攻撃者は別の機能を使用し、”phar://”ストリームラッパーを使ってPharアーカイブと同じ画像ファイルを呼び出し、プログラムがメタデータを逆シリアル化する時に任意のコードを実行します

この脆弱性は、画像ファイルとして渡されたデータに、安全性の欠如したデシリアライゼーションが存在するため、 ‘/wpincludes/post.php’スクリプトの ‘wp_get_attachment_thumb_file’関数内の ‘phar://’ストリームラッパーを介して実行されます。

「Wordpressの投稿を作成/編集できるユーザーは、脆弱なシステムに悪質な画像をアップロードし、任意のPHPコードを実行する可能性がある」

Thomas氏はこの脆弱性を昨年早々にWordPressのセキュリティチームに報告し、同社はこの問題を認識しています。しかし、同社がリリースしたパッチでは、この問題に完全に対処していませんでした。

トーマス氏はまた、2018年6月9日にTypo3の脆弱性を報告し、バージョン7.6.30、8.7.17、および9.3でこの問題に対処されているといいます

この脆弱性の詳細については、Secarmaが発行した詳細な文書を参照してください。