Azure DDoS Protection を試す!

Azure DDoS Protectionとは、Auzre上で公開しているPIP(Public IP)をターゲットにして行われる、分散型サービス拒否攻撃(DDoS)の影響を軽減するサービスです。Azureでは、標準でDDoS機能が提供されていますが、DDoS Protectionを利用する事で、保護対象に応じたしきい値の設定や監視機能が提供されます。標準でゾーン冗長に対応し、SLA 99.99%です。

さっそく、構成を見てみましょう!

DDoS IP Protection:1PIP単位でDDoS攻撃を軽減。PIPが15個未満の場合はコレ
1PIP=29,118円/月

DDoS Network Protection:仮想ネットワーク単位でDDoS攻撃を軽減。標準で仮想ネットワーク上の100PIPまで対応。100PIPを超えた場合、1PIP単位で追加可能。テナントを越えて複数の仮想ネットワークに適用する事もできる。Azure WAFが無償で利用可能。
DDoS Rapid Response(セキュリティ専門のサポートチーム)に対して、攻撃の調査/分析を依頼する事が可能。
100PIPまで=430,700円/月。100PIPを超えた場合、1PIPごとに=4,307円/月

[Adaptive Real-time Tuning Engine]
保護対象となるIPアドレスへのトラフィックパターンを機械学習を通して分析を行い、最適なしきい値を算出します。DDoS Protectionは、このしきい値を超過した場合にのみ、攻撃を受けているIPアドレスに対して自動的に発動します。
また、攻撃が検出されてから軽減されるまでに30~60秒かかります。
レイヤー3/4を検査しますが、レイヤー7(アプリケーション層) は検査しません。
※レイヤー7を保護するには、Azure WAFをご利用ください。
※AzFW/NSGでブロックしている場合は、DDoS攻撃とはなりません。

【軽減される攻撃】

帯域幅消費型攻撃:正当そうに見えるトラフィックを膨大に送り付ける攻撃を軽減します。
UDPフラッド、増幅フラッドなど

プロトコル攻撃:レイヤー3/4 プロトコルスタックの弱点を悪用する攻撃を軽減します。
SYN フラッド攻撃、リフレクション攻撃など

【保護対象サービス】

・Virtual Machine
・Load Balancer
・Application Gateway
・Azure API Management ※Premium/Developerのみ
・Service Fabric
・Bastion
・Azure Firewall
・VPN Gateway
・NVA
・BYOIP

下記パブリックIPが保護対象外となります。
・PaaS
・App Service Environment
・NAT Gateway
・Azure Virtual WAN
・Public IP Prefix

※IP Protectionの場合「Public IP Basic」はサポートされません。


全体の流れ

Step1:DDoS Protection設定
Step2:診断ログ&アラート設定
Step3:メトリックアラート設定


Step1:DDoS Protection設定

[検索:DDoS]ー[DDoS保護プラン]ー[+作成]を選択

サブスクリプション:Azureサービスの提供範囲
リソースグループ:グループ名(複数のリソースを1つにグループ化する機能)
名前:表示名
地域:保護対象のリージョンを選択

DDoS保護プランが作成されました。

Network Protection を適用する場合

[仮想ネットワーク]ー[DDoS保護]を選択

[DDoS保護]ー[保護されたリソース]を選択

仮想ネットワークが保護されているのが確認できます。

[ファイアウォール]を確認すると、仮想ネットワーク上に展開済みのFWも保護されている事が確認できます。

IP Protection を適用する場合

[パブリックIPアドレス]ー[プロパティ]ー[IP保護]を選択

保護済みである事が確認できます。


Step2:診断ログ&アラート設定

Public IPに対するDDoSログを収集します。

[allLogs][AllMetrics]を作成済みのLog Analyticsワークスペースに送信します。

Log Analyticsワークスペースにてログを検索します。

AzureDiagnostics
| where Category == “DDoSProtectionNotifications” ←攻撃の開始/終了を検知

AzureDiagnostics
| where Category == “DDoSMitigationFlowLogs” ←軽減されたDDoSパケットを確認

AzureDiagnostics
| where Category == “DDoSMitigationReports” ←DDoS攻撃の詳細情報を確認

推奨アラート設定がカスタムテンプレートで提供されています。

リソースグループ:作成済みのLog Analyticsワークスペースがいるリソースグループを指定
Workspace Name:作成済みのLog Analyticsワークスペース名

ログ検索警告ルールの作成が確認できます。
AzureDiagnostics
| where Category == “DDoSProtectionNotifications”
| where type_s == “MitigationStarted”
| project ResourceId, SubscriptionId, Message, publicIpAddress_s

次にアクショングループを作成します。こちらもカスタムテンプレートが提供されています。
※DDoS攻撃を検知した場合、メールにて通知を行います。

下記リソースが作成されます。


Step3:メトリックアラート設定

こちらでは、メトリックの値を元にメール通知を行います。

[作成]を選択

監視したいメトリックリソース[仮想ネットワーク/PIP]を指定します。

シグナル名:Under DDoS attack or not ←攻撃を受けているかどうか検知するメトリック
※画像通りに設定してください。

ここで、アクショングループを作成します。

通知タイプを電子メールとし、通知先メールアドレスを入力します。

最後に確認

作成したアクショングループが確認できます。

重大度:2-警告

最後に確認

Azure Monitor アラートルールから確認できます。

Azure Monitor アクショングループから確認できます。


それでは、確認してみましょう!

[BreakingPoint Cloud]を利用して、実際にDDoS攻撃を行ってみます。

DDoS Profile:
[DNS SYN Flood / NTPv2 Flood / SSDP Flood / TCP SYN Flood / UDP 64B Flood /
UDP 128B Flood / UDP 256B Flood / UDP 512B Flood / UDP 1024B Flood /
UDP 1514B Flood / UDP Fragmentation / UDP Memcached]

Test Size:※選択したDDoS Profileプロファイルによる

結果を見てみましょう~

カウントが1となり、攻撃を検知している事が確認できます。

Log Analytics にもDDoS攻撃開始のログが確認できます。

軽減されたパケットの送信元IPや攻撃タイプが確認できます。

DDoS攻撃の詳細情報

アラートメールでも攻撃開始を確認できます。攻撃終了時もメール通知があります。