開発者、ブロガー、経営者、大企業はすべて、アプリケーションの安全性、可用性、パフォーマンスを維持するためにCloudflareを利用しています。
これらの目標を達成するため、Cloudflareは過去12年間にわたり、何百万ものインターネットプロパティを保護できるスマートネットワークを構築してきました。2022年3月現在、W3Techsは以下のように報告しています。
「Cloudflareは、私たちが知っているリバースプロキシサービスを提供している全Webサイトの80.6%で利用されています。これはWebサイト全体の19.7%にあたります。」
また、Webをクロールして導入をモニタリングしている別のプロバイダーのNetcraftは、最新のWeb Server Survey (February 2022)で、2,000万件以上のアクティブなサイトを数字として挙げています。
「Cloudflareは、最も利用者の多い100万件のWebサイトにおいて力強い成長を続けており、さらに3,200件のサイトが追加されたことで市場シェアは19.4%に上昇しました。」
Cloudflareが保護するサイトの多種多様さ、そしてそれらのサイトと相互に作用する何十億ものブラウザとデバイスは、インターネット上で常に変化するアプリケーションセキュリティのトレンドに独自のインサイトを与えてくれます。この記事では、1秒あたり3,200万件という、Cloudflareのネットワークを通過するHTTPリクエストから集めたインサイトの一部を紹介します。
定義
データを検証する前に、使用する用語の定義をしておくと役立ちます。この記事全体を通して、以下の用語を使用します。
軽減されたトラフィック: Cloudflareプラットフォームによって「終了」アクションが適用されたあらゆるアイボールHTTP* リクエストです。
BLOCK
、CHALLENGE
(CAPTCHAやJavaScriptベースのチャレンジなど)のようなアクションが含まれます。LOG
、SKIP
、ALLOW
のアクションが適用されたリクエストは含まれません。ボットトラフィック/自動化トラフィック: Cloudflareのボット管理システムにより、ボットによって生成されたことが特定されたあらゆるHTTPリクエストです。これには、1から29の間でスコアリングされたリクエストが含まれます。
APIトラフィック: レスポンスのコンテンツタイプが
XML
、JSON
、gRPC
、またはそれに類似するすべてのHTTPリクエストです。軽減されたリクエストなど、レスポンスのコンテンツタイプが使用できない場合、代わりに同等のAccept
コンテンツタイプ(ユーザーエージェントによって指定される)が使用されます。後者の場合、APIトラフィックは完全には考慮されませんが、インサイトの面では引き続き役に立ちます。
特に指定がない限り、この記事における評価対象の期間は、2021年12月1日から2022年3月1日までの3か月間です。
最後に、このデータはCloudflareネットワーク上で観測されたトラフィックのみに基づいて算出されており、必ずしもインターネット全体のHTTPトラフィックパターンを表しているわけではないことにご注意ください。
*HTTPトラフィックに言及する場合は、HTTPとHTTPSの両方を指します。
グローバルトラフィックのインサイト
最初に目にすることができるのは、CloudflareネットワークによってプロキシされたすべてのHTTPリクエストで軽減されたトラフィックです。これにより、ボットやAPIトラフィックなど、特定のトラフィックタイプを掘り下げる前に、適切なベースラインの視点を得ることができます。
CloudflareのHTTPトラフィック全体の8%を軽減
Cloudflareは、平均で毎秒3,200万件、ピーク時には毎秒4,400万件以上のHTTPリクエストをプロキシしています。全体で毎秒250万件のリクエストが当社のグローバルネットワークによって軽減されており、当社のキャッシュやオリジンサーバーに到達しないため、当社のお客様の帯域と計算能力が良質なトラフィックにのみ使用されることを意味します。
Cloudflareを利用するサイトオーナーは、不要なトラフィックや悪意のあるトラフィックを軽減するツールを利用し、リクエストがクリーンであると判断された場合にのみアプリケーションへのアクセスを許可することができます。これは、当社のDDoS軽減、WAF管理ルールセット、スキーマ検証などのフルマネージド機能と、ユーザーがトラフィック遮断のための独自のフィルターを定義できるカスタムルールの両方を使用して行うことが可能です。
トラフィックを軽減したCloudflareの機能(ソース)のトップ5を見ると、Cloudflareの各機能が、お客様のサイトやアプリケーションをオンラインかつ安全に保つためにどれだけ貢献しているかがよくわかります。
参考用の表形式データ:
table { width: 100%; }
ソース
比率(%)
レイヤー7のDDoS軽減
66.0%
カスタムWAFルール
19.0%
レート制限
10.5%
IP脅威レピュテーション
2.5%
管理WAFルール
1.5%
軽減ソースについて個別に見ていきましょう。
レイヤー7のDDoS軽減は、意外なことにHTTPリクエストの軽減総数において最も貢献しています(全体で66%)。Cloudflareのレイヤー7DDoSルールは完全に管理されており、ユーザーによる設定は必要ありません。Merisボットネット、Miraiボットネット、既知の攻撃ツールなどによって発生した膨大なHTTP DDoS攻撃を自動的に検出することができます。ボリューム型DDoS攻撃は、その定義からして、大量の悪意あるトラフィックを生成するものです。
カスタムWAFルールは、軽減されたHTTPトラフィックの19%以上を占めています。これらのルールは、Cloudflareのwirefilter構文を使用して定義されたユーザー設定ルールです。この記事では、一般的なルールパターンについて後半で詳しく説明します。
Cloudflareのレート制限機能により、お客様はアプリケーションの設定に基づいてカスタムのしきい値を定義できます。この機能は、DDoS攻撃として検出されるには低すぎるトラフィックパターンに対するアプリケーションの保護の追加レイヤーとしてよく使用されます。分析期間中のレート制限は軽減されたHTTPリクエストの10.5%を占めました。
IP脅威レピュテーションは、Cloudflareのダッシュボードでセキュリティレベルとして公開されています。ネットワーク上で観測された挙動に基づき、Cloudflareは各IPアドレスに脅威スコアを自動的に割り当てます。脅威スコアが指定されたしきい値を超えている場合、Cloudflareはそのトラフィックにチャレンジします。これは、軽減されたHTTPリクエスト全体の2.5%を占めています。
Cloudflareの管理WAFルールは、有効な悪意のあるペイロードに対してのみマッチングすることを目的として、Cloudflareの内部セキュリティアナリストチームによって手動で作成されたルールです。これは、軽減されたリクエストの約1.5%を占めています。
最も一般的な攻撃ベクトルであるHTTP異常
管理WAFルールを細かく見ていくと、Cloudflareが保護するインターネットプロパティに対して、悪意のあるユーザーがどのような種類の攻撃ベクトルを試みているのかが明確になります。
Cloudflareの管理WAFルールでブロックされるHTTPリクエストの大部分(54%以上)には、不正なメソッド名、ヘッダー内のNULLバイト文字、非標準ポート、コンテンツの長さ0のPOST
リクエストなどのHTTP異常が含まれています。
このカテゴリーで一般的な攻撃の種類を以下に示します。関連性がある攻撃はグループ化されています。
table { width: 100%; }
ルールタイプ
説明
ユーザーエージェントの欠落
これらのルールは、User-Agent
ヘッダーを含まないリクエストをブロックします。すべてのブラウザと正規のクローラーは、サイトに接続する際にこのヘッダーを示します。ユーザーエージェントの欠落は、悪意のあるリクエストの一般的な特徴です。
メソッドがGET
、POST
、HEAD
以外
ほとんどのアプリケーションでは、標準的なGET
またはPOST
リクエスト(通常、ページの閲覧やフォームの送信に使用)のみを許可します。また、HEAD
リクエストも、セキュリティ上の目的でブラウザよりよく送信されます。Cloudflareの管理ルールをご利用のお客様は、それ以外のメソッドを簡単にブロックできます。その結果、通常は多数の脆弱性スキャナーをブロックすることになります。
Refererの欠落
ユーザーがアプリケーションを操作する際、ブラウザはReferer
ヘッダーを使用して発信元を示します。一部のアプリケーションでは、このヘッダーが常に存在することを想定しています。
非標準ポート
お客様はCloudflare Managed Rulesを設定することで、非標準ポート(80や443など)にアクセスしようとするHTTPリクエストをブロックすることができます。これは通常、脆弱性スキャナーで見られる挙動です。
無効なUTF-8エンコーディング
UTF-8エンコーディングで無効な「特殊」文字を送信することで、アプリケーションサーバーを侵害する攻撃がよく見られます。
XSSやSQLiなど、より一般的に知られていて参照されている攻撃ベクトルは、軽減されたリクエスト全体の約13%に過ぎません。興味深いことに、情報漏えいを目的とした攻撃は3番目に多く(10%)、ソフトウェア固有のCVEベースの攻撃は、軽減されたリクエストの約12%を占めています(SQLiのみよりも多い)。これは、ソフトウェアのパッチを迅速に提供することの重要性と、最近のLog4JのようなCVE概念実証(PoC)がアプリケーションへの侵害に使用される可能性の両方を示すものです。軽減されたリクエストの割合が高い攻撃ベクトルのトップ10は、以下のとおりです。
参考用の表形式データ:
table { width: 100%; }
ソース
比率(%)
HTTP異常
54.5%
ベンダー固有のCVE
11.8%
情報漏えい
10.4%
SQLi
7.0%
XSS
6.1%
ファイルインクルード
3.3%
偽物のボット
3.0%
コマンドインジェクション
2.7%
オープンリダイレクト
0.1%
その他
1.5%
企業は依然としてIPアドレスベースのアクセスリストに依存してアセットを保護している
前のセクションで、軽減されたリクエストの19%はカスタムWAFルールによるものであると述べました。これは、Cloudflareのお客様がwirefilter構文を使って実装したルールです。この記事の執筆時点で、Cloudflareのお客様は合計で650万のカスタムWAFルールをデプロイしていました。
お客様が悪意のあるトラフィックを特定するためにどのようなルールフィールドを使用しているかを調べるのは、興味深いことです。Cloudflareプラットフォームを改善するうえで、他にどのような完全自動化された軽減策を実装できるかに焦点を当てるのに役立つためです。
すべてのカスタムルールの約64%に見られる最も一般的なフィールドは、ソースIPアドレスか、クライアントの国の場所など、IPアドレスから簡単に派生させられるフィールドです。IPアドレスは、セキュリティポリシーにとってあまり役に立たないシグナルになりつつありますが、多くの場合、攻撃の際に最も迅速かつシンプルに実装できるフィルターです。また、お客様は、 IPアドレスベースのフィールドへの依存度を下げるために、ゼロトラストポートフォリオで提供されているような、より優れたアプローチを採用し始めています。
フィールドのトップ10は以下のとおりです。
参考用の表形式データ:
table { width: 100%; }
フィールド名
ルールにおける使用率
ip
64.9%
ip_geoip_country
27.3%
http_request_uri
24.1%
http_user_agent
21.8%
http_request_uri_path
17.8%
http_referer
8.6%
cf_client_bot
8.3%
http_host
7.8%
ip_geoip_asnum
5.8%
cf_threat_score
4.4%
IPアドレス以外では、標準的なHTTPリクエストフィールド(URI
、User-Agent
、Path
、Referer
)が最も一般的になりつつあります。また、ルールコーパス全体では、平均的なルールで少なくとも3つの独立したフィールドが組み合わされていることに注目してください。
ボットトラフィックのインサイト
Cloudflareは以前から、お客様がアプリケーションにアクセスしている可能性のある自動トラフィックについてインサイトを得られるよう、ボット管理ソリューションを提供しています。ボット管理の分類データを使用すると、ボットの世界を深く掘り下げることができます。
HTTPトラフィックの38%は自動化されている
分析期間中、ボットトラフィックはHTTPリクエスト全体の約38%を占めていました。このトラフィックには、Cloudflareが追跡している数百の検証済みボットからのボットトラフィックと、ボットスコアが30以下のリクエスト(自動化されている可能性が高いことを示す)が含まれています。
全体として、ボットトラフィックがセキュリティ設定とマッチングする場合、お客様はボットトラフィックの41%に対してオリジンへの通過を許可しており、ブロックしている自動リクエストはわずか6.4%です。これには、GoogleBotのような検証済みボットからのトラフィックも含まれており、最終的にサイトオーナーとエンドユーザーにメリットをもたらしていることに注意してください。自動化それ自体は、必ずしもサイトにとって有害ではありません。これが、検証済みボットのトラフィックをセグメント化し、「ボットか否か」という二元的な指標ではなく、きめ細かいボットスコアをお客様に提供している理由です。Webサイト運営者は、さまざまな種類のボットトラフィックに正確に対応できる柔軟性を求めており、実際にこの柔軟性を活用していることがわかります。なお、セルフサーブのお客様は、スーパーボットファイトモード機能を使用して、ボットトラフィックの対処方法を決定することもできます。
参考用の表形式データ:
table { width: 100%; }
すべてのボットトラフィックに対するアクション
比率(%)
許可
40.9%
ログ
31.9%
bypass
19.0%
ブロック
6.4%
jschallenge
0.5%
検証されていないボットHTTPトラフィックの3分の1以上を軽減
Cloudflareが観測した全ボットトラフィックの31%は検証されていません。これらのトラフィックは、スキャナー、クローラー、ハッカーが構築したボットなど、何千ものカスタムビルドの自動化ツールから発生しているものです。前述のとおり、自動化されたボットが必ずしも悪意のあるアクションをとっているわけではありません。特定されたボットトラフィックに対するお客様の対応を見てみると、検証されていないボットからのHTTPリクエストの38.5%が軽減されていることがわかります。これは明らかに、上図に示したボットトラフィック全体のアクションと比較して、より防御に徹した設定です。
参考用の表形式データ:
table { width: 100%; }
検証されていないボットトラフィックに対するアクション
比率(%)
ブロック
34.0%
ログ
28.6%
許可
14.5%
bypass
13.2%
managed_challenge
3.7%
約30%のお客様が、即座に対処するのではなく、トラフィックをログに記録していることがわかります。_多くの企業のお客様が、ボットトラフィックを即座にブロックしないことを選択し、攻撃者にフィード���ックシグナルを与えないようにしています。_それよりも、このトラフィックにタグを付けて監視し、後で削除するか、別のコンテンツにリダイレクトすることを選んでいます。標的型の攻撃ベクトルが進化するにつれて、こうした攻撃への対応も進化し、より洗練されたものになる必要があります。さらに、検証されていないボットトラフィックの約3%が、当社のDDoS攻撃対策機能によって自動的に軽減されています(connection_close
)。これらのリクエストは、お客様のアプリケーションを攻撃するために使用されるボットネットの一部である傾向があります。
APIトラフィックのインサイト
今日、インターネット上に構築された多くのアプリケーションは人間による消費ではなく、コンピュータ間の通信を目的としています。この目的に沿ってアプリケーションを公開する一般的な方法は、HTTPを使ってアクセスできるApplication Programming Interface(API)を構築することです。
APIトラフィックは、転送中のデータの基本的な形式であるため、標準的なWebアプリケーションよりもはるかに構造化される傾向があり、セキュリティの観点からあらゆる種類の問題を引き起こします。まず、構造化されたデータにより、Webアプリケーションファイアウォール(WAF)で大量の誤検知が発生することがよくあります。次に、APIの性質上、気づかないうちに古いAPIやメンテナンスされていないAPIを公開してしまう企業が多く、「シャドーAPI」と呼ばれることがあります。
以下では、上述のグローバルトラフィックのインサイトと比較した、APIの傾向の違いをいくつか見ていきます。
APIトラフィックの10%を軽減
ボットトラフィックのかなりの部分がAPIエンドポイントにアクセスしています。そして、前述のように、APIトラフィックはCloudflareネットワーク上で最も急速に成長しているトラフィックタイプであり、現在ではリクエスト全体の55%を占めています。
APIエンドポイントは、標準的なWebアプリケーションと比較して、悪意のあるリクエストをより多く受信しています(10%対8%)。これは、攻撃者が、標準的なWebアプリケーションではなく、APIを攻撃対象に定めている可能性を示しています。
CloudflareのDDoS軽減は、APIエンドポイントにおける軽減イベントのソースとして依然としてトップであり、軽減されたリクエスト全体の63%強を占めています。さらに興味深いことに、グローバルトラフィックでは19%であるカスタムWAFルールが35%を占めています。これまでお客様は、APIエンドポイントへのトラフィックをロックダウンして検証するためにWAFカスタムルールを多用してきました。しかし、CloudflareのAPI Gatewayスキーマ検証機能が、トラフィック軽減の面でまもなくカスタムWAFルールを上回ることが予想されます。
APIエンドポイントで最も一般的な攻撃ベクトルであるSQLi
WAF管理ルールによる軽減をAPIトラフィックに限って見てみると、世界的な傾向と比較して顕著な違いが見受けられます。この違いとして、攻撃の種類がより均等に分布していることなどが挙げられますが、より顕著なのはSQLインジェクション攻撃がトップであることです。
また、コマンドインジェクション攻撃も14.3%と非常に多く、デシリアライゼーションなどのベクトルも現れ、軽減されたリクエスト全体の1%以上を占めています。
参考用の表形式データ:
table { width: 100%; }
ソース
比率(%)
SQLi
34.5%
HTTP異常
18.2%
ベンダー固有のCVE
14.5%
コマンドインジェクション
14.3%
XSS
7.3%
偽物のボット
5.8%
ファイルインクルード
2.3%
デシリアライゼーション
1.2%
情報漏えい
0.6%
その他
1.3%
将来を見据える
この記事では、Cloudflareのネットワークへのトラフィックに基づくインターネットアプリケーションセキュリティのトレンドに関する最初のインサイトをご紹介しました。もちろん、これはまだ表面的なものに過ぎません。今後は、Cloudflare Radarに動的なフィルターを直接適用した四半期レポートを発行し、より詳細なインサイトと調査を提供する予定です。