Webサイトセキュリティガイド:10ステップのチェックリスト

このWebサイトセキュリティチェックリストに従って、企業が取るべき10の主要対策(ユーザーの認証と承認、Webトラフィックの暗号化、サードパーティリスクの軽減、DDoS攻撃やボットのブロックなど)、を実施しましょう。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • Webサイトを保護するさまざまな方法を特定する
  • Webユーザーの認証と承認の主な方法を理解する
  • 最も一般的なWebサイト攻撃について説明する

記事のリンクをコピーする

Webサイトセキュリティの重要性

Webサイトのセキュリティは、収益、効率性、顧客インサイトの源としてWebアプリケーションに依存するすべての組織にとって重要です。機密データを取り込んで保存したり、重要なインフラストラクチャやサービスを提供するようなWebサイトを運営する組織は、その複雑さ、規模により、その配信サーバーがさまざまな攻撃の影響を受けやすくなります。

インターネットの脅威状況や規制環境が常に変化していることから、Webアプリケーションセキュリティの分野は幅広く、常に進化し続けています。たとえば、以下のチェックリストはWebサイトを保護する方法に焦点を当てたものですが、大企業においてはAPIとAI対応アプリ(Webサイトに組み込まれることが増えています)の保護がますます重要になっています。

しかし、すべての規模、すべての業界が配信する一般向けに公開しているWebサイトは、技術的制御、アクセス制御、ユーザー管理などの「基本的な対策」を講じることで恩恵を受けることができます。そのため、このWebサイトセキュリティガイドでは、以下に示す10の推奨事項を取り上げています。

1) 強力な認証でアカウントを保護する

推奨事項:パスワードのみの認証ではなく二要素認証(2FA)を使用する

航空会社が、飛行機に搭乗する前の乗客の本人確認を行うように、企業もWebアプリケーションが稼働するデジタルシステムに誰がログインしようとしているかを確認する必要があります。

不正アクセスを防止する(本人であることの確認を行う)プロセスを、認証と呼びます。認証では、特定の特性または「要素」を電子記録と照合することで、ログインを試みる人が本人であるかどうかを検証します。

最も一般的な認証要素は次のとおりです:

  • 知識情報:ユーザー名とパスワードの組み合わせ、秘密の質問、PINコードなど、本人のみが知っている情報を使用して検証します。
  • 所持情報:発行されたアイテムや本人であれば所有しているものを、ログインを試みる人が所有しているかどうかを確認します(家の玄関のドアを開けるのに物理的な鍵が必要であるのと同様)。デジタルシステムでは、ソフトトークン(モバイルで生成されたコードなど)またはハードトークン(BluetoothやUSBポートでデバイスに接続する必要がある小型の物理的アイテム)などを確認することで、認証によってアクセスが許可されます。
  • 生体情報:指紋確認や顔認識など、生体認証を通じてログインを試みる人の生体的な特性を評価します。

一つ目(所有情報)の問題は、攻撃者によってパスワードが推測されたり盗まれたりする可能性が高いことです。攻撃者によるフィッシング中間者攻撃総当たり攻撃、利用者のパスワードの再利用なども増加し、また、攻撃者は流出したログイン資格情報を簡単に収集できるようにもなっています。

このため、組織はアカウントに対して二要素認証(2FA)を実装することが求められています。2FAでは、(少なくとも)異なる2種類の認証形式を必要とするため、一種類のみの認証と比べて効果的です。2FAを破ることは攻撃者にとって不可能ではありませんが、パスワードのみの認証を突破することと比べてはるかに困難であり、費用もかかります。

2) ロールベースの権限を適用する

推奨事項:許可すべきユーザーにのみロールベースの権限を設定する

本人確認がとれたからといって、その人にすべての制御権を与える必要はありません。認可は、認証されたユーザーが何を表示・実行できるかを決定(アクセス許可)する役目を果たします

承認されたユーザー

例えば、「スーパー管理者」がすべての設定やページを編集できる唯一の権限を持ち、「閲覧専用」はサイトの分析データの閲覧に限られているなどの設定がされている場合があります。

組織が拡大するにつれて、Webチームの役割も、フロントエンド開発者、バックエンド開発者、セキュリティアナリスト、レポートアナリスト、Webデザイナー、コンテンツ編集者など、その数は増えています。そのため、ロールベースの権限を定期的に監査し、更新することが重要です。

3) TLS/SSLでWebトラフィックを暗号化する

推奨事項:自動マネージドSSL/TLSで接続を確立する

ログイン資格情報、連絡先情報、クレジットカード情報、健康情報などの機密データを収集して送信するWebサイトは、HTTPSが必須です。HTTPSは、ネットワーク上でのぞき見している人が簡単に見ることができる方法でWebサイトが情報をブロードキャストすることを防止します。

SSL証明書 安全なブラウジング

HTTPSは、Transport Layer Security(TLS)と呼ばれるプロトコルを介して動作します。プロトコルの以前のバージョンは、Secure SSL Layer(SSL)と呼ばれていました。

自動SSL/TLS

Webサイトやアプリケーションが安全な接続を確立できるようにするため、自動マネージドSSL/TLS証明書を提供するサービスを探してください

TLSは、プライバシーとデータセキュリティを支える通信の基盤です。TLSを採用することで、ユーザーはクレジットカード情報やその他の個人情報や機密情報を晒すことなく、プライベートにインターネットを利用できるようになります。

また、SSL/TLSを利用すると、クライアント(ブラウザなど)は接続先のサーバーの真正性と整合性を確認した上で、暗号化を使用して情報を交換することができます。これにより、中間者攻撃の防止と特定のデータコンプライアンス要件を満たすことができます。

その他の利点:TLSは遅延を最小限に抑えてWebページの読み込み時間を短縮します。検索エンジンは暗号化を使用できないWebサイトの優先順位を下げる傾向があります。

各SSL/TLS証明書には固定の有効期限があることに注意してください。証明書の有効期限が切れている場合、クライアント(訪問者のブラウザなど)は安全な接続を確立できないと見なし、警告やエラーを表示します。証明書の更新を見過ごした場合、Webサイトの検索エンジンの順位が下がる可能性がありますが、一部のサービスは自動更新に対応しています。

4) HTTPSまたはTLS経由でDNSトラフィックを暗号化する

推奨事項:DNS暗号化により、ユーザーのブラウジングの安全性とプライバシーを確保する

Webサイトのコンテンツは、技術的には(www.example.comなどの)URLに存在するわけではなく、(192.0.2.1などの)一意のIPアドレス上に存在します。URLを機械で扱いやすいIPアドレスに変換するプロセスを、Domain DNS System(DNS)ルックアップといいます。DNSレコードは、特定のドメインに対応するIPアドレスを示すインターネットの指示書です。

ただし、デフォルトでは、DNSクエリと応答は平文(UDP)で送信されます。つまり、ネットワーク、ISP、通信を監視できる他者から読み取られる可能性があります。これは、セキュリティとプライバシーに大きな影響を与える可能性があります。DNSクエリが非公開でない場合、政府がインターネットを検閲したり、攻撃者がユーザーのオンライン行動を追跡することが容易になります。

無料のDNSリゾルバーを使用し、次のいずれかでDNSトラフィックを暗号化します。

  • DNS over TLS(DOT)は、DNSクエリを暗号化して、保護し、機密性を保つための規格です。DoTにより、ネットワーク管理者はDNSクエリを監視およびブロックできます。これは、悪意のあるトラフィックを特定して停止する上で重要です。
  • DNS over HTTPS(DoH)は、DoTの代替手段です。DoHでは、DNSクエリと応答は暗号化されますが、直接UDP上で送信されるのではなく、HTTPまたはHTTP/2プロトコル経由で送信されます。これにより、ネットワーク管理者の可視性は低下しますが、ユーザーのプライバシーは強化されます。

5) DNSセキュリティを統合する

推奨事項:目的に特化したDNSセキュリティを使用して、特定のDNSの仕組み上の制限に対処する

DNSシステム自体がセキュリティを念頭に置いて設計されていないため、できることに限りがあります。たとえば、その仕組み上、DNSレコードの配信元を自動的に保証できる機能は無く、与えられたアドレスを無条件に受け入れます。そのため、DNSサーバーはドメインスプーフィングDoS(サービス拒否)攻撃などに対して脆弱である可能性があります。

DNSベースのDDoS攻撃

DNSセキュリティ(DNSSEC)は、DNSの設計上の欠陥を穴埋めします。例えば、DNSSECは、既存のDNSレコードに暗号署名を追加することで、安全なDNSを確立します。リクエストされたDNSレコードは、関連づけられた署名をチェックすることで、リクエストされたDNSレコードが偽のレコードではなく、権威ネームサーバーから送られたものであることを知ることができます。

一部のDNSリゾルバーは、すでにDNSSECを統合しています。コンテンツフィルタリング(既知のマルウェアスパムの配信サイトをブロックする)やボットネット保護(既知のボットネットとの通信をブロックする)などの機能を提供できるDNSリゾルバーを探してください。これらのセキュリティで保護されたDNSリゾルバーの多くは無料使用でき、ルーターの設定を1つ変更するだけでこれらの機能を使用することができます。

6) オリジンIPアドレスを秘匿する

推奨事項:攻撃者がサーバーを見つけられないようにする

攻撃者に組織のサーバーのオリジンIP(実際にWebアプリケーションリソースがホストされている場所)が見つけられてしまった場合、そのサーバーに直接トラフィックや攻撃が送られてしまう可能性があります。

すでに導入されているDNSリゾルバーによっては、次の手順でオリジンIPを秘匿化することができます。

  • 存在しないアドレスへ送られたメールが攻撃者に返されてメールサーバーのIPが知られてしまうため、保護するWebリソースと同じサーバー上でメールサービスをホストしない。
  • Webサーバーが、ユーザーが提供する任意のアドレスに接続しないようにする。
  • DNSレコードはパブリックドメインにあるため、オリジンIPをローテーションする。

7) DDoS攻撃の防止対策を講じる

推奨事項:常時稼働型のDDoS軽減とレート制限を実装する

分散型サービス拒否(DDoS)攻撃を受けた場合、最悪の場合Webサイトやネットワーク全体が長時間にわたって運用不能になる可能性があります。

DDoS攻撃は通常、1人の攻撃者が制御する多数のコンピューター(またはデバイス)が、Webサイトまたはオンラインサービスに一度にアクセスを仕掛けることで発生します。この悪意のある攻撃は、リソースを利用不可状態に陥れることを目的としています。

アプリケーション層へのDDoS攻撃は、依然としてWebアプリケーションに対する最も一般的な攻撃の種類であり、規模や頻度の点でさらなる巧妙化が進んでいます。

アプリケーション層DDoS攻撃

以下のような基本的なDDoS防止ツールを探してください

  • 常時稼働型のDDoS軽減:以下の機能を備えたスケーラブルな「常時稼働型」のDDoS防御を探してください
    • 攻撃発生源のできる限り近くで悪意のあるトラフィックを自動吸収できる機能(エンドユーザーの遅延と企業のダウンタイムを短縮します)
    • 定額制かつ無制限にDDoS攻撃を軽減できる機能(攻撃トラフィックが急増した場合の追加料金を回避します)
    • あらゆる種類のDDoS攻撃(アプリケーション層とネットワーク層を含む)に対する一元化された自律的な保護機能
  • レート制限:レート制限は、ネットワークトラフィックを制限するための戦略です。基本的には、特定の時間枠内で誰かがアクションを繰り返すことができる頻度(たとえば、ボットネットがWebアプリケーションにDDoS攻撃を試行する場合など)に上限を設けます。これは、道路の制限速度を超えたドライバーを停止させる警察官に例えることができます。レート制限には次の2つの種類のものがあります。
    • 標準的なIPベースのレート制限。不認証エンドポイントを保護し、特定のIPアドレスからのリクエスト数を制限して、常習犯による不正利用に対処します。
    • 高度なレート制限。APIの不正使用からの保護、認証済みAPIセッションを利用した帯域幅消費型攻撃の軽減など、より多くのカスタマイズが可能です

    包括的なDDoS対策では、組織の規模やネットワーク構造、その他の要素に応じて、適切な組み合わせを使用する必要があります。詳しくは、DDoS攻撃を防ぐ方法をご覧ください。

    8) サードパーティのスクリプトとCookieの使用を管理する

    推奨事項:クライアント側のリスク対策に特化したツールを探す

    Web開発において「クライアントサイド」とは、クライアント(エンドユーザーデバイス)で表示または実行されるWebアプリケーションのすべてを指します。これには、ユーザーのブラウザ内でアプリケーションが実行するアクションに加えて、テキスト、画像、UIの残りの部分など、Webサイトの利用者に見えるものが含まれます。

    クライアント側のイベントの大半は、Web訪問者のブラウザにJavaScriptやその他のサードパーティコードを読み込む必要があります。攻撃者はこの依存関係を狙って侵害を試みます(例えばMagecartが使用する攻撃手法)。これが実行された場合、訪問者はマルウェア、クレジットカードデータの盗難、暗号マイニングなどに対して脆弱になります。

    クライアント側のスクリプト監視

    Cookieの使用は、クライアント側のリスクも伴います。例えば、攻撃者はCookieを悪用してWebサイト訪問者をCookieの改ざんにさらし、最終的にアカウント乗っ取りや支払い詐欺につながる可能性があります。しかし、多くのWebサイトの管理者、開発者、コンプライアンスチームメンバーは、自分のWebサイトでどのようなCookieが使用されているかを把握していません。

    サードパーティ製のスクリプトやCookieのリスクを軽減するには、次のようなサービスを実装します。

    • サードパーティ製スクリプトのリスクの自動検出および自動管理が可能なサービス
    • Webサイトで使用されるファーストパーティ製(自社開発の)Cookieを完全に可視化できるサービス
  • 9) ボットやその他の不正なトラフィックをブロックする

    推奨事項:悪意のあるボットトラフィックを積極的に特定して軽減する

    ボットの中には、認証された検索エンジンクローラーなど、必要なサービスを実行する「良性」のものもあります。しかし、それ以外のボットは放置した場合、運用を妨げたり有害になる場合があります。

    物理的な商品やサービスをオンラインで販売する企業は、ボットトラフィックに対して特に脆弱です。ボットによるトラフィックが多すぎると、次のようなことを招く可能性があります。

    • パフォーマンスへの影響:ボットトラフィックが大量に発生すると、Webサーバーに大きな負荷がかかる可能性があり、それが正当なユーザーへのサービスの遅延や停止を引き起こしかねません。
    • 業務の混乱:ボットは、Webサイトのコンテンツをスクレイピングまたはダウンロードしたり、スパムコンテンツを急速に拡散させたり、オンラインでの買い占め行為を行うことができます。
    • データ窃取とアカウント乗っ取り:ボットは、クレジットカードデータ、ログイン資格情報を盗み、アカウントを乗っ取ることができます

    次のようなボット管理サービスを探してください。

    • 行動分析、機械学習、フィンガープリンティングを膨大な量のトラフィックに適用することで、大規模にボットを正確に特定する
    • 検索エンジンに属するボットなどの良性ボットのサイトへのアクセス維持を許可しながら、悪意のあるトラフィックを防止する
    • 他のWebアプリケーションセキュリティおよびパフォーマンスサービスとの統合が容易なサービス
    • 10) Webトラフィックやセキュリティ指標を追跡して分析する

      推奨事項:データを基にWebセキュリティの改善点を決める

      Webパフォーマンスとセキュリティを継続的に改善するためには、実用的なデータを含む分析とログが不可欠です。

      例えば、ログとアプリケーションセキュリティダッシュボードを使用することで、次のようなインサイトを得ることができます。

      • HTTPトラフィックにおける潜在的な脅威。このインサイトを基に、エンドユーザーに影響を与えるエラーを特定・修正します
      • 攻撃のバリエーションとその悪意のあるペイロード(インジェクション攻撃やリモートコード実行攻撃など)。このインサイトを基に、システムを「調整」して強化します
      • DNSクエリのトラフィックと、その時間ごとの地理的な分布。このインサイトを基に、異常なトラフィックを検出します

      Webトラフィック分析の可視性は、継続的なリスク評価に重要な要素です。これにより、組織はアプリケーションのパフォーマンスを向上させる方法や、セキュリティ投資をどこに増強するかについて、より多くの情報に基づいた決定を行うことができます。

      CloudflareがWebサイトの安全にどう役立つか?

      Cloudflareのコネクティビティクラウドは、企業のWebアプリケーションとAPIを接続し、保護する統合サービススイートで、Webアプリケーションのセキュリティと配信を簡素化します。

      これらのサービスには、DDoS攻撃対策、業界をリードするWebアプリケーションファイアウォール(WAF)ボット管理クライアントサイドセキュリティAPIゲートウェイ、無料のパブリックDNSリゾルバー、無料のSSL/TLS証明書、包括的なWebパフォーマンスとセキュリティに関する分析などがあります。

      www.cloudflare.com//ja-jp/plansでお客様のWebサイトのニーズに合ったサービスを見つけてください。