NeGiMeMo.net

ねぎさんのメモ帳。日常・メモ・ときどきWordPress。

【WPAC2014Solo】セキュリティを考える

bell賞味期限切れコンテンツ

この記事は公開または最終更新から953日くらい経過しています。
このメッセージが表示されている記事(特にプログラミング系)は情報が古くなっている可能性があるので注意して下さい。

wpac2014head_day5 こんにちは。5日目担当はなんと、俺です。

本日のお題っ

WordPressのセキュリティで初心者ができることを教えて下さい。

ということで今回はセキュリティのお話です。

考えられる対策のなかで比較的簡単にできるものから挙げてみようと思います。

1.パスワード関係

とりあえず今すぐ数秒でできる対策っていったら、これですかね。

パスワードは

  1. 簡単なものにしない
  2. 他のパスワードと被らない
  3. 長期間同じパスワードを使わない

だけでも、ログインを試みようとする相手にはかなり有効かもしれません。

1.簡単なものにしない

パスワードはなるべく複雑で、推測されにくいものがいいです。一番かんたんなのはジェネレータサイトとかで複雑なのを生成することかもしれませんが、覚えられないよーというばあいは、自分に馴染みのある(でもなるべく他の人にはわかりにくいような)単語などを利用しつつも、例えば「o」と「0」や「I」と「l」と「1」のように形の似ているものを利用した入れ替えなんかもたまに聞きますよね。ほかにも結構いろんなテクニックがあるみたいですよ。

覚えやすいのに強固なパスワードの作り方 – NAVER まとめ

ちなみにパスワードの変更は、管理画面の「ユーザー」→「あなたのプロフィール」から変更できます。

2.他のパスワードと被らない

これも基本ですね。他のサービスのパスワードと同じものを使ってると、自分の側の対策が万全だったとしても、万が一他のサービスでパスワード流出などとなった際にそこからパスワードがバレてしまいます。

パスワードはほかと被らないようにするのも基本です。

別々に覚えるのが面倒ならば、ベースとなる強固なパスワード+サービス名、サイト名などというテクニックもあるようです。

例えばベースとなるパスワードが「H7sekrEc」で、WordPressのサイトだったらば、「WpH7sekrEc」といった感じに。WordPressってのが予想されやすそうだと思ったら、「PreSsH7sekrEc」とかでもいいかも。サイト名からとって例えばうちなら「NeGiMeMo」から「NMoH7sekrEc」とかもいいですね。

それか「1Password」のようなパスワード管理ツールを使ってサイトごとには複雑なパスワードを設定しておきつつ、覚えておくのは 1Password のマスターパスワードだけというふうにするのも1つの手かもしれません。

3.長期間同じパスワードを使わない

これもよく言われてることですが、パスワードは定期的に変更したほうが安全です。総当りで攻めて来られたらいつかはパスワードがバレる可能性があります。

ですが、「当たり」を少しずつずらしていけば、当たる確率はそのままよりもずっと下がりますよね。

たとえば以前自分が務めていたところでは、基幹システムにログインするためのパスワードは3ヶ月で失効するようになっていて、それまでにパスワード更新手続きを行わないと一切ログインできなくなり、再度ログインできるようにするには非常に面倒な手続きをしなくてはならないようになっていました。
また、当然同じパスワードは2度と使えませんので毎回パスワードを考えるのは大変でしたが、そのくらいやらないとパスワードだけで守るのは大変なのかもしれませんね。

ログインIDを変更する

パスワードを強固にするのも大事ですが、ログインIDを複雑にするのも大切です。
例えば、「admin(administrator)」とか「webmaster」みたいなのはなんとなく強い権限のアカウントだよなって想像がつきますよね。

そうすると、まずそのIDである前提でパスワードの総当りを仕掛けてきます。
ですが、そもそもそのIDのアカウントがなければパスワードを総当りで探されてもヒットしませんよね。

そうなると攻撃者としては、ログインIDも探さなくてはならなくなります。ということは攻撃者としては手間が一気に増えるわけで、それだけ破られる可能性は下がるってわけですね。

ちなみに admin とか webmaster 以外でも、ありがちな部署名の英語表記は意外と狙われるようです(後述します)

どうしても企業サイト等で部署ごとにアカウントを作りたい場合は、英語表記ではなく、敢えてローマ字でアカウントを作るのは有効かもしれません。(総務なら「manager」とかにせず「soumu」とする等)

プラグインで何とかする

WordPressにはセキュリティ関係のプラグインもたくさん用意されています。
有名なとこだと、

なんかがよく紹介されてますね。後者は更新が止まってるようですが…。

いずれも一定の時間内に特定の回数パスワード認証に失敗すると[*1] ログイン画面をロックしてしまい、そのIPからは一定時間ログインできないようにするものです。

自分は後者の Limit Login Attempts を使用しているので Login LockDown についてはあまり詳しくはわからないのですが、Limit Login Attempts の場合、ログを取る機能があり、悪意のあるユーザーがどんな ID でログインを試みたかを調べることができます。

自分の場合は、「admin」「administrator」「negimemo」などが圧倒的に多かったですが、それ以外でも数は少ないものの

  • staff
  • helpdesk
  • reception
  • services
  • work
  • webmaster
  • user
  • root

などでの形跡が残ってました。このへんも可能なら避けたほうがいいかもしれませんね。

IP制限、BASIC認証

プラグインだけでも不安という場合は、ログイン画面と管理画面に対しアクセス制限をかけるという方法もあります。

他の方法より多少ハードルはあがりますが、それでも決して難しくはありませんし、やる価値は大いにあると思います。

IP制限

読んで字のごとく、ログイン画面に入れるIPアドレスを制限してしまい、その場所からしかログインできなくする方法です。

自分が普段更新する場所以外からはそもそもログイン画面に入れませんので外部からの侵入には一番安全かもしれません。

ですが同時に、自分も他の場所からアクセスできなくなるので、急にネカフェとかスタバから更新したくなったとしても、ログインできなくなってしまいます。

また、固定IPでない場合、通信機器の再起動によってグローバルIPアドレスが書き換わってしまい、許可してる場所からもログインできなくなる危険性もありますので(そのつど許可するIPを変更するひつようがある)、例えば旅をしながらブログを書くようなひとや出張が多い人には向かないかもしれません。

BASIC認証

WordPressのログインIDとは別に、IDとパスワードを設定する、ダブル認証にする方法です。

これについては以前記事を書きましたのでそちらを参照してください。

2回パスワードを入れなくてはなりませんが、それぞれ異なるID、PASSにすることでより安全にできるかと思います。

ほかにもパーミッション変えたりとかいろいろあるとは思いますが、とりあえずこのへんまでやるだけでもかなり違うと思います。

ちなみにBASIC認証いれてからは Limit Login Attempts のログは増えなくなりました。いや、増えてたらすでに1こパスがバレてるってことになるんで増えてたらまずいんですが。

ダブル認証といえば、Googleの2段階認証アプリを利用できるようにするようなプラグインもありますよ。スマホを耐えず持ち歩いている人なんかはこれもおすすめです。

WordPress › Google Authenticator « WordPress Plugins 

 

これはWordPressひとりアドベント・カレンダー2015の記事です。
WPAC2015Soloについてはこちらをご覧ください。

TAGS