「WordPressを守ろう!セキュリティの最新トレンドと対応事例」で得た対策と知見




 

Tokyo WordPress Meetup主催の「WordPress を守ろう!セキュリティの最新トレンドと対応事例」にWebデザイナーと一緒に参加してきました。

 

Tokyo WordPress Meetupのイベントへの参加は、去年の旧WordBench 東京「Webサイト制作プロジェクトマネジメント入門」以来久しぶり。

 

厄年のせいか、去年から今年にかけてリダイレクトスパムDoS攻撃の対応に追われたこともあり、今回のテーマは非常に楽しみにしていました。

 

WordPress 管理者がおさえておきたい Web アプリケーションセキュリティ

最初のセッションは表題の通り、WordPress ユーザー・管理者・開発者がおさえておきたいWebアプリケーションセキュリティのトレンドの解説を、OWASP Japan(オワスプ ジャパン)の松本悦宜氏がスピーカーをされていました。

 

僕はまず、OWASP(オワスプ)の存在を知りませんでした。

OWASPは、Open Web Spplication Security Projectの略で、Webセキュリティを取り巻く問題を解決するために各国の専門家が集結した国際的なコミュニティで、日本にも10の拠点があります。WordPressを愛するWordPress Meetupのようですね。

 

のちに、そのOWASPが発表している脆弱性と対処法に関するドキュメントなどを含め、WordPressにおけるリスクの確認と対策方法が紹介されました。

 

サイト改ざんなど、セキュリティリスクが多く報道されていますが、中でもWeb制作やWeb運用に携わっている人たちの間では、WordPressはセキュリティが弱いと思われがちですが、これは単にWordPressがCMSの中で圧倒的にシェア率が高いだけの話で、当然なにか脆弱性が発見されればそれに比例してしまい、他のCMSに比べれて名前が上がりやすいということで、決してWordPressが突出してセキュリティが弱いということではない冒頭のお話に納得しました。

 

リスクを確認するための3つのドキュメント

WordPressを安全に使うためにはどうすればいいのか。なにごとにもリスクヘッジができて越したことがないように、Webアプリケーションのセキュリティにおける最新の情報やトレンドを確認できる信頼性あるドキュメントが3つ紹介されました。

【1】OWASP TOP 10

前述のOWASPが発表している、最も注意すべき脆弱性と対処法が10件まとめられており、内容は3年おきに見直され更新。日本語版もあります。

OWASP TOP 10 – 1017(PDFドキュメント)

 

【2】WordPressセキュリティ白書

WordPress.orgで公開されている、まさにWordPressに特化したセキュリティ対策がまとめられています。日本語版もあります。

WordPressセキュリティ白書

 

【3】OWASP WordPress Security Implementation Guideline

OWASPのサイト内で提供されているWordOressに関連した情報のドキュメント。WordPressの様々な設定がまとめられているけど、現状は英語版のみです。

OWASP WordPress Security Implementation Guideline

 

3つのWordPressセキュリティ対策

【1】WordPressのログインを守る

ログイン画面のセキュリティ設計として、

  1. wp-login.phpのアクセス制限
  2. 2要素認証、アカウントロック
  3. パスワードポリシーの確認

 

上記3つが考えられますが、運営者への負担の許容など、ユーザーがどう使うかも考慮もしながら設定しなければならないとのこと。

 

しかしながら、3番目のパスワードポリシーは重要とのことです。映画(スターウォーズやスタートレック)のキャラクターやポケモンなどの名称を使用したパスワードは特にあぶないそうです。

 

僕の場合、クライアントの案件でもwp-login.phpのアクセス制限とパスワードポリシーだけは実施しております。

 

【2】脆弱性情報を確認する

WordPressの管理画面の更新情報に注目し、下記3つは最新のヴァージョンに保つ。

  • 本体
  • テーマ
  • プラグイン

 

注意すべきは、使用してないプラグインは削除する。停止では不十分だそうです。また、今回お話には出てきませんでしたが、使用していないテーマのバージョンアップや削除もしておいた方がいいという話を聞いたことがあり、例えば、WordPressをインストールするとデフォルトでバンドルされているテーマなどは不要の場合は僕は削除しています。

 

【3】WordPressの関数を使う

正しくWordPressの関数をしようしないと、SQLインジェクションやXSS(クロスサイトスクリプティング)といったデータベースへの漏洩や書き換えなどの攻撃にさらされる危険があるとのこと。

 

以前、固定ページでPHPをかけるようにするためのプラグインExec-PHPにてeval関数が使用されていて非推奨になった記憶がありますが、そういったことでしょうか。

 

とにかく、攻撃者が裏口を作り、PHPをアップし遠隔操作などを行うバックドアの話は恐ろしかったです。

 

 

セキュリティ診断ツール2点

最後に、推奨のセキュリティツールを紹介しておりました。

OWAAP ZAP

OWAAPが提供している診断ツールで、動的スキャンで擬似攻撃による検証ができるそうです。OWAAP ZAPの記事などのキータに一番まとまってるそうです。

検証といっても、結局は自分でサイトを攻撃していることになるので、自社で計画的に使用するなら問題ないですが、第三者のサイトに無断で使用するのは許可や計画が必要。

OWASP ZAP Hands-on In Osaka (2015-02-10)

 

WPScan

WordPressのセキュリティマニアの方々が集まる会社が提供している脆弱性スキャンツール。任意のパスワードリストからの総当たり攻撃もできるそうです。

WordPressの本体、プラグイン、テーマのバージョンが影響を受ける脆弱性を検証、また、不要なファイルが公開されてないか(readme.htmlなど)も確認できるそうです。

しかし、コマンドラインが必要なので、完全にエンジニアさん向けと思いました。

WPSCanによるWordPressの脆弱性スキャン

 

 

セッション1のまとめ

wp-login.phpのアクセス制限、パスワードの強化、本体・テーマ・プラグインの更新情報の注意と対処。これらは普段から行っていたことなので安心しました。

特に松本悦宜氏のお話の中では、OWASPの存在をはじめ、信頼性あるドキュメントや診断ツールを紹介していただいて、とてもためになりました。

また、今後「WordPressって大丈夫なの?」とクライアントに聞かれても、自信を持って説明できるようになれてよかったと思います。

 

今回の登壇で使用された松本悦宜氏のスライド

 

 

「WordPress セキュリティインシデントの対応事例」

セッション2は、主にサーバーサイドのプログラマーである神垣聡氏の豊富な経験の中から、実際に起きたインシデントとその対応事例について。

 

リダイレクトスパム編

あるURLを踏んだら、勝手にスパムサイトへ強制リダイレクトされるリダイレクトスパム。

 

リダイレクトスパムに関しては僕もやられた経験があり、その時のことを記事にしたことがあります。

 

WordPress マルウェアの確認と駆除作業(リダイレクトスパム)

 

リダイレクトスパムはリダイレクト用のプログラムがHTMLやPHPに埋め込まれてしまい、それが作用して強制的にリダイレクトされてしまう仕組みです。

 

WordPressの場合、主にplugin/index.phpが書き換わっている場合が多いらしいのですが、上記で紹介した以前の記事の時は、header.phpと、footer.phpが改ざんされていました。

 

しかも、コアファイル群の中にwp-login.phpに模した、w-login.phpというPHPファイルも仕込まれていたり。。

 

plugin/index.phpが書き換わっている場合、plugin/index.phpにファイルのアップロードを行うスクリプトが書かれ、他のファイルを呼び込むバックドアとなっているとにこと。

 

WorsFenceとSucuriScannerというプラグインで確認したそうです。

 

根本的な原因として、推測らしいのですが、メッセンジャーツールにてアカウント乗っ取りが多発時期だったらしく、フィッシングスパムメッセージを踏んで被害が拡大した可能性があるそうです。

 

 

スパム投稿記事編

この事例は知らなかったのですが、投稿一覧画面を確認してみると、記憶にない記事が大量に投稿されており、その記事にはスパム広告が貼られているそうです。

 

原因の推測として、パスワードが脆弱だったほかに驚いたことが、初期アカウントを調べるのは容易だということです。

 

「user id 1 wordpress」というキーワードでググってヒットした下記の記事でも詳しく書いてありますが、最初作ったアカウント「author=1」のログインユーザー名はダダ漏れということになります。

 

WordPressのログインユーザー名は丸見え!?

 

対処として、該当記事の削除、パスワードの一新、ロギングを行ったそうです。

 




 

サーバ屋さんから怒られた編

レンタルサーバー側がハッキングされているのを検知し、「ファイルが改ざんされてるので、おたくのサイトを停止します」という通達がきたお話です。

 

被害

  • サーチコンソールも検知しているので被害サイトとして認定されSEOランクダウン
  • 事例はECサイトであったため、即座に売上に直結し売上がダウン

 

「サーバ屋さんから怒られた編」というタイトルから、若干ほのぼのした話かと想定していましたが、このような被害状況に陥ったら生きた心地がしないかも知れません。

 

対処として、WordPressを移設しプラグインを入れ直したそうですが、この対処もなかなかの作業です。被害の進行と対処に掛かる機会費用は計り知れないので、松本悦宜氏が紹介されていたドキュメントなどを日頃からチェックするべきかなと思いました。

 

セッション2のまとめ

そのほかにも、古い事例の改ざん系として、header.phpに読み難いコードが埋め込まれていた「メール踏み台編」、サイトやサーバーにつながらない「DDoS攻撃 DNS攻撃編」といったインシデントと対応策も紹介されていて本当に豊富な事例はためになりました。

 

最後に、ディレクターにとって興味深い話として、思わぬ事態が起きてしまったときに当然Web制作事業者はクライアントに説明責任があり、ダウンタイムや復旧費用、また、毎月/年の保守やバックアップの金銭的根拠を明確に示さなければならないなど、今後心がける部分も勉強になりました。

 

今回の登壇で使用された神垣聡氏のスライド

 

 

セッション3「まとめ」

最後のセッションは、今回のTokyo WordPress Meetup 10月のモデレーター、ちくちゅう氏。

 

ちくちゅう氏は冒頭で、クライアントから「セキュリティ 対策はどうなっていますか?」と聞かれたときにどう答えるべきか?といったノウハウを紹介。

 

今後は、「暗号化はHTTPSのみ、SFTPのみ」「WAF」「インシデント発生時のルール化」「外部メモリ禁止」といったセキュリティ 項目リストを明文化して作っておくべきと思いました。

 

また、ちくちゅう氏、セッション1の松本悦宜氏、セッション2の神垣聡氏を交えて質疑応答となりました。
以下、メモれた限りです。

 

セキュリティ維持向上に普段利用しているおすすめのプラグインは?

「WP SiteGuard」と「Crazy Bone」。

監査ログをメールで通知してくれるプラグインもある。

との答え。

また、2年以上メンテ、アップグレードされていないプラグインは危ないとのこと。

 

user_id(初期アカウント)からアカウント名が簡単に取れるということでしたが防ぐ方法はあるか?

初期アカウント防げない。

とにかくパスワードを強化とのこと。

 

脆弱診断を実行できるツールはありますか?

Walti.ioがめっちゃ便利です。定期実行でログもずっと保管

JVNというサイトでWordPressの情報が出ると注意!

あと、JSACの注意喚起も注意!

 

本体をアップグレードしたら、プラグインの動作チェックはしてますか?

正直あまりしていないが、コピーサイトを作って調べるときはあります。

 

ほか、全てをメモれませんでしたが、とても有意義な質疑応答でした。

 

今回の登壇で使用されたちくちゅう氏のスライド

 

 

「WordPressを守ろう!セキュリティの最新トレンドと対応事例」まとめ

今回のイベントに参加して下記の認識と知見を得ました。

  • OWASP(オワスプ)の存在
  • WordPressが突出してセキュリティが弱いということではないこと
  • バックドアの恐ろしさと仕組み
  • 初期アカウントを調べるのは容易だということ
  • クライアントへの説明責任
  • ダウンタイムの復旧費用
  • 毎月/年の保守やバックアップの金銭的根拠の明示
  • セキュリティ項目リストを明文化
  • 様々な脆弱診断を実行できるツール

 

久しぶりのWordBench!じゃなかった、WordPress Meetupの参加でしたが今回も楽しませていただきました。

 

キャンセル待ちも出ていたみたいで人気のテーマだったのも納得するくらい、とても身になる良いイベントでした。

 

スライドの公開が早かった(その日のうち)のも嬉しかったです。

 

また、面白そうなテーマがあったら行きたい。

 

この記事も読まれています。

WordPress マルウェアの確認と駆除作業(リダイレクトスパム)

さくらレンタルサーバーで特定のIPアドレスからのアクセスをブロックする方法

 




さくらレンタルサーバーで特定のIPアドレスからのアクセスをブロックする方法




 

先日、さくらインターネットのサーバーで特定のIPアドレスからのアクセスを制限した時の事例を備忘録。

 

この記事を読んでいる人は早期的に解決を望んでいると思いますので、特定IPアドレスをブロックすることになった経緯は後述するとして、とりあえず最低限の状況と条件、さくらのレンタルサーバーでのブロックの簡単な方法を足早に書いていきます。

 

条件

  • 制限対象のグローバルIPアドレスのナンバーがわかっている。
  • さくらインターネットのレンタルサーバーを利用(ちなみにビジネスプラン)。

 

事象

  • 全ての環境からWebサイトが閲覧できない。
  • もしくは、一部の環境のみWebサイトが閲覧できない。

 

さくらのファイルマネージャーから制御する

さくらインターネットのカスタマーサポートの対応はメールでも電話でもとても親切ですが、さすがにすぐには対応してくれるのは難しい。なぜなら、このようなトラブルみ見舞われている人の対応が多すぎるから。電話はすぐつながればラッキーだし、メールも問い合わせた直後に返信がくるわけではありません。

 

なので、手っ取り早くさくらインターネットのファイルマネージャーを利用して自分でアクセス制限をします。

 

※注意:ファイルマネージャー作業とはいえ.htaccessに記述されたりするので、復元できるようデータのバックアップを取っておくことを推奨します。




 

さくらのコントロールパネルにアクセス

まず、さくらインターネットサーバコントロールパネルにアクセスします。
https://secure.sakura.ad.jp/rscontrol/

 

ドメイン名とパスワードを入力し「送信する」をクリックしてログイン。

 

さくらコントロールパネルにログイン

 

左側のメニューの上から5番目「サイトに関する設定」の中の「ファイルマネージャー」をクリック。

 

ファイルマネージャー」をクリック。

 

別ウィンドウが開き、ファイルマネージャが開きます。

 

ファイルマネージャの画面

 

home/初期ドメイン/wwwのディレクトリのまま、画面上部のメニューバーの左から3番目「表示アドレスへの操作」をクリックするとプルダウンメニューが開き、「アクセス設定」をクリック。

 

「アクセス設定」をクリック。

 

ポップアップウィンドウが開くので、タブ中央の「接続元アクセス制限」を選択し、下部の「拒否するアクセスのリスト」内の「+追加」をクリック。

 

ポップアップウィンドウ

 

左側のプルダウンメニューがデフォルトの「IPアドレス」になっているのを確認し、右側の入力欄にアクセスブロックしたいIPアドレスを入力。さらにブロックしたいIPアドレスを追加したい場合は続けて「+追加」をクリック。

 

ポップアップウィンドウのIP入力

 

「OK」をクリックして完了です。

 

アクセスブロックを解除したい時

事がおさまりアクセスブロックを解除したい時は、単純に上記の逆の手順になります。

ポップアップウィンドウで追加したIPアドレスの右にある赤い「×」を押して消します。

最後に「OKをクリック。

 

.htaccessでの制御は可能か?

FTP経由で.htaccessをダウンロードして直接制御しても大丈夫か?と、一応さくらのサポートの方にと問い合わせてみたら、

 

「大丈夫です、しかし.htaccessのファイル上での操作および操作方法はサポート外です。」

との返答をいただいた。

 

特定IPアドレスをブロックすることになった経緯

余談ですが、今回かなり稀なケースであったため、同業者の人たちに向けてIPアドレスをブロックすることになった経緯を共有します。

 

とあるクライアントの全面改修案件で起きたこと。

 

SSL化してフルリニューアルしたWebサイトを公開した翌日、クライアントから

「社内でホームページが見れない」

という連絡が入り、額に汗をかく。

 

自分の会社のWi-Fi環境の内外で確認すると、なにごともなく閲覧できる。

 

先方に画面のスクショを送ってもらったところ503エラーの表示でした。

 

なぜコンテンツもほぼ一新し、リニューアルした直後に大量のアクセスがされたのか?

 

さくらインターネットのコントロールパネル内の「サーバーエラーログ」を確認すると、たしかにクライアントのグローバルIPからのアクセスが尋常ではなかった。

 

リニューアルして公開したばかりのタイミングだったので、クライアントも僕らも原因はこちらにあるのだとばかり思っていました。

 

意を決してクライアント側のシス管に調査を求めたところ、リニューアルとほぼ同時期に導入したサブスクリプション型業務系ソフトが立ち上がるたびにドメインを踏んでから起動する設定になっていたらしく、結果的に数千人の社員が同時に業務系ソフトを立ち上げるたびに自社のWebサイトへアクセスが集中してしまう事象だったらしいです。

 

原因が判明するまでは何も手をつけられない状態が続き、混乱してかなり憔悴しました。

かなり稀なケースですが、ひとつの要因としてこの件でいい経験になりました。

 

この記事も読まれています。

WordPress マルウェアの確認と駆除作業(リダイレクトスパム)

「WordPressを守ろう!セキュリティの最新トレンドと対応事例」で得た対策と知見




WordPress マルウェアの確認と駆除作業(リダイレクトスパム)




 

先日、あるマルウェアを駆除した時(リダイレクトスパム)の事例です。

 

この記事を読んでいる人は、WordPressで制作されたサイトのマルウェア感染早期解決を望んでいると思いますので、とりあえず最低限の状況と今回の駆除方法を足早に書いていきます。

 

【状況】

  • WordPressで制作。
  • クライアントのコーポレートサイト。
  • 先方のWeb担当者が不在。
  • (上記事情により)Google Search Consoleで確認できない。
  • よって、Googleからのマルウェア感染の通知が受けられない。

 

【症状】

  • 検索からアクセスすると、ある外国のサイトにリダイレクトされる。
  • リダイレクトされるのはトップページのみ。
  • 下層ページは検索からでも正常に飛ぶ。
  • URL直打ちだと、正常にトップページに飛ぶ。

 

 

きっかけは、たまたま検索して発覚。アクセスしたら以下のサイトにリダイレクトされるようになっていました。

 

 

【ウイルスの確認作業】

いくつかの有名な無料ウイルスチェックWebサービスでスキャンしてもウイルス感染した結果は出ませんでした。

 

出力されたhtmlコードをデベロッパーツールで調べても異常無し。

 

あきらめずにコツコツと使用しているテーマテンプレートファイルを開いて調べてみたら「footer.php」に身に覚えのない大量なコードを発見し、ゾッとしました。

 

 

「footer.php」の上記のコードを全て削除しファイルを上書いてみましたが、状況は変わらず。




【プラグインExploit Scannerで検知成功】

続いて、WordPressのウイルス検知プラグイン「Exploit Scanner」をインストールし、有効化してデフォルト設定のまま「Run Complate Scan」を押して再調査。

 

活躍している主要プラグインの中から黄色くハイライトされたeval関数などが検知されましたが、それはともかく左側最上部に身に覚えがないコアファイルらしきものが検知されてました。これがとても怪しい。

 

 

wp-admin/w-login.php

 

wp-login.phpに似せた、怪しいファイル名。これは気づきにくい!

 

 

この「w-login.php」ファイルをエディタで開き、リダイレクトされるURLを検索に掛けたら、127行目にいました。

 

 

デフォルトではWordPressのコアファイル群にこの「w-login.php」といファイルは存在しませんので削除。

 

以降、リダイレクトはされなくなりました。

 

【解決法まとめ】

  • 「footer.php」などのテーマテンプレートファイルに異常がないか確認。あれば削除。
  • ウイルス検知プラグイン「Exploit Scanner」で確認。
  • wp-admin内に「w-login.php」があったらの削除。

 

今回、僕と同じような感染症状の方に役立ってもらえたらと思います。

 

【追記 2017年6月12日】

後で気づいたのですが、「header.php」にも身に覚えがないプログラムが仕込まれていました。念のため該当部分のソースコードを削除しました。

 

【追記 2017年6月14日】

上記駆除の2日後、「footer.php」や「header.php」への書き換えは起こりませんでしたが、まとも「wp-admin/w-login.php」が仕込まれており、例のサイトへリダイレクトされてしまいました。

 

「wp-admin/w-login.php」を削除したら直りました。

 

ログインURLの変更と、ユーザー名・パスワードの強化対策を行い、様子を見ています。

 

また、再発した際、セキュリティホールを発見した際は、ここに追記します。

 

こちらの記事も読まれています。
「WordPressを守ろう!セキュリティの最新トレンドと対応事例」で得た対策と知見

さくらレンタルサーバーで特定のIPアドレスからのアクセスをブロックする方法




Macでトロイの木馬ウイルスが検出されました。とさ。




 

会社を離れてMacbookを開きリラックスムードのノマドワーク。この至福の時間にそれは起きました。

 

Twitterのタイムラインに流れてきた一般の方のごく普通のツイート。貼られていたURLをクリックした途端、当然のごとくSafariが起動したまではいいのですが、強制的にリダイレクトされ、以下のページに飛ばされました。

 

 

即時の行動が必要です

Macでトロイの木馬ウイルス(e.tre456_worm_osx)が検出されました。

[OK]を押して修復処理を開始。

…閉じる

 

これは自身のMacがウイルスに感染したと思わせて、アプリをインストールさせようとしている業者です。

 

以下が、不吉な文言のダイアログの右下にある「閉じる」リンクを押した後の画面です。

 

 

Appleの公式サイトのheaderに酷似していますね。
これだけでしたら信用してしまう人が居てもおかしくない。

 

でもおかしいのです。URLが
Appleの公式サイトは、どのページに飛んでもアドレスバーがこの様な表示。

 

 

対して、この業者のアドレスバーはこの様な表示。

 

 

Appleじゃないだろコレ。

 

では、正体がわかったとことで、対処法は…




対処法

そのままブラウザを閉じてください。

ダイアログの「閉じる」リンクを押しちゃっても、その後ブラウザを閉じちゃってください。

 

以上。

 

もう数十年この手の茶番に出くわしてきましたが、今でも一瞬焦りますね。

 

Webディレクターという職業柄、非常に不愉快極まりない

 

今回はダイアログの背景がAppleっぽいし、この春MacBookを買ったばかりの学生さんとかは特に焦るかも。

 

「今すぐスキャン」は押さずに、気をつけてください。

 

マルウェア、セキュリティ関連の記事一覧