CSPは「全クリニック必須」ではない ― 自院サイトに必要かを5分で見分ける
クリニックサイトの大半(Cartaスキャンでは98%)がCSP(Content Security Policy)未対応というデータがあります。ただし、すべてのサイトにCSPが必須かというと違います。自院に必要かどうかをサイトの種別から見分ける方法を整理します。
米国の医療機関 Mission Health は、自院のオンライン決済サイトに仕込まれた1行のコードに3年間気づかず、患者のクレジットカード情報が攻撃者に流れ続けていました。CSPがあれば防げた事例として、いまでも引用されます。
このような事件を見ると「うちのクリニックサイトもCSPを入れなければ」と思いがちです。ただ、すべてのクリニックサイトにCSPが必須というわけではありません。自院サイトの種別で必要性が大きく変わります。
CSPは「XSS対策」のための仕組み
CSP(Content Security Policy)は、サイトがブラウザに「このサイトで実行していいスクリプトはこのリストの中だけ」と宣言する仕組みです。攻撃者が悪意あるスクリプトを画面に差し込もうとしても、リストにないスクリプトはブラウザが実行を拒否します。
CSPが守るのは、XSS(クロスサイトスクリプティング)という攻撃。ざっくり言えば「攻撃者がクリニックサイトに細工して、患者のブラウザで悪意あるスクリプトを動かす」攻撃です。
ここで重要なのは、XSSが成立するには「攻撃者が新しいスクリプトを差し込む経路」が必要だということです。その経路は、サイトが動的かどうかに依存します。
自院サイトはどっちか
ざっくり次の表で、自院サイトがどこに該当するか確認してください。
CSPの優先度が高いサイト(CSPが活きる)
- 予約フォーム・問い合わせフォームがある
- 患者ポータル・ログイン機能がある
- 物販やオンライン決済機能がある
- WordPressや他のCMS(コンテンツ管理システム:管理画面からブログ記事やページを更新できる仕組み)で作られている
CSPの優先度が低いサイト
- 住所・診療時間・診療科目を載せているだけの情報サイト
- フォーム・ログインがなく、動的な処理をしていない静的サイト
判断のポイントは「患者がサイトに何かを入力するか」「裏でCMSが動いているか」です。
WordPressを使っているクリニックは特に注意
Cartaの全国スキャンでは、クリニックサイトの51%がWordPress自前ホストでした(HTTPレスポンスヘッダや既知のパス情報からの簡易判定)。WordPressはプラグインの脆弱性が頻繁に発見されるソフトウェアで、放置されているプラグインがXSSの入口になります。
具体的なシナリオを一つ挙げます。
予約カレンダーのプラグインに脆弱性があり、URLパラメータをそのまま画面に表示する処理が存在したとします。攻撃者は次のような細工をしたURLを作ります。
https://your-clinic.jp/?date=<script>...</script>
これをSMSやメールで「予約確認はこちら」と患者に送ります。患者がリンクをクリックすると、患者のブラウザは正規の clinic.jp にアクセスしますが、プラグインが URLパラメータを画面に反映する際にスクリプトを一緒に埋め込んでしまい、患者のブラウザで攻撃者のコードが動きます。
患者から見ると、アドレスバーは正規の clinic.jp、HTTPSの鍵マークも出ている。「公式サイトを開いている」という認識のまま、偽の予約フォームに個人情報を入力してしまう、というケースが起こりえます。
CSPが厳格に設定されていれば、ブラウザは「このスクリプトは許可リストにない」と判断して実行を拒否します。これがCSPの守備範囲です。
「設定している」だけでは不十分
CSPには、ベンダーが「設定しています」と答えても実質的に効いていない設定があります。技術的には unsafe-inline という許可項目を有効にしている場合で、これだとXSSのほとんどの攻撃パターンを止められません。
院長が中身まで判断する必要はありませんが、ベンダーに確認するときに「unsafe-inline は使っていますか」と一言付け加えるだけで、設定の質が分かります。
院長として確認すべきこと
-
自院サイトに動的機能(フォーム・ログイン・予約システム)があるか確認する。あればCSPの優先度は高、なければ他の対策(HTTPS化、サーバーのパッチ適用)の方が先です。
-
Cartaスキャンで自院サイトをチェックする。ドメインを入れるだけで、CSPの有無が分かります。WordPressを使っているかも判定されます。
-
WordPressを使っているなら、プラグインの更新運用をベンダーに確認する。「プラグインのアップデートは誰が、いつやっていますか」を聞いてください。CSPと並行して、根本のバグを減らす運用が必要です。
締め
「クリニックサイトの98%がCSP未対応」というCartaのスキャンデータだけ見ると焦りますが、すべてのサイトに必須というわけではありません。情報発信だけのシンプルなサイトであれば、CSPより先にやるべきことが他にあります。
逆に、フォーム・ログイン・WordPressのいずれかを使っているなら、CSPは入れる価値が高い対策です。「設定する/しない」の判断材料として、自院サイトがどちらの分類かをまず確認してください。
技術的にもう一歩踏み込みたい方は、CSPを技術的に深掘りする記事もあります。サイト種別ごとの詳細マトリクス、XSSの仕組み、CSPで防げないケース(Magecart型)、SRI併用、unsafe-inline の罠などを整理しています。