小規模サイトが狙われる理由

「自分のサイトは小さいから攻撃されるはずがない」という認識は、残念ながら大きな間違いです。実際には、小規模サイトがサイバー攻撃の被害に遭うケースが増加しています。その理由を理解することが、適切な対策を講じる第一歩です。

ボットによる自動攻撃は規模を選ばない

サイバー攻撃の多くは、人間が手動で行っているわけではありません。攻撃者は「ボット」と呼ばれる自動プログラムを使い、インターネット上のあらゆるサイトに対して無差別にスキャン(脆弱性の調査)を行っています。このボットはサイトの規模や知名度に関係なく、IPアドレスやドメインを順番に巡回するため、個人事業主の小さなホームページでも容赦なくスキャンの対象になります。

実際にサーバーのアクセスログを確認すると、公開直後のサイトであっても、海外からの不審なアクセスが大量に記録されていることが珍しくありません。

小規模サイトは対策が甘い傾向がある

大企業であれば専門のセキュリティチームが常駐し、定期的な脆弱性診断やリアルタイムの監視を行っています。一方で、個人事業主や中小企業のサイトでは、セキュリティ対策に予算や人員を割く余裕がないケースがほとんどです。攻撃者はこの「セキュリティの甘さ」を熟知しており、効率よく侵入できる小規模サイトを好んでターゲットにします。

被害は自分だけでは済まない

サイトが乗っ取られると、迷惑メールの送信元として悪用されたり、フィッシングサイトに改ざんされたりすることがあります。その場合、自社の被害だけでなく、サイトを訪れたお客様にも被害が及ぶ可能性があります。事業の信頼を大きく損なう事態につながるため、「自分には関係ない」と考えるのは非常に危険です。

踏み台として利用される危険性

攻撃者がサイトを乗っ取る目的は、必ずしもそのサイト自体の情報を盗むことだけではありません。乗っ取ったサイトを「踏み台」として利用し、他のサイトへの攻撃の中継地点にすることがあります。この場合、気づかないうちに自分のサーバーが犯罪に利用されてしまい、サーバー会社からアカウント停止を受けることもあります。

CMSの普及による攻撃パターンの共通化

WordPressをはじめとするCMS(コンテンツ管理システム)は、世界中の多くのサイトで利用されています。WordPressだけでも世界のWebサイトの約40%以上で使われており、共通のコードベースを持つことは、攻撃者にとって「一つの脆弱性を見つければ大量のサイトを攻撃できる」ことを意味します。小規模サイトであっても同じCMSを使っていれば、同じ攻撃が通用するのです。

よくある攻撃手法

ホームページに対する攻撃にはさまざまな手法がありますが、ここでは特に被害の多い代表的な攻撃手法を解説します。手口を知ることで、適切な対策を講じることができます。

SQLインジェクション

SQLインジェクションとは、Webサイトのフォームや検索窓などの入力欄に、悪意のあるSQL文(データベース操作命令)を注入する攻撃です。お問い合わせフォームやログインフォームなど、ユーザーからの入力を受け付ける箇所が狙われます。

攻撃が成功すると、データベースに保存された顧客情報(氏名、メールアドレス、パスワードなど)が盗まれたり、データが改ざん・削除されたりする被害が発生します。特にECサイトや会員制サイトではクレジットカード情報などの漏洩につながる重大なリスクとなります。

SQLインジェクションの対策

  • 入力値のバリデーション(検証)とサニタイジング(無害化)を徹底する
  • プリペアドステートメント(パラメータ化クエリ)を使用する
  • データベースユーザーの権限を最小限に設定する
  • WAF(Web Application Firewall)を導入する

XSS(クロスサイトスクリプティング)

XSSとは、Webサイトに悪意のあるJavaScriptコードを埋め込む攻撃です。掲示板やコメント欄、検索結果の表示など、ユーザーの入力内容がWebページに反映される箇所が狙われます。

攻撃が成功すると、サイトを訪れたユーザーのブラウザ上で不正なスクリプトが実行され、Cookie情報の窃取(セッションハイジャック)、偽のログインフォームの表示(フィッシング)、マルウェアへの誘導などの被害が発生します。

ブルートフォース攻撃(総当たり攻撃)

ブルートフォース攻撃とは、ログインページに対してパスワードを片っ端から試す攻撃です。ボットを使って「admin」「password」「123456」などのよく使われるパスワードを大量に試行し、ログインを突破しようとします。

WordPressの管理画面(wp-login.php)は特に狙われやすく、何の対策もしていない場合、毎日数百〜数千回のログイン試行が行われていることも珍しくありません。

ブルートフォース攻撃の対策

強力なパスワード(英大文字・小文字・数字・記号を含む12文字以上)を設定し、ログイン試行回数に制限を設ける(ログインロック機能の導入)ことが基本です。さらに、管理画面のURLを変更する、二段階認証を導入するなどの対策も有効です。

不正ファイルアップロード

画像アップロード機能やファイル添付機能があるサイトで、悪意のあるプログラムファイルをアップロードされる攻撃です。アップロードされたファイルがサーバー上で実行されると、サイトの完全な乗っ取り(バックドアの設置)につながります。WordPressのプラグインの脆弱性を突いて不正ファイルをアップロードするケースが多く報告されています。

DDoS攻撃

DDoS攻撃(分散型サービス拒否攻撃)とは、大量のアクセスを一斉にサーバーに送りつけ、サイトをダウンさせる攻撃です。小規模サイトのサーバーは処理能力に限りがあるため、比較的少ない攻撃量でもサービス停止に追い込まれることがあります。直接的なデータ盗難は起きませんが、サイトが表示できなくなることによる機会損失や信頼低下は深刻です。

基本的なセキュリティ対策

専門的な知識がなくても実施できる基本的なセキュリティ対策を紹介します。これらを徹底するだけでも、大半のサイバー攻撃を防ぐことができます。

強力なパスワードの設定

最も基本的かつ重要な対策がパスワードの強化です。サーバーの管理画面、FTPアカウント、CMS(WordPressなど)の管理画面、データベースなど、すべてのパスワードを強力なものに設定しましょう。

強力なパスワードの条件

  • 12文字以上(できれば16文字以上)
  • 英大文字・小文字・数字・記号を組み合わせる
  • 辞書に載っている単語をそのまま使わない
  • 他のサービスと同じパスワードを使い回さない
  • 定期的に変更する(3〜6ヶ月ごとが目安)

ソフトウェアの定期的な更新

CMS本体、プラグイン、テーマ、サーバーのPHPバージョンなど、すべてのソフトウェアを常に最新の状態に保つことが重要です。アップデートには、新たに発見された脆弱性の修正(セキュリティパッチ)が含まれていることが多く、更新を怠ると既知の脆弱性を突かれるリスクが高まります。

定期的なバックアップ

万が一サイトが改ざんされたり、データが消失したりした場合に備えて、定期的なバックアップは必須です。バックアップは「サーバー上のファイル」と「データベース」の両方を取得する必要があります。

バックアップのベストプラクティス

バックアップは最低でも週1回、更新頻度の高いサイトなら毎日取得しましょう。保存先はサーバー上だけでなく、ローカルPCやクラウドストレージなど別の場所にも保管する「3-2-1ルール」(3つのコピー、2種類の媒体、1つは別の場所)が推奨されます。

不要なサービス・機能の無効化

使用していない機能やサービスは、攻撃の入口を増やすだけです。不要なポートの閉鎖、使っていないFTPアカウントの削除、ディレクトリリスティングの無効化など、必要最小限の構成にすることでリスクを低減できます。

WAF(Web Application Firewall)の導入

WAFは、Webアプリケーションへの攻撃を検知・遮断する仕組みです。SQLインジェクションやXSSなどの一般的な攻撃パターンを自動で検知し、ブロックしてくれます。多くのレンタルサーバー(エックスサーバー、ConoHa WINGなど)では無料のWAF機能が提供されていますので、必ず有効化しておきましょう。

WordPress特有のセキュリティ対策

WordPressは世界で最も利用されているCMSであるがゆえに、攻撃者のターゲットにもなりやすいプラットフォームです。WordPress特有の脆弱性と、それに対する具体的な対策を解説します。

WordPress本体・テーマ・プラグインの更新

WordPress本体のアップデートはもちろん、使用しているテーマとプラグインも常に最新バージョンに保ちましょう。特にプラグインの脆弱性を突いた攻撃は非常に多く、更新が2年以上止まっているプラグインは、脆弱性が放置されている可能性が高いため、代替プラグインへの乗り換えを検討すべきです。

自動更新の注意点

WordPressにはマイナーバージョンの自動更新機能がありますが、メジャーバージョンやプラグインの自動更新を有効にする場合は注意が必要です。更新によってサイトの表示が崩れたり、機能が動かなくなったりすることがあるため、更新前にバックアップを取得し、テスト環境で検証してから本番に反映するのが理想です。

不要なテーマ・プラグインの削除

「無効化」しただけでは不十分です。使っていないテーマやプラグインは、たとえ無効化していてもファイルがサーバー上に残っているため、脆弱性を突かれる可能性があります。必ず「削除」しましょう。WordPressインストール時にデフォルトで入っている未使用テーマも同様です。

管理画面へのアクセス制限

WordPressの管理画面(/wp-admin/)とログインページ(/wp-login.php)へのアクセスを制限することで、ブルートフォース攻撃のリスクを大幅に低減できます。

管理画面保護の具体的な方法

  • ログインURLの変更:SiteGuard WP Pluginなどを使って、wp-login.phpのURLを独自のURLに変更する
  • ログイン試行回数の制限:一定回数ログインに失敗したIPアドレスを自動でブロックする
  • CAPTCHA・画像認証の導入:ボットによる自動ログイン試行を防止する
  • 二段階認証の導入:パスワードに加えて、スマートフォンアプリの認証コードを要求する
  • IPアドレス制限:.htaccessで管理画面へのアクセスを特定のIPアドレスのみに制限する

セキュリティプラグインの導入

WordPress用のセキュリティプラグインを導入することで、多層的な防御を簡単に構築できます。おすすめのセキュリティプラグインとしては、「SiteGuard WP Plugin」(日本製で設定が分かりやすい)、「Wordfence Security」(ファイアウォールとマルウェアスキャン機能が充実)、「Sucuri Security」(改ざん検知と監査ログに強い)などがあります。

ファイルパーミッションの適切な設定

WordPressのファイルやディレクトリのパーミッション(権限設定)が甘いと、外部から不正にファイルを書き換えられるリスクがあります。wp-config.php(データベース接続情報を含む重要ファイル)は400または440に、その他のファイルは644、ディレクトリは755に設定するのが一般的な推奨値です。

SSL/HTTPS対応の重要性

SSLとは、Webサイトとユーザーのブラウザ間の通信を暗号化する技術です。SSL対応が完了しているサイトは、URLが「https://」で始まり、ブラウザのアドレスバーに鍵マークが表示されます。現在のWeb環境において、SSL対応は「あった方がいい」ではなく「必須」の対策です。

SSL対応が必要な理由

SSL対応が必要な理由は大きく3つあります。第一に「通信内容の保護」です。お問い合わせフォームに入力された個人情報やパスワードが、第三者に盗み見られることを防ぎます。第二に「SEO(検索順位)への影響」です。GoogleはSSL対応をランキング要因の一つとして公式に発表しており、HTTPS対応サイトが検索結果で優遇される傾向にあります。第三に「ユーザーの信頼性」です。SSL未対応のサイトでは、ブラウザに「保護されていない通信」という警告が表示され、ユーザーに不安を与えてしまいます。

「保護されていない通信」の影響

Google Chromeをはじめとする主要ブラウザでは、SSL未対応のサイトにアクセスすると「保護されていない通信」という警告がアドレスバーに表示されます。この警告を見たユーザーの多くはサイトから離脱してしまうため、集客面でも大きなマイナスになります。

SSL証明書の種類と選び方

SSL証明書には、ドメイン認証(DV)、組織認証(OV)、拡張認証(EV)の3種類があります。個人事業主や小規模サイトであれば、ドメイン認証(DV)で十分です。Let's Encryptという無料のSSL証明書サービスもあり、多くのレンタルサーバーで簡単に設定できます。

常時SSL化の手順

SSL証明書を取得・設定したら、サイト全体をHTTPSに対応させる「常時SSL化」を行いましょう。具体的には、HTTPからHTTPSへの301リダイレクト設定、サイト内リンクのHTTPS化、Google Search ConsoleやGoogleアナリティクスの設定変更、外部サービス(SNSのシェアボタンなど)のURL更新などが必要です。

混在コンテンツ(Mixed Content)に注意

ページはHTTPSで表示されていても、画像やCSSなどの一部がHTTPのまま読み込まれていると「混在コンテンツ」としてブラウザに警告が出ます。サイト内のすべてのリソース(画像、CSS、JavaScript、外部リンクなど)がHTTPSで読み込まれているか確認しましょう。

万が一の被害時の対処法

どれだけ対策を施していても、100%の安全はあり得ません。万が一サイトが攻撃を受けた場合に備えて、対処法を知っておくことが重要です。

被害の兆候を見逃さない

サイトが改ざんされた場合、以下のような兆候が見られます。身に覚えのないページやリンクが追加されている、Google検索結果にスパムコンテンツが表示される、サイトにアクセスすると不審なサイトにリダイレクトされる、サーバーのリソース使用量が急増している、Google Search Consoleから「セキュリティの問題」の通知が届く、などです。日常的にサイトの状態を確認する習慣を持ちましょう。

被害発覚時の初動対応

被害が発覚したら、まず冷静に以下の手順で対応します。

被害発覚時の対応手順

  • Step 1:サイトをメンテナンスモードにする(被害の拡大を防止)
  • Step 2:すべてのパスワードを即座に変更する(管理画面、FTP、データベースなど)
  • Step 3:サーバーのアクセスログを保全する(原因究明のため)
  • Step 4:改ざんされたファイルを特定・除去する
  • Step 5:バックアップからサイトを復元する
  • Step 6:脆弱性を特定し、対策を施してから再公開する

レンタルサーバー会社への連絡

被害に遭った場合は、早急にレンタルサーバー会社のサポートに連絡しましょう。サーバー会社側でもアクセスログの調査や、不審なプロセスの停止、マルウェアのスキャンなどのサポートを受けられる場合があります。特にサーバーが他のサイトへの攻撃の踏み台にされている場合は、サーバー会社から先にアカウント停止の連絡が来ることもあります。

個人情報漏洩時の対応

お客様の個人情報が漏洩した可能性がある場合は、速やかに個人情報保護委員会への報告と、影響を受けた本人への通知が必要です(2022年4月より義務化)。また、被害の規模によっては警察への被害届の提出や、弁護士への相談も検討しましょう。

個人情報漏洩は法的責任を問われることも

個人情報の漏洩は、個人情報保護法に基づく行政処分や損害賠償請求につながる可能性があります。特にフォームで収集した顧客情報を適切に管理していなかった場合、事業者としての管理責任を問われることがあります。セキュリティ対策は「法的義務」でもあるという認識を持ちましょう。

再発防止策の実施

復旧後は、被害の原因を分析し、再発防止策を徹底しましょう。具体的には、脆弱性があったソフトウェアの更新、セキュリティプラグインの導入・強化、パスワードポリシーの見直し、バックアップ体制の強化、定期的なセキュリティ診断の実施などが必要です。一度被害に遭ったサイトは再度狙われやすいため、対策は徹底的に行いましょう。

まとめ

ホームページのセキュリティ対策は、サイトの規模に関係なく、すべてのWebサイト運営者にとって必須の取り組みです。ボットによる自動攻撃は小規模サイトも容赦なく狙い、一度被害に遭えば事業の信頼を大きく損ないかねません。

この記事のポイント

  • 小規模サイトこそ攻撃の標的にされやすい。「自分は大丈夫」は危険な思い込み
  • SQLインジェクション・XSS・ブルートフォースなどの代表的な攻撃手法を理解して対策する
  • 強力なパスワード設定・ソフトウェア更新・バックアップが基本の三本柱
  • WordPressは管理画面の保護、不要プラグインの削除、セキュリティプラグインの導入が必須
  • SSL/HTTPS対応はSEO・信頼性・セキュリティの三方良しの施策
  • 万が一の被害に備えて、対処手順と連絡先を事前に把握しておく

セキュリティ対策は一度やって終わりではなく、継続的に取り組む必要があるものです。自社での対応が難しい場合は、専門家に相談することをおすすめします。LIKaNONでは、セキュリティに配慮したホームページ制作や、既存サイトのセキュリティ改善のご相談も承っております。お気軽にお問い合わせください。

セキュリティに強いホームページ制作、お任せください

安全なサイト運営のためのセキュリティ対策、LIKaNONが最適なご提案をいたします。

無料相談はこちら