昨今のDoS攻撃の傾向とPAシリーズのDoS防御機能の使い方

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
L2 Linker
この記事は役に立ちましたか? はい いいえ
評価なし

 2021年後半に入り、DoS/DDoS攻撃が頻繁に発生しており、広帯域なインターネット回線や広大なグローバルIPアドレスを所有する大学などの一部のユーザでは被害が発生しています。昨今の傾向としては、数分程度でマイクロバースト的なDoS/DDoS攻撃が1日に数回という頻度で攻撃があり、また12時間程度で明らかに周期性があるようなDoS攻撃も目立ちます。また、無差別なDoS/DDoS攻撃のようにも見えますが、DNSサーバーなど公開サーバーに対してのudp/53に対するピンポイントの攻撃もあるので、単純な無差別攻撃でもなさそうです。

 

DoS攻撃による具体的な被害や症状としては、以下のようなものがあります。

  • インターネットアクセスが時々遅くなる。もしくはつながらない。
  • OSPFやBGPなどのネイバーがダウンし、ネットワーク障害となる。

DoS攻撃を受けても、PAシリーズの処理性能が勝っていれば、特に意識しなくともユーザの方への影響はほとんどありませんが、広帯域なインターネット環境で利用しているグローバルIPアドレス空間が広大な場合で、PAシリーズの処理性能が劣ると、上記のような症状として現れてきます。そのような場合には以下の設定のご検討をお願いいたします。

 

■パケットバッファ防御機能

 パケットバッファ防御機能は、設計/設定が容易で、あらゆるDoS/DDoS攻撃に対応でき、DoS防御機能としては一番有効な機能です。DoS/DDoS攻撃でも多くのケースは、PAシリーズでの処理能力以上の大量のパケットを受信することで、データプレーンの負荷が高騰し、それでも処理できないパケットがパケットバッファに溜まります。そのパケットバッファが枯渇することでパケット破棄が起こりネットワーク障害が発生します。PAシリーズではパケットバッファはIngressのインターフェース単位ではなくデータプレーン全体のリソースのため、パケットバッファが枯渇すると、すべてのPAシリーズを通過する通信に影響が出ます。従いまして、このパケットバッファが溢れることを抑制するためにパケットバッファ防御機能があります。

 パケットバッファ防御機能は、パケットバッファの使用率をしきい値とし、Random Early Drop(RED)およびBlock動作によりパケットバッファが完全に枯渇することを防止します。設定パラメータはDevice→セットアップ→セッション画面で「セッション設定」にて行います。

 

  • アラート(%):脅威ログにアラートを上げるしきい値 (Default:50%)
  • アクティベーション(%):REDによる防御を開始するしきい値 (Default:80%)
  • ブロックホールドタイム(秒):アクティベーションのしきい値を継続的に超えている場合、Block動作による防御を実行するまでの時間。(Default:60 秒)
  • ブロック時間(秒):ブロック動作を継続する時間 (Default:3600秒)

昨今のバースト性が高いDoS攻撃の場合には、アクティベーションのしきい値を50%、ブロックホールドタイムを10秒程度にすることで、より防御効果を上げることが可能です。

 ブロック動作は送信元IPが特定可能なDoS攻撃時には、その送信元IPに対してブロック動作が働きます。ブロック時間については、例えば送信元IPが8.8.8.8で詐称されたパケットでDoS攻撃されブロック動作が行われると、8.8.8.8で名前解決できなくなります。昨今の数分間のバースト的なDoS攻撃事情を考えると3600秒は長すぎると思われます。60秒~180分ぐらいで運用に支障が出ない程度で検討していただくのが良いと思います。また、送信元IPが特定できないようなDDoS攻撃時には全トラフィックに対して防御機能が働きます。その場合、インターネットからの正常通信にも影響が出ますが、何も防御していなければ、DoS攻撃時に通信障害が発生しているわけですし、内部からインターネットへの通信へも影響が出ていますので、REDやBlock動作により正常通信のパケットがある程度落とされたとしても、パケットバッファ防御機能を利用していただく方が被害を抑制できます。

 パケットバッファ防御機能は、ゾーン単位で有効しますので、インターネットを接続しているゾーンにて有効にしてください。また、PAN-OS 10.0から遅延ベースでのパケットバッファ防御機能もサポートされ、パケットバッファの使用率が上がらなくても、遅延が大きくなることでパケットバッファにより防御が可能となっています。

 

■DoSプロテクション機能概要

 次に、公開サーバーなどPAシリーズを通過するグローバルIPアドレスに対する大量のセッションの攻撃などに対しては、DoSプロテクション機能が有効です。DoSプロテクションは監視対象のトラフィックに対して、毎秒の新規セッションレートで監視し、しきい値を超えた場合に防御します。TCP/UDP/ICMPなど、それぞれのプロトコルに対して、以下の3段階のアクション(アラーム/アクティベート/最大)に対するしきい値が設定できます。

 

  • アラームレート:脅威ログ出力(防御なし)
  • アクティベートレート:Random Early Dropにてセッションを間引くことで負荷軽減
  • 最大レート:該当する通信/パケットをすべて破棄

また、監視方法として、以下の2つが提供されています。

  • 監視対象のトラフィック全体を監視する「Aggregate」
  • IPアドレス単位で分類して監視する「Classified」
    「Classified」には以下の分類方法から選択
    • 送信元IPのみ(source-ip-only):送信元IP単位で新規セッションレートを監視
    • 宛先IPのみ(destination-ip-only):宛先IP単位で新規セッションレートを監視
    • 送信元IPおよび宛先IPの組み合わせ(src-dest-ip-both):送信元/宛先IPの組み合わせ単位で新規セッションレートを監視

   Classifiedでしきい値を超えた場合、該当する分類単位のトラフィックに対して防御動作が実行されます。

DoSプロテクションの設計/設定はパケットバッファプロテクションやZoneプロテクションとは異なり、きめ細やかな設定が可能ですが、DoS攻撃を有効に防御するためには、お客様の環境に応じた設計が必要です。

 基本的に監視対象トラフィックを決め、それらに対し、監視方法を決め、最後にしきい値を決めるのですが、監視対象が「毎秒の新規セッション数」であることと、Classifiedを利用する場合にはClassification Tableを考慮する必要があります。

  • 監視対象トラフィックの指定
    • 送信元ゾーン、送信元IP、宛先ゾーン、宛先IP、サービス(L4)にて監視対象トラフィックを指定します。
    • DoS攻撃の多くは、国外から来るケースが非常に多いため、送信元IPに日本以外の指定をすることで、国内の正常通信に悪影響が出ないようにする工夫も可能です。
  • 監視方法
    • 様々なDoS攻撃パターンがあり、それによりAggregateやClassifiedの設計が必要です。
    • 極力防御動作時に正常通信に影響を及ぼさないようにするには、送信元IP/宛先IPのClassifiedになります。しかし、その場合、正常/異常にかかわらず各送信元IP/宛先IPの組み合わせで新規セッションレートを監視する動作となるため、Classified Tableのリソースが大量に消費される懸念があり、一般的にインターネットに面している部分には推奨していません。後述します。
  • しきい値
    • 3つのしきい値を指定しますが、適正なしきい値が分からない場合には、アラームレートで通常トラフィックでどれぐらいのしきい値でログ生成されるかを確認するところから始めてみてください。実際にDoS攻撃を受けた場合には、通常時の数倍から数十倍の新規セッションレートが来ることが多いです。
    • 尚、Classifiedのしきい値には注意が必要です。例えば、送信元IPでClassifiedする場合、DDoS攻撃の場合には、各送信元IPからのセッション数はそれほど多くないため、100~300ぐらいの値で指定しないとDoS攻撃時に検知できません。

尚、DoSプロテクションには、リソース保護機能もありますが、ここでは割愛します。

 

■DoSプロテクション設定方法

DoSプロテクションの「フラッド防御」の設定手順としては、以下の2つです。

  • DoSプロテクションのプロファイル設定([Objects]タブ→[セキュリティプロファイル]→[DoSプロテクション])
  • DoSプロテクションのポリシー設定([Policies]タブ→[DoSプロテクション])

それぞれの設定項目についてご説明します。

  1. DoSプロテクションのプロファイル設定
    Aggregate」と「Classified」のそれぞれについて、以下の3段階のしきい値が設定可能です。
    しきい値名 しきい値を超えた場合の動作
    アラーム ログを出力のみ。検知のみで防御はしません。
    アクティベート

    新規セッションに対して以下の防御機能が動作します。

    尚、下記の防御動作は新規セッションに対する制御になりますので、既存セッションについては影響はありません。

    • TCPによるDoS攻撃の場合、SYN CookieもしくはRED(Randam Early Detection)のいずれかを指定できます。
      SYN Cookie:PAがTCY SYNパケット受信時、送信元IPに対してSYN Cookieパケットを送出することで、送信元IPが実在してTCPスタックを実装しているデバイスであることが確認できます。SYN Cookieにより、リフレクション攻撃やbotnet攻撃の新規TCPセッションのみを破棄し、正常なTCPセッションのみ通過させることが可能です。
      RED:ランダムに新規セッションを破棄することで、新規セッション数を抑制する制御です。ランダムに破棄することで、正常な通信も破棄する可能性もありますが、DoS攻撃の新規セッションレートの方が圧倒的に高いため、正常な通信に対しての影響度合いは少ない=サービスの継続が可能な状況にします。
    • UDP/ICMPによるDoS攻撃の場合、REDが実行されます。
    最大

    全新規セッションを指定したブロック期間(1~21600秒)の間、該当する通信のIPパケットをすべて破棄します。

  2. DoSプロテクションのポリシー設定
    監視対象のトラフィック指定とアクション/DoSプロテクションのプロファイルの指定などを行います。
    監視対象のトラフィックは、送信元/宛先ゾーン、送信元/宛先IPアドレス、サービスで指定可能です。
    ログ転送やスケジュール、トラフィックの新規セッションレートの集計方法(Classified)の設定を行います。
  • 「Classified」は監視対象トラフィックに対して、以下の3つの集計方式のいずれかで新規セッションレートを監視し、検知および防御します。集計方式に応じて、監視だけではなく、防御動作や出力される脅威ログの出力も変わります。
    「Classified」の種類 防御動作と脅威ログについて

    送信元IPのみ

    source-ip-only

    送信元IP単位で集計し、新規セッションレートを監視します。しきい値を超えた場合の防御動作は、検知された送信元IPアドレスからのすべての通信に対して行われます。脅威ログには「送信元IP」が表示されます。宛先IPは0.0.0.0となります。

    宛先IPのみ

    destination-ip-only

    宛先IP単位で集計し、新規セッションレートを監視します。しきい値を超えた場合の防御動作は、検知された宛先IPアドレスへのすべての通信に対して行われます。脅威ログには「宛先IP」が表示されます。送信元IPは0.0.0.0となります。
    送信元/宛先IPの両方
    src-dest-ip-both

    送信元IPと宛先IPの組み合わせで集計し、新規セッションレートを監視します。しきい値を超えた場合の防御動作は、検知された送信元IPから宛先IPへの通信のみに対して行われます。脅威ログには「送信元IP」および「宛先IP」が表示されます。(※このClassifiedは新規セッションレートを「送信元IP」と「宛先IP」の組み合わせで監視するためのClassificationテーブルのエントリ数が不足する可能性もあり、インターネットからのアクセス数が非常に多いようなWebサイトを防御する場合には推奨いたしません。後述します)

 

LiveCommunity-DoSプロテクション_Classified動作.png

  • 1つのDoSプロテクションポリシーにて「Aggregate」と「Classifed」の両方は同時に利用していただけます。検知時にどちらのしきい値で検知されたかは、脅威ログの送信元IPおよび宛先IPから判断できます。Aggregateのしきい値で検知された場合には送信元および宛先は共に0.0.0.0となります。

 設定方法は以上です。DoSプロテクションの設定自身はそれほど難しくありません。しかし、有効にDoSプロテクションを機能させるには、しきい値とアクションの設定が重要となります。しきい値が適切でなければ、期待するDoS防御動作が行われません。また、しきい値の値はお客様の所有するグローバルIPアドレスや公開サーバーへの通常のアクセス状況にも依存しますので、一般論でしきい値を決定するのも困難です。

 

■DoSプロテクションでのしきい値の検討での注意点と設計ポイント

例えば公開しているDNSサーバーに対して1秒間に10,000個のudp/53のパケットで攻撃された場合、それらの通信は許可された通信であり、セッションが生成され、後続するパケットが生成されたセッションに該当する場合、新規セッションは「1」となります。しかし、そのDNSサーバーに対してudp/53以外のパケットで1秒間に10,000個のパケットで攻撃された場合、udp/53以外はセキュリティルールで拒否されている場合、すべてのパケットは新規セッションとなり新規セッションは「10,000」となります。つまり、新規セッション数は、セキュリティルールで許可されているか、拒否しているかで数値が全く変わります。つまり、DoSプロテクションのポリシー検討する場合、通信対象が許可されている通信と、拒否している通信でDoS防御のポリシーを分けなければ、適正なしきい値を決定できないことになります。

 尚、セキュリティルールで拒否しているので、パケットは破棄されるので問題ないという訳ではなく、非常に大量なDoS攻撃のパケットを受信すると、それらのすべてパケットに対してセキュリティルールの評価がされるためデータプレーン/スローパスの処理負荷が上昇しますので、拒否する通信の場合でもDoSプロテクションなどでセキュリティルールの評価前にDoS攻撃パケットを破棄することで、PAシリーズの負荷軽減効果につながります。

 

■運用管理

パケットバッファプロテクションおよびDoSプロテクションの検知アラートや防御動作はすべて「脅威ログ」にログが残ります。実際にDoS攻撃をどれぐらい受けているかや、万が一のネットワーク障害時は、脅威ログにDoS防御関連のログが出力されているかどうか確認してみてください。もし該当時刻にログがあれば、DoS攻撃の影響である可能性が高くなり、さらに、そのログ内容と症状を確認することで、DoS防御機能のしきい値や防御アクションを見直すことで、DoS攻撃時の被害を最小限に調整していただくことが可能かと思います。

 

本記事の内容が、DoS攻撃の被害の軽減のお役に立てれば幸いです。

この記事を評価:
Register or Sign-in
寄稿者:
記事ダッシュボード
バージョン履歴
最終更新:
‎10-03-2021 07:10 PM
更新者: