JP-Secure Labs Report Vol.06
- 純国産WAF「SiteGuardシリーズ」
- 技術情報
- JP-Secure Labs Report Vol.06
2021年4月26日
JP-Secure Labs
本レポートでは、集計期間中に確認された攻撃・検出の分類に加えて、脅威動向などを取り上げます。
サマリ
検出総数9,000万件超/WordPressのプラグインの脆弱性を悪用した攻撃が急増
ユーザー数40万超の「ロリポップ!レンタルサーバー」で検出した攻撃の総数は、集計期間中(2020年10月~2020年12月)で90,814,679件でした。SQLインジェクションとWordPressの設定ファイル(wp-config.php)を読み取る攻撃が多い傾向はこれまでと変わりませんが、今回の集計期間では、WordPress上でファイルのアップロードや削除、リネームができるプラグイン「FileManager」の脆弱性を悪用した攻撃の検出が目立ちました。本章で解説します。
2020年10月1日 ~ 2020年12月31日
GMOペパボ株式会社「ロリポップ!レンタルサーバー」
- 本レポートは、情報提供を目的としています。
本レポートの記述を利用した結果に生じた損失等について、EGセキュアソリューションズは責任を負いかねます。 - 本レポートのデータをご利用いただく際には、出典元の明記をお願いいたします。
(例 出典:EGセキュアソリューションズ『JP-Secure Labs Report Vol.06』) - 本レポートに記載されている製品・サービス名、社名は各社の商標または登録商標です。
1. 検出統計(全体)
対象サービスのウェブサイトにおいて、集計期間中(2020年10月~2020年12月)に検出した攻撃の総数は、およそ9,080万件(90,814,679)でした。
サイトによる検出数の差異や日毎の変動はありますが、平均すると毎日99万件の攻撃を検出していることになります。
- 対象サービスで稼働しているWAF(ウェブアプリケーションファイアウォール)「SiteGuardシリーズ」の検出情報(検出ログ)をもとに集計しています。
(SQLインジェクションに代表されるウェブアプリケーションの脆弱性を悪用した攻撃やWordPressの脆弱性を悪用した攻撃等を検出・防御した総数です。) - 検出名や分類は、「SiteGuardシリーズ」による検出情報をもとにした表記になっています。
- 対象サービスの利用者によるセキュリティ診断等のアクセスが集計対象に含まれている場合があります。
不正ログインの試行(ログインの失敗)のほか、ウェブ以外の不正アクセス(スパムメールやマルウェア等)の情報は含まれていません。
1.1 攻撃種別の分類(全体)
検出した攻撃を分類すると図1.1-Aのようになりました。これまでの検出傾向と同じですが、半数を占めるSQLインジェクションに次いで、WordPressの設定ファイル(wp-config.php)の読み取りを試みる攻撃の検出が多い状況が続いています。
今回の集計期間では、WordPressのプラグインであるFileManagerの脆弱性を悪用した任意のコード実行の攻撃を多数検出していました。FileManagerは、WordPress上でファイルのアップロードや削除、リネームなどができるプラグインです。FTPを使用しなくてもファイル操作ができる人気のプラグインで、アクティブインストール数は60万を超えています。2020年9月に入り、このFileManagerに任意のコード実行の脆弱性に関する情報が公開され、攻撃が観測され始めました。2020年10月には、国内外で検出が急上昇する波があり、対象サービスにおいても多数の攻撃を検出しました。
図1.1-A 攻撃種別の分類(全体)
攻撃種別 |
検出した件数 |
---|---|
SQLインジェクション |
46,117,441 |
WordPress設定ファイルの読み取り |
20,077,187 |
FileManager(WordPressプラグイン) 任意のコード実行の脆弱性悪用 |
11,220,395 |
OSコマンドインジェクション |
5,398,907 |
クロスサイトスクリプティング |
4,621,869 |
ディレクトリトラバーサル |
1,517,404 |
バッファオーバーフロー |
262,279 |
改行コードインジェクション |
10,803 |
その他の攻撃 |
1,588,394 |
合計 |
90,814,679 |
表1.1-A 攻撃種別の分類(全体)
なお、本レポートでは、WordPress設定ファイルの読み取りとディレクトリトラバーサルの検出を別に分類していますが、「../」を指定してディレクトリを遡ることで、本来アクセスが禁止されているディレクトリ、ファイルにアクセスを試みるという攻撃手法は同じです。
関連記事
WAFによるディレクトリトラバーサル攻撃の防御:
https://siteguard.jp-secure.com/blog/protect-for-directory-traversal/
ウェブサイトで利用しているソフトウェアやフレームワークなどのバージョン、ライフサイクルを把握し、適切に管理・運用することは、脆弱性対策でとても大切なことです。
WordPressなどのCMS(Contents Management System)を使用している場合、プラグインやテーマといった拡張機能の脆弱性を悪用され、本レポートでの検出傾向のように攻撃が急増することがあります。CMSなどのソフトウェアやプラグインは、機能の追加だけでなく、不具合の修正や脆弱性の修正でバージョンアップされることもありますので、最新バージョンを使用するように心がけましょう。
1.2 月別の統計
集計期間の月別の検出数は、図1.2-Aのようになりました。集計期間中の月別の検出数に大きな差はありませんでした。
図1.2-A 月別統計(グラフ)
集計対象(月) |
検出した件数 |
---|---|
2020年10月 |
30,969,506 |
2020年11月 |
28,795,082 |
2020年12月 |
31,050,091 |
合計 |
90,814,679 |
表1.2-A 月別統計(検出数)
10月は、前述のとおり、FileManagerの脆弱性を悪用する任意のコード実行の検出が急増し、検出数が3,000万件を超えました。その後、11月から12月へとFileManagerの脆弱性を悪用する攻撃の検出数は減少し、代わりにWordPress設定ファイルの読み取りを試みる攻撃が12月に向けて増加に転じました。結果、集計期間中の月別の検出数に大きな差が生じることはなく、各月3,000万件前後となりました。
1.3 接続元(国別)の分類
攻撃に使用された接続元IPアドレスを国別で集計した結果が図1.3です。今回の集計においても、アメリカ合衆国を接続元とした攻撃が最も多く、12月に急増したウクライナが2番目となりました。前回レポート(Vol.05)で、2番目に多かったパナマは5番目となり、他のTOP10の国も順番に変動はあるものの、顔ぶれに大きな違いはありませんでした。
図1.3 接続元(国別)の分類
|
国名 |
検出した件数 |
---|---|---|
1 |
アメリカ合衆国 |
18,889,035 |
2 |
ウクライナ |
10,125,422 |
3 |
ロシア連邦 |
7,610,808 |
4 |
フランス |
6,037,209 |
5 |
パナマ |
3,257,803 |
6 |
中華人民共和国 |
2,785,643 |
7 |
ドイツ |
2,453,011 |
8 |
日本 |
1,743,255 |
9 |
カナダ |
1,607,990 |
10 |
イギリス |
985,658 |
― |
その他の国 |
35,318,845 |
|
合計 |
90,814,679 |
表1.3 接続元(国別)の分類
対象サービスのようなレンタルサーバーでは、CMSの管理画面など、攻撃を受けやすいページについて、国外の接続元IPアドレスからのアクセスを禁止する機能が提供されていることがあります。前述の国別の分類のように、日本国外からの不正アクセスは多いと考えられますので、機能やサービスが提供されている場合は有効活用してください。
GMOペパボ株式会社 ロリポップ!/ヘテムル「海外アタックガード」:
https://lolipop.jp/service/specs/attack-guard/
https://heteml.jp/service/attackguard
さくらインターネット株式会社 さくらのレンタルサーバ「国外IPアドレスフィルタ」:
https://help.sakura.ad.jp/360000208641/
2. WordPressに対する攻撃の検出傾向
攻撃の検出傾向(全体)9,080万件について、WordPressに対する攻撃を対象に集計すると、明らかにWordPressを対象にした検出、またはその可能性が高い検出は4,475万件(44,748,444)になりました。
WordPressは、世界的に有名なCMSであり、CMSのシェアの大半を占めると言われています。
本レポートの集計対象のサービスでも、広くWordPressが有効活用されており、Vol.01から引き続きWordPressを対象とした攻撃の検出が多く、全体の半数を占める結果となりました。
- WordPressのコア(本体)に関するディレクトリである「/wp-includes/」やテーマ・プラグインがインストールされる「/wp-content/」、管理ページ「/wp-admin/」のほか、WordPressに関連するファイルへの検出など、WordPressへの攻撃である、またはその可能性が高いと判定できる条件で集計しています。(WordPressのディレクトリ構成や機能を把握した攻撃と考えられる検出を対象に集計しています。)
2.1 WordPressに対する攻撃(攻撃種別)
検出した攻撃を分類すると図2.1-Aのようになりました。10月は、790万件を検出したFileManagerの任意のコード実行を試みる攻撃が一番多い状況でしたが、集計期間中の総計としては、今回もWordPressの設定ファイルの読み取りを試みる攻撃の検出が最も多いという結果になりました。
図2.1-A WordPressに対する攻撃(攻撃種別)
攻撃種別 |
検出した件数 |
---|---|
WordPress設定ファイルの読み取り |
20,077,187 |
FileManager(WordPressプラグイン) 任意のコード実行の脆弱性悪用 |
11,220,395 |
SQLインジェクション |
9,286,458 |
OSコマンドインジェクション |
2,001,481 |
ディレクトリトラバーサル |
966,000 |
クロスサイトスクリプティング |
877,121 |
その他の攻撃 |
319,802 |
合計 |
44,748,444 |
表2.1-A WordPressに対する攻撃(攻撃種別)
WordPressにかぎらず、クロスサイトスクリプティング(XSS)の脆弱性に関する報告は多い傾向にありますが、実際の攻撃では、SQLインジェクションやOSコマンドインジェクションによる情報の窃取など、攻撃者にとって得るものが大きい手法が多用される傾向にあります。WordPressにおいても、データベースの接続情報が記述されている設定ファイル(wp-config.php)の読み取りや今回のFileManagerの任意のコード実行の脆弱性悪用など、同じような傾向にあると考えられます。
これは、クロスサイトスクリプティング(XSS)は危険性が低いということではありません。クロスサイトスクリプティング(XSS)には、攻撃者が罠を用意せずに利用者が標的サイトを閲覧するだけで攻撃を実行できる「持続型XSS」が存在し、被害が拡大するケースがあります。また、罠を経由した「反射型XSS」でもセッションIDの漏洩など、利用者にとって深刻な事態に陥る可能性はありますので、注意が必要であることに変わりはありません。
2.2 WordPressに対する攻撃(検出箇所)
WordPressに対する攻撃について、検出箇所で分類すると図2.2-Aのようになります。これまでの傾向と変わらず、「/wp-content/plugins/」と「/wp-content/themes/」の検出が多く、今回は全体の8割近くを占めました。特に、FileManagerの任意のコード実行の検出が急増したため、pluginsディレクトリの検出が多くなりました。
図2.2-A WordPressに対する攻撃(検出箇所)
検出箇所 |
検出した件数 |
---|---|
/wp-content/plugins/ |
28,323,934 |
/wp-content/themes/ |
7,172,743 |
/wp-json/ |
2,476,720 |
xmlrpc.php |
1,819,377 |
/wp-includes/ |
1,662,326 |
/wp-admin/admin-ajax.php |
1,033,775 |
/wp-content/ |
887,467 |
/wp-admin/ |
105,971 |
その他 |
1,266,131 |
合計 |
44,748,444 |
表2.2-A WordPressに対する攻撃(検出箇所)
3. FileManager 任意のコード実行の脆弱性
本レポートによる検出で目立ったFileManagerの脆弱性について解説します。
FileManagerは、WordPress上でファイルのアップロードや削除、リネームなどができるプラグインで、FTPソフトを使用しなくてもファイル操作ができる便利なプラグインです。しかし、使用しているライブラリの設置に問題があり、アクセスの制限なく、外部から細工した攻撃リクエストを送信することで、簡単に不正ファイルのアップロードやコード実行ができてしまう脆弱性が発見されました。
2020年9月に脆弱性情報が公開されてから、攻撃の実証コード(PoC)も公開され、実際の攻撃が観測されるようになりました。脆弱性悪用が容易であることに加え、任意のコード実行(RCE)という深刻さもあり、JPCERT/CCなどからの注意喚起が相次ぎ、のちに「CVE-2020-25213」が採番され、2020年10月に検出のピークがありました。
この脆弱性は、connector.minimal.phpに細工した攻撃リクエストを送信することで不正なファイルをサイトに設置します。
【設置】 “POST /wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php HTTP/1.1” 200 【実行】 “GET /wp-content/plugins/wp-file-manager/lib/files/hardfork.php HTTP/1.1” 200 |
このように、不正にファイルをアップロードして実行することで、WordPressのサイト上で任意のコードを実行するのです。(実行時のファイル名は、固定ではなく任意のファイル名です。)
この脆弱性は、2020年9月1日に公開されたFileManagerのバージョン6.9で修正されており、connector.minimal.phpが削除されています。そのため、一つの手段として、手動でconnector.minimal.phpを削除することでも脆弱性の悪用を防ぐことができました。Web Application Firewall(WAF)やアクセス制限の設定としては、connector.minimal.phpへのアクセスを禁止するルールを作成することで脆弱性の悪用を防ぐことができます。
なお、プラグインの無効化の場合、プラグイン自体のディレクトリやファイルは残っている状態であり、対策としては不十分です。このようなプラグインの脆弱性悪用では、修正バージョンへ更新する、使用していないプラグインの場合は削除する対策を徹底するようにしましょう。また、プラグインなどの拡張機能について「必要十分」なものを選別し、適切に管理することが大切です。
最近、あるWordPressの管理画面を当社で確認する機会があったのですが、WordPress本体だけでなく、多数のプラグイン、テーマが未更新であるという光景を目にしました。このようなサイトは、機能面での不具合などを抱えているだけでなく、脆弱性を悪用されることによる情報漏洩やページ改ざんのリスクも非常に高いと言えます。運営しているウェブサイトの環境を把握し、運用管理を徹底するようにしましょう。
おわりに
JP-Secure Labs Reportでは、幅広い役割、年齢層の方々に情報をお届けしたいと考えています。
今後も協力会社との連携をさらに深めていき、インシデントの対応事例で分かったことや新たな脅威への対応にも焦点を当てた有益な情報提供に努めて参ります。
WordPressの脆弱性対策については、JP-Secure Labs Report Vol.01とVol.02でセキュリティプラグインを活用した内容を紹介していますので、ぜひ参考にしてください。
JP-Secure Labs Report Vol.01 – Vol.02:
https://siteguard.jp-secure.com/tech/jpsecure-labs/report01-02
SiteGuardシリーズにご興味のある方はこちら