WordPress のセキュリティ、こんな記事は要注意


WordPress needle cushion

WordPress ユーザーの間では季節行事になりつつある、WordPress をハッキングされたので、セキュリティを向上する方法を並べました、という怪しい記事がまたまた Twitter で拡散されていたので、どげんかせんといかん、と思っていたところ、WP-D のブルーさんが WordPress使いならこれだけはやっておきたい本当のセキュリティ対策10項目 という記事を書いてくれました。

僕はこの通り遅筆ですから、先を越されちゃった形になったわけですが、だいぶ書き進めていたので、せっかくだからよくある怪しい記事の見分け方とその理由をご提示します。

題して、こんなことを書いている記事は信じちゃいけません!

最初に断っておきますが、ぼくはセキュリティの専門家でも闇プログラマーでもありません。ですが、記事のいわんとすることを冷静に考えてみることで、それが意味のない工程であったり、危険な行為であると気づくことはできると思ってます。

僕が以下にご提示する内容も鵜呑みにするのではなく、本当にそうかな?と考えながら読んでいただければ幸いです。

バージョン表記を隠すとセキュリティがアップすると喧伝してる記事

WordPress 3.x という表示を隠すだけでセキュリティ上効果があるという謎のオススメ。

わざわざ、この WordPress は バージョン 2.7 だから、こんなセキュリティ・ホールがあるはずなので、そこを攻撃しよう…といった手法をクラッカーが取っていたのは90年代のお話。当時常時接続はまだまだ珍しく、サーバーを含めたソフトウェアにパッチがきちんと適用されることもなかった時代です。

時は流れ、攻撃ツールの自動化も進み、クラッカーはツールをスタートさせて、ブルーレイディスクでも見ていればよいようになりました(コンピュータを放置してやってることはあくまでイメージです)。こうしたツールでは、最新のセキュリティ・ホールから順に攻撃を試行するようになっており、わざわざどのセキュリティ・ホールがあるのかを調べたりはしません。バージョン表記があろうがなかろうが関係ないのです。

バージョン表記を隠すことがまったく効果がない、とは言いませんが、セキュリティ面に精通しているわけでもない読者の期待感を煽りすぎているのではないかと思います。

バージョン表記を隠すことで、バージョンアップをしない管理者であるということをクラッカーに気付かれにくい、という効果があると主張する人もいますが、だからといってバージョンアップをしないことを正当化できるわけではありません。

大事なのはバージョンアップ、パッチする、バグフィックスする、これにつきます。

admin というユーザー名は危険という記事

WordPress 3.0 以前のバージョンではインストール仕立ての状態で用意されているデフォルトユーザー名が admin であったためか、admin というユーザー名は危険だと煽る記事が後をたちません。

しかし、コンピューターシステムに詳しい方ならご存知の通り、システム予約ユーザー名というものがありまして、そのシステムには当たり前のように存在しているはずのユーザー名というものがあるんです。

Windows だと Administrator、Linux だと root 、daemon、amanda といった具合に。このユーザー名は誰もが知っていますが、だからといってて直ちに影響があるわけではない!WordPress ではそれが admin だったということです。

枝野メソッドで嘘くさく聞こえてしまうといけないので、分かりやすい例を出すと、twitter がそうです。

twittet にログインするのに必要なユーザー名は、他人が容易に知りうるものですよね。@をつけてやり取りをするものですし、鍵をかけていないユーザーがつぶやいたものはパプリックタイムラインに公開されるため、誰もが容易に知ることができます。むしろプロフィールや名刺に積極的に載せる人もいます。

だからと言って、twitterのセキュリティが甘い、なんて誰も思っていませんよね?

重要なのはユーザー名とパスワードの組み合わせであり、パスワードを他人に知られることがなく、ランダムに当てようがない複雑で長いパスワードを設定すればセキュリティを保つことができるのです。

パスワードを攻撃する手口には以下のようなものがあります。

  • 辞書攻撃: 手に分厚い辞典を持ち、敵を殴る攻撃。角がとても痛い…ではなくて、辞書に記載された主に英単語を順繰りにパスワードに入力し正解を推察する攻撃手法。時間はかかるが、より確実なブルートフォースアタック(次項)が用いられることも。
  • ブルートフォースアタック: パスワードに含まれる英数字記号の組み合わせを総当りで試してログインを試みる手法。規定時間内に規定回数のログイン失敗をしたIPアドレスをブロックするなどの手法で容易に対処できる。
  • ソーシャル・エンジニアリング: ソーシャル・ハッキングともいう。コンピューター・ウィルスやスパイウェアなどをコンピュータープログラムを用いずに、パスワードを取得する方法。コンピューターに疎い上司のパソコンのディスプレイに貼られたポストイットに書かれたパスワードを盗み見る、Facebook から誕生日を知り、パスワードを類推する、などがこれに該当する。デジタルデバイドの進んだ現代日本において、ブルートフォースアタックを行うことがバカらしく思えるほどに強力かつ有効。
  • リスト型ハッキング: 複数のウェブサービスで同じ ID と パスワードを使いまわしていると、一つの ID とパスワードを攻撃者が入手することで、次々と別のウェブサービスへの侵入を行う手法。フィッシングやソーシャル・エンジニアリングと併用され、Gmail を乗っ取った攻撃者が Twitter、Facebook、WordPress と次々と乗っ取るといったことが起きてしまう。最近だとドラクエ10 などでもリスト型ハッキングに対する注意が呼びかけられた

いずれの手法に対しても有効なのは、パスワードを複雑かつ長く類推されないものへと変更し、決して人の目に触れさせないことです。

WordPress はパスワードを変更する際、パスワード強度をインジケーターで見ることができますので、これを参考に強力なパスワードを設定しましょう。

WordPress のテーブルプレフィックスを変更するとセキュリティが向上するという、記事

テーブルプレフィックスってなんだっけ、という方は wp-config.php を見てみましょう。最初に、WordPress をインストールした際に、テーブルの接頭辞(プレフィックス)を決めることになっています。

このテーブルプレフィックス、デフォルト設定では wp_ と決まっているため、デフォルトのままだと攻撃者にテーブル名が分かってしまう…というのが記事の根拠なのでしょう。

しかし、テーブル名が分かったところで MySQL にアクセスするための権限とパスワードを攻撃者に与えなければ、攻撃者は何もすることができません。逆に言えば、MySQL にアクセスできている時点で攻撃者はテーブル名を調べることができるわけで、テーブルプレフィックスを変更したところでほとんど効果はありません。

WordPress を攻撃されたのは本当に WordPress のせい?

そもそも怪しい WordPress セキュリティ記事に疑問を感じるのは、WordPress に変更を加え、WordPress のセキュリティばかり強化しようと啓蒙しているところです。

しかし実際には WordPress の脆弱性ではなく、あなたが自分で追加したプラグインであったり、WordPress をインストールしているサーバーそのものの脆弱性が問題となって、攻撃されていることも多いのです。

参考)Media Temple, WordPress, Mass Hacking | Digging into WordPress
参考)Sites hacked | Dreamhost

上に挙げたいずれもが PHP の脆弱性をついた大規模攻撃が行われた海外の事例になりますが、大概は LAMP のいずれかが原因となるでしょう(他にもあったら教えて下さい。あとこうしたハッキングは海外の事例が多いですが、国内の被害も出ていますので安心してはいけません)。

こうした被害を防ぐためには WordPress だけをメンテナンスしたってダメです。

  • プラグインをきちんと最新版へとアップデートする
  • 最終更新されてから時間が経ち過ぎているものは使用を見直す

といったことのほか、

  • WordPress をインストールしているサーバー環境も最新版へとアップデートする
  • 環境がレンタルサーバーでアップデートが自由にできず、ホスティングサービスがアップデートしてくれないのなら、サーバーの移行を検討する

といったことが必要になります。

○○していれば、大丈夫、という記事は多いですが、ドラクエ的に言うと、ちょっとまて、そんな思考じゃ危ないぞ、というのが結論です。最後までお付き合いいただき、ありがとうございました。


“WordPress のセキュリティ、こんな記事は要注意” への7件のフィードバック

  1. ユーザー名のadminは辞書攻撃上、変えておいた方が無難です。
    ヴァージョン表記もスクリプトで検索かけてアタックするツールがあれば危険ですので、伏せたほうが無難です。。。
    WPだけでなくけっこー基本知識…。
    この記事自体が要注意かなと思いました。

    • 辞書攻撃を受けても大丈夫なようにする方法やバージョン表記の無意味さは記事中で記載しましたが、あえてこう書く明確な理由をご提示いただけますでしょうか?

      このような無意味なセキュリティ対策を妄信的に信じこむ無意味さを要注意だと提起したまでです。

フォームは コメントしてほしそうに こちらを見ている……!

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください