San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
閉じる
プライバシー設定
ウェブサイト運営に必要なCookieや類似技術を使用しています。追加のCookieは貴社の同意がある場合のみ利用されます。同意は「Agree」をクリックすることでいただけます。どのデータが収集され、どのようにパートナーと共有されているかの詳細は、Cookieポリシープライバシーポリシーをご確認ください。
Cookieは、貴社デバイスの特性や、IPアドレス、閲覧履歴、位置情報、固有識別子などの特定の個人情報を取得、解析、保存するために使用されます。これらのデータは様々な目的で利用されます。分析Cookieによりパフォーマンスを評価し、オンライン体験やキャンペーンの効果向上に役立てます。パーソナライズCookieは、利用状況に応じた情報やサポートを通じ、貴社専用の体験を提供します。広告Cookieは、第三者が貴社のデータをもとにオーディエンスリストを作成し、ソーシャルメディアやネット上でのターゲット広告に使用します。貴社は各ページ下部のリンクから、いつでも同意の許可、拒否、または撤回が可能です。
ご送信ありがとうございます。内容を受け付けました。
申し訳ありません。フォーム送信時にエラーが発生しました。
/
/
DevSecOps

ユーザーデータグラムプロトコル

ユーザーデータグラムプロトコルは、ハンス・クリスチャン・アンデルセンの『みにくいアヒルの子』のような存在です。長らく無視され嘲笑されていた地味なプロトコルも、インターネット速度の向上に伴い、華やかなオリジナルハイパーメディアアプリの伝達手段として驚くべき支持を得ました。迅速な情報伝達が求められるパッケージの定番設計として、伝送制御プロトコルに代わる存在となりました。

ユーザーデータグラムプロトコル

UDPプロトコルの概要

インターネットプロトコル (IP) は、グリッド上でUDPペイロードを送信する基盤として機能します。これにより、送信側と受信側の間で事前の多方向ハンドシェイクが不要となり、エンドツーエンドのリンクも必要ありません。

ネットワーク関連のオーバーヘッド、故障チェック、誤送データの再送信が排除されるため、情報の認証や修正を求めない即時性や高性能が重視されるアプリに適しています。必要に応じ、アプリレベルでの確認が可能です。

リモートプロシージャコール (RPC) アプリはUDPを利用することが多いですが、TCP上に構築することも可能です。自社の整合性を保つため、RPCアプリはユーザーデータグラムプロトコルの定義を採用している点に留意する必要があります。

UDPはどのように動作するか

UDPは、ネットワークシステム間でデータを送信する基本設計であり、TCPと異なり、間接的な接続設定を省略してパケット(正確にはペイロード)を送信先へ直接届けます。送信順序の指定や到着確認も行いません。

情報の完全性確認にはチェックサムが、データ用途の識別にはポート番号が利用され、送信前のハンドシェイクは不要です。

ただし、UDPでは受信時にデータの乱れや欠落が生じる可能性があるため、機密情報の送信には向きません。迅速な情報伝達が求められる場合に採用されます。

UDPヘッダ構造

UDPヘッダは、ペイロードをカプセル化するために4つのフィールド、計8バイトで構成されます。

UDPヘッダの構成要素は以下の通りです:

  • 送信元ポート

送信装置側のポートを示します。送信側が応答する必要がない場合、値はゼロに設定されます。

  • 宛先ポート

データを受信する装置のポートを示し、UDPのポート番号は0から65535まで割り当てられます。

  • 長さ

UDPヘッダとペイロードデータを構成するバイト数を示します。基礎となるIP規定により、長さフィールドの最大値が決定されます。

  • チェックサム

受信装置がパケットのヘッダとペイロードの整合性を確認するための機能です。IPv4では任意ですが、IPv6では必須となっています.

How Does UDP Work

UDPの利用例

仕組みを理解した上で、UDPの活用事例を見ていきます.

ゲーム、音声、映像

低遅延の特性から、ゲーム、音声、映像などのネットワークアプリで大きな効果を発揮します。これらの用途では多少のデータ損失が目立ちにくいため、基本的にデータを欠落なく送信します。場合によっては、音声や映像の品質向上のため、順方向誤り訂正技術と併用されることもあります.

マルチキャストおよびルーティング更新プロトコル

パケット交換機能により、UDPはマルチキャストにも適しています。『一対多』のアプリでは、個別の接続を確立せずに複数の受信装置へ同時送信が可能です。各データグラムは複製され、一つのマルチキャストアドレスに送られ、そのアドレス宛に全ての受信装置へ届けられます。この方式は通知の配信、システム状態の評価、遠隔学習などでの映像・音声伝送に有効です.

ロスレスデータ転送

非常に信頼性の高いデータ転送が必要な場合に利用されます。欠落パケットの再送や、受信パケットの正しい並び替えを処理する仕組みをUDP上に構築することで、TCPよりも大容量ファイルの転送速度向上が期待できます.

UDPはOSI参照モデルの第4層(トランスポート層)に位置しており、TFTP、RTSP、SNMPなどの上位プロトコルと連携してデータ伝送機能を提供します.

高速アプリ

信頼性よりも速度が重視される場面に適しており、迅速なデータ取得が求められ、多少のデータ欠落が許容される場合に利用されます.

固定パケット送信を必要としないサービス

信頼性のあるデータ転送が必要なアプリでも、UDPを利用し独自の対策を講じる場合があります。これにより、定型パケットに頼らず、誤った情報や乱れた情報に対する対応方法を利用側が選べるメリットがあります.

VPN

通常はTCPでデータ転送を行いますが、一部サービスではUDPを選択できる場合もあります。これは、VPNが高精細映像の配信に利用され、TCPの遅延問題への対策が必要となるためです.

ドメインネームシステム検索

ウェブブラウザにURLを入力すると、該当ドメインのIPアドレスが検索され、その後サーバへGETリクエストが送信されます。この処理が数ミリ秒以上かかると利用者が離れる可能性があるため、DNSインターフェースは迅速にウェブサイトを取得するために利用されます.

プロトコルの短所

UDPには情報認証やネットワーク制御がないため、以下のような送信上の問題が生じることがあります:

  • パケットが特定の順序で到着する保証がありません.
  • 受信装置がメッセージ受信の準備ができているか確認しません.
  • パケットの重複送信を防ぐ仕組みがありません.
  • 送信した全データが受信側に届く保証はありません。一方、各パケットの整合性はチェックサム機能により確認されます.

UDPとTCPの違い

伝送制御プロトコル (TCP) とユーザーデータグラムプロトコル (UDP) は、IPスイート内の主要なプロトコルの一つです.

パケットの断片化、配信信頼性、再構成などの面で優れていることから、TCPはインターネット接続の標準として広く採用されています。しかし、その分、データのオーバーヘッドや遅延が増加します.

TCPでは情報転送前に仮想回線の確立が必要ですが、UDPは接続レスのプロトコルです。パケット単位の通信により、帯域オーバーヘッドと遅延が大幅に削減され、送信者と受信者の間で複数経路を辿ることもあるため、パケットの順序が乱れる可能性があります.

UDPの特徴は以下の通りです:

  • 参加者間のリンク設定を必要としません.
  • VoIP、映像ストリーミング、オンラインベッティング、ライブ放送などに利用されます.
  • 効率的で、消費リソースが少ないです.
  • パケットが順番通りに到着しない場合があります.
  • 送信者が気付かないままパケットが失われることがあります.
  • 迅速なデータ転送が求められるゲームなどに適しています.

TCPの特徴は以下の通りです:

  • 互換性が重視されます.
  • インターネットで圧倒的に利用されています.
  • 送信した全てのデータが目的の受信者に届き、パケット損失が防がれます.
  • 情報を順序だてて送信し、容易に再構築できます.
  • 効率はUDPに比べ劣り、リソース消費が大きいです.
  • UDPよりも大きな前文を使用します.
  • 即時性がさほど求められない、信頼性重視のアプリに最適です.

DDoS攻撃におけるUDPプロトコルの利用

検証機構やエンドツーエンドの接続がないため、UDPは様々なDDoS攻撃の標的となりやすいです。攻撃者は任意のIPアドレスを偽装したパケットを用いて、アプリに直接アクセスを試みることがあります.

これは、TCPでは送信前に受信側からの応答が必要である点と異なります.

UDPを狙ったDDoS攻撃の例は以下の通りです:

  1. UDPフラッド

正当な送信元の確認ができないことを利用し、大量の偽装UDPパケットを1台のサーバの複数ポートへ送信します。サーバに過負荷がかかり、ICMP「宛先到達不能」応答で返答されます.

攻撃者は一般的なネットワーク層攻撃として、偽装UDPパケットを大量に送信しターゲットネットワークを圧迫する手法を頻繁に用います。ネットワークの動的な容量増加により、これらのDDoS攻撃に対抗する必要があります.

  1. DNSアンプリフィケーション

DNSアンプリフィケーション攻撃では、攻撃者が被害者のIPに対応する偽装IP情報を用い、被害者のDNSリゾルバにUDPパケットを送信します。DNSサーバはその応答を被害者に返し、リクエストに対して応答サイズが著しく大きくなるよう仕組まれています.

複数の利用者が異なるDNSリゾルバを利用することで、攻撃対象システムが圧倒される可能性があります。アンプリフィケーションにより、27GbpsのDDoS攻撃が300Gbpsに拡大する場合もあります.

  1. UDPポートスキャン

サーバ上の開放ポートを確認するため、攻撃者はUDPパケットを送信します。サーバがICMP「宛先到達不能」応答を返す場合、そのポートは閉じていると判断され、応答がない場合は開放とみなされ攻撃が進められます.

UDP疑似ヘッダ

  • 疑似ヘッダにより、UDPパケットの宛先が確認できます.
  • 正しい宛先は、装置名とそのプロトコルポート番号の組み合わせです.

UDP疑似ヘッダの詳細

  • UDPヘッダにはプロトコルポート番号のみが含まれるため、送信側で宛先IPアドレスとUDPパケットを含めたチェックサムが計算され、正しい送信先か確認されます.
  • 受信側のUDPソフトは、IPパケットのヘッダから受信装置のIPアドレスを参照しチェックサムを検証します.
  • チェックサムが一致すれば、パケットは送信先ホストとその正しいプロトコルポートへ無事に届いたと判断されます.

UDP利用上の最良策

アプリにUDPを導入する前に、最適な利用方法を検討する必要があります。ユニキャストUDPによるサービス提供の設計仕様は、UDP利用要求などの資料に記されています.

経路条件と伝送方式を考慮

TCPのような機能豊富な伝送方式を利用し、様々なインターネット経路条件に耐えられる設計とする必要があります.

帯域幅、伝送遅延、パケット順序の入れ替わり、混雑レベル、損失率、対応可能なメッセージサイズは経路ごとに大きく異なり、同一経路でも時間と共に変化するため、特定の経路に依存しない設計が求められます.

そのため、各種経路条件下でも安定してパケットが届けられる手法を採用する必要があります。現在の通信経路を綿密に調査することで、持続的かつ公平な伝送動作が確立され、再度混雑が発生しても対応が容易となります.

輻輳制御を実装

UDP設定では伝送速度とトラフィック混雑の制御が不可欠です。混雑管理がない場合、UDPデータグラムは制御された速度で送信先に届けなければなりません.

全UDPトラフィックは送信先毎に適切に管理され、多数のワーカープロセスや複数ソケットを使用するシステムでは混雑状況に留意する必要があります.

大容量転送アプリを強化

大容量UDP転送では、TCPフレンドリーなレート制御 (TFRC) やその他の帯域活用技術を用いるべきです.

RTT毎に複数のUDPデータグラムを交信するアプリでは、TFRC、TCPのウィンドウ制御、または他の混雑管理対応ソフトを採用する必要があります.

TFRCの混雑制御と公平性はIETF準拠です。大容量転送アプリでは、TFRCやTCP型のウィンドウ制御による混雑管理が重要です.

パケット損失が許容範囲内に収まるよう監視し、同一経路でのTCPフローの平均スループットがUDPフローと大きく変わらない場合、許容損失条件が満たされると判断します.

また、混雑管理のない大容量転送アプリは、予約済みの経路容量を利用して送信する場合がありますが、これは限定的なネットワーク環境下でのみ安全です。未整備な経路にUDPトラフィックが流入すると他の通信に影響し、混雑崩壊を引き起こす恐れがあります.

低データ量アプリの効率化

大容量でないUDP設定では、RTTを測定しRTT毎に1つのデータグラムを送信するべきです。3秒に1つを上限とし、損失時には再送タイマーを調整します.

少量のUDPデータグラムを交信するアプリでTFRCなどの混雑制御を導入しても、得られる効果は限定的であり、これらの手法は主に長時間の伝送で効果を発揮します.

そのため、少数のデータグラムを送信するアプリは送信方法を制御し、RTTあたりの送信数を1未満に抑えることが望ましいです。各送信先ごとにRTTを推定してください.

ネットワーク全体の安全性確保

UDPの導入には、ファイアウォール、侵入検知・防止システム、ネットワークアクセス制御、スパムフィルターなどのセキュリティ対策が必要です。ファイアウォールはネットワークを隔離し基本的防御を提供し、IDSは侵入者を検知して警告を発します。IPSはこれらの機能を併せ持ち侵入を防ぎますが、ITコストが増大する可能性もあります。NACは基準を満たす端末のみがアクセス可能となり、スパムフィルターはパターン分析やポリシーに基づき不要なメールを遮断します.

WallarmがUDP攻撃から守る

複数クラウドやクラウドネイティブ環境におけるAPIやウェブアプリ全体を、前述の攻撃から守るため、Wallarmは最高水準のAPI Security PlatformWAAP(次世代WAF)を兼ね備えた唯一のソリューションです。以下のような攻撃対策が可能です:

  • ボリュームベースの攻撃

Wallarmは、世界各地のスクラブセンターというクラウドベースのクラスターを通じ、不正なトラフィックを取り除くことで、UDPフラッドやDNSアンプリフィケーション攻撃を防ぎます。不正なリクエストは遮断し、正当なユーザートラフィックはそのまま通過させます.

  • プロトコル攻撃

Wallarmは、存在しないポートを狙うなどの有害なUDPトラフィックをサイト到達前に遮断します。また、訪問者識別技術により、人間、検索エンジン、ボット、さらには悪意あるアクセスを識別可能です.

FAQ

最新情報を購読

更新日:
February 25, 2025
学習目標
最新情報を購読
購読
関連トピック