MENU

中小企業のWebサイトセキュリティ対策|WordPressの改ざん・情報漏洩を防ぐ情シス実践ガイド

「会社のWebサイトが改ざんされて、見知らぬ広告ページにリダイレクトされていた」——こうした被害報告は、大企業だけの話ではありません。むしろ攻撃者は、セキュリティ対策の手薄な中小企業のWordPressサイトを組織的にスキャンし、脆弱なサイトを自動で侵害しています。

この記事では、WordPressサイトがどのように攻撃されるかという仕組みを理解したうえで、情シス1人体制の中小企業でも今日から実践できる改ざん防止の手順を、現場で使えるレベルで解説します。

TOC

なぜWordPressサイトが狙われるのか

世界のWebサイトの約43%がWordPressで動いているというデータがあります(W3Techs調査)。これはすなわち「同じ脆弱性を持つサイトが世界中に数億単位で存在する」ということを意味します。攻撃者にとって、WordPressは効率よく成果を上げられる最大の攻撃対象です。

中小企業のWordPressサイトが特に狙われる理由は次の3点です。

バージョンアップ放置: 担当者不在・忙しさを理由に更新が滞りがちで、既知の脆弱性が長期間放置されます
プラグインの過剰導入: 便利なプラグインを次々と入れた結果、脆弱性のある古いプラグインが残存します
管理画面の露出: デフォルトの `/wp-admin/` や `/wp-login.php` が外部から直接アクセスできる状態のサイトが大多数です

「うちの会社は小さいから狙われない」という認識は危険です。攻撃者はターゲットを手動で選ぶのではなく、ツールで自動スキャンして脆弱なサイトを見つけます。規模は関係ありません。

攻撃の仕組み(敵を知る)

1. ブルートフォース攻撃・パスワードスプレー

最も一般的な攻撃は、WordPressの管理画面(`/wp-login.php`)へのログイン総当たりです。

攻撃者はBotネットを使い、1秒間に数百回のログイン試行を行います。「admin」「administrator」「サイト名」といったよくあるユーザー名に、「password123」「12345678」「サイト名+年号」のような頻出パスワードを組み合わせて試すパスワードスプレー攻撃も増えています。

管理画面へのアクセスを放置していると、こうした自動攻撃がサーバーリソースを消費し続け、サイトの表示速度低下や最悪の場合はサービス停止につながります。

2. プラグイン・テーマの脆弱性悪用

WordPressの本体よりも、プラグインやテーマの脆弱性を悪用した攻撃のほうが圧倒的に多いのが現実です。

人気プラグインに脆弱性が発見されると、公式サイトのセキュリティアドバイザリに掲載されます。攻撃者はその情報をすぐに取得し、脆弱なバージョンを使っているサイトを自動スキャンで洗い出します。発見から攻撃開始まで数時間しかかからないケースもあります。

代表的な攻撃パターンは次のとおりです。

SQLインジェクション: フォームやURLパラメータを通じてデータベースを直接操作し、ユーザー情報を窃取します
ファイルアップロード脆弱性: 画像アップロード機能のチェックをすり抜け、PHPのバックドア(裏口プログラム)をサーバーに設置します
XSS(クロスサイトスクリプティング): サイト内にスクリプトを埋め込み、閲覧者のブラウザでマルウェアをダウンロードさせます
認証バイパス: 管理者ログインを経由せずに特権操作が実行できる欠陥を悪用します

3. マルウェア埋め込みと踏み台化

サイトへの侵入に成功した攻撃者がやることは、すぐに目立つ改ざんをすることではありません。多くの場合、次のような「静かな侵害」が行われます。

SEOスパム: 検索エンジンにのみ表示される偽のコンテンツ(ギャンブルサイト・薬品系サイト等)を埋め込み、SEO的な悪用をします
クレデンシャルスキマー: お問い合わせフォームや購入フォームにスクリプトを追加し、入力された情報を外部サーバーへ送信します
マルウェア配布: サイトを訪問したユーザーのブラウザ脆弱性を突いてマルウェアをダウンロードさせ、自社サイトが攻撃の踏み台になります
バックドア設置: `wp-content/uploads/` 以下に名前を偽装したPHPファイルを設置し、長期にわたる不正アクセス経路を確保します

サイト運営者が被害に気づかないまま数ヶ月間、顧客に対してマルウェアを配布し続けていたという事例は珍しくありません。

具体的な防御手順

1. WordPressコア・プラグイン・テーマを常に最新状態に保つ

最も重要かつコストゼロで実践できる対策が、バージョンの最新維持です。

WordPress管理画面の「更新」メニューから、コア・プラグイン・テーマのアップデートを週に1回は確認する習慣をつけましょう。自動更新を有効化すると管理負荷を下げられます。

# wp-config.php に追記してコアの軽微なアップデートを自動化する define( 'WP_AUTO_UPDATE_CORE', true ); # プラグインの自動更新は管理画面から個別に有効化できる # 「プラグイン」→各プラグインの「自動更新を有効化」をクリック

ただし、自動更新はプラグイン間の互換性問題を引き起こすことがあります。重要なサイトでは、更新前に必ずバックアップを取ってから実施するワークフローを確立してください。

また、2年以上アップデートがない放置プラグインは積極的に削除します。「無効化しているから問題ない」という認識は誤りで、ファイルがサーバー上に残っている限り脆弱性は有効です。

2. 管理画面URLを変更し、IPアクセス制限を設ける

WordPressのデフォルト管理画面URL(`/wp-admin/`、`/wp-login.php`)は攻撃者に周知されています。これをランダムなURLに変更するだけで、自動スキャン攻撃の大半を無効化できます。

「WPS Hide Login」や「Defender Security」などのプラグインで管理画面URLを変更できます。さらに、管理画面へのアクセスを自分のPC(固定IPアドレス)のみに制限できれば理想的です。サーバーの `.htaccess` に次のように記述します(Apache環境の場合)。

# .htaccess の wp-admin/ セクションに追記 # ○○.○○.○○.○○ を自分のPCのIPアドレスに書き換えること <Files wp-login.php> Order deny,allow Deny from all Allow from ○○.○○.○○.○○ </Files>

固定IPを持っていない場合は、VPNを経由して管理画面にアクセスする運用も有効な選択肢です。

3. 強固な認証を実装する

管理画面のログインを守るために、次の対策を組み合わせます。

ユーザー名の変更: 「admin」「administrator」は攻撃で最初に試されます。本名やサイト名を使ったユーザー名も避け、推測困難な英数字の組み合わせにします
強力なパスワード: 16文字以上の英数字記号混在。パスワードマネージャーで生成・管理することを推奨します
二要素認証の導入: 「Two Factor Authentication」や「Google Authenticator」プラグインで、パスワードに加えてワンタイムコードを要求します
ログイン試行回数の制限: 「Limit Login Attempts Reloaded」などのプラグインで、一定回数失敗したIPからのアクセスを自動ブロックします

ログイン試行回数の制限は設定が簡単で効果が大きい対策です。デフォルト設定のまま放置しているサイトでは、1日に数千件のログイン試行ログが記録されていることも珍しくありません。

4. セキュリティプラグインを活用する

セキュリティ専用プラグインを1本導入することで、複数の対策を一元管理できます。中小企業に特に適したプラグインを紹介します。

プラグイン名 主な機能 費用
Wordfence Security マルウェアスキャン・ファイアウォール・ログイン保護 基本無料(Pro版は有料)
Sucuri Security ファイル整合性監視・セキュリティ監査ログ・マルウェア除去 基本無料(WAFは有料)
iThemes Security 二要素認証・ブルートフォース防御・ファイル変更検知 基本無料

セキュリティプラグインを複数導入するとリソースを消費し、干渉が起きることがあります。まず1本に絞って設定を整えることをお勧めします。Wordfenceは日本語情報が豊富で、中小企業の情シスにとって設定しやすいプラグインです。

5. ファイルパーミッションを正しく設定する

WordPressサイトのファイルやディレクトリに不適切なパーミッションが設定されていると、攻撃者が侵入後にファイルを書き換えやすくなります。推奨パーミッションは次のとおりです。

対象 推奨パーミッション 理由
WordPressディレクトリ 755 Webサーバーが読み取り・実行でき、書き込みはオーナーのみ
WordPressファイル 644 Webサーバーが読み取れ、書き込みはオーナーのみ
wp-config.php 600 データベース認証情報を含む最重要ファイル、オーナーのみ読み書き
wp-content/uploads/ 755 画像アップロードに必要だが、PHPの実行を禁止する設定を追加

特に重要なのは `wp-content/uploads/` ディレクトリです。ここは画像アップロードのため書き込み権限が必要ですが、PHPファイルの実行も許可されていると、バックドアを設置されたときに悪用されます。`.htaccess` に次の記述を追加してPHPの実行を禁じましょう。

# wp-content/uploads/.htaccess に追記 # アップロードディレクトリ内のPHPファイルを実行禁止にする <Files *.php> deny from all </Files>

6. WAF(Webアプリケーションファイアウォール)を導入する

WAFはHTTPリクエストを検査し、SQLインジェクションやXSSなどの攻撃パターンをブロックします。WordPressサイト向けのWAFには、次のような選択肢があります。

クラウド型WAF(Cloudflare): 無料プランでも基本的なDDoS対策と脅威フィルタリングを提供。DNSをCloudflareに向けるだけで導入できます
プラグイン型WAF(Wordfence): WordPress内部でリクエストをフィルタリング。サーバーリソースを使いますが設定が簡単です
ホスティング提供型WAF: 一部のレンタルサーバーがオプションとしてWAFを提供しています。ホスティング会社の管理画面から有効化できます

Cloudflareの無料プランは中小企業のWordPressサイトにとって費用対効果の高い選択肢です。WAFに加えてCDN(コンテンツ配信ネットワーク)機能もあり、サイトの表示速度向上にも貢献します。WAFの仕組みについては当サイトのWAF解説記事も参照してください。

中小企業でも今日からできること

対策の優先度と難易度を整理します。まずは左側(費用・難易度が低い)の対策から着手してください。

対策 費用 難易度 効果
WordPress・プラグインのバージョンアップ 無料 高(既知脆弱性の即時解消)
ログイン試行制限プラグインの導入 無料 高(自動攻撃の大部分をブロック)
管理者パスワードの強化 無料 高(不正ログイン防止)
wp-content/uploads/ PHP実行禁止 無料 中(バックドア悪用防止)
管理画面URLの変更(プラグイン) 無料 中(自動スキャン回避)
定期バックアップの自動化 無料~月数百円 高(被害後の迅速復旧)
Cloudflare無料プランの適用 無料 中(DNS変更が必要) 中~高(DDoS対策・WAF機能)
二要素認証の導入 無料 高(認証情報漏洩後の不正ログイン防止)

第一歩として、今日すぐできることは「WordPress管理画面を開いて更新があればすべて適用する」ことです。これだけで既知の脆弱性に起因する攻撃の多くを防げます。次に「ログイン試行制限プラグインをインストールして有効化する」ことで、自動攻撃ボットの大半を遮断できます。この2つはコストゼロ・所要時間15分以内で実施できます。

忘れてはならないのが定期バックアップです。どれだけ対策を施しても、ゼロリスクはありません。万が一改ざんされたとき、バックアップがあれば数時間で復旧できますが、なければ数日~数週間かかることもあります。「UpdraftPlus」などの無料プラグインでGoogle DriveやDropboxへの自動バックアップを設定しておきましょう。バックアップ戦略の詳細は中小企業のバックアップ戦略の記事で解説しています。

よくある誤解と注意点

【誤解1】「SSL証明書(HTTPS化)をしていれば安全」

HTTPS化はWebサイトと閲覧者の通信を暗号化するものであり、サーバー上のWordPressそのものへの攻撃を防ぐものではありません。HTTPSにしていても、プラグインの脆弱性を悪用したSQLインジェクションや管理画面への不正ログインは発生します。HTTPSはあくまで「通信の保護」であり、「サーバーの保護」とは別の概念です。

【誤解2】「無効化しているプラグインは脅威にならない」

WordPress上でプラグインを無効化しても、ファイル自体はサーバーに残ります。攻撃者がWordPressの実行コンテキストを経由せず、直接ファイルへアクセスする手法をとった場合、無効化されたプラグインのPHPファイルも悪用される可能性があります。使わないプラグイン・テーマは「削除」まで実施してください。

【誤解3】「レンタルサーバーのセキュリティに任せればよい」

レンタルサーバー会社はインフラ層のセキュリティを担保していますが、WordPressアプリケーション層のセキュリティは利用者の責任です。サーバー側でマルウェアスキャンをしてくれるサービスもありますが、プラグインの脆弱性悪用やブルートフォース攻撃への対応は原則として自前で行う必要があります。

【注意】セキュリティスキャンツールの利用について

WPScanやNiktoなどの脆弱性スキャンツールは、自社サイトの診断を目的とした使用は問題ありませんが、他者のサイトに対して無断で使用した場合は不正アクセス禁止法の適用対象となる可能性があります。詳細は法律の専門家にご確認ください。

本記事のまとめ

・WordPressは世界シェアの高さゆえに組織的な自動攻撃の対象となっており、中小企業も例外ではありません
・主な攻撃経路は「ブルートフォース攻撃」「プラグイン脆弱性の悪用」「バックドア設置によるマルウェア配布」の3つです
・まず今日取り組むべきは「バージョンアップの徹底」「ログイン試行制限」「管理者パスワードの強化」の3点で、いずれもコストゼロで実施できます
・バックアップを自動化しておくことで、万が一の侵害時に迅速に復旧できる体制を整えましょう
・HTTPS化・レンタルサーバーの標準セキュリティだけでは不十分で、WordPressアプリケーション層の対策は自前で行う必要があります

Webサイトは企業の「顔」であり、顧客との最初の接点です。改ざんされると信頼失墜・SEO評価の急落・顧客情報漏洩のリスクが生じ、対応コストは事前の予防策と比べ物にならないほど大きくなります。まずは今日できる小さな一歩から始めてください。

「Webサイトのセキュリティ対策、どこから手をつければいいか分からない」と感じていませんか?

WordPressの保護はその一歩にすぎません。メール・エンドポイント・社内ネットワークまで、情シス1人でも体系的に取り組める方法があります。
正しいセキュリティ知識を体系的に身につけたい方へ、メルマガで実践的なセキュリティ対策ノウハウをお届けしています。

Let's share this post !

Author of this article

TOC