クラウドセキュリティの
学び場

SHIFT SECURITY セキュリティの学び場 技術や仕組み 縁の下の力持ち『CDN』その仕組みとは?

縁の下の力持ち『CDN』その仕組みとは?

縁の下の力持ち『CDN』その仕組みとは?
目次
  • CDNの概要
  • CDNが必要となった背景
  • 縁の下の力持ち CDN
  • CDN利用時に発生しうる脆弱性
  • CDN・Webサーバーの脆弱性への対策と回避策

CDNの概要

この記事では、現代のインターネット社会での情報発信に欠かすことのできない、CDNについて解説していきます。

普段からインターネットの様々なサービスやアプリケーションを活用している現代社会人でも、IT業界に携わることがなければCDNという単語を目にする機会は少ないかもしれません。CDNとは、Content Delivery Network(コンテンツ・デリバリー・ネットワーク)の略称であり、和訳すれば「コンテンツ配信網(ネットワーク)」となるでしょうか。「網(ネットワーク)」の名が付く通り、単一のサーバーのみを指すことは少なく、多くの場合、まさに網のように全世界に広がる複数のサーバーによってCDNは実現されています。

CDNの主な役割には「オリジナルサーバーのコンテンツを保存(キャッシュ)し、オリジナルサーバーに代わってユーザーに送信する」というものがあります。これにより、オリジナルのサーバーが提供サービスにおいて、「負荷の軽減」、「レスポンスの向上」といった恩恵を受けることができます。

一見、何てことのない内容のように見えますが、この技術により、私たちのインターネット空間はより利便性の高いものへと向上し、日々支えられています。以下にてもう少し詳しく解説していきましょう。

CDNが必要となった背景

動画配信サイトやSNS、ブログ等の様々なコンテンツが溢れる昨今のインターネット空間において、重要な要素の1つは、「より大きなコンテンツを、より高速に配信する」ことでしょう。サーバースペック、回線速度、通信技術の向上でより大きなデータをより高速に送受信することが可能となり、また多種多様なサービスが国境の壁を越えグローバルに配信・入手可能になりました。

しかしその一方で、以下のような課題が表面化しました。

  • ・大きなデータ通信によるネットワーク、サーバーへの負荷
  • ・異なるリージョン(地域、国)への円滑なコンテンツ配信

この2つの課題を同時に解決できるものとして使われる技術がCDNです。

縁の下の力持ち CDN

大きなデータを安定して配信し、かつ遠隔地からのアクセスにも迅速に対応するためにはどうすれば良いでしょうか。

CDNは先述の通り、「オリジナルサーバーのコンテンツを保存(キャッシュ)し、オリジナルサーバーに代わってユーザーに送信する」機能を持ちます。また、「コンテンツ配信網(ネットワーク)」の名の通り、コンテンツをキャッシュしたサーバーをまさに網目のように世界各地に設置、提供されています。

この2つの特徴を持つことで、以下のような利点があります。

  • ・動画等のコンテンツの配信をCDNが行うことで、オリジナルのサーバーに対する負荷を軽減できる
  • ・異なる地域、遠隔地からのアクセスでも、近隣のCDNが保存(キャッシュ)した情報を返送することでネットワークの帯域負荷を軽減し、アクセス速度の向上が見込める

これにより、遠くはなれた場所からのアクセスであったとしても、動画データへのアクセスが集中したとしても、サーバーへの負荷を心配することもなく、遅延も少ない安定したサービス提供を行うことが可能となります。このように、私たちが動画配信サイトなど様々なサービスをストレスなく利用している影には、人知れずCDNが活躍しています。まさに縁の下の力持ちのような役割の技術、それがCDNと言えます。

CDN利用時に発生しうる脆弱性

CDNを利用時に発生しうる脆弱性の1つが、HTTPキャッシュポイズニング(HTTPキャッシュ汚染)です。

悪意のあるユーザが、URLやメソッド、クエリパラメタなどを偽装し、CDNでキャッシュされる条件を満たした悪意のあるコードを含むリクエストを送信します。ここでは、ヘッダを改ざんして送信したものとします。この時、改ざんされたヘッダ情報の値をレスポンスのHTML内で処理してしまう脆弱性がバックエンドのWebサーバ側に含まれていたとしましょう。この際、後続の他ユーザからのリクエストにおいても、CDNは改ざんされたヘッダ情報が含まれたキャッシュをユーザに送信するため、他ユーザのレスポンスに改ざん情報が含まれ、脆弱性により悪意のあるコードが実行されてしまう被害が発生します。

このように、任意のコードを実行する改ざん値などをCDNのキャッシュに注入する攻撃が、HTTPキャッシュポイズニングです。

CDN・Webサーバーの脆弱性への対策と回避策

【CDN】における対策と回避策

【対策】
1. バックエンドの Web サーバへHTTPリクエストを転送する前に、HTTPヘッダに対して適切な検証処理および無害化処理を行う

2. CDNが生成したり検証したりすると期待されている一部の HTTP ヘッダが外部からのHTTPリクエストに含まれている場合には、適切な無害化処理を施す

【回避策】
悪意あるコンテンツの配信を防ぐため、HTTPリクエストのヘッダに不審な内容が含まれていたらキャッシュしない

【Webサーバ】における対策と回避策

【対策】
HTTPリクエストに含まれる内容を信頼しない。また、レスポンスには適切かつ安全なエンコーディングを用いる ※適切なエンコードはXSS等、様々な脆弱性への対策となり得るため、非常に有効です

【回避策】
悪意あるコンテンツの配信を防ぐため、動的に生成したコンテンツがCDNにキャッシュされないよう、Cache-ControlやExpiryヘッダなどを活用して、CDNにキャッシュされることを防ぐ

あなたの疑問を一緒に解決します!

解説してほしい用語や技術、仕組みについての疑問、
みなさまのクラウドセキュリティのお悩みに関して技術者が記事にして回答します!
ぜひご気軽にご投稿ください。

クラウドの脆弱性診断にご興味があるかたはこちら

この記事の著者 海瀬 秀晃

国内某大手メーカーの社内VPNの運用・管理業務に携わり、ネットワークインフラ管理業務を経験。 2013年よりサイバーセキュリティ業界に足を踏み入れる。2016年には国内初となるSaaS型 WAFの自社開発を実現し、商品化・販売を行う。2020年2月 株式会社SHIFT SECURITYに入社し、Web脆弱性診断の診断品質を担保する業務に従事。 情報処理安全確保支援士。恐妻家。三兄弟の父。

\ 記事をシェアする /

Contact

お見積り・ご相談など、お気軽にご相談ください

ご相談・ご質問はこちら

お問い合わせ

お見積り依頼はこちら

お見積り依頼

資料請求はこちら

資料請求

お電話でのご相談はこちら
(平日10:00~18:00)

TEL.050-5532-3255
サイトTOPへ