JP-Secure Labs Report Vol.05
- 純国産WAF「SiteGuardシリーズ」
- 技術情報
- JP-Secure Labs Report Vol.05
2020年10月7日
JP-Secure Labs
本レポートでは、集計期間中に確認された攻撃・検出の分類に加えて、脅威動向などを取り上げます。
サマリ
検出総数3億3582万件/2019年(年間)の検出総数を半年で上回る結果に
ユーザー数40万超の「ロリポップ!レンタルサーバー」で検出した攻撃の総数は、集計期間中(2020年1月~2020年6月)で335,819,976件でした。これは、2019年(年間)の検出総数であった278,987,649件を半年間で上回るという結果となっています。新型コロナウイルスの感染拡大による影響で私たちの生活は一変し、ECなどのウェブを通じたサービスの需要が増しました。それに伴い、サイバー攻撃も増加し、ウェブサイトのセキュリティ対策がこれまで以上に重要になっていると考えられます。
全体の検出傾向は変わらないものの、WordPressの設定ファイル読み取りの増加が目立つ
年間を通して、SQLインジェクション攻撃が多い状況はこれまでと変わりませんが、今回の集計期間ではWordPressの設定ファイル(wp-config.php)読み取りを試みる攻撃の検出数の増加が目立ちました。
2020年1月1日 ~ 2020年6月30日
GMOペパボ株式会社「ロリポップ!レンタルサーバー」
- 本レポートは、情報提供を目的としています。
本レポートの記述を利用した結果に生じた損失等について、EGセキュアソリューションズは責任を負いかねます。 - 本レポートのデータをご利用いただく際には、出典元の明記をお願いいたします。
(例 出典:EGセキュアソリューションズ『JP-Secure Labs Report Vol.05』) - 本レポートに記載されている製品・サービス名、社名は各社の商標または登録商標です。
1. 検出統計(全体)
対象サービスのウェブサイトにおいて、集計期間中(2020年1月~2020年6月)に検出した攻撃の総数は、およそ3億3582万件(335,819,976)でした。
サイトによる検出数の差異や日毎の変動はありますが、平均すると毎日185万件の攻撃を検出していることになります。
- 対象サービスで稼働しているWAF(ウェブアプリケーションファイアウォール)「SiteGuardシリーズ」の検出情報(検出ログ)をもとに集計しています。
(SQLインジェクションに代表されるウェブアプリケーションの脆弱性を悪用した攻撃やWordPressの脆弱性を悪用した攻撃等を検出・防御した総数です。) - 検出名や分類は、「SiteGuardシリーズ」による検出情報をもとにした表記になっています。
- 対象サービスの利用者によるセキュリティ診断等のアクセスが集計対象に含まれている場合があります。
不正ログインの試行(ログインの失敗)のほか、ウェブ以外の不正アクセス(スパムメールやマルウェア等)の情報は含まれていません。
1.1 攻撃種別の分類(全体)
検出した攻撃を分類すると図1.1-Aのようになり、半数を占めるSQLインジェクションに次いで、WordPressの設定ファイル(wp-config.php)の読み取りを試みる攻撃の検出が多くなっています。WordPressの設定ファイルを読み取る攻撃は、2019年(年間)で2374万件でしたが、半年間でそれを大きく上回る6783万件という結果になりました。
図1.1-A 攻撃種別の分類(全体)
攻撃種別 |
検出した件数 |
---|---|
SQLインジェクション |
172,057,860 |
WordPress設定ファイルの読み取り |
67,838,011 |
OSコマンドインジェクション |
34,576,485 |
WebDAV等で利用されるメソッドの禁止 |
22,046,788 |
クロスサイトスクリプティング |
12,663,078 |
ディレクトリトラバーサル |
11,672,819 |
バッファオーバーフロー |
5,455,617 |
不正なリクエストヘッダ |
974,856 |
その他の攻撃 |
8,534,462 |
合計 |
335,819,976 |
表1.1-A 攻撃種別の分類(全体)
本レポートでは、WordPress設定ファイルの読み取りとディレクトリトラバーサルの検出を別に分類していますが、「../」を指定してディレクトリを遡ることで、本来アクセスが禁止されているディレクトリ、ファイルにアクセスを試みるという攻撃手法は同じです。そのため、トラバーサル系の攻撃としてまとめた場合、検出総数の約4分の1を占めるという結果になります。
関連記事
WAFによるディレクトリトラバーサル攻撃の防御:
https://siteguard.jp-secure.com/blog/protect-for-directory-traversal/
なお、全体から見た検出数としては7%でしたが、今回もリソースの削除やロック、変更などを行うメソッドの利用が多数検出されました。(WebDAV等で利用されるメソッドの禁止)このほか、前回集計時と比べてバッファオーバーフローの検出に増加が見られました。
- バッファオーバーフロー攻撃の可能性について、「SiteGuardシリーズ」では、長いURLやパラメータの入力があった場合に検出します。
それぞれ2017年、2018年に大きな話題となったWordPress REST API脆弱性の悪用、Drupalの脆弱性悪用(Drupalgeddon 2.0)のほか、Apache Struts 2の脆弱性悪用やShellShockの検出数は全体から見るとごく僅かとなり、その他に含まれる結果となりました。過去の脆弱性を悪用した攻撃については、検出数および統計において減少していくものと考えられますが、ウェブサイトで利用しているソフトウェアやフレームワークなどのバージョン、ライフサイクルを把握し、適切に管理・運用することを心がけてください。
1.2 月別の統計
集計期間の月別の検出数は、図1.2-Aのようになりました。全体的に検出数が増加している傾向でしたが、新型コロナウイルスの対応により、国内で緊急事態宣言が発出された4月~5月にかけて検出数が急激に増加しました。
図1.2-A 月別統計(グラフ)
集計対象(月) |
検出した件数 |
---|---|
2020年1月 |
33,919,892 |
2020年2月 |
43,975,387 |
2020年3月 |
50,516,472 |
2020年4月 |
62,595,921 |
2020年5月 |
102,612,302 |
2020年6月 |
42,200,002 |
合計 |
335,819,976 |
表1.2-A 月別統計(検出数)
5月は、全体の検出数において割合の高いSQLインジェクションとWordPress設定ファイルの読み取りを試みる攻撃の増加がありましたが、OSコマンドインジェクションの検出も集中していました。集計期間中のOSコマンドインジェクションの検出総数は、3457万件でしたが、5月だけで2358万件の検出があり、7割近くの検出がこの1ヶ月に集中しました。
1.3 接続元(国別)の分類
攻撃に使用された接続元IPアドレスを国別で集計した結果が図1.3です。今回の集計においても、アメリカ合衆国を接続元とした攻撃が最も多く、急増したパナマが2番目となりました。2019年(年間)で2番目に多かったチェコについては、2019年12月から減少の傾向にあり、今回はTOP10に入りませんでした。
図1.3 接続元(国別)の分類
国名 |
検出した件数 |
|
---|---|---|
1 |
アメリカ合衆国 |
77,724,367 |
2 |
パナマ |
30,510,269 |
3 |
ロシア連邦 |
21,186,551 |
4 |
フランス |
19,352,954 |
5 |
ウクライナ |
17,206,224 |
6 |
日本 |
16,785,360 |
7 |
オランダ |
15,112,622 |
8 |
ドイツ |
12,941,272 |
9 |
中華人民共和国 |
12,541,991 |
10 |
イギリス |
10,229,210 |
― |
その他の国 |
102,229,156 |
合計 |
335,819,976 |
表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に対する攻撃の検出傾向
攻撃の検出傾向(全体)3億3582万件について、WordPressに対する攻撃を対象に集計すると、明らかにWordPressを対象にした検出、またはその可能性が高い検出は1億6479万件(164,790,621)になりました。
WordPressは、世界的に有名なCMSであり、CMSのシェアの大半を占めると言われています。
本レポートの集計対象のサービスでも、広くWordPressが有効活用されており、Vol.01から引き続きWordPressを対象とした攻撃の検出が多く、全体の半数近くを占める結果となりました。
- WordPressのコア(本体)に関するディレクトリである「/wp-includes/」やテーマ・プラグインがインストールされる「/wp-content/」、管理ページ「/wp-admin/」のほか、WordPressに関連するファイルへの検出など、WordPressへの攻撃である、またはその可能性が高いと判定できる条件で集計しています。(WordPressのディレクトリ構成や機能を把握した攻撃と考えられる検出を対象に集計しています。)
2.1 WordPressに対する攻撃(攻撃種別)
検出した攻撃を分類すると図2.1-Aのようになり、今回はWordPressの設定ファイルの読み取りを試みる攻撃の検出が最も多いという結果になりました。ディレクトリトラバーサルを含めると、トラバーサル系の攻撃として半数近くを占める検出となっています。このほか、SQLインジェクションとOSコマンドインジェクションを多数検出しています。
図2.1-A WordPressに対する攻撃(攻撃種別)
攻撃種別 |
検出した件数 |
---|---|
WordPress設定ファイルの読み取り |
67,838,011 |
SQLインジェクション |
58,228,305 |
OSコマンドインジェクション |
20,702,721 |
ディレクトリトラバーサル |
9,118,530 |
クロスサイトスクリプティング |
4,958,339 |
WordPress xmlrpcDoS |
2,036,272 |
その他の攻撃 |
1,908,443 |
合計 |
164,790,621 |
表2.1-A WordPressに対する攻撃(攻撃種別)
WordPress設定ファイルの読み取りの検出は、4月と5月だけで、およそ3500万件の検出がありました。全体の傾向として検出が多いSQLインジェクションのほか、OSコマンドインジェクションの検出が集中したことで、期間中のWordPressに対する攻撃の検出数が増えました。
なお、割合としては1%ほどでしたが、3月と4月にXML-RPCの実装に起因したWordPresに対するDoS(CVE-2014-5265:Drupalも該当)の検出がありました。
2.2 WordPressに対する攻撃(検出箇所)
WordPressに対する攻撃について、検出箇所で分類すると図2.2-Aのようになります。これまでの傾向と変わらず、「/wp-content/plugins/」と「/wp-content/themes/」の検出で全体の3分の2近くを占めました。WordPressに対する攻撃としては、テーマとプラグインの脆弱性を悪用した攻撃の検出が多いという傾向が続くと考えられます。
図2.2-A WordPressに対する攻撃(検出箇所)
検出箇所 |
検出した件数 |
---|---|
/wp-content/plugins/ |
66,954,553 |
/wp-content/themes/ |
39,035,442 |
/wp-content/ |
21,355,417 |
/wp-json/ |
15,987,024 |
/wp-includes/ |
9,457,739 |
/wp-admin/admin-ajax.php |
3,194,758 |
xmlrpc.php |
3,155,248 |
/wp-admin/ |
781,722 |
その他 |
4,868,718 |
合計 |
164,790,621 |
表2.2-A WordPressに対する攻撃(検出箇所)
3. WordPressの脆弱性の傾向
本レポートにおけるWordPressに対する攻撃の検出は、WordPressの設定ファイルであるwp-config.phpを読み取る攻撃やSQLインジェクション、OSコマンドインジェクションの検出が多くなっていますが、WordPressで発見される脆弱性としては、クロスサイトスクリプティングが多い傾向が続いています。
本レポートの執筆時点のWordPressの最新バージョンは5.5.1となっていますが、集計期間中の2020年6月にリリースされた5.4.2(セキュリティ・メンテナンスリリース)においてクロスサイトスクリプティングの脆弱性が修正されているほか、WordPressにEC機能を追加することができる人気プラグインの「WooCommerce」(アクティブインストール数:500万以上)でクロスサイトスクリプティングが発見されているなど、特にプラグインの脆弱性として毎月のようにクロスサイトスクリプティングが見つかっています。
3.1 クロスサイトスクリプティング(XSS)
クロスサイトスクリプティング(XSS)とは、問い合わせフォームや掲示板など、外部からの入力に応じてページを表示するWebアプリケーションにおいて、HTML生成の実装に問題があることで生じる脆弱性および悪用した攻撃手法のことです。攻撃者が用意する罠サイトと標的となる(脆弱な)サイトを横断することからクロスサイトスクリプティングと呼ばれており、XSSと省略されます。
- クロスサイトスクリプティング(Cross Site Scripting)を「CSS」と略してしまうと、HTML文書の見栄えを整えるスタイルシート言語のCSS(Cascading Style Sheets)と同じになってしまうため、区別して「XSS」と表記されています。
攻撃者は、スクリプトを含んだリンクを用意するなどの罠を仕掛け、ユーザーがその罠にかかってしまうことで、クライアント上でスクリプトが実行されてしまい、結果としてCookieの値を盗まれて「なりすまし」に悪用されたり、書き換えられた画面から重要情報を入力してしまうなどの被害が生じます。
XSSの攻撃手法としてよく紹介される内容には、前述のように攻撃者にとって「罠を仕掛ける」というステップがあり、その罠にかからなければ攻撃は成立しません。(反射型XSS)
そのためか、XSSはよく知られた脆弱性であるにもかかわらず対策が軽視されることがあります。しかしながら、XSSにはいくつかのタイプがあり、攻撃者が罠を用意せずに利用者が標的サイトを閲覧するだけで攻撃を実行できるタイプ(持続型XSS)も存在するので注意が必要です。
攻撃者が用意する罠サイトと標的となる(脆弱な)サイトを横断する「クロスサイト」がXSSの由来であることを考えると、標的サイト自体に攻撃コードを埋め込み、攻撃が持続するタイプをXSSと呼ぶべきかという点もありますが、WordPressにおいても本体やプラグインに「持続型XSS」の脆弱性が発見され、実際に大きな被害、話題となった事例があります。
本レポートにおけるクロスサイトスクリプティング(XSS)の検出数は、全体の4%となっていますが、1266万件の検出があり、持続型のように被害が拡大しやすいケースもあるため、注意が必要な脆弱性であることを意識し、適切な対策を実施するようにしましょう。
WordPressの運用では、本体だけでなく、プラグインやテーマを含めて最新バージョンで利用することが最も大切な対策となります。また、ウェブアプリケーションの脆弱性を悪用する攻撃を防ぐWAF(Web Application Firewall:ウェブアプリケーションファイアウォール)の活用が効果的です。
関連記事
WAFによるクロスサイトスクリプティング(XSS)対策:
https://siteguard.jp-secure.com/blog/protect-for-xss/
おわりに
JP-Secure Labs Reportでは、幅広い役割、年齢層の方々に情報をお届けしたいと考えています。
今後も協力会社との連携をさらに深めていき、インシデントの対応事例で分かったことや新たな脅威への対応にも焦点を当てた有益な情報提供に努めて参ります。
本レポートで焦点となったSQLインジェクション、OSコマンドインジェクション、ディレクトリトラバーサルの解説とWAFによる防御の動画を公開しています。ぜひ参考にしてください。
SiteGuard 技術情報 攻撃デモ~WAFによる防御:
https://siteguard.jp-secure.com/video/waf-defense-demo
SiteGuardシリーズにご興味のある方はこちら