WordPressで考慮するセキュリティの対応ポイントマップ



まとめ方について機能を元に何が防げ、結果的に防げているかを調べるやり方は好まないので、違うやり方で整理しました。

個人的には、目的ベースで、本質・現実感を重視したいと思います。

セキュリティ対策  全体マップ

 

目的対象者方法 影響・ダメージ事前対策事後対策備考
金銭目的
PRユーザスパムコメント 品質・信用コメント対応(ログイン、キャプチャ、コメント承認)コメントの運営 
マーケティングユーザアカウント情報 行動履歴の流出不正侵入対策  
お金、品物の購入ユーザアカウント情報 経済的被害不正侵入対策  
フィッシング詐欺 経済的被害ログインシール  
振り込め詐欺 経済的被害注意喚起  
ローカルPC乗っ取りサイト改ざん、ウイルス、サイトリダイレクション経済的被害ユーザ側ログイン管理  
 不正侵入対策改ざん検知 
情報盗聴サイト踏み台サーバ 信用、時間的損失不正侵入対策  
ユーザ個人特定情報である行動履歴の取得 信用失墜サーバ運営  
サイト改ざん等 信用失墜不正侵入対策  
踏み台PC 信用失墜不正侵入対策  
楽しみ
愉快犯サイトサイト書き換えによるアピール 信用失墜不正侵入対策  
スパムコメント 信用失墜コメント対策  
ユーザアカウント乗っ取り 信用失墜ユーザ側ログイン対策 
ローカルPC破壊 信用失墜不正侵入対策  
対立的関係
嫌がらせ、技術流出サイトサイト能力低下のためDos,Ddos,F5アタック 信用失墜高負荷アクセス対策  
  信用失墜不正侵入対策  
破壊 信用失墜不正侵入対策バックアップ 
ユーザアカウント乗っ取り(アカウント・メール変更、サービス登録・退会) 信用失墜ユーザ設定のセッション管理  
クリックアタック 信用失墜ユーザ側ログイン対策  

※全体的にバックアップは有効です。特に破壊対策についてはWP DB Managerなどで記事情報をバックアップしたり、ローカルにコピー(WordPresssでエクスポート機能が具備されています)しておきます。
不正侵入は、運営側のログイン管理やログ管理も含みます。


上記の対策で、以下の4つを軸に説明したいと思います。
  • 不正侵入対策、サーバ運営対策
  • ユーザ側ログイン対策、セッション対策
  • コメント対策
  • 高負荷アクセス対策(Dosなど)

不正侵入対策、サーバ運営対策

物理的な対応

そもそも ネットワーク的に万全でも、 サーバがむき出しであれば意味がありません。例えばイラクが核査察を拒否していたけれども、アメリカがUSBを持ち込んで、HDDの回転数を極端に上げるドライバをインストールして、イラクのサイバー能力を破壊しました。結局イラクは査察を受けれることになったように、サイバー攻撃は、物理的にも対策が必要です。物理的にも安心できるクラウドサーバなどを選びましょう。

運営的な対応

某教育会社など、実は内部犯行により不正アクセスが起こることもかなり多いです。

個人でやってる場合はそれほど深刻ではありませんが、管理者の権限をミニマムにし、権限ごとにユーザの情報等を管理するようにします。何をミニマムのサービス・権限とするのがまた難しいところです。

使用プログラムの確認

通信の管理

IPやサービスなど通信の整理が必要になります。不要なサービスは塞ぎます。

穴の検索

クラッカーは、脆弱性を探し、侵入を試みます。侵入したら、サイト改ざんやウィルスの混入、個人情報/技術情報の盗聴などが出来るだけでなく、踏み台としていろいろ利用されることもあります。

   穴の探し方はいろいろあり、脆弱性のあるアプリケーションのバージョンを見たり、エラーログの癖からそのバージョンを見破ったり、フォルダ構成から特定のファイルを見つけ出し、そこから侵入経路を探したりします。そのため、余計な情報等のアクセスを防ぐ以下の様な対策が一般的に安全とされています。

  • バージョン、エラーログを隠す。
  • index.php、ディレクトリトラバーサル、やディレクトリの権限(Apacheの.htaccessや、 ftp等で設定) で、不要な情報にアクセスさせない。
  • adminアカウントなどデフォルトアカウントの削除、ブルートフォースアタック対応(ロック、スリープ、IP弾き)でログインさせない。
  • wp-configなど 設定情報の権限を厳しくする。

だいたいセキュリティ系のプラグインは、ここらへんをパラパラとチェックしてくれます。Acunetix WP SecurityWordfence Security
個人のWordPress運営では開発していない人も多いと思いますし、個人情報や技術情報を隠して載せていることも少ないかと思いますので、開発など重視の対策は省略します。


脆弱性のキャッチアップ

Windowsでもセキュリティパッチを当てたり、ウィルスチェックをするように開発していなくても使用しているものの安全性の確認として最新版の情報や、セキュリティ問題の確認が必要です。

  • OS/Webサーバ(Apacheなど)/アプリケーションモジュール(PHPやWordPress)など
  • WordPress上の対応やプラグイン


メジャーなプラグインは、バージョンを最新版にしたり、無名なプラグインはいつでも停止・削除する準備をしておきたいです。All In One WP Security & FirewallWordfence Security でプラグインなどの状況が少し確認できます。
もし開発していた場合、開発プログラムの更新(オーバーフロー、インジェクション、セッション管理(PHP)対策などIPAにあるような、プログラムの対応)が必要です。

安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構

更新検知

もし万が一入られてしまった場合、更新を検知する必要があります。

プラグインは作業を少し手伝ってくれるイメージで考えておければ良いと思います。プラグインを入れればOKというわけではなく、3段階ぐらい深掘りしてちゃんと対応でき始めるくらいですので、多分普通の人には無理です。

ユーザ側ログイン対策、セッション対策

PHPやWordPressやプラグインに対策されている上、WordPressサイトではあまりログインして操作等するわけではないので、あまりないケースだと思います。

ユーザ個人側の対策

そもそもの対策はユーザ側自信でもいくつか心構えが必要です。以前 LINEやFacebookが乗っ取られる人がいたのは、同じIDやPWを小さなサイトでも使っていた人が多かったのでしょう。ほかのサイトで穴が破られ、その情報を使ったら入れてしまった人がいたのだと思います。これらはこちらのサイトでは今のところ防げません。これからの技術に期待したいですが今のところ、ユーザ側のリテラシー向上が実は必要です。

サイト側の対策

サイト側でできる対策は、以下のケースを想定して対応します。

・実は他のダミーサイトの上にあなたのワードプレスのサイトが透明に上書きされていて、知らずのうちにログインしてた状態で、アカウント情報当変更してしまった。
・XSS(CSRFやセッションハイジャック等)で、IDやPWがバレたか、操作されてしまった。

ログイン状態でのユーザ情報の更新です。例えば メールマガジン登録や、メールアドレス変更などの処理です。そういう処理が必要な場合、再度PWを入力させて対応します。ログイン自体はなるべくツールに任せるか、WP Social Loginなどを使ってOpenIDで大手サイトのログインに任せるのも大事です。個人情報は保存しないようにしておくのベストです。

ID/PWが直接バレた場合は、対応できませんがバレにくいようにするには「アクセス対策」の項で説明します。

コンテンツをオープンにするような WordPressではレアかもしれませんが、途中経路のブロックについても、SSL通信を使います。いわゆるhttps通信などです。

コメント対策

ユーザのコメントとスパムのコメントは見分けがつかないため、完全な対応はありません。コメントしにくくなりますが、以下の様な対策があります。

  • Captcha()によるマシンの 自動登録対策
  • ログイン許可制
  • 承認制コメントなど

キャプチャ関連は Captcha のプラグインがいくつかあります。人が行う場合防げませんし、これらも機械からのオートマチックな登録を完全に防げるわけではありません。まあNWやWebにそこまで詳しい人がそんな迷惑で効率やアタマの悪いスパムをやるとは思えませんが。。。

もうひとつはプラグインによる事後対応があります。 Akismistによってスパムコメントを自動的に排除してくれます。

それでも完璧ではないため、あとは目視で頑張るしかありません。

高負荷アクセス対策


不正侵入で主に話した対策では、CPU負荷(サーバの負荷)が高いため、普通Dosに対しては、通信のブロック対応があります。  IP tablesなどを直接書き換えたり、 WAF,IDS,リバースプロキシ、ファイヤーウォールなどを導入して、Webサーバの手前で怪しい通信などをブロックしたりします。少し頭の良いフィルターです。

さくらやロリポップサーバであれば、簡単にWAFの ON/OFFが設定できます。

サーバ自体、自分で運営している場合、 IPtablesなどで、 不正と思われる IPを除きます。そのためにはログ確認も必要です。相当レベルも時間も必要になります。個人サイトでは、負荷だけ確認しておき、負荷が大きくなってそうであれば、導入の検討でも良いと思います。

基本的にこういう言いがかり対応は根本的な対応が難しいです。ヤクザの言いがかりとか、ツイッターの喧嘩をうってくる炎上とか。。。世界みんなが幸せになってそういう人がいなくなってくるしか無いですね。

セキュリティと根本的にはあまり関係ないですが、必要リクエストなのに高負荷であれば、サーバの増強等が必要です。

普通のワードプレス管理者ではこれらの対策は難しいので、多分されてないと思います。余裕がある人は WAFや以下のIPtablesからチャレンジしてみましょう。

【おまけ】なにか新しくサービス拡充対応するときは、

これらを踏まえてこういう観点が必要ですね。チェックポイントを上げておきます。


サイトにサービスや機能を追加するとき

  • 個人情報の扱い
  • 運営者の体制や管理
  • ログイン管理
  • 不正操作、誤操作対策


サイトを新規に作るとき
  • 通信情報の整理


サイト構築(OS/Web/サーバ/アプリケーション)
  • 不正サービスの整理
  • 負荷状況、余力
  • セキュリティパッチ
  • 改ざん
Delicious にシェア
Digg にシェア
reddit にシェア
LinkedIn にシェア
LINEで送る
email this
Pocket




コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です