Secure Steady
外部スクリプトの危険性 - サードパーティスクリプトのリスク の使い方・オプション・サンプル

外部スクリプトの危険性 - サードパーティスクリプトのリスク

アクセス解析・広告・チャットなどの外部スクリプトが持つセキュリティリスク。Magecart 型攻撃によるフォーム情報窃取が代表例。

概念図

サードパーティスクリプトのリスク diagram

攻撃シナリオ

一般的な外部スクリプトの読み込み

bash
<!-- 典型的なサードパーティスクリプトの例 -->
<script src="https://analytics.example.com/tracker.js"></script>
<script src="https://ads.example.com/ad-loader.js"></script>
<script src="https://chat.example.com/widget.js"></script>

<!-- これらのスクリプトは自サイトと同じ権限で実行される -->

サードパーティスクリプトの影響を制限する方法

bash
<!-- CSP でスクリプトの読み込み元を制限 -->
Content-Security-Policy: script-src 'self' https://trusted-analytics.com

<!-- sandbox 属性付き iframe で外部ウィジェットを隔離 -->
<iframe src="https://chat.example.com" sandbox="allow-scripts allow-forms"></iframe>

リスクの種類

  • Formjacking(Magecart 攻撃): 決済フォームに悪意あるスクリプトを注入し、クレジットカード情報を窃取する。British Airways や Ticketmaster の大規模被害が有名

  • データ漏洩: アクセス解析タグがユーザーの行動データを過剰に収集し、意図しないデータ共有が発生する

  • サプライチェーン攻撃: 外部スクリプトの配信元が侵害され、全利用サイトにマルウェアが配布される

  • パフォーマンス劣化: 大量の外部スクリプトがページ読み込み速度を低下させ、ユーザー体験を損なう

  • プライバシー侵害: 広告ネットワークによるクロスサイトトラッキングが GDPR 等の規制に抵触する可能性がある

対策

  • CSP で読み込み元を制限: script-src で許可するドメインを明示的に列挙する
  • SRI でハッシュ検証: 外部スクリプトに integrity 属性を付与して改ざんを検知する
  • iframe サンドボックス: 外部ウィジェットを sandbox 属性付き iframe で隔離する
  • 定期的な監査: 読み込んでいるサードパーティスクリプトの一覧を管理し、不要なものを削除する
  • Tag Manager の権限管理: Google Tag Manager 等のアクセス権を最小限にし、承認フローを設ける

関連トピック