WordPress(ワードプレス)のデメリット(弱点)の1つである「脆弱性」について解説します。
WordPressはプログラミングやWeb制作の知識のない初心者でも簡単にブログやホームページを作ることができるアプリケーションです。
日本でも世界でもシェア率No.1のCMSで、なんと世の中に存在するWebサイトのが4割以上がWordPressで作られているんです!
めちゃくちゃ普及してるよね!
しかし、このシェア率の高さ・利用者の多さが一方ではデメリットになってしまいます。
なぜなら利用者が多いゆえに、ハッカーやクラッカーなどのサイバー犯罪者による攻撃や不正利用に狙われやすいからです。
1つ脆弱性を見つければ、たくさんのWebサイトを攻撃することができるからだね。
そこでこの記事では、WordPressの脆弱性(ぜいじゃくせい)について解説するとともに、
悪意を持った第三者からの攻撃・不正利用を防ぐためのセキュリティ対策について解説します。
しっかりと対策・対応をおこなうことで、WordPressの脆弱性を狙われるリスクは格段に低くなります。
WorPressの脆弱性とは?
まずは、WordPressの脆弱性についての基礎知識を学んでおきましょう。
そもそも脆弱性ってなに?
一言でいうと「脆弱性(ぜいじゃくせい)」とはセキュリティ上の欠陥です。
脆弱性(ぜいじゃくせい)とは、コンピュータのOSやソフトウェアにおいて、プログラムの不具合や設計上のミスが原因となって発生した情報セキュリティ上の欠陥のことを言います。脆弱性は、セキュリティホールとも呼ばれます。脆弱性が残された状態でコンピュータを利用していると、不正アクセスに利用されたり、ウイルスに感染したりする危険性があります。
引用:脆弱性(ぜいじゃくせい)とは?|どんな危険があるの?|基礎知識|国民のための情報セキュリティサイト
つまり、脆弱性とはプログラムの開発時などに、開発者が見落としてしまったミス・エラー・バグなどが存在することで、
この欠陥や弱い部分をついて、攻撃されたり不正アクセスされてしまうのです。
よく「○○○のクレジットカード会員情報が△△△件も漏洩した」みたいな不祥事がニュースで取り上げられることがあると思いますが、
この情報漏洩についても、Webサイトの脆弱性が原因となっていることが多いんですよね。
WordPressは脆弱性が心配?
WordPressを導入する際に、この脆弱性が問題視されることがとても多いです。
僕も会社の仕事でオウンドメディアを立ち上げようとした際に、システム管理本部から「WordPressはセキュリティ上問題があるから使っちゃダメ!」と怒られたことがあります。
しかも1回だけではなく3回も。すべて違う会社だよ。
ではなぜWordPressは脆弱性・セキュリティ上に問題があると言われてしまうのでしょうか?
理由は3つあります。
- オープンソースだから
- 利用者がとても多いから
- 無知な人でも簡単にWebサイトが作れてしまうから
WordPressはオープンソースだから
オープンソースというのは、プログラムの内容を誰でも見られるように公開していることを意味します。
誰でも見れられるわけですから、なにか弱い部分や欠陥があれば、それを不正利用することは難しくありませんよね。
WordPressは利用者がとても多いから
冒頭でも書いたとおり、WordPressは利用者が世界中にたくさん存在します。
WordPress is used by 65.1% of all the websites whose content management system we know. This is 42.9% of all websites
引用: Usage Statistics and Market Share of WordPress, November 2021
WordPressは、CMSを使って作られたすべてのWebサイトの65.1%で使用されています。世の中に存在するすべてのWebサイトの42.9%にもあたる数です。
つまり、WordPressの弱点を1つ見つけてしまえば、世界中のWebサイトの半分近くを攻撃できるということになります。
これは悪党にとってはめちゃくちゃ美味しい事実ですよね。
実際には同じWordPressサイトでもセキュリティレベルは1つ1つ違うので、すべてのWordPressサイトを攻撃できるわけではないけどね…
無知な人でも簡単にWebサイトが作れてしまうから
WordPressはWebや技術の知識がない人でも簡単にWebサイトを作れてしまうCMSです。
それがWordPressの一番の魅力でもあるのですが、それゆえに多くのWordPress利用者はセキュリティの知識をもっていないのです。
つまりハッカーやクラッカーにとってはめちゃくちゃ簡単に攻撃できてしまうWebサイトが大半だということですね。
こうしてWordPressの脆弱性が問題視される理由を見てみると、WordPressそのもの悪いとか欠陥が多いということではなく、
WordPressの利用者が多いこと、初心者でも簡単に扱えることの裏返しとして、攻撃をされる機会が多いということが問題点なんですよね。
良いことと悪いことは、表裏一体なんだね。
WordPressは脆弱性はどこにある?
ではWordPressの脆弱性はどこにあるのでしょうか?
WordPressの脆弱性は以下の3つの中に存在することになります。
- WordPress本体
- WordPressプラグイン
- WordPressテーマ
WordPressへのサイバー攻撃のほとんどは、プログラムの脆弱性(セキュリティホール)を狙っておこなわれます。
つまりプログラムがあるところに問題の発生源があるということになります。
WordPressの場合は、WordPress本体そのものや管理画面、プラグイン、テーマがその攻撃対象になります。
WordPressの脆弱性を狙った代表的な攻撃方法とは?
では実際に、WordPressの脆弱性を狙った攻撃方法にはどのようなものがあるのでしょうか?
ハッカーやクラッカーなどの悪党は、どのようにあなたのWordPressを攻撃するのでしょうか?
代表的なものには以下のような手法が挙げられます。
- ブルートフォースアタック(総当たり攻撃)
- コンテンツインジェクション(コンテンツの改ざん)
- SQLインジェクション(データベースの不正操作)
- クロスサイトスクリプティング(悪質サイトへの誘導)
- ゼロデイ攻撃(超短期間攻撃)
- ディレクトリトラバーサル(ファイルへの不正アクセス)
ブルートフォースアタック(総当たり攻撃)
「ブルートフォースアタック」はいわゆる総当たり攻撃のことです。
ブルートフォース(brute force)には「力ずくで」とか「強引な」みたいな意味がありますが、ログイン情報(ユーザー名やパスワード)を考えられるすべてのパターンで試してみる方法です。
もちろん人力ですべてのパターンを試すのは物理的に無理がありますが、プログラムを組んでしまえば自動的に実行することができます。
文字通りアナログで強引な方法ではありますが、時間をかければいずれは突破できてしまいますし、単純なだけにわりと有効な攻撃手法なんですよね。
ブルートフォースアタックを防ぐためにはパスワードを複雑にすることが一番です。
文字列を長くしたり、大文字・小文字・記号・数字などの文字の種類を多くしたりすれば、攻撃を難しくすることが可能です。
コンテンツインジェクション(コンテンツの改ざん)
「コンテンツインジェクション」とはいわゆるコンテンツの改ざんのこと。
自分の知らないうちにコンテンツ(記事の内容や画像、リンク)などが挿入されてしまったり、内容を書き換えられることを指します。
記憶に新しいところだと、2017年の1月26日に公開されたWordPressのバージョン4.7.2で、コンテンツインジェクションを可能にしてしまう深刻な脆弱性が見つかったことがあります。(参考:Disclosure of Additional Security Fix in WordPress 4.7.2 – Make WordPress Core)
この時には実際に政治家・企業・研究機関・大学・自治体などのホームページがコンテンツ改ざんの被害を受けニュースになりました。(参考:丸川五輪相HPに謎のメッセージ ハッキング被害急増:朝日新聞デジタル)
自分のブログやホームページの内容が勝手に書き換えられちゃうなんて怖いよね…。
ちなみに、実は僕もこのコンテンツインジェクションの被害にあったことがあり、ページ内のリンク(別のページに進むための内部リンク)がまったく関係のない別のサイトへのリンクに書き換えられていたことがありました。
僕自身はまったく気づかなくて、読者さんからのコメントで気づくことができました。
怖すぎて、それ以来僕はWordPressのセキュリティ対策をめちゃくちゃ強化したんだよね……。
SQLインジェクション(データベースの不正操作)
「SQLインジェクション」は、一言でいうとデータベースを狙った攻撃です。
データベースにはたくさんの機密情報が入っていることが多く、個人情報などの情報漏洩にもつながるリスクも高いめちゃくちゃ危険な攻撃です。
SQLとはデータベースサーバーを操作するための命令文なので、これを改ざんされてしまうと攻撃者がデータの不正操作や抜き取り、破壊が可能になってしまいます。
クロスサイトスクリプティング(悪質サイトへの誘導)
「クロスサイトスクリプティング(XSS)」とはWebサイトの脆弱性を利用して不正なスクリプト(簡易的なプログラム)を仕込み、
あなたのサイトに訪れたユーザーを、外部の悪質なサイト(偽サイトやフィッシングサイトなど)に誘導する(サイトをクロスさせる)攻撃です。
誘導した先の悪質サイトでは、ユーザーの個人情報を奪うなどの不正行為がおこなわれてしまいます。
ゼロデイ攻撃(超短期間攻撃)
「ゼロデイ攻撃」とは、いわば速攻です。
プログラムなどに脆弱性が見つかってから、その対応や対策が行われるよりも前に、速攻で攻撃が行われることから「ゼロデイ(zero-day、0日)」攻撃と呼ばれています。
開発側がセキュリティホールに気付いて対応(修正パッチやセキュリティ対策)をおこなう前に攻撃されてしまうので、なかなか防ぐのが難しい攻撃です。
ディレクトリトラバーサル(ファイルへの不正アクセス)
「ディレクトリトラバーサル」はサーバー内にある公開されていないファイルに勝手にアクセスする攻撃方法です。
Webサイトの脆弱性をつき、本来アクセスできないはずのファイルを呼び出し、不正に閲覧したり利用するのです。
個人情報などの機密情報が見られてしまうので、これも重大な被害に繋がります。
WordPressの脆弱性対策を行わないとどうなる?
ここまではWordPressの脆弱性にどんなものがあるかを解説しましたが、
ではこの脆弱性をほったらかしにすると、どんなリスク・問題があるのでしょうか?
管理画面に不正アクセスされる
WordPressの管理画面は、文字通りサイト全体の管理・設定をおこなう場所です。
ここに不正にアクセスされてしまうと、管理画面でできることはすべてサイバー犯罪者にもできることになります。
コンテンツの内容を書き換えられたり、情報やサイトそのものを削除されてしまったり、悪質サイトにユーザーを誘導されてしまったり、個人情報などを抜き取られてしまったり…
もしパスワードを書き換えられてしまったら、あなた自身も管理画面にログインできなくなってしまいますよね。
サイトを不正改ざんされる
WordPressなどのWenサイトにおける不正改ざんとは、攻撃者があなたのサイトや管理画面にアクセスし、あなたに無断で情報を書き換えられてしまうことです。
実際に発生した不正改ざんの事例には、下記のようなものがあります。
- 記事の内容を勝手に書き換えられた
- 他者の誹謗中傷や卑猥な画像を掲載された
- 政治的な主張やメッセージを掲載された
- 詐欺目的のフィッシングサイトなどに誘導された
- コピーサイトを作られ個人情報を盗み取られた
他にもたくさんありますが、金銭目的のものや、ただ主義主張を発信するだけのもの、ライバルに対する嫌がらせ、目的が不明な愉快犯的なものまで…… さまざまな被害があります。
機密情報・個人情報が漏洩する
さまざまなサイバー攻撃のなかでもとくに注意しなければならないのが、機密情報や個人情報の漏洩です。
個人がブログやアフィリエイトサイトを運営する場合にはそれほど被害規模は大きくなりませんが、
数多くの会員情報や、クレジットカードや銀行口座などの金融情報、病歴などの医療情報などを抱える企業や組織は、個人情報が漏洩してしまうと経営が傾くほどの被害につながることも少なくありません。
なので企業の中には、WordPressの利用を禁止するところも少なくないのですね。
サイトや運営者の信頼が落ちる
もしサイトの改ざんや情報漏洩が発生してしまった場合、あなたやあなたのサイトに対するユーザーからの信頼は大きく失墜してしまいます。
リピーターやファンを失い、商品・サービスが売れなくなり売上も大きく減ってしまいます。
一度落ちた信頼を取り戻すには、とてつもなく長い時間と労力が必要になるでしょう。
金銭的な被害につながることも
サイバー攻撃による被害は信頼の失墜だけではありません。
機密情報や個人情報が漏洩してしまったり、あなたのサイトが原因でユーザーに損害をあたえてしまった場合には、
損害賠償や裁判などによる金銭的な損失につながる可能性が高いと言えます。
サイトの規模や会員の人数が多い場合には、とてつもなく大きな金額になることもあります。
WordPressの脆弱性へのセキュリティ対策とは?
では、WordPressの脆弱性にはどのように対応すればよいのでしょうか?
本章ではWordPressのセキュリティ対策について解説します。
- パスワードを強化する
- ユーザー名とは別にニックネームを設定する
- ログインページのURLを変更する
- 画像認証や2段階認証を使う
- WordPress本体を最新バージョンに保つ
- プラグイン・テーマを最新バージョンに保つ
- 使わないプラグインは削除する
- レンタルサーバーのセキュリティ機能を使う
- 定期的にバックアップを取る
- SSL化(HTTPS化)する
- WAFを導入する
パスワードを強化する
WordPress管理画面へのブルートフォースアタックなどの不正ログインを防ぐためには、パスワードを強化するのが一番の対策です。
パスワードを決める際は下記のポイントに考慮してください。
- 同じパスワードを使いまわさない
- 他人に推察されにくいものにする
- 長い文字列にする
- 小文字・大文字・数字・記号などを織り交ぜる
パスワードは長く複雑であればあるほど安全性が高くなります。
他のサービスやツールとパスワードを同じにしないこと、誕生日などの他人から推察されやすい文字列は避けるなどの工夫をしましょう。
ユーザー名とは別にニックネームを設定する
WordPressのニックネームは、投稿者名・プロフィール・コメント欄などのさまざまな箇所で表示されますが、
実は、WordPressではこのニックネームを自分で設定しないと、管理画面のログインユーザー名がニックネームとして表示されてしまうのです。
つまりログインに必要なユーザー名とパスワードの2つの要素のうち、1つはみずから公開してしまっているということですね。
ニックネームは管理画面の「ユーザー」→「プロフィール」で設定することができます。
WordPressを開設したら、かならずニックネームを設定するようにしましょう。
ログインページのURLを変更する
WordPressのログインページのURLは、実は一定の法則で生成されています。
https://ドメイン名//wp-login.php
デフォルトでは上記のように設定されているので、そのサイトのURLを知っている人であれば、いとも簡単にログインページに辿り着けてしまうのですね。
ログインページのURLは、WordPressのデフォルトの機能では変更することができません。
下記のセキュリティ対策プラグインを使ってログインページURLを変更しましょう。
画像認証や二段階認証を使う
不正ログインをより強固に防ぐためには、画像認証・二段階認証を利用するようにしましょう。
画像認証 | 画像に表示された文字や、画像の内容をログイン情報に使う。画像の内容はプログラムには判別できないのでサイバー攻撃を防ぐことができる。 |
二段階認証 | ワンタイムパスワードや認証コードを使って、本人しかログインできない仕組みにする。 |
こちらもWordPressのデフォルト機能にはないものなので、プラグインを使って導入する必要があります。
- SiteGuard WP Plugin
- SI CAPTCHA Anti-Spam
- Captcha
※下の2つはプラグインそのものにセキュリティ上の問題が発生したことがあるため、「SiteGuard WP Plugin」を強く推奨します。
WordPress本体を最新バージョンに保つ
WordPressの脆弱性に対する一番の対策は、WordPress本体のバージョンをつねに最新に保っておくことです。
WordPressのバージョン更新には、機能追加やバグの改修などのほかにも、脆弱性への対応などセキュリティ上の改修も含まれています。
アップデートをしないということは、脆弱性を放置したままにするということなので、大変リスクの高い行為です。
バージョン更新があるかどうかは、WordPress管理画面の「更新」のメニューを開けば確認することができるので、こまめにチェックするようにしましょう。
プラグイン・テーマを最新バージョンに保つ
前述のとおり、WordPressの脆弱性はWordPress本体だけではなく、プラグインやテーマにも起因します。
つまり導入しているプラグインやテーマも常に最新のバージョンに保っておく必要があるのです。
しかしそもそも更新がされていないプラグインやテーマもあります。
なのでプラグインやテーマを選ぶときには頻繁に更新されているものを選ぶことが大切になります。
不要なプラグインは削除する
WordPressのプラグインはとても便利ですが、プラグインを増やせば増やすほど脆弱性をついたサーバー攻撃の可能性は上がり、セキュリティ上の危険度は増すことになります。
これは利用しているプラグインだけではなく、利用を停止しているプラグインでも同様です。
あなたのWordPressのなかに導入してはいるけど、使用していないプラグインはありませんか?
また、無効にはしているけど、削除せずに入れっぱなしにしてあるプラグインはありませんか?
無効化にしてあってもプラグインの脆弱性をついた攻撃の被害にあう可能性は充分にあります。
使わないプラグインは無効化にするだけではなく、ちゃんと削除しておくようにましょう。
レンタルサーバーのセキュリティ機能を使う
レンタルサーバーにはセキュリティ機能を搭載しているものも多いです。
おもなセキュリティ機能には下記のようなものがあります。
名称 | 概要 |
---|---|
SSL証明書 | ネットワーク上の通信を暗号化することで、データを盗み取られたり改ざんされたりを防ぐ |
WAF | Webアプリケーションに向けた脆弱性をつく攻撃を事前に検知し、通信を遮断する |
IDS・IPS | サーバーに向けた不正な攻撃を事前に検知(IDS)したり、通信を遮断(IPS)してくれる仕組み。Dos攻撃を防いでくれる |
Web改ざん検知 | 不正なコンテンツ改ざん(外見からは見えない改ざんも含め)を検知し、運営者に通知してくれる |
国外IPアクセス制限 | 国外からの不正なアクセスを遮断してくれる |
これらのセキュリティ機能には無料でデフォルト搭載されているものもあれば、有料オプションのものもあります。
無料であっても手動でON設定にしないと機能しないものもあるので、利用しているレンタルサーバーにどんな機能があるのかをチェックしてみましょう。
定期的にバックアップを取る
もし脆弱性をついたサイバー攻撃をしかけられてしまい、WordPressサイトの一部・またはすべてを破壊されたり改ざんされてしまった場合であっても、
バックアップさえ取っておけば、元の状態に復旧させることができるかもしれません。
WordPressのバックアップはレンタルサーバーでも機能を提供しているところがあります。
また、バックアップ機能をもつプラグインもいくつかあります。代表的なのは下記の2つです。
セキュリティ攻撃の有無にかかわらず、バックアップ機能はぜひ導入しておこう!
SSL化(HTTPS化)する
レンタルサーバーのセキュリティ機能の部分でも説明したとおり、SSL化とはネットワーク上の通信を暗号化することです。
SSL化をするとURLの冒頭が「http」から「https」に変わります。
通信が暗号化されることで、通信データを盗まれたり覗かれたり、悪用されて不正アクセスをされることを防ぐことができるのです。
ちなみにSSL化を行うことはSEOにも有効です。GoogleはSSL化されていないWebサイトについて検索順位の評価を下げることを公表しています。
また、SSL化されていないサイトはブラウザ上に「このサイトは安全ではありません」「保護されていない通信」などの警告が出てしまい、ユーザーにも不安をあたえてしまいます。
WAFを導入する
こちらもレンタルサーバーのセキュリティ機能の部分でも説明しましたが、WAFとはWebアプリケーションへの攻撃を事前に検知し、通信を遮断する機能です。
「Web Application Firewall」の略で、Webアプリケーションの中に直接実装するものではなく、その前面やネットワーク上に設置し、脆弱性をついた攻撃から未然に守ってくれます。
脆弱性対策なら「ConoHa WING」がおすすめ
WordPressの脆弱性対策をおこなうなら、レンタルサーバー「ConoHa WING」がおすすめです。
「ConoHa WING」は国内最速の表示速度をほこる、高性能&高機能なレンタルサーバーで、料金も安くとてもコストパフォーマンスの高いサービスです。
有名ブロガーや有名アフィリエイターを中心に、利用者が激増している大人気のレンタルサーバーです。
レンタルサーバー「ConoHa WING」には以下のようなセキュリティ対策機能が搭載されています。
- 無料独自SSL
- オプション独自SSL
- WAF
- ディレクトリアクセス制限
- IPアクセス制限
- ログイン制限
- コメント制限
- 海外アクセス制限
ConoHaWINGを使ったWordPressの始め方は以下の記事でくわしく紹介しているので、ぜひ参考にしてみてください。
コメント