WordPress
セキュリティ対策
ど~してる?
WordBench名古屋 12月度勉強会
(2016年12月10日)
(株)東海共同印刷 浅井豊彦
@hikobey_GORI
自己紹介
名前 浅井豊彦(1962年生まれ)
仕事 ㈱東海共同印刷 制作部&共同ネット事業部・部長
• プロジェクト&プロダクトマネージャー的な役割
• ソースコードは多少読めるけど書くのはムリ!
• 個人情報責任者、ライセンス管理、もめごと処理班...
コミュニティ ▶WordBench名古屋
• 2010年頃から運営に関与
• Camp、Beach、Fesすべて実行委員
▶CMS Fun Nagoya
• 起案者ですけど、現在小休止中...来年2月に復活?
SNS @hikobey_GORI(ほぼ放置)、主にFacebook
ブログ GORILOG https://www.gori-log.info/
お気に入り Superfly、ももクロ、麺類、MVNO、最近はPulse CMS
今日のお題
1. WordPressをめぐるセキュリティ事情
2. セキュリティ対策の視点と範囲
3. アンケート結果と解説
WordPressをめぐるセキュリティ事情
• ネットワークレベルではなくアプリケーションレベル、特にCMSの脆弱性を突いたセ
キュリティ攻撃が目立つ。
• クロスサイトスクリプティング(XXL)とSQLインジェクションで半数を占める。
• CMSでも特に普及率の高いWordPress(全世界でのCMSシェア60%超、日本では80%
超)が標的になっている。
• CMSが持つ拡張機能(プラグイン・アドオン)が、その標的になっている(全体の
90%)。
• WordPressの脆弱性報告は毎日3件、月100件くらい報告されている。
• CMS全体としての脆弱性報告は減少傾向にあるが、WordPressは減っていない。
• セキュリティ攻撃の被害に合う企業のうち半数以上(52%)が中小企業。大企業だけの
話ではない。
• 個人情報の漏洩などが起こると、億単位での賠償請求を受ける場合もある。
2015年5月13日 GMOクラウドWEST主催「WordPress等で構築したCMSサイトのセキュリティノウハウセミナー」より
https://www.gori-log.info/2015/05/14/gmowest_seminar/
自分のサイトを診断してみよう!
WordPressの脆弱性を調べ診断してくれるサービスがある
https://wp.kyubi.jp/ https://wp-doctor.jp/
URLを指定するだけ
WordPress本体に関する検査が主
サイトを登録
無料の場合は月1回のみ診断
定期的チェックとメール通知可
ワードプレスドクター
自分のサイトを診断してみよう
https://ja.wordpress.org/
診断ツールで深刻な脆弱性が見つからな
ければOK?
いやいやだめだよ
なんで?診断ツールなんでしょ?
診断ツールが調べてる範囲はプログ
ラムやプラグインの脆弱性のみで、
それ以外のことは調べてないんだよ
ああ、そっか...
セキュリティ対策の階層
階層 対象 専用サーバ 共用サーバ アンケート
ハード Server機、ルータ、FW...etc
OS Linux、Windows...etc
ミドルウェア Apach、PHP、FTP、SSH、MySQL...etc
アプリケーション WordPress、プラグイン、テーマ...etc
その他のCMSも同様
①②③④
運用 パスワード管理、ログイン管理、バッ
クアップ...etc
⑤⑥⑦⑧⑨⑩
⑪⑫⑬⑭⑮⑯
⑰⑱⑲⑳
?
アプリケーション層と運用については自分たちでやるしかない!
まずは、自分が責任を持つ範囲は、どこなのかを知っておこう!
診断ツールの守備範囲
WordPressの侵入対策は脆弱性管理とパスワード管理が中心
WordPressの侵入対策は脆弱性管理とパスワード管理を中心に考えよう
http://blog.tokumaru.org/2015/12/wordpress-security.html
2015年のWordPress Advent Calendarの記事。WordCampやBenchでの講演もあり。徳丸浩さん
• ソフトウェアの脆弱性を悪用される
• 管理ツールの認証を突破される
Webサイトへの侵入経路は2種類しかない
対策の核心は2つ
• 全てのソフトウェアを最新の状態に保つ
• パスワードを強固なものにする
SiteGuard WP Pluginのすすめ
徳丸浩さん
https://ja.wordpress.org/plugins/siteguard/
設定漏れをすることもあるし、侵入
されないまでも延々と攻撃を受ける
こともある。
付加的なセキュリティ対策として
「SiteGuard WP Plugin」の導入を
紹介します。(要約)
テーマやプラグインは、WordPress公式のものしか利用しない
その他の意見
• 基本的に公式のみを使用し、足りないものは自作
• 独自に作成している
• オレオレプラグンの使用
• 基本的に公式ディレクトリのものから探すが、そうでないものも自己判断で使用している。
もしくは自作
• 公式では配布されていなくても、作成者と連絡がつけられるものは精査の上使用している。
ソースコードのトレーサビリティ。万人にはオススメしない。
使用していないプラグインは「停止」ではなく「削除」している
以外に実施しているところが少ない...
確かに面倒だけれども、やっておいた方がいいような...
その他の意見
• WordPress本体は、常に最新版にし
ている
• projectnami を使用しているため、
若干遅れている
※Projectnami=Azure SQL DatabaseでWordPressが
動くようにした仕組み
WordPress本体は、常に最新版にしている
サーバのPHPやMySQLのバージョンが低くて上げられない場合もある?
その他の意見
• projectnami を使用しているため、
若干遅れている
テーマ・プラグインは、常に最新版にしている
サーバのPHPやMySQLのバージョンが低くて上げられない場合もある?
その他の意見
• projectnami を使用しているため、
若干遅れている
「wp-config.php」のパーミッションを変えてアクセス不可にしている
その他の意見
• 知らない
• よくわからない 勉強中
• わからなくて
• wp-config.phpにはデータベースのユーザ名とパスワードが記載されている
• パラメーターが記載してあるだけなのでアクセスしても何もおきない
• wp-config.php自体に脆弱性があるとは考えられない
• 問題になるのは...
1.PHPをインストールしわすれる(テキストファイルと同等)
2.他のPHPプログラムやPHP自体の脆弱性を悪用されて閲覧されてしまう
• 特に面倒なことではないので、やっておいた方がいいように思います
「wp-config.php」インストールディレクトリの1つ上のディレクトリに移動させている
やるとすると、結構面倒かも...なのであまりやられていないみたい
その他の意見
• サーバ構成によりできる時とできない
時がある
• よくわからない 勉強中
データベーステーブルのプレフィックスを、デフォルト値から変更している
その他の意見
• 知らない
• 実施することはあるが外部からの
攻撃対策ではない
• わからなくて
• やってもあまり効果はないみたいです(腕のたつ攻撃者には無力)
• SQLデータベースinformation_schemaという機能で、テーブル名やデータベース名はわ
かってしまうんだそうです。
• プラグインやPHPプログラムを作る場合は「プレースホルダ機能」を使ってSQLイン
ジェクション対策を
デフォルトユーザーの「admin」は削除もしくは変更してある
• adminを削除・変更することで攻撃を防げるわけではない
• 攻撃者の手間を増やし、攻撃されにくくなるという効果はある
• 大事なのはパスワード!もう1回いいます、大事なのはパスワード!
その他の意見
• よくわからない
• わからなくて
ログインURLをデフォルトから変更している
その他の意見
• 海外からのブルートフォースが多いため以
前していたが、サーバー側で海外IPをはじ
くようになったためデフォルトに戻した
• よくわからない
https://ja.wordpress.org/plugins/login-rebuilder/
https://ja.wordpress.org/plugins/siteguard/
ログインアカウントをメールアドレスにしている
その他の意見
• LDAP連携させている
https://ja.wordpress.org/plugins/force-email-login/
ログインページと管理ページはアクセス制限がしてある
その他の意見
• 場合による
• 徹底していないが一部している
一度試したことがあるが、とても面倒で続かないと私は思いました...
ログイン画面のアクセスログを取っている
https://wordpress.org/plugins/crazy-bone/
• これ自身が攻撃を防ぐわけではない
• 攻撃を受けているかどうか、どこから来て
いるかなどを把握するためのツール
ログインに『二段階認証』を取り入れている
これも、面倒そうですね。
クライアントにはまず受け入れてもらえなさそう...
ログインに『ワンタイムパスワード』を取り入れている
これも、面倒そうですね。
クライアントにはまず受け入れてもらえなさそう...
ログインに『画像認証』を取り入れている
これも、面倒そうですね。
クライアントにはまず受け入れてもらえなさそう...
WordPressの管理画面とログイン画面をSSL通信に設定してある
その他の意見
• SSLが使える場合は管理画面以外も
SSLにする
今までSSLを利用するには結構なコストが必要でした
SEO的な観点や、無料SSLが普及してきており状況変わるかも
レンタルサーバの機能などを使ってデータベースを含むバックアップをとっている
バックアップサービスのあるレンタルサーバを選びたい
有料の場合、無料の場合など様々
データベースのみ、復元有料などの場合もあるので注意
プラグインなどを使ってデータベースを含むバックアップをとっている
https://ja.wordpress.org/plugins/backwpup/
• このプラグインでバックアップ
• メールやFTPなどで別の場所に保管するの
がいいように思います。
FTPやSSHのアクセス元制限をしている
ネットワークに固定IPがないと難しい
サーバ側にも、その機能が必要
出先で直せないなどの面倒な点もあるけど...
有料で固定IPを発行してくれるサービスもある
その他の意見
• Windows Server なので SSH アクセス
不可。 FTP は公開していない
WAFを導入している
共用サーバでもWAFが導入できる場合が増えてきた
今後は導入が、あたりまえになってくるのかも...
その他の意見
• 知らない
• わからなくて
パスワードについて追加で質問
8桁未満 8~12桁 13桁以上
0% 77.8% 22.2%
▶桁数
英数字のみ 大文字小文字混在 記号必須
17.2% 44.8% 37.9%
▶文字種
▶変更頻度
毎月 3ヶ月 半年 1年 なし
3.7% 14.8% 3.7% 7.4% 70.4%
毎月 3ヶ月 半年 1年 なし
0% 9.1% 4.5% 0% 86.4%
制作・管理側
クライアント側
回答27人
回答22人
回答27人
回答29人
最後にー個人的なまとめ
1. バックアップやミドルウェアのアップデートをしてくれるサーバ
VPSやIaaSなど自由度の高いクラウド選ぶ場合は、それなりの覚悟とスキル必須。
安くてもバックアップのないところは避けたい。バックアップの範囲も確認必要。
WAFが導入できるかどうか、無料SSLとかに対応しているかどうかなども...
2. パスワード管理は徹底する。
最低でも8文字以上、英数字混在、使い回し禁止、辞書にある文字は×、管理者ごとにアカ
ウント。メールアドレスをログインIDにするのは有効だと思う。
3. バージョンアップ、パッチの適用は面倒でも必ず行う。
自分で対処できないプログラムは導入すべきではない。
バージョンアップ対応するだけでも、料金はしっかりもらえる関係に。
何がどこに入っているのか、把握できるようにしておくとベスト(面倒ですけど)
4. 付加的な対策は「できる」「続けられる」というのも大事。
なんでもやればよいわけではない。続くかどうかも大事なポイント。
最初は対策したが、面倒になって対策されないサイトができるとかはまずいのでは?
5. まさかのときに頼る人は決めておいた方がいいと思う。
うちのお客様も被害にあったことがある。お客様からFTPアカウントが漏洩したり...
うちは困ったときは→WebRepair(ウェブリペア):https://webrepair.jp/

WordPressセキュリティ対策ど~してる?