WordPressへの攻撃をAWS WAFマネージドルールで検知してログを分析してみた

本ブログで実際にAWS WAFマネージドルールが検知した攻撃内容を分析しました。AWS WAFマネージドルールを検討されている方は是非参考にしてください。WAFをこれまで全く入れてなかったサイトは特に要チェックです!
2018.07.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、臼田です。

みなさん、WAFWAFしてますか?

今回は本ブログDevelopers.IOで適用しているAWS WAFマネージドルールで検知した内容をログから分析してみたので共有したいと思います。

適用していたマネージドルールはTrend Micro Managed Rules for AWS WAF - Content Management System (CMS)です。

このルールはWordpress、Joomla、Drupal等のCMSを保護するトレンドマイクロさんから提供さているものです。このルールの利用を検討している方は是非参考にしてください。

検知内容

サマリと所感

  • 約4ヶ月間で約200件の攻撃を検知
  • 検知内容は殆どCMSに対する各種攻撃

本ブログはECでも個人情報を大量に保持しているわけでもないけどぼちぼち攻撃がくるんだなーと感じました。

以下主要な攻撃について説明します。

攻撃その1: WordPress 4.7.1 の権限昇格

下記ブログでも紹介した脆弱性になります。1/3くらいの攻撃がこれでした。

【新機能】AWS WAFマネージドルールを使ってWordPressに対する攻撃を防いでみた #reinvent

具体的な攻撃内容としては、公開されている各記事に対してクロールする感じで実行されていました。

リクエストの内容から公開されている数種類のPoCを利用した攻撃であると判断できました。

攻撃元のGeoIPはUSが多かったです。次に多かったのはFR。

攻撃その2: DrupalのRCE

ちょうど検証期間中に話題になった脆弱性(CVE-2018-7600等)でこれも全体の1/3くらいありました。

リクエストの内容はこちらのほぼPoC通りで、ルートやいくつかの記事に対して攻撃を試みていました。

WAFマネージドルールを設定後にオープンになった脆弱性ですが、こちらでは特に何も操作していなくともトレンドマイクロさんがDrupalへの攻撃を検知するルールを追加してくれたので検知しています。

WAFマネージドルールの良さが生きていることが実感できました。

WordPressのサイトなのでこの攻撃自体は直接意味はないですが、攻撃者は手当たり次第回しているという感じがしますね。

攻撃元のGeoIPはRUが多かったです。話題になってからすぐ取り組むのがロシアなんですかね、おそロシア。次に多かったのはBE。

攻撃その3: JoomlaのRCE(オブジェクトインジェクション)

少し古い脆弱性(CVE-2015-8562)ですがコンスタントに回されているようですね。

こちらもPoC通りで、URIはルートなどどこのサイトでも変わらない感じの振る舞いでした。

こちらも同じくWordpressに対する攻撃としては無意味ですが、ぼちぼち飛んできていました。

攻撃元のGeoIPはUSが多かったです。ほぼUS。

攻撃元ランキング

  1. US
  2. RU
  3. BE

個人的には意外な結果ですね。送信元IPのGeoを参考にしているため、実際に本当の攻撃元としてUSが一番多いとは思いませんが。

CNは殆どなかったです。他の攻撃手法だったらいっぱい検知したかもしれません。(偏見)

まとめ

検知していたどの攻撃もCMSにとってクリティカルな脆弱性です。そして、本ブログは先述の通りECでも個人情報を大量に保持しているわけでもありませんが、それでも日常的に攻撃を受けています。

各CMSを利用しているサイトやそれ以外のサイトでも、やはり日常的に様々な攻撃が行われていると考える事ができます。

AWS WAFマネージドルールは今回紹介したトレンドマイクロさんのルール以外のものも含めて、セキュリティベンダーがルールを適時追加してくれます。これまでセキュリティに詳しい担当者がいなかったようなサイトでも利用しやすいものとなっています。

実際に検証期間中に新しく公開された脆弱性についてもトレンドマイクロさんは対応してくれていたことが確認できています!

これまでWAFを利用できなかった環境でも、AWS WAFマネージドルールなら簡単に利用でき、かつ製品WAFよりも格安で利用できるので是非導入をご検討ください!

なお、AWS WAFのログはデフォルトではすぐに消えてしまうので下記のような手法で取得しましょう。

AWS WAFのログを取得するCloudFormationテンプレートv2作ってみた