みっきー申す

ITに関する興味関心のまとめ、サイバーセキュリティニュースのまとめ、Twitterで配信中の情報まとめなどを公開します。

WordPressのプラグインFile Managerの脆弱性を悪用した攻撃が確認。70万以上のサイトに影響か。

f:id:micro_keyword:20200903024854j:plain:w400

Wordfenceのブログにて、WordPressプラグインFile Managerに存在していたゼロディ脆弱性と攻撃の悪用情報が明らかになりました。

wordfence.com

当該脆弱性のパッチは、昨日、2020年9月1日(現地時間)に公開されたとのことですが、アクティブインストールの数も700,000件を超えており、早急なバージョンアップが推奨されています。

当記事では、脆弱性に関する情報と周辺情報をまとめ、公開します。


目次


脆弱性の概要と影響範囲

Wordfenceの脅威インテリジェンスチームの発表によると、WordPressプラグインFile Managerにゼロディ脆弱性が存在し、すでに攻撃への悪用を確認しているとのことです。

脆弱性の影響は以下です。

  • 認証されていないユーザがコマンド実行可能
  • 悪意のあるファイルをサイトにアップロードすることが可能
  • 結果、遠隔から任意のコードを実行することが可能になる

パッチはすでに公開されており、最新バージョン6.9へのバージョンアップで対応可能です。

以下、File Managerの公式ページ

wordpress.org

  • 脆弱性の概要
    • プラグインに含まれるライブラリelFinderが脆弱性の起点として使われていた
      • elFinderはオープンソースのファイルマネジャーで、ファイル管理のためのインターフェース作成およびコア機能を提供している
    • elFinderに含まれるconnector.minimal.php.distファイルの拡張子を.phpに直接変更することができる
    • 本来であれば、アクセス制御なしに利用されることが想定されていない当該ファイルに、アクセス制御がかかっていないことが問題
      • つまり、誰にでもアクセスできてしまう
    • このファイルにより、elFinderのコマンドを開始できてしまう
      • 以下に、実行可能なコマンドリストを転記します(割といろいろなことができます)
/**
  * Commands and required arguments list
  *
  * @var array
  **/
 protected $commands = array(
     'abort' => array('id' => true),
     'archive' => array('targets' => true, 'type' => true, 'mimes' => false, 'name' => false),
     'callback' => array('node' => true, 'json' => false, 'bind' => false, 'done' => false),
     'chmod' => array('targets' => true, 'mode' => true),
     'dim' => array('target' => true, 'substitute' => false),
     'duplicate' => array('targets' => true, 'suffix' => false),
     'editor' => array('name' => true, 'method' => true, 'args' => false),
     'extract' => array('target' => true, 'mimes' => false, 'makedir' => false),
     'file' => array('target' => true, 'download' => false, 'cpath' => false, 'onetime' => false),
     'get' => array('target' => true, 'conv' => false),
     'info' => array('targets' => true, 'compare' => false),
     'ls' => array('target' => true, 'mimes' => false, 'intersect' => false),
     'mkdir' => array('target' => true, 'name' => false, 'dirs' => false),
     'mkfile' => array('target' => true, 'name' => true, 'mimes' => false),
     'netmount' => array('protocol' => true, 'host' => true, 'path' => false, 'port' => false, 'user' => false, 'pass' => false, 'alias' => false, 'options' => false),
     'open' => array('target' => false, 'tree' => false, 'init' => false, 'mimes' => false, 'compare' => false),
     'parents' => array('target' => true, 'until' => false),
     'paste' => array('dst' => true, 'targets' => true, 'cut' => false, 'mimes' => false, 'renames' => false, 'hashes' => false, 'suffix' => false),
     'put' => array('target' => true, 'content' => '', 'mimes' => false, 'encoding' => false),
     'rename' => array('target' => true, 'name' => true, 'mimes' => false, 'targets' => false, 'q' => false),
     'resize' => array('target' => true, 'width' => false, 'height' => false, 'mode' => false, 'x' => false, 'y' => false, 'degree' => false, 'quality' => false, 'bg' => false),
     'rm' => array('targets' => true),
     'search' => array('q' => true, 'mimes' => false, 'target' => false, 'type' => false),
     'size' => array('targets' => true),
     'subdirs' => array('targets' => true),
     'tmb' => array('targets' => true),
     'tree' => array('target' => true),
     'upload' => array('target' => true, 'FILES' => true, 'mimes' => false, 'html' => false, 'upload' => false, 'name' => false, 'upload_path' => false, 'chunk' => false, 'cid' => false, 'node' => false, 'renames' => false, 'hashes' => false, 'suffix' => false, 'mtime' => false, 'overwrite' => false, 'contentSaveId' => false),
     'url' => array('target' => true, 'options' => false),
     'zipdl' => array('targets' => true, 'download' => false)
 );

ただし、脆弱性の悪用時も1点制限があり、elFinderが備えるディレクトリトラバーサル機能により、 plugins/wp-file-manager/lib/files/ を超えた範囲でのコマンド実行はできないとのことです。`

  • 確認された手法
    • 実際の攻撃では、先ほど紹介したコマンドのうち upload が利用されていた
    • upload コマンドで、webshellを埋め込んだ画像を含むPHPファイルをアップロードしていた
    • 配置先は plugins/wp-file-manager/lib/files/
    • これまでに攻撃でアップロードが確認されたファイル名

利用状況と日本ユーザへの影響予測

公式サイトからも確認できる通り、File Managerは70万件以上のアクティブインストールが確認されています。

f:id:micro_keyword:20200903025009p:plain

そして、2020年9月3日現在、パッチ適用後のバージョン6.9へアップデートしているのは全体の6.8%とのことなので、まだ、6万5,000件以上のサイトが脆弱な状況であると分かります。

公式サイトからは、日本のユーザがどの程度存在するかはわかりません。

ただ、Googleで「wordpress file manager 日本語」と検索しても、50万件以上ヒットすること。

また、サポートサイトを見る限り、日本語化対応もされていることから、おそらく影響範囲も広いと考えられます。

ja.wordpress.org


WordPress運用者へのススメ

以前にも当ブログでは、WordPressプラグイン脆弱性について取り上げました。

micro-keyword.hatenablog.com

WordPressプラグイン脆弱性といっても、年間で相当な数の情報が上がってくるため、すべてをウォッチし対処するのは現実的に難しいと考えています。

明確に基準を設けているわけではないですが、おおよそ以下のような判断基準で記事にまとめています。

  • 脆弱性が確認されたプラグインが100万件近くインストールされていること
    • 50万件以上であっても日本への影響次第では発信することもある
  • 脆弱性の悪用がすでに確認されていること

また、WordPressに関する脆弱性情報の収集源としては、以下の2つのサイトを活用しています。

もちろん、これらのサイトを見ていれば、網羅できるというわけではありませんが、特にこの2社はWordPressを専門とするセキュリティベンダなだけあって、情報のキャッチアップには優れています。

WordPressホスティングソリューションを提供するKinstaというベンダもこの2社の比較記事をリリースしているくらいですからね。

kinsta.com


まとめ

今回は、脆弱性情報とともに、WordPress関連の脆弱性情報収集についても少し触れました。

私自身、ブログをWordPressに切り替える検討を、随時行っていて、セキュリティ情報をウォッチしていることもあり、WordPress関連の脆弱性は運用負荷に大きく影響を与えるものだと思っています。

そのため、こういった情報が運用者の皆様に役立てばと思い、記載させていただきました。

そういった情報はさておき、兎にも角にも、今回の記事の本質は、File Managerの早期アップデートです。

File Managerの利用が思い当たる方は、記事を確認次第、お早めのアップデートをご検討ください。