WordPressの初歩的セキュリティ

これも自分用の覚書。


セキュリティの基本

 オープンソースで、誰でも開発が可能な WordPress は、それゆえ、誰にでもセキュリティホールを、じっくりと探ることが可能。そのため、現在分かっている脆弱性を修正した、「最新版を使用し続けること」が、もっとも根本的なセキュリティ対策になる。

 これはプラグインも同様。また、プラグイン自体が、脆弱性になる場合もあるので、絶対に必要なもの以外は、やたらにインストールしない方がよい。もちろん、セキュリティー関連のプラグインでも同様。

[注意点]
   ⇒更新の止まっているプラグインは使用しない
   ⇒使用していないプラグインは削除する
   ⇒テーマも使用していないものは削除

 またサーバーにアクセスして、さまざまな処理をおこなう、あなたのパソコンがウィルスに感染しても、漏洩や改ざんの被害にあうので、パソコンへのセキュリティソフトの導入と維持は、(もっともワードプレスなど関係なく、)絶対に必要。

 「WordPress」をインストールすると、デフォルトでユーザー名として登録されている「admin」は、パスワードが強固なものであれば、一部サイトであおり立てるほど、危険なものではないらしい。しかし、使用していないユーザー名を残しておく必要はないので、消去するのがよい。

とりあえず、ユーザー名が分からないようにしておく方法
    adminユーザーの削除
    しかし「/?author=1」(あるいは2、3など)と入力すると
        ⇒ユーザーが表示されてしまう
    『Edit Author Slug』」というプラグインで
        ⇒スラッグを変更
    当たり前だが、自分のユーザー名が、
        ブログの情報から分からないような名称であること

adminよりも

 より大切なのは、十分に強固なパスワード。小文字のアルファベットだけのパスワードなら、8桁でも半月くらいで解読されてしまう。覚えやすさと、パスワードの長さと、同じパスワードを使い回さない、という条件をクリアすることを考えると、ノイローゼになってしまうので、たとえば
      [ノートンIDセーフ]
などの、パスワード管理ソフトを導入して、そのマスターパスワードだけを記憶しておく。他のパスワードは、パスワード生成ソフトなどによって、使用できる最大の桁数のパスワードにしておく。それは記憶にはとどめない。といった方法がよいかもしれない。

覚えやすいパスワードの作り方

 日本語の場合は、お気に入りの文章を元にして、母音(aiueo)を抜いて子音のみを抽出。ただし母音の発音、つまり「あいうえお」の場合は含む。たとえば、「おはようございます」なら、「ohyugzims」とする。これによって、一つの発音ごとに、なんらかのアルファベットが記入されるので、唱えながら入力しやすくなる。

 さらに、言葉の切れ間に[-]を加え、数字に置き換えられる部分は、優先的に置き換え、アルファベットの大文字と小文字は、覚えやすい範囲で変えるなどしてセキュリティーを高めながら、たとえば、
     枯れ木に花を咲かせましょう。
         Krk2-87o-3KS-msyu
という方法で、覚えやすくてランダムなパスワードが作れる。あとはオリジナルのルールを加えつつ、パスワードにしやすい文脈を探すのがこつかと思われる。

他のパスワードやメール

 さらに、パスワードについては、
   以下を十回口に出して唱えたらよいでしょう。
     ⇒引用元

 ワードプレスにログインするためのパスワードは重要だが、ホスティングのアカウントにアクセスするためのパスワードも同じぐらい重要である。FTPやcPanelで容易に推測することが可能なパスワードを利用しているなら、危険である。また、ワードプレスはeメールを使ってパスワードを再設定することも出来るため、eメールのアカウントが脆弱なら、サイトも脆弱である。サイトのパスワードを改善したなら、ホスティングのアカウントおよびeメールで使っているパスワードも改善しよう。

最後に

     「Crazy Bone」
などのプラグインを導入しておくとよい。これによって、管理画面からアクセスログを見ることが可能になり、自分ではない第三者が、ログインを試みたかどうかなどを把握することが出来る。

セキュリティーの設定

 基本は、
   ブルートフォースアタック
    (Brute-force attack、力任せの攻撃、総当たり攻撃)

   コメントスパム(スパムコメント) のブロックになります。

[厳密には]
 ブルートフォースアタックというのは、デジタル情報はすべて[0]と[1]に還元されることから、[0、1、10、11、100、101、110、111、1000、1001、1010、1011、1100、1101、1110、1111、10000……]と果てしなく入力していけば、いつかはパスワードを二進法に還元した数値と一致してしまう。つまりランダムなアルファベットだの、大文字小文字だの、記号だのを使用したからといって、そんなことはお構いなしに、すべての[0]と[1]の組み合わせを、総当たりで確かめて、いつかは必ずパスワードにたどり着くという攻撃。

 Wordpressへの攻撃で多いのは、よく使われるユーザー名と、よく使われるパスワードを、ソフトに納められた「辞書」から持ち出して、順次試みるという、「辞書攻撃」のようだが、検索するともっぱら「ブルートフォースアタック」として、Wordpressへの攻撃が語られているようなので、気にせず、それにしたがう。

[コメントスパム、スパムコメントとは]
 ようするに、コメント欄に、あなたのブログへのコメントではなく、何の関係もない広告を掲載したり、リンクを張ってその先にウイルスを忍ばせてみたり、あらゆる有害なコメントのこと。多くの場合は、プログラムによって、自動的に掲載されているので、自動でコメントしずらい環境を用意しておくことが大切。

 どちらも、特に多いのは、日本国外のIPアドレスからの攻撃(もちろん国内からの攻撃もある)なので、日本語による日本人だけを対象にしたようなブログであれば、もっとも効率的なのは、日本国外のIPアドレスからのアクセスを制限してしまうこと。

 さらに、ブルートフォースアタックは、パソコンの処理能力に任せて、ソフトで、自動的かつ迅速(じんそく)に、ユーザー名とパスワードを次々に試して、一致を試みるもの。たとえば、ワードプレスのデフォルトのユーザー名、「admin」が残されたままだとすれば、そのユーザー名はもっとも優先的に試行されるものなので、みじかいパスワードであれば、あっという間にパスワードが解析されてしまう。

 ところで、もっとも多い侵入者は、特定のサイトを突破しようとするよりも、あらゆるユーザーのワードプレスのログイン画面を、不特定に調べては、ありがちなユーザー名とパスワードを、ひたすら試みて、突破出来たら、進入をはかるものなので、
     一定回数以上ログインを試みた、
         IPアドレスからのアクセスを、
            しばらくの間遮断する

くらいでも、かなりの足止めの効果を持つ。

[Wordpressのプラグインなら]
      Login LockDown
  あるいは       Simple Login Lockdown
というものがあるので、これをインストールして有効化しておこう。
      ⇒三回の入力間違いで[12h~24h]程度のログイン不能でよい
      ⇒「ユーザー名、パスワードが違っています」の表記も無しに

エックスサーバーの場合

・サーバーパネルの「ホームページ」の項目にある、「WordPressセキュリティ設定」を開いてみよう。[国外IPアドレス制限設定]を眺めると、管理画面と、ログイン画面への国外IPアドレスからの接続は、デフォルトで制限されている。

【アクセスが制限されるURL(パス)一覧】
    /wp-admin ……管理ツール(ダッシュボード)のフォルダ
    /wp-login.php ……ログイン時にアクセスするファイル

・さらに[ログイン試行回数制限設定]が「ON」になっていて、ワードプレスのプラグインを導入しなくても、短期間に複数回のログイン失敗が行われた場合、24時間のログイン制限がかかるのが分かる。したがって、はじめはプラグインを導入せず、様子を見ればよいでしょう。

ログイン不正侵入防止

 さらに強固なものとして、いくつかを紹介しておくが、不正の侵入の試みが多いなら、導入を検討してみるとよい。詳細は割愛。

[プラグイン「Google Authenticator」]
 ログイン画面に、グーグルの「二段階認証」と「ワンタイムパスワード」を導入できるもので、グーグルで「二段階認証」を使用している人は、検討してもよいかもしれない。ただし、わずらわしいかと思われる。

[Basic認証]
 ログイン画面を表示させるために、さらにユーザー名とパスワードの入力が必要にするもの。

[管理画面へのIPアドレスを限定する]
 固有のIPアドレスを持っている場合、自分のIPアドレス以外は、ログイン出来ないようにしてしまうことも可能。強固だが、不便な点も多い。

パーミッションの変更

 レンタルサーバーは、UNIXのシステムを使用し、これはもともと、複数のユーザーが使用するためのものである。そこで、ファイルやフォルダごとに、「誰が読み込めるか」「誰が書き込めるか」「誰が実行できるか」といった権限を与えるための「数値」が設定されている。これをパーミッション(属性)という。数値は三桁で、
    [自分自身、グループ、他の人]
の順に設定され、
     読み込み可能には 4
     書き込み可能には 2
     実行可能には 1
が当てはめられている。
 これらの数値は、たわいもない足し算によって、
     読み書き可能であれば、[4+2=6]
     すべて可能であれば、 [4+2+1=7]
といった数値が与えられ、それがそれぞれ
    [自分自身、グループ、他の人]
の順番で
    [606]とか[444]
  などと設定される。

 とりあえず、はじめの一手としては、[FTPソフト]を使用して、Wordpressを開いたところにある、
    .htaccess[604]に、
    wp-config.php[400]
        (ただし何らかのエラーの出る場合は、[404]
に変更しておこう。

・やり方は[FTPソフト]で対象ファイルを選択して、属性変更などとあるところからおこなう。詳細は割愛。

スパムコメント対策

 まずはじめに、はじめから WordPress にインストールされているプラグイン、
   [Akismet]
を必ず有効化しておく。やり方は、検索するとすぐ出てくるので、それにしたがう。登録の際にユーザー名は、本名である必要はないようだ。金銭の欄もあるが、いくら払いますかのバーをスライドさせると、ゼロ円、つまり無料で使用できる。

    [SI CAPTCHA Anti-Spam]の導入
 画像認証。つまり表示されているアルファベットを打ち込まないと、コメントが送信されないプラグイン。スパムコメント対策とともに、流しコメントを避ける効果があるので、導入しておくとよいかもしれない。このプラグインは、ログイン画面に「画像認証」を表示させることも可能だが、チェックを入れたら、正しく入力してもログインできなくなったことがあったので、一応記しておく。

とりあえず

 このくらいのセキュリティ対策を済ませてから、ブログを開始すると良いかもしれない。あとは気になるところを、気になる時に、あらためていったらよいでしょう。

おまけ 必要ではないか?

 以下のものは、わざわざ試みなくても良さそう。(個人的見解)

・バージョン表記を隠さなければならない
・テーブルプレフィックスを変更しよう