WEBサイト制作
2014.11.18
企業サイトをWordPressで運営する上での危険性と回避策 – part1(企業サイトじゃなくても大事ですよ)
WordPressで企業サイトを運営するということは標準的になってきました。導入の簡易さ、運営の簡易さ、の反面やはり落とし穴も存在します。
危険性に関して以前の別コラム記事でもまとめておりますのでご参考ください。
WordPressでCMSの導入を考えている企業が注意すべきポイントとは。
今回は危険性を踏まえた上で対策方法等をご案内できればと思います。
今回はWEB改ざんに関してWordPressやサーバ環境設定でできる対策を考えてみます。
WEB改ざん攻撃は発生してまうと、社会的にニュースで知れ渡ったり、サイトへ訪問した方を巻き込んでしまったり、社会的信用が失墜してしまう非常に怖い危険な攻撃です。
今回この記事を読んでいただきたい対象の方は
- ■企業WEB担当者
- ■WordPressブロガー
- ■WordPress制作者
- ■WEBサーバ管理者
- ■今後WordPressを導入してサイトの運営を考えている方
Contents
WordPressを使用したサイトで危険因子BEST3
- ・WEBページの改ざん
被害内容:自サイトから悪意のあるサイトへの誘導 - ・DBの乗っ取り・不正操作
被害内容:DBを乗っ取られしまい、DB情報の流出 - ・管理画面乗っ取り
被害内容:管理画面に不正アクセスされ、管理情報の流出、不正投稿 - ※この他にも様々な危険は潜んでいますので、上記危険項目のみ対策すれば必ず安全というわけではありません。
WordPressの健康管理を維持するにはどのような方法がある?
セキュリティの対策には病気と同じように 予防・対策・解決を実践することがかなり大切です。
- ・想定される危険性を未然に防ぐー予防
インフルエンザのようにワクチンをうつなど予防しますよね?
そうWordPressでも危険因子を予防できるんです。 - ・危険因子の侵入をブロック対応ー対策
花粉が飛び出したらマスクするとか、乾燥から肌を守りたいならクリーム塗るとかブロックしますよね?
そうWordPressでも、マスクしたりバリケードをはるように対策することができるんです。 - ・危険因子を取りこぼしてしまった場合の早期発見ー解決
風邪をひいたら、薬をのむ、通院するなど、解決策をとりますよね?
そうWordPressが侵されてしまった場合でも原因の特定や解決できるんです。
危険因子と戦うための方法をご紹介します。
今回はWEB改ざん編です。
http://wp-e.org/2014/05/15/2463/
改ざんに関しては上記サイトでも取り上げられてありますように、WEB改ざんの対策はかなり厄介です。
- ・改ざんを受けてから気づくまでわかりにくい
- ・WordPress起因の脆弱性があるため対策しづらい
- ・実害がよくわからない
- ・修復どこからしたらいいの?
一般社団法人 JPCERTコーディネーションセンター(JPCERT) WEB改ざん件数の推移
一般社団法人 JPCERTコーディネーションセンター(JPCERT)
から勧告がでているように、WEBの改ざんに関しては、WordPressが原因という断定はできず、様々な要因が考えられます。 OS起因、サーバソフトウェア、その他様々なサーバのセキュリティリスクを考えることも非常に大事です。
今回はWordPress、WEBサイトの運営観点から、セキュリティ対策例をご案内いたします。
-
予防:
①よく言われることですがWordPressの最新版を”必ず”使うということです。
WordPressのバージョンアップに関して
バージョンアップが出ているときは、UI改善、バグのfix、脆弱性対策、などが含まれています。
バージョンアップに伴い、使用している、プラグイン、テーマなども改善されることがよくあります。
バージョンアップの後に、プラグインが使えなくなるとか、バージョンアップに伴う不具合が出たなどの報告もありますので、必ず関連ファイル、データベース共にバックアップをとり、復元を行える準備をしてから実施するようにしましょう。
不具合によるダウンタイムは、サイトの評価ダウンにつながってしまいますので復元をできる状態を整えた上で実施することが大切です。
-
②共有サーバーなどのレンタルサーバでWordPressを使わない
WEB系のセキュリティ界で、特に有名な徳丸浩さんの日記サイトです。
http://blog.tokumaru.org/2013/09/symlink-attack.html
1年ほど前に、共有サーバ上でファイルをサーバ内で改ざんされるという事件がありました。
現在は指摘の脆弱性は対策されていますが、今後どのような手口があみだされるかわかりません。
できれば、専用サーバ、VPSサーバ等の独自環境にWEBサーバをたててWEB公開することをオススメします。
サーバ環境を固有環境へ移行することで共有サーバという環境からのリスクからは避けられます。
※専門知識が必要なので、方法が不明な場合はIT部門や、サーバ管理者、お近くのサーバインフラ関係者へご相談ください。
-
③超重要ファイルのアクセス権限を確認する。
WordPressにはwp-config.phpという非常に有名な、データベース接続の為の設定ファイルがあります。
そのファイルは外部からみられない、変更させないことが絶対必要です。
方法は2つあります。
-
1.WEBサーバ環境の設定ファイル.htaccessで外部からアクセス出来ないようにする
として.htaccessファイルをWordPress環境配下に設置します。<files wp-config.php> order allow,deny deny from all </files>
こうすることで、WEB経由での直接参照ができなくなります。
-
2.パーミッション設定を404に変更する
WEBサーバの環境によりますが、パーミッションは404にしましょう。
書き込みさせたくない、変更させたくないファイルは読み込みのみとして設定しましょう。
ファイルのパーミッションを簡単に説明しますと….
○数字の意味
1 => execute(実行)x
2 => write(書き込み)w
4 => read(読み込み)r
上記の数字を足すことで、設定を分けることができます。
例えば6なら 2+4でread&write
例えば7なら 1+2+4でread&write&execute
○左からの数字の意味
”オーナー” ”グループ” ”その他”のそれぞれの権限毎に読み書きの設定を与える意味合いです。
755と設定されている場合は
・”オーナ”は読み書き実行ができる
・”グループ”、”その他”は読みと実行ができる
という状態です。
”オーナー”と言うのはユーザ権限でファイルの所有者です。
例えばFTPでadminユーザで接続していた場合、FTPの設定によりますが、
新規ファイルをサーバにアップロードした場合は、通常adminというユーザでファイルが作成されます。
新規ファイルの所有ユーザがつまりファイルの”オーナー”です。
”グループ”は、”オーナー”が所属している”グループ”になります。
これも環境設定によりますが、よくあるパターンはユーザ名とグループ名は一緒になっていることが多いですね。
”その他”は、所有者でも”グループ”にも属していないユーザーからのファイルへのアクセスを指しています。
かつてCGIなどのファイルは755にするということが必要でした。(今もですが….)
アクセスされた際にファイルのオーナー以外の権限ユーザがCGIとされたプログラムファイルを実行させるため、 実行権限がないと動作しないということになります。
と簡単に説明できませんでしたが、つまりは404にするということは、書き込みをできなくさせるということです。
そして同一のユーザグループからの全てのアクセスをさせないということです。0の部分ですね。
共有サーバーでWordPressを利用中の場合はこの設定は必須です。
原則、設定のファイルは頻繁に書き換えするものではありません。
WEB経由やFTP経由で、設定ファイルを書き換えを行えなくすることは、非常に大事です。
じゃあ、改ざんの危険性のあるファイルを全て404にすればいいんでね?となりますが、WordPressは頻繁に更新があります。
更新範囲も把握できるものではありません。404にしたら、更新がかからないってことになりかねませんのであくまで、固定の設定ファイルにアクセスや不用意な書き込みができないようにするということです。
設定完了後.htaccessファイルも404としてやり、書き換えができないようにしておきましょう。
※注意 サーバ環境により、WEBサイトが動作しなくなる恐れもありますので、ご利用のサーバ環境に併せた適切な設定が必要です。
apacheの権限でファイルが読み込みができなくなりサイトが表示しない等の不具合がありますので、設定の変更は十分に注意してください。
-
1.WEBサーバ環境の設定ファイル.htaccessで外部からアクセス出来ないようにする
-
対策:
①Acunetix WordPress Security(英語)プラグインによるテーマのチェック
このプラグインの使った感じはパソコンのセキュリティソフトのようにWordPress環境のセキュリティスキャンを行えます。
プラグイン導入後サイドメニューから WP Security の箇所をクリックするとコンテンツ内に問題がある箇所を表示してくれます。
こちらのプラグインを設定することで、サイトでセキュリティ対策が施されていない箇所に関してもカバーしてくれます。
また、データベースのバックアップも行えるので、導入を検討すべきですね。
http://netaone.com/WordPress/acunetix-WordPress-security/ 上記プラグインの使い方や手順等がわかりやすく説明されています。
②リビジョン(差分)でバックアップできる運用を導入する
・サイトコンテンツファイル、WordPress関連ファイル、WordPressデータベースの差分をバックアップを取ることで、サーバのHDDに障害をおこした場合でもサイトコンテンツ、WEB環境を復元することができます。
※同じサーバ内にバックアップファイルがあっても、障害と共に葬られますので、別のサーバやローカル環境などに保管しましょう。
バージョンアップに関係なく1日おきや定期的にバックアップとリビジョンを管理しましょう。
サイトコンテンツ、WordPress関連ファイルに関してはGitでリビジョンをとりながら管理することがオススメです。
Gitでサイトファイルの管理することにより、サーバ上で変更されたファイルの一覧の取得ができますし、改ざんの有無の確認、改ざん前のリビジョンへ復元することもできます。
最近は、Gitを利用できるレンタルサーバ(sakura、CPI等)も出てきました。
併せて実行が可能なら、WordPressで使用しているデータベースもバックアップしてGitでリビジョンを取っていくこともオススメします。
データベースのリビジョン管理しておけば、データベース内容も指定のリビジョンに戻すことが可能です。
Gitでリビジョンををとりながら、運用するWordPress環境は、安全性の高い、復元性の高い運用と言えます。
但し、実行できるサーバが限られますので、サーバ専門家等に相談することをオススメします。
Gitでサイトファイルと、データベースをバックアップリビジョンをとりながら運営する方法に関しては改めてご紹介できればと思います。 -
解決:
①改ざんに気づいた場合は早急にサイトを閉鎖する。
悪意のある改ざん拡散を防ぐためまずは、閉鎖することを決断することは非常に大事です。 そして、改ざんに関して”どの段階”で”自発的に気づく”と言う事が非常に大事です。
改ざんに気づく方法や・パターンなど-
・サーバの改ざん監視システムを導入してリアルタイムでの監視を行う。
おそらく1番安全で、対策が迅速に行えると思います。
ただし、有償なサービスが多く環境設定などサーバ条件など照らし合わせて導入する方法となります。 http://www.hitachi-systems.com/solution/S1301/webalarm/
http://www.tripwire.co.jp/security/solution/detector.html
など、サーバの改ざん監視システムがあるようです。
-
・バージョン管理しているファイルに意図していない変更がないか確認する。
→サーバ内ファイルの変更に関して定期的に監視することで自発的に早期対策が実施できます。
先程も出てましたGitというツールでステータスを確認することで、ファイルの変更の有無が確認できます。
※Git運用に関しては、Gitを使える環境、知識が必要です。
上記のようにファイルの変更に関して監視を行い、どのファイルが変更されたか認識することで解決まではかなり近道できます。 - ・サーバ会社から通知がくる。
- ・googleのインデックスにスパム・ウイルスサイトとして登録されてしまう。
- ・google chromeなどのブラウザに危険サイトの通知がでる。
→以下の状態では社会的に改ざん状態が認知されてしまっています。
予防、対策を踏まえた上で改ざんされてしまった場合は仕方がないです。
迅速に対応・解決するという考え方にシフトさせ原因解明、復旧方法を考え対策を施すようにします。
また、拡散を防ぐためサイトを閉鎖することも非常に大事です。
改ざんされる要因は先ほど述べたとおり、非常に多岐にわたる要因が考えられ解明がしにくいです。
-
・サーバの改ざん監視システムを導入してリアルタイムでの監視を行う。
-
②リビジョンを復元する
対策編:②の項目でGitによるサイトコンテンツを差分を取りながら運用している場合は、 改ざん前のリビジョンに戻すことで、即座に危険性を取り除くことが可能です。
ただし、改ざん後の差分ファイルはなくなりますが、Gitの使い方を知っていれば、 WordPressでアップロードしたメディアファイルだけ取ってきて復元ってことも可能です。
リビジョンによる復元は直接的な解決ではありませんが、侵された部分を取り除くということが可能です。
③原因を検証する
改ざんされる前のリビジョンに戻しても、やはり同じ脆弱性があります。
WordPress以外の改ざん要因の可能性もあります。
復元したから安全ではなく、被害のない状態に戻れるだけですが、被害前の安全な状態に戻せるということは非常に大事です。
・WordPressのバージョンが古くないか確認を行い、バージョンアップしましょう。
・管理者IDの情報流出による改ざんも考えられるので、WordPress管理者情報を変更する。
ーadminとか、ドメイン名などのIDはかなり危険で推測されやすいので使用しないようにしましょう。
・レンタルサーバ内で流出が起こっていないかなどサーバ会社の情報を確認する。
・WordPressの公式サイトなどで脆弱性がでていないか確認する。
・WEB専門家に相談する。
セキュリティ設定に関して
- ・改ざんを受けてから気づくまでわかりにくい
→ファイル改ざん対策のツールを使う。 - ・WordPress起因の脆弱性があるため対策しづらい
→WordPressを常に最新に保ちましょう。 - ・実害がよくわからない
→実害は攻撃者にしかわかりません。実害がでないよう対策することと、出た場合に迅速に対応できる準備をしておくことが大事です。 - ・修復どこから、どうしたらいいの?
→バックアップをとりながらリビジョンを取得できるGitでの運用を検討しましょう。
WordPressでWEB改ざん対策に関してのまとめ
原因を抑えることができれば、新たな対策を行い、再度公開して復元することができます。
解決は、いかに早く気づき、被害を抑えられるかということがポイントとなります。
WordPressを運用することによる、WEB改ざんのリスクを少しでも減らすことができれば幸いです。
これくらいのことはすでに知っているという、担当者の方も多いと思われます。
WordPressの脆弱性なんて気づけないし、いつ出てくるかわからないから心配しても仕方ないこととは思います。
設定もれ、更新もれ、サーバ環境の確認などによる人為的な脆弱性をつくってしまっていないでしょうか?
セキュリティは防犯と同様、事前に準備して対策している方が被害が少ない、狙われにくいと思います。
車でもセキュリティしてある車と、セキュリティのない車だと狙われやすさは断然違いますよね?
WEBも同じです。
脆弱性も狙いやすさが高いほうが、攻撃対象にされやすいものです。
少しでもセキュリティ設定レベルをあげて、狙われにくいサイトを運営するようセキュリティ対策は忘れずにすることで被害率をさげる、被害があった場合の範囲を抑えることができるものと思われます。
次回はWordPressのDBの乗っ取り・不正操作に関しての対策方法をご紹介できればと思います。