自社の画面では見えない改ざんに「気付ける」体制のつくり方

「うちのサイトは、毎日自分で見ているから大丈夫」。Webサイトの改ざんについて話すと、こうした声を聞くことがあります。しかし、最近の改ざんの中には、サイトの持ち主が社内のパソコンから開いても、何も変わっていないように見えるものがあります。スマートフォンで検索結果から訪れた人だけを別のサイトへ転送する、検索エンジンにだけ大量のスパムページを見せる、といった手口です。
警察庁は、ウェブサイトの改ざんを、悪意のある者によってコンテンツや設定が管理者の意図しない状態に変更されたり、意図しないファイルを置かれたりすることと説明しています。改ざんされると、正しい情報が発信できなくなるだけでなく、サイトに保存していた個人情報が盗まれたり、閲覧した人がウイルスに感染したりするおそれがあります。
見た目が変わらない改ざんの例として、JPCERT/CC(JPCERTコーディネーションセンター)が2016年に出した注意喚起があります。攻撃者がWebサーバーに不正なファイルを置き、トップページにそれを読み込む一行を加えることで、閲覧者のIPアドレスや閲覧日時を記録していたというものです。サイトの表示はそのままで、訪問者の情報だけが集められていました。注意喚起では、こうした活動がサイバー攻撃の踏み台として使えるかどうかを確かめる目的で行われているとも見られています。
改ざんされたサイトは、自社の被害にとどまらず、訪れたお客様や取引先を危険にさらす「加害の場」にもなり得ます。自社の名前で運営しているサイトである以上、気付かなかったことの影響は自社に返ってきます。
改ざんを完全に防ぐことは、大手企業でも簡単ではありません。だからこそ、防ぐ対策と同じくらい、「起きたときに早く気付ける体制」を持っておくことが大切です。気付くのが一日遅れれば、その間に訪れたお客様が被害を受ける可能性があります。これまでの連載では、自動化された攻撃の構造やWordPressの最低限の対策を取り上げてきました。
私はフリーランスのWebディレクター兼エンジニアとして、サイトの制作から公開後の保守まで関わっています。この記事では、経営者・Web担当者の方に向けて、自社からは見えにくい改ざんの手口、Google Search Consoleの通知、改ざん検知・稼働監視サービス、サーバーのログ、そして確認の担当と頻度の決め方を順に整理します。
自社では気付きにくい改ざんの手口
訪問者の「条件」によって表示を変える
自社で見ても異常がないのに改ざんされている。その代表が、訪問者の条件によって表示を切り替える手口です。Googleの「セキュリティの問題レポート」のヘルプでは、ハッカーが検出を避けるために、特定のブラウザの種類や、どのサイトから来たか(リファラー)によって攻撃対象を選ぶことが多いと説明されています。ヘルプの例には、Google検索から来た訪問者だけを別のサイトへ転送するJavaScriptが示されています。
<script>
if (document.referrer.match(/google\.com/)) {
window.location("http://<malware-site>/");
}
</script>社内の担当者はブックマークやURLの直接入力でサイトを開くことが多いため、この条件に当てはまらず、いつも通りのページが表示されます。お客様だけが被害に遭い、社内では誰も気付かない、という状況が生まれます。
検索エンジンにだけスパムを見せる
もう一つが、検索エンジンにだけ別の内容を見せる「クローキング」です。Googleの開発者向け資料「日本語キーワードによるハッキングを解決する」では、サイト上にランダムな名前のディレクトリが作られ、自動生成された日本語の文章と、偽ブランド品の販売サイトへのリンクを含むページが大量に作られる手口が紹介されています。こうしたページにアクセスすると、404エラーのような「ページが存在しない」表示が出ることもありますが、それは修正済みだと思わせるための見せかけである場合があると説明されています。
気付くきっかけになりやすい兆候
こうした改ざんは、サイトのトップページを眺めているだけでは見つかりにくいものです。気付くきっかけとしては、次のようなものがあります。
- Googleで
site:自社のドメインと検索したとき、身に覚えのないページや意味の通らない日本語のページが表示される - お客様や取引先から「スマートフォンで開いたら別のサイトに飛んだ」と連絡が来る
- 検索結果に「このサイトは第三者によってハッキングされている可能性があります」と表示される
- Search Consoleに、心当たりのない所有者が追加されたという通知が届く
警察庁も、改ざん発見のための着眼点として、会員入力画面や購入画面に不審なJavaScriptが置かれていないか、いつもと違う画面が表示されていないか、サーバーのログに不審なアクセスがないかを確認するよう呼びかけています。
Google Search Consoleを「通知の受け口」にする
セキュリティの問題レポートで分かること
Google Search Consoleは、Googleが自社サイトをどう認識しているかを確認できる無料のツールです。Googleのヘルプによると、サイトがハッキングされている場合や、訪問者に危害が及ぶおそれのある動作が検出された場合、「セキュリティの問題」レポートに調査結果が表示されます。問題は「ハッキングされたコンテンツ」「マルウェアや望ましくないソフトウェア」「ソーシャルエンジニアリング」に分類されます。影響を受けたページには、検索結果に警告が付いたり、ブラウザで警告ページが表示されたりすることがあります。
修正したあとは、同じレポートから審査をリクエストできます。ヘルプでは、一部のページだけを直しても検索結果は変わらず、サイト全体で問題を修正する必要があると説明されています。
通知が「誰に届くか」を確認する
Search Consoleの通知は、メールでも届きます。ただし、Googleのヘルプによると、メールの設定はプロパティ単位ではなくユーザー単位で、本人しか変更できません。つまり、通知が届くのは、そのプロパティに登録されている一人ひとりのGoogleアカウントです。
ここでよく起きるのが、サイトを公開したときの制作会社の担当者や、すでに退職した社員だけが登録されている状態です。通知は送られていても、社内の誰も読んでいなければ、気付くきっかけを逃してしまいます。
悪い例 vs 改善例
悪い例: Search Consoleは制作会社が公開時に設定したもので、社内に権限を持つ人がいない。通知メールは前任の担当者の個人アドレスに届いている。
改善例: 社内の担当者と責任者の二人が所有者として登録され、通知メールを受け取る設定になっている。制作会社や保守の担当者はフルユーザーとして追加し、契約が終わったら削除する。
見知らぬ所有者は、改ざんのサインになり得る
web.devの資料では、日本語キーワードによるハッキングの際、攻撃者がSearch Consoleに自分を所有者として追加することがあり、心当たりのない所有者の通知を受け取った場合はハッキングされている可能性が高いと説明されています。「設定」の「ユーザーと権限」を定期的に開き、知らない人が含まれていないかを確認しておくことも、気付くための大切な手がかりになります。なお、この画面はプロパティの所有者にしか表示されないため、社内に所有者がいることが確認の前提になります。
改ざん検知・稼働監視サービスの役割と限界
「開くかどうか」と「中身が変わっていないか」は別の確認
外部のサービスを使った監視には、大きく二つの種類があります。一つは稼働監視で、サイトが一定の間隔でちゃんと開けるかどうかを外部から確認し、つながらなくなったら通知するものです。サーバーの停止に早く気付けるほか、サービスによってはSSL証明書の有効期限の確認ができるものもあります。
もう一つが改ざん検知です。サイトのページやファイルの中身を定期的に確認し、前回と比べて意図しない変更や不審なコードが見つかったときに通知します。外部から巡回してページの内容を調べるものや、サーバー内のファイルの変化を比べるものなど、仕組みはサービスによって異なります。
この二つは、見ているものが違います。稼働監視は「サイトが開くか」を見ているため、ページが開いたまま中身だけ書き換えられた場合には反応しないことがあります。改ざんのように見た目が変わらない被害に備えるには、改ざん検知の考え方が必要です。家にたとえると、稼働監視は「玄関の明かりがついているか」、改ざん検知は「家の中の物が動かされていないか」を確かめるものです。
ECサイトでは改ざん検知が「必須」とされている
IPAの「ECサイト構築・運用セキュリティガイドライン」では、運用時のセキュリティ対策として、Webサイトのアプリケーションやコンテンツ、設定などの重要なファイルの定期的な差分チェックや、改ざん検知ツールによる監視を行うことが「必須」に区分されています。決済ページに不正なスクリプトを仕込まれる被害を想定すると、ECサイトでは特に優先度の高い対策です。
導入するときに確かめておきたいこと
改ざん検知のサービスは、入れれば安心というものではありません。導入前に、次の点を確認しておくと、運用で困りにくくなります。
- どのページを監視するか。トップページだけでなく、問い合わせフォームや決済、会員登録のページを含めているか
- どのくらいの間隔で確認するか
- 通知が誰に届き、届いたら誰が判断するか
- 記事の更新など、正当な変更のたびに通知が来る場合の扱いをどうするか
特に最後の点は、現場でつまずきやすいところです。正当な更新のたびに通知が届くと、やがて通知そのものが読まれなくなります。更新の予定を共有し、通知を確認する担当者を決めておくことが、仕組みを生かす前提になります。また、前の章で触れたような条件付きの改ざんは、監視の方法によっては見えない場合もあるため、Search Consoleやログの確認と組み合わせて考えます。
サーバーのログとファイルの差分を確認する
ログは「何が起きたか」をたどる記録
Webサーバーには、誰が、いつ、どのページにアクセスしたかを記録するアクセスログや、ファイルの転送やログインの記録が残ります。IPAの「安全なウェブサイトの運用管理に向けての20ヶ条」では、ログは不審な動きがあったことに気付くきっかけになり、原因を追究するための重要な情報源にもなるとして、保管と定期的な確認を求めています。
JPCERT/CCの注意喚起でも、FTPやSSH、Webアプリケーションのアクセスなどのログを確認し、アクセス元のIPアドレス、アクセス日時、リクエストされたURLなどに不審な点がないかを確かめることが挙げられています。たとえば、担当者が作業していない深夜に管理画面へのログインが記録されている、存在しないはずのファイルへのアクセスが続いている、といった記録は、調べるきっかけになります。
専門家でなくても使える無料のツール
ログを一行ずつ読むのは、専門家でなければ大変です。IPAは、Webサーバーのアクセスログから攻撃と思われる痕跡を検出する「iLogScanner」を無償で提供しています。現在はダウンロードして使うオフライン版のみで、SSHやFTPのログも解析できます。ただし、IPAのFAQでは、iLogScannerは簡易ツールであり、攻撃が検出されない場合でも安心せずに脆弱性検査を行うことが勧められています。あくまで「気付くための補助」として位置付けるのが適切です。
ファイルの一覧を定期的に比べる
JPCERT/CCの「サイバー攻撃に備えてWebサイトの定期的な点検を」では、Webサーバー上のファイルのリスト(ファイル名、サイズ、更新日時、ハッシュ値)やバックアップを取得して比べることが、点検項目の一つとして挙げられています。前回の一覧と比べて、身に覚えのないファイルが増えていないか、更新していないはずのファイルの日時が変わっていないかを見ることで、改ざんの手がかりが得られます。
現場でつまずきやすい点
ログについてよくある困りごとは、「調べようとしたときには、もう残っていない」ことです。レンタルサーバーでは、契約プランによってログの保存期間が短かったり、取得の設定を自分で有効にする必要があったりすることがあります。何かが起きてから確認するのではなく、平常時のうちに、ログがどこに、どのくらいの期間残るのかを確認しておくことが大切です。
担当と頻度を決める:確認を「誰かの善意」に任せない
点検の頻度の目安
ここまで紹介した確認は、決まった人が決まった頻度で行わなければ、続きにくいものです。JPCERT/CCの注意喚起では、点検項目と頻度の目安が示されています。これをもとに、Search Consoleの確認などを加えて整理すると、次のようになります。
確認すること | 頻度の目安 | 担当の例 |
|---|---|---|
CMSやプラグインなど利用製品が最新か | 数週間〜1か月に1回程度 | 保守を担当する制作者 |
サーバー上のファイルの一覧の比較 | 1週間に1回程度 | 保守を担当する制作者、または改ざん検知サービス |
Search Consoleのセキュリティの問題、ユーザーと権限 | 月に1回程度と、通知が届いたとき | 社内のWeb担当者 |
ログインIDとパスワードの確認 | 1年に1回程度 | 社内の責任者 |
Webアプリケーションのセキュリティ診断 | 1年に1回程度と、機能を追加したとき | 外部の専門事業者 |
利用製品、ファイル、パスワード、診断の頻度はJPCERT/CCの目安に沿ったもので、Search Consoleの頻度は、この記事で提案する目安です。サイトの規模や扱う情報によって調整してください。
異常に気付いたときの連絡先を先に決める
JPCERT/CCは、異常が見つかった場合を想定し、ログの保存方法や緊急時の対応手順、対応者の連絡先を事前に確認しておくことも、被害を減らすために必要だとしています。誰が判断し、誰に連絡し、サイトを一時的に止めるかどうかを誰が決めるのか。これが決まっていないと、通知が届いても動き出せません。改ざんを発見した場合の報告先としては、JPCERT/CCのインシデント報告窓口や、IPAの届出・相談の窓口があります。
外部に任せるときの役割分担
保守を制作会社に任せている場合でも、すべてを任せきりにはできません。たとえば、Search Consoleの通知を受け取るのは社内、ファイルの比較やログの確認は保守の担当者、というように役割を分け、契約書や保守の取り決めに書いておくと、「誰かが見ているはず」という思い込みを防げます。
現場でつまずきやすい点
担当と頻度を決めても、繁忙期や担当者の休暇が重なると、確認が後回しになりがちです。点検の結果を「確認日と確認者、異常の有無」だけでも記録に残しておくと、抜けた月がすぐに分かります。また、担当者が一人だけだと、その人が不在のときに通知が止まってしまいます。主担当と副担当の二人を決めておくと、確認が途切れにくくなります。
まとめ:防ぐ対策と、気付く仕組みを両方そろえる
改ざんの中には、社内のパソコンで開いても何も変わって見えないものがあります。スマートフォンや検索から来た人だけを別のサイトへ飛ばす、検索エンジンにだけスパムページを見せる、訪問者の情報をこっそり集める。こうした被害は、サイトを眺めているだけでは見つかりにくく、気付いたときにはお客様に影響が出ていることもあります。
この記事では、気付くための仕組みとして、Search Consoleを通知の受け口にすること、稼働監視と改ざん検知の違いを理解して使い分けること、サーバーのログとファイルの一覧を定期的に確認すること、そしてそれらの担当と頻度を決めておくことを紹介しました。どれも単独で完結するものではありません。外からの通知、サービスによる自動の確認、人による定期的な点検を組み合わせることで、見落としを減らしていけます。
防ぐ対策は、更新やアクセス制限など、これまでの連載で取り上げてきた内容が土台になります。そのうえで、気付く仕組みを持っておけば、万が一のときにも被害を小さくとどめられる可能性が高まります。制作者の方にとっても、保守の内容に「監視と通知の受け口」まで含めて提案することは、クライアントの安心につながるはずです。
発注する企業の方にとっては、監視の仕組みは「何も起きなければ役に立っていないように見える」ものかもしれません。しかし、通知が届く先が決まっていて、確認の記録が残っていることは、万が一のときに被害の範囲を調べたり、お客様に説明したりする場面で大きな助けになります。気付く体制は、問題が起きたあとの対応を支える土台でもあります。
まずは、次の3つを確認するところから始めてみてください。
- Google Search Consoleに、いま社内で通知を受け取れる人が所有者として登録されているか
- スマートフォンでGoogle検索から自社サイトを開いたとき、いつも通りのページが表示されるか
- サーバーのログがどこに、どのくらいの期間残っているかを、誰かが説明できるか
答えに迷う項目があれば、そこが見直すポイントです。制作会社に保守を任せている場合は、次の打ち合わせでこの3つを一緒に確認してみてください。
「自社サイトが改ざんされていないか不安がある」「監視や通知の体制を整えたいが、何から始めればよいか分からない」とお考えの企業・店舗の方は、現状の確認と体制づくりのご相談を承っています。相談・お問い合わせからお気軽にご連絡ください。