2000P's Blog

最初のページ

ddos攻撃方式のまとめ

著者 doorn 時間 2020-04-14
all

本文は安全脈拍のオリジナル現金奨励計画に属しています。許可なしに転載を厳禁します。

私は最近、DDOS攻撃を研究していますが、「破壊の王DDOS攻撃と防犯」という本を読んでいます。DDOSの攻撃方法と防犯書の詳細については、お勧めです。

1、ネットワークブロードバンド資源を攻撃する

1.1直接攻撃

大量の制御されたホストを使って攻撃対象に大量のネットワークパケットを送信し、攻撃対象のブロードバンドにまみれてサーバやネットワークデバイスのネットワークデータ処理能力を消耗し、サービス拒否の目的を達成する。

直接攻撃の主な方法はICMP/IGMP洪水攻撃とUDP洪水攻撃の2つです。

1.1.1 ICMP/UDP洪水攻撃

ネットワーク制御メッセージプロトコル(ICMP)は、TCP/IPプロトコル族のコアプロトコルの一つであり、TCP/IPネットワークで制御メッセージを送信するために使用され、通信環境で発生する可能性のある様々な問題フィードバックを提供し、これらのメッセージを通じて、管理者は、発生した問題を診断し、適切な解決策を講じることができる。

インターネットグループ管理プロトコル(IGMP)は、インターネットプロトコルマルチキャストグループのメンバーを管理するための通信プロトコルであり、IPホストと隣接するルータは、IGMPを利用してマルチキャストグループのメンバーを確立する。

攻撃者はコントロールされたホストを使って攻撃対象に大量のICMP/IGMPの新聞文を送り、洪水攻撃をしてターゲットのブロードバンド資源を消耗するタイプの攻撃が早く発生し、hpingなどのツールを使って簡単に攻撃を開始することができます。しかし、このような方法で発動された攻撃は多くないので、攻撃対象はネットワーク境界で直接フィルタリングしてICMP/IGMPのパケットを廃棄して攻撃を無効化することができます。

1.1.2 UDP洪水攻撃

ユーザパケットプロトコル(UDP)は、接続されていないトランスポート層プロトコルであり、主なユーザは、パケット順序の到着を要求しないで、実務向けの簡単な信頼性のない情報伝送サービスを提供する。

UDPデータの新聞文を利用して、攻撃者も洪水攻撃を送ることができます。UDP洪水攻撃とICMP/IGMP洪水攻撃の原理は基本的に同じです。通常、攻撃者は小さいカバンと大きなカバンの2つの方法で攻撃します。

パケットとは、64バイトサイズのデータパケットを指し、これはイーサネット上でデータフレームを伝送する最小値であり、同じ流量で、1パックの体積が小さいほど、パケットの数が多くなる。スイッチ、ルータなどのネットワークデバイスは、データパケットがないことを確認し、検証する必要があるので、UDPパケット攻撃を使うと、ネットワークデバイスのパケット処理の圧力を最も効果的に増大させ、処理速度の緩慢さや伝送遅延などのサービス攻撃を拒否する効果があります。

パケットとは、1500バイト以上のパケットの大きさがイーサネットの最大転送ユニットを超え、UDPパケット攻撃を使用して、ネットワークインターフェースの伝送ブロードバンドを効果的に占有し、攻撃対象をUDPデータに受信した時にスライス再編成し、ネットワークが塞がり、サーバの応答速度が遅くなるように強制するものである。

UDP洪水攻撃も早く発生したサービス攻撃方式であり、この攻撃は簡単に発動できます。hpingやLOICなどのUDP洪水攻撃を発動することができます。しかし、UDP洪水攻撃は完全にコントロールされたホスト自身のネットワーク性能に依存しています。したがって、通常はターゲットブロードバンド資源の消費はあまり大きくありません。https://www.secpulse.com/archives/64888.

1.2発射と拡大攻撃

攻撃者はICMP/IGMP洪水攻撃やUDP洪水攻撃などを使って、攻撃対象に対してネットのブロードバンド資源を消費する分散型のサービス攻撃を直接拒否することができますが、この攻撃方式は低いだけでなく、攻撃の元も調べられやすく、攻撃者は偽造元IPアドレスを使って隠すことができますが、より良い方法は反射攻撃技を使うことです。術

攻撃はDRDoS(分散反射拒否サービス)とも呼ばれ、ルータやサーバなどの施設を利用して要求に応答し、攻撃流量を反射して攻撃源を隠蔽する分散式拒否サービス攻撃技術を指す。

反射攻撃を行う場合、攻撃者は、制御されたホストを使用して大量のパケットを送信します。特に、その目的のIPアドレスは、反射器としてのサーバ、ルータなどの施設を指します。ソースIPアドレスは、攻撃対象のIPアドレスを偽造され、反射器はパケットを受信すると、このパケットが攻撃対象として送信されたかどうかを判定します。したがって、攻撃対象に該当するデータを送信します。大量の応答パケットが攻撃対象に殺到すると、ターゲットのネットワークブロードバンドリソースが消耗し、サービス攻撃を拒否することになります。

反射攻撃を開始するには、インターネット上で大量の送信機を見つける必要があります。例えば、ACK反射攻撃に対しては、インターネット上で開かれているTCPポートのサーバを見つけてもいいです。

反射攻撃は通常、認証や握手を必要としないプロトコルを用いて行われ、反射攻撃は要求データのソースIPアドレスを攻撃対象のIPアドレスと偽る必要があり、使用するプロトコルが認証や握手を必要とすると、認証や握手のプロセスが完了できなくなり、次のステップの攻撃ができなくなるため、ほとんどの反射攻撃は使用される。UDPプロトコルに基づくネットワークサービスが行われます。

直接的にソースアドレスを偽造する分散型の拒否サービス攻撃に比べ、反射攻撃は反射ステップを増加させるので、攻撃源を追跡するのは難しいですが、これは攻撃の真の脅威を反映するものではなく、真の脅威は反射原理を利用した拡大攻撃にあります。

増幅攻撃は特殊な反射攻撃であり、反射器はネットワーク流量に対して増幅作用があるので、この反射鏡を増幅器にもなり、増幅攻撃の方式は反射攻撃の方式と基本的に一致しています。使用しないところは反射器(増幅器)が提供するネットワークサービスが一定の条件を満たす必要があります。

反射器によって提供されるネットワークサービスプロトコルでは、要求と応答データ量が非対称であることが必要であり、応答データ量は要求データ量より大きく、応答データ量と要求データ量の比率が大きいほど、増幅器の倍率が大きくなり、攻撃を大きくすることによって発生する消費広帯域リソースの効果も明らかである。

アンプが使用するネットワークサービスの配置の広さは、この拡大攻撃の規模と深刻さを決定しています。いくつかのネットワークサービスがあれば、認証を必要とせず、増幅効果も非常に良いですが、インターネット上に配備された数が少ないため、このネットワークサービスを利用して拡大しても大きな流量にはならず、有効に広帯域リソースを消費する効果がありません。このようなネットワークサービスは、主に攻撃流量を拡大することができず、補助手段としてしか利用できない。

1.2.1 ACK反射攻撃

転送制御プロトコルが接続されている場合、まずTCP 3回の握手が行われることを知っていますが、このプロジェクトでは、サーバ端がクライアントからのSYN接続要求を受信すると、その要求に対してACK応答を行い、TCP握手のACK応答を利用してACK反射攻撃を行うことができます。

攻撃者がSYNのソースIPアドレスを攻撃対象のIPアドレスと偽ると、サーバの応答も攻撃対象に直接送信されます。TCPプロトコルを使用したサービスがインターネット上に広く存在するため、攻撃者は制御されたホストを通じて、多くの異なるサービスプロバイダに対して偽のソースIPアドレスのSYN要求を送信することができ、サーバに応答する大量のACK応答データが湧出します。ターゲットに攻撃され、ターゲットのネットワークブロードバンドリソースを占有し、サービスを拒否する。

ACK反射攻撃を開始する際には、まずスキャンを行い、大量の反射器アドレスを取得し、それぞれこれらの反射器に偽のソースアドレスのSYN要求データを送信する必要があるので、直接攻撃に比べてこのような方法は複雑であり、ACK反射攻撃の利点は主に攻撃源をより効果的に隠すことができることである。

1.2.2 DNS拡大攻撃

ドメイン名システムはインターネットのコアサービスであり、ドメイン名とIPアドレスを相互にマッピングできる分散型データベースとして、より便利にインターネットにアクセスできるようになります。

通常、DNSの各パケットは照会パケットよりも大きいので、攻撃者は、通常のDNSクエリ要求を利用して拡大攻撃を開始し、攻撃流量を2〜10倍に拡大することができるが、より効果的な方法は、RFC 2671に定義されているDNS拡張メカニズムENS 0を使用することである。

****ENS 0

ENS 0がない前に、DNSクエリに対する応答パケットは512バイト以内に制限され、応答が必要なパケットが512バイトを超える場合、DNSサーバによって実現されるものとは異なり、512バイトを超える部分を廃棄することもあり、TCPプロトコルを用いて接続を確立して再送信することもあり、どの局方式でもDNS増幅攻撃には不利である。

ENS 0では、DNSパケットを拡張した結果、OUTRRフィールドが追加され、OUTRRフィールドには、クライアントが処理できる最大のUDPメッセージサイズの情報が含まれており、サーバは、DNS要求に応答すると、クライアントが処理できる最大のUDPメッセージのサイズを解析して記録し、そのサイズに応じて応答のメッセージを生成する。

攻撃者は、digおよびENS 0を利用して、効率的なDNS増幅攻撃を行うことができ、攻撃者は、広く存在するオープンDNS解像器にdigクエリコマンドを送信し、OUT RRフィールドのUDP報文サイズを大きな値に設定し、要求されたソースIPアドレスを攻撃対象のIPアドレスに擬似する。DNS解析器は、クエリ要求を受信すると、解析結果を攻撃対象に送信し、大量の解析結果がターゲットに殺到すると、ターゲットネットワークの渋滞と低速を招き、サービス拒否攻撃をもたらします。

攻撃者が送信するDNSクエリ要求のパケットサイズは一般的に60バイト程度であり、クエリの返却結果のパケットサイズは通常300バイト以上であるため、この方法を使用して拡大攻撃を行うと50倍以上の増幅効果が得られ、このような増幅効果によって生成される攻撃効果は非常に驚くべきものであり、攻撃の開始端が2 Gビット/sのブロードバンドを発行できる限り、ターゲットネットワークで100 Gビット/sのブロードバンド消費が可能になり、2013年3月にSpamhausの分散拒否サービス攻撃において、主にDNS増幅攻撃技術を使用し、攻撃流量が前例のない300 Gビット/sに達し、ローカルインターネットの応答速度を遅く設定した。

ACK反射攻撃と同様に、DNS増幅攻撃を開始するにも、多数のオープンDNS解像器のアドレスを取得するために、まずスキャンを行い、これらのオープンDNS解像器に対して偽ソースアドレスのクエリコマンドを送信して攻撃流量を拡大する必要がある。

1.2.3 NTP拡大攻撃

ネットワーク時間プロトコルは、計算機を時間同期させるためのプロトコルであり、彼は、コンピュータをクロックソースと同期させ、精度の高い時間補正を提供し、NTPはUDP 123ポートを使って通信する。

NTPプロトコルのサーバ実装では、通常、一連のMode 7のデバッグインターフェースが実現されるが、インターフェースのmolist要求は、ターゲットNTPサーバが同期する最後の600クライアントのIPアドレスなどの情報を取得することができる。これは、小さな要求パケットを送信するだけで、IPアドレス情報などのデータを大量に含むUDP応答パケットをトリガすることができるという意味である。

実際に、monolist要求のリターンデータ量は、一時的にNTPサーバと相互作用するクライアントデータ量に関係しており、NTPサービスはUDPパケット通信を使用しているので、攻撃者は、ソースIPアドレスを偽造したUDP要求パケットをNTPアンプに送信し、クライアントとNTPサーバとの相互作用を偽造して、「NTPサーバと相互作用するクライアントの数」を増加させることができる。これにより、モノリスト要求の応答データ量を増加させ、NTPアンプの増幅倍数を増大させ、64バイトを超えない600個の要求パケット(約40 KBデータ)をNTPアンプに送信すれば、NTPアンプの増幅倍数を700倍以上に速く向上させ、サーバのNTPサービスをクローズまたは再起動する前に、このような大きな倍率を維持することができる。

攻撃者が送信するmonlistリクエストのパケットサイズは64バイトを超えず、要求の返却結果は100バイト482バイトのUDP応答データを含むので、この方式を使って拡大攻撃を行うと700倍以上の増幅効果が得られます。

ACK反射攻撃やDNS拡大攻撃と同様に、NTP拡大攻撃を発動するにも、まずネットワークスキャンを行い、大量のNTPサーバを取得し、これらのNTPサーバに対してソースアドレスの偽造要求を送信して攻撃流量を拡大する必要があり、DNS増幅攻撃よりもNTP拡大攻撃の倍率が大きいため、その危害はより深刻であり、Spamhausに対する大規模な規模な点数である。布式拒否サービス攻撃事件では、攻撃者がDNSを使って攻撃を拡大しないでNTPに変えて攻撃を拡大すれば、攻撃流量は2 Tbit/s以上になります。

1.2.4 SNMP拡大攻撃

簡単なネットワーク管理プロトコルは、現在のネットワークで最も広く使われているネットワーク管理プロトコルであり、彼はインターネットを監視し維持するための管理フレームワークを提供し、SNMPプロトコルはUDP 161ポートを使って通信する。

SNMPプロトコルにおけるデフォルトの通信文字列とGetBulk要求を利用して、攻撃者は効果的なSNMP増幅攻撃を行うことができる。

SNMPの効果がとても良いので、ネットワークハードウェアメーカーはSNMPをそれらの作った設備ごとに加入し始めました。これにより、各種のネットワークデバイスにデフォルトのSNMPサービスが見られます。スイッチからルータ、ファイアウォールからネットワークプリンタまで、例外なく、多くのメーカーがインストールしたSNMPはデフォルトの通信文字列を採用しています。プログラム取得装置情報と修正構成が不可欠であり、最も一般的なデフォルトの通信文字列はpublicとprvateであり、その他にも多くのメーカーがプライベートなデフォルトの通信文字列があり、ほとんどのSNMPを実行するネットワークデバイスでは、ある形式の黙認通信文字列を見つけることができる。

SNMPv 1で定義されたget要求は、一度に複数のMIBオブジェクトの取得を試みることができるが、対応するメッセージのサイズは、デバイスの処理能力によって制限され、デバイスが全ての要求に対する応答を返すことができない場合、エラー情報を返すことができる。SNMPv 2には、getbulk要求が追加されており、この要求は、できるだけ多くのデータを返すようにデバイスに通知し、これにより、管理プログラムは、一度の要求を送信することによって、大きなセグメントの検索情報を得ることができる。

攻撃者は、SNMPサービスが広く存在し、オープンしたネットワークデバイスに対して、getbulk要求を送信し、デフォルトの通信文字列を認証証拠として使用し、ソースIPアドレスを攻撃対象のIPアドレスと偽って送信し、デバイスはgetbulk要求を受信した後、応答結果を攻撃対象に送信し、大量の応答結果が攻撃目標に殺到すると、攻撃対象ネットワークの渋滞となる。ゆっくりと、サービス拒否攻撃を引き起こす。

攻撃者が送信するgetbulk要求パケットは約60バイトであり、要求された応答データは1500バイト以上に達することができるので、このように増幅攻撃を行うと25倍以上の増幅効果が得られ、これも増幅効果が顕著で効果的な増幅攻撃方式である。

SNMP増幅攻撃を開始する際にも、SNMPプロトコルがオープンしたネットワーク社会保障を見つけるために、ネットワークスキャンを行う必要があります。SNMPプロトコルがオープンしているネットワークデバイスが多いですが、これらのデバイスをスキャンした後、彼らが使用しているデフォルト文字列を推測する必要があります。したがって、DNSは攻撃を拡大します。大きな攻撃はやや劣るが、全体としてはSNMP増幅攻撃は依然としてブロードバンド資源を有効に消費する攻撃方法である。

1.3攻撃リンク

攻撃リンクは、以前に紹介されたいくつかの攻撃方法とは異なり、その攻撃の目的はインターネットの切断点であるサーバのブロードバンドリソースではなく、バックボーンネットワークのリンクのブロードバンドリソースであり、リンクを攻撃する典型的な方法はCoremelt攻撃である。

Coremeltは、セキュリティ研究者が2009年に提唱したリンクに対する分散拒否サービス攻撃方法であり、攻撃者は十分に広い分布のゾンビネットワークを制御してCoremelt攻撃を開始する必要がある。

まず、攻撃者は、それぞれのゾンビ本体と攻撃するリンクとの位置関係をtraccerouteなどの手段で判断し、その結果によってゾンビ本体を二つの部分に分け、攻撃者はゾンビ本体を制御し、リンクの反対側の硬直した死体本体ごとに通信し、大量のデータを送受信する。ネット上のリンクを攻略されて、ネットの渋滞と遅延をもたらします。

バックボーンから見れば、これらのゾンビ本体間で送受信されているパケットは確かに存在する通信データであり、これらの通信データと本当の合法的な通信データとを有効に区別することができないので、このような攻撃方法はさらに防護と緩和が困難である。

2、攻撃システムの資源

エラー:DDOS攻撃はいずれもネットワークのブロードバンド資源を消耗する攻撃です。

多くの場合、DDOS攻撃は「攻撃流量が****に達する」という語句で攻撃の激しさを記述していますが、これは攻撃流量のブロードバンドをDDOS攻撃の危険度を示す指標としています。

実際には、ネットワークブロードバンドリソースの他に、DDOS攻撃はシステムリソースとアプリケーションリソースの攻撃方法がありますが、攻撃流量の大きさは攻撃の危険度を決定するだけの一方で、同じ種類の攻撃に対しては、通常攻撃流量が大きいほど、その危害も大きくなります。音は違っています。

時には、SYN洪水攻撃はネットワークのブロードバンド資源を消費するDDOS攻撃と勘違いされるが、この攻撃の主な危害はシステムリンクのリソースを使い果たし、同じ攻撃流量のSYN洪水攻撃はUDP洪水攻撃よりも大きな害を及ぼすことがある。

2.1攻撃TCP接続

TCPは、接続に向けた信頼性の高い、バイトストリームベースのトランスポート層通信プロトコルであり、異なるホストのアプリケーション層の間では常に信頼性の高い、パイプのような接続が必要であるが、IP層は、このようなフロー機構を提供することができず、現実のインターネットでは、このような接続は通常TCPプロトコルによって実現される。

TCP接続は3つの段階を含みます。接続の作成、データ転送と接続の終了は、プロトコルの設計過程においてプロトコルの利用可能性にのみ焦点を当てているため、プロトコルの安全性を比較的綿密かつ詳細に考慮していないため、TCPプロトコルには多くの安全性の欠如と安全性の問題があります。

TCP接続の3段階はサービス攻撃を拒否する影響を受けやすいので、ここでこれらの攻撃手段をそれぞれ紹介します。

2.1.1 TCP接続洪水攻撃

TCP接続洪水攻撃は、コネクション作成段階でTCPリソースを攻撃する。

三回の握手で、サーバーがTCP接続の情報を作成して保存します。この情報は通常、接続テーブル構造に保存されていますが、接続テーブルのサイズは限られています。サーバが受信した接続数が接続テーブルに格納できる数を超えたら、サーバは新しいTCP接続を作成できなくなります。

攻撃者は大量の制御されたホストを利用して、大量の悪意のあるTCP接続が攻撃対象の接続テーブルをいっぱいにすることで、新しいTCP接続要求を受け入れられなくなり、サービス攻撃を拒否する目的を達成することができる。

TCP接続洪水攻撃は、TCP接続を攻撃する最も基本的な方法であり、多くの制御されたホストが攻撃を開始すると、その効果は非常に顕著である。

2.1.2 SYN洪水攻撃

SYN洪水攻撃は最も古典的なサービス攻撃方式であり、この攻撃方式は2000年以前から存在していました。今も攻撃者に大規模に使われています。ここ数年、SYN洪水攻撃は全部分布式拒否サービス攻撃の3分の1以上を占めています。

TCP半開き接続:

TCP接続を確立する過程で、サーバがSYN+ACKメッセージを返した後、クライアントが何らかの理由で確認していない場合、サーバー端はSYN+ACKメッセージを再送し、クライアントの確認メッセージをTCP接続がタイムアウトするまで待つ。このような顧客確認待ちの接続状態は通常、半開き接続と呼ばれる。

接続がタイムアウトする前に、半オープン接続はサーバーの接続テーブルに保存されます。

接続テーブルのサイズが限られているため、短い時間で大量の半開き接続が発生しても、これらの接続がすぐに終わらなくなり、接続テーブルがすぐに満杯になり、新しい接続TCP接続が確立できなくなります。

SYN洪水攻撃とは、攻撃者が制御されたホストを利用して大量のTCP SYNメッセージを送信し、サーバーに大量の半開き接続を開け、サーバの接続テーブルを満たせば、正常なユーザとサーバのセッションに影響を与え、拒否サービスをもたらします。

攻撃者はTCPを送信しています。SYN報文の場合、サーバーから戻ってきたSYN+ACKの報文を受信した後、最後のACKメッセージをスキップして接続を半オープン状態にすることができますが、SYN洪水攻撃を行うIPアドレスが明らかに露出されます。また、反射流量として攻撃者のブロードバンドリソースを占有しますので、攻撃者がSYN報文のソースIPアドレスをランダムに偽造するのが良いです。彼のホストのIPアドレスまたは存在しないIPアドレスは、攻撃対象が偽造されたIPアドレスに送信されたことに応答し、接続リソースを占有し、攻撃ソースを隠します。

SYN洪水攻撃は簡単に発動できます。効果は明らかです。大量の攻撃ツールがこの攻撃を発動することができます。今も攻撃者の一番好きな攻撃方法の一つです。

2.1.3 PSH+ACK洪水攻撃

TCPデータ転送中は、PSHフラグビットを設定することにより、現在のデータ転送が終了したことを示すことができ、サービス端末で処理を行う必要がある。

通常のTCP転送プロセスでは、送信されるデータがバッファ領域を空にすると、オペレーティングシステムのTCP/IPプロトコルスタックは、自動的に当該パケットのためにPSHフラグを設定します。同様に、サービス端末がPSH+ACKフラグが設定されたメッセージを受信すると、現在のデータ転送が終了したことを意味しますので、これらのデータをサービスプロセスに即時に配信し、サービスを行う必要があります。バッファを空にして、追加のデータが届くかどうかの判断を待つ必要はありません。

PSHフラグビットを有するTCPパケットは、受信側が受信バッファを空にしてアプリケーションサービスにデータを提出することを強制的に要求するので、攻撃者が制御されたホストを利用して攻撃対象に大量のPSH+ACKパケットを送信すると、攻撃対象は大量のシステムリソースを消費して受信バッファのクリア処理を継続的に行い、正常な処理ができなくなるデータによって拒否サービスが発生します。

単独でPSH+ACK洪水攻撃を使用するとサーバに与える影響はあまり明らかではなく、より効果的な方法はSYN洪水攻撃とACK洪水攻撃を組み合わせ、一部の防護装置を迂回して攻撃の効果を高めることができる。

2.1.4 RST洪水攻撃

TCP接続の終端段階では、通常はFINフラグ付きの4回の相互作用(TCP 4回の握手)によりクライアントとサービス端末のTCP接続が切断されるが、クライアントまたはサーバのうちの1つに異常が発生し、正常にTCP 4回の握手ができず、接続を終了するとRSTメッセージを使用して接続が強制的に中断される。

TCP RST攻撃:

TCP接続では、RSTはリセットを表し、異常時に接続をオフにし、送信端はRSTメッセージを送信して接続をクローズする時に、バッファ内のデータグラムの全ての送信が完了するのを待つ必要はなく、バッファのデータを直接廃棄し、RSTメッセージを送信します。同様に、受信側もRSTメッセージを受信した後、バッファをクリアして接続をオフにし、ACKメッセージを送信しなくても良いです。行を確認します。

攻撃者はRSTメッセージのこの特性を利用して、RSTフラグビットを持つTCPメッセージを偽造して送信し、クライアントとサービス端末のTCP接続を強制的に中断し、RST報文を偽造する過程で、サーバー側のIPアドレスとポート番号は既知であり、攻撃者はまた、クライアントのIPアドレスとポート番号を取得するために、RST報文のシーケンス番号をサーバの受信にする必要がある。ウィンドウ内に攻撃者と攻撃されたクライアントまたはサーバが同一のイントラネットにある場合、これらの情報は詐欺や嗅ぎ取りなどによって得られます。

TCP RST攻撃の原理を図に示します。

攻撃者が攻撃されるクライアントやサーバーと同じネットワークにいない場合が多く、TCPの発動を招きます。RST攻撃時にポートとシリアル番号を取得するのは難しいです。この場合、攻撃者は大量のコントロールされたホストの推測ポートとシリアル番号を利用して、盲撃を行い、RST洪水攻撃を送信します。攻撃対象のポート番号と同じ数のRSTメッセージがある限り、シリアル番号はターゲットの受信ウィンドウの中に落ちて、端末を接続することができます。

RST洪水攻撃の原理を図に示します。

厳密には、TCP RST攻撃とRST洪水攻撃は、ユーザーに対する攻撃拒否方式であり、このような攻撃は、オンラインゲームやゲームのユーザーを攻撃するために用いられ、試合の結果に影響を与え、一定の経済的利益を得る。

2.1.5 Sockstress攻撃

Sockstress攻撃は、研究者が2008年に提起したTCP接続攻撃の方法であり、前のいくつかの攻撃方法とは違って、Sockstress攻撃は短時間で大量の攻撃流量を送る必要がないので、洪水攻撃ではなく、スローアタックである。

TCPデータ転送時には、アプリケーションに直接データを渡すのではなく、受信バッファのサイズはTCPウィンドウで表示され、TCPウィンドウのサイズが0であれば、受信バッファが満たされていることを示し、送信端は送信データを停止すべきであり、受信端のウィンドウが更新されていることを知り、Sockstress攻撃を行う。この原理を利用して、TCP接続を長時間維持し、サービス攻撃を拒否する目的です。

Sockstress攻撃はまずTCPの3回の握手を終えてTCP接続を確立しますが、3回の握手の最後のACK応答では、攻撃者はそのTCPウィンドウのサイズを0に設定し、その後一回のデータ要求を行うと、攻撃対象はデータを転送する時、受信側のTCPウィンドウのサイズが0であることが分かり、転送データを停止し、TCPウィンドウのプローブパケットを発行し、攻撃者にTCPウィンドウの更新があるかどうかを問い合わせる。攻撃対象者はTCPウィンドウのサイズを変更していないため、攻撃対象はTCP接続待ちのデータ送信を維持し、ウィンドウ更新の検知を継続する。攻撃者が大量の制御されたホストを利用してSockstress攻撃を行うと、攻撃されたターゲットは常に大量のTCP接続を維持し、大量のウィンドウ更新探査を行い、そのTCP接続テーブルは次第に消耗し、新しい接続に接続できなくなり、サービスを拒否することになる。

Sockstress攻撃の原理は図の通りです。

Sockstress攻撃のもう一つの方法は、TCPウィンドウを非常に小さい値に設定することであり、例えば4バイトの攻撃目標は、送信すべきデータを4バイトの大きさのスライスに切り分けなければならない。これは目標のメモリとプロセッサ資源を大幅に消費し、システムの応答が遅くなり、サービスを拒否することになる。

2.2攻撃SSL接続

セキュリティカバーの接続層は、ネットワーク通信のためのセキュリティおよびデータの完全性を提供するセキュリティプロトコルであり、SSLは、転送されたデータが傍受および傍受されることを防ぐために、転送層でネットワーク接続を暗号化することができる。

しかし、SSLプロトコルの暗号化、暗号化、秘密鍵の交渉の過程では、大量のシステムリソースが消費され、機械の性能が著しく低下します。したがって、SSLプロトコルを使用して伝送するのは、通常は暗号などの機密情報を伝送する時だけです。

攻撃者はSSLプロトコルでリソースを消費する特性を利用してサービス攻撃を拒否することができます。

2.2.1 THC SSL DOS攻撃

SSLデータ伝送を行う前に、通信双方はまずSSL握手を行い、暗号化アルゴリズムを協議して暗号化鍵を交換し、身分認証を行います。通常、このようなSSL握手プロセスは一回だけでいいですが、SSLプロトコルにはRenegotiationオプションがあります。

THC SSLDOS攻撃は、セキュリティ研究者が2011年に提唱したSSLに対するサービス拒否攻撃方法であり、この方法はレネゴオプションを利用して、攻撃対象のリソースが消耗してしまい、SSL接続と握手を行った後、攻撃者は秘密鍵の再協議を繰り返しています。秘密鍵再協議の過程は、クライアントの15倍以上のCPU計算を行う必要があります。資源、攻撃者は普通のデスクトップマシンを1台必要とするだけで、高性能サーバーを遅らせることができます。大量のホストが同時に攻撃すると、秘密鍵の協議に追われてサーバーが完全に応答を停止します。

THC SSL DOS攻撃の原理を図に示します。

また、サーバーがRenegotiationをサポートしていなくても、攻撃者は別のSSL接続を開くことによって同様の攻撃効果を作ることができます。

2.2.2 SSL洪水攻撃

SSLの握手の過程で、サーバーはより多くのCPUを消費して資源を計算し、データの有効性を検証し、クライアントから送られてきたデータに対しては、まず大量の計算リソースを使って解読し、その後データの有効性を検証する必要があります。解読してこそ検査ができます。攻撃者はこの特性を利用してSSL洪水攻撃ができます。

洪水攻撃を行うには、攻撃者がクライアントに大量の攻撃要求を出すことができるようにする必要があります。これはクライアントの計算ができるだけ少ないです。SSL洪水攻撃に対しては、データ転送前にSSL握手を行う過程で攻撃を開始するのが良いです。攻撃者はSSL握手と秘密鍵交換を完了する必要はありません。このプロセスにおいてサーバを復号し、検証することで、サーバの計算リソースを大量に消費することができるので、攻撃者は、秘密鍵交換中の要求データを容易に構築し、クライアントの計算量を低減することができる。

SSL洪水攻撃の原理を図に示します。

攻撃者はSSLスクウェアなどを使ってSSL洪水攻撃を発動することができます。

3.攻撃応用資源

近年、アプリケーションリソースを消費する分散型拒否サービス攻撃は、サービス攻撃を拒否する主な手段の一つとなりつつあるが、DNSとWebサービスの広さと重要性によって、この2つのサービスは、アプリケーションリソースを消費する分散型拒否サービス攻撃の最も主要なターゲットとなっている。

3.1攻撃DNSサービス

DNSサービスはインターネットのコアサービスであり、DNSを利用することによって、人々はネットワークにアクセスする際にそのIPアドレスを覚えなくてもいいです。ドメイン名を入力すればいいです。IPv 6ネットワーク環境では、IPアドレスが元の32ビットから128ビットに拡張されたため、記憶しにくくなり、DNSサービスもより重要になります。の多くの設備は影響を受け、正常に動作できなくなります。過去にもDNSに対する攻撃が何度もありました。大きな影響を与えました。

DNSサービスに対する攻撃方法は、主にDNS QULRY洪水攻撃とDNS NXDOMAIN洪水攻撃の2つがある。

3.1.1 DNS QULY洪水攻撃

DNSクエリと解析プロセス:

クライアントがDNSサーバにドメイン名を照会すると、DNSサーバはまず、ローカルキャッシュにドメイン名の記録があるかどうかを確認し、キャッシュにドメイン名の記録がある場合(即ち命中)、直接キャッシュに記録されたIPアドレスを非権威応答としてゲスト端末に返し、キャッシュにドメイン名の記録がない場合は、反復クエリを行い、ルートからドメイン名は、ドメイン名の解析を段階的に行い、完全なドメイン名が解決されるまで、その後、サーバーはドメイン名の解析結果を応答としてクライアントに送信し、解析記録を生成してキャッシュに保存します。

DNSクエリと解析プロセスを図に示す。

DNS解析のプロセスでは、クライアントがクエリー要求を開始すると、DNSサーバは、解析プロセスを完了するために追加の複数のクエリを行う必要があり、応答を与えることができます。このプロセスでは、一定の計算とネットワークリソースが消費されます。攻撃者が大量のホストを利用して、異なるドメイン名の解析要求を継続的に送信すると、DNSサーバのキャッシュは、絶えずブラッシングされます。新たに、大量の解析要求がキャッシュに命中できず、DNSサーバは追加のリソースを消費して反復クエリを行わなければならない。これはDNSサーバのリソース消費を大幅に増加させ、DNS応答が緩やかになり、サービスを完全に拒否することになる。

DNS QULY洪水攻撃の原理は図に示す通りです。

DNS QURY洪水攻撃を行うポイントは、DNS解析要求ごとに照会したドメイン名が異なるべきであり、NDSサーバキャッシュにおける解析記録をより効果的に回避し、より良いリソース消費効果を達成することができる。

3.1.2 DNS NXDOMAIN洪水攻撃

DNS NXDOMAIN洪水攻撃はDNS QULRY洪水攻撃の変形攻撃方式であり、後者はDNSサーバに実在のドメイン名を照会することであり、前者はDNSサーバに存在しないドメイン名を照会することである。

DNS_NXDOMAIN洪水攻撃を行うと、DNSサーバはマルチドメインクエリを行います。同時に、そのキャッシュは大量のNXDOMAIN記録によって満たされ、正常なユーザのDNS解析要求に応答する速度が遅くなります。これはDNSと同じです。QUERY洪水攻撃で達成された効果は同様であるが、一部のDNSサーバはドメイン名の解析結果が得られない時に、再度再帰クエリを行い、その上位のDNSサーバに解析要求を送信し、応答を待つことで、DNSサーバのリソース消費をさらに増加させるため、DNS_NXDOMAIN洪水攻撃は通常DNSよりもDNSである。QULY洪水攻撃の効果がより良いです。

DNS NXDOMAIN洪水攻撃の原理を示しています。

3.2 web攻撃サービス

近年では、ウェブ技術の発展は非常に迅速で、人々はブラウザを通じてウェブサービスを利用して、必要な情報を簡単に入手することができます。多くの機関と企業の重要な情報と肝心な業務もウェブサービスを通じて外部に提供されています。ウェブサービスが解決サービス攻撃を受けると、そのキャリアに致命的な影響を与えます。

3.2.1 HTTP洪水攻撃

Webサービスは、一般に、超テキスト転送プロトコルを使用して、要求および応答データの伝送を行う。

一般的なHTTP要求は、GET要求とPOST要求の2つがあり、一般的にGET要求は、wenサーバからデータとリソースを取得するためのものであり、例えば、要求ページ、取得画像、およびドキュメントなどがあり、POST要求は、ウェブサーバにデータとリソースを送信するためのものであり、例えばユーザ名/パスワード、アップロードファイルなどがある。これらのHTTP要求を処理する過程で、webサーバは、通常、解析要求、処理、実行サーバースクリプト、ユーザ権限を検証し、データベースに何回もアクセスする必要があり、これは大量の計算リソースとIOアクセスリソースを消費する。

攻撃者が大量の制御されたホストを利用して、絶えずウェブサーバに悪意のある大量のHTTP要求を送信し、ウェブサーバの処理を要求すると、サーバのリソースを完全に占有し、他の正常なユーザのウェブアクセス要求処理がスローに設定されて処理できなくなり、サービスを拒否することになる。これはHTTP洪水攻撃である。

HTTPプロトコルはTCPプロトコルに基づいているため、3回の握手をしてTCP接続を確立しなければHTTP通信を開始できないため、HTTP洪水攻撃を行う際には偽のソースIPアドレスを使用できないように攻撃を開始します。この場合、攻撃者は通常HTTPプロキシを使用しています。HTTPプロキシはインターネット上に広く存在します。HTTPプロキシを使用することで、隠してもできます。追跡されないようにソースを隠すことができ、攻撃の効率を高めることができます。攻撃者はプロキシサーバに接続し、完了要求を送信した後、直接にプロキシサーバとの接続を切断して次のプロキシを接続することができます。この場合、プロキシと対象ウェブサーバとのHTTP接続は依然として維持されています。ウェブサーバは引き続きデータを受信し、HTTP要求を処理する必要があります。

HTTP洪水攻撃の原理を図に示します。

DNSサービスと同様に、ウェブサービスにもキャッシュメカニズムがあり、攻撃者の大量の要求がサーバキャッシュに命中した場合、このような攻撃の主要な役割は、ネットワークブロードバンドリソースの消費のみを反映しており、計算とIOリソースの消費には非常に限られているので、高効率なHTTP洪水攻撃は、異なるリソースとページに対するHTTP要求を絶えず発行し、可能な限りを尽くすべきである。キャッシュされないリソースを要求することができ、サーバーの負担を増やし、攻撃効果を高めることができます。

また、ウェブサーバがHTTPSをサポートしている場合、HTTPS洪水攻撃はより効果的な攻撃方式である。一方、HTTPS通信を行う際には、より多くのリソースを使って認証や復号を行う必要がある。一方、一部の防護設備はHTTPS通信データストリームを処理できず、攻撃流量が防護装置を回り道してウェブサーバを直接攻撃することもある。

HTTP洪水攻撃は、ウェブサービスに対する最大の攻撃の一つであり、大量の攻撃ツールがHTTP洪水攻撃をサポートし、簡単な効果を発動し、攻撃者が使用する主要な攻撃方法の一つとなっている。

3.2.2 Slowloris攻撃

Slowloris攻撃は、ウェブサーバに対するスロースピードHTTP攻撃であり、安全研究者が2009年に提出したものです。

HTTPプロトコルでは、HTTPヘッダは連続的な「\r\n\r\n」で終了フラグとして規定されていますが、多くのウェブサーバはhttp要求のヘッダ情報を処理する際に、ヘッド転送が終了するまで待機して処理するため、ウェブサーバが連続的な「\r\n\r\n」を受けないと、データをずっと受け付けてクライアントとの接続を維持します。ウェブサーバとの連絡を長時間維持し、ウェブサーバの接続リソースを次第に使い果たすことができる。

攻撃者がHTTPを送信しています。GET要求時には、不要なheaderフィールドをゆっくりと送信し、「\r\n\r\n」終了フラグをずっと送信しないことで、ウェブサーバとの接続を長時間占用し、この接続がタイムアウトで中断されないことを保証することができます。しかし、ウェブサーバで処理できる同時接続数には制限があります。攻撃者が大量の制御されたホストを利用して、このような不完全なHTTPを送信する場合、GET要求が継続的にこれらの接続を占有すると、webサーバの接続リソースが消耗し、他のユーザのhttp要求が処理されなくなり、サービスを拒否することになる。

Slowloris攻撃原理は図の通りです。

攻撃者はSlowloris、slowhttptestなどのツールを使って簡単にSlowloris攻撃を発動できます。Slowloris攻撃方法が出現した後も、IIS、nignxなど一部のwebサーバソフトウェアはこの攻撃方法を修正しましたが、Apache.dhttpdなどのwebサーバソフトは依然としてSlowloris攻撃の影響を受けます。

3.2.3スローポイントで攻撃をお願いします。

スローポイント攻撃もウェブサーバに対するスロースピードhttp攻撃であり、セキュリティ研究者によって2010年に提案されたものであり、Slowloris攻撃とは異なり、スローPOSTがHTTP BODYをゆっくり送ることでウェブサーバの接続源を占用し、使い果たす目的がある。

HTTPヘッダ情報では、Content-Lengthフィールドを使用してHTTPメッセージエンティティの伝送長を指定することができ、ウェブサーバが受信した要求ヘッダにContent-Lengthフィールドが含まれている場合、サーバは、このフィールドの値をHTTP BODYの長さとして、データを受信し続け、Conteet-Length値に達したときにHTTPに対して、BODYのデータコンテンツを処理し、この特性を利用して、攻撃者はウェブサーバとの接続を長時間維持し、ウェブサーバの接続リソースを次第に使い果たすことができる。

攻撃者はHTTP POST要求を送信する際、要求ヘッドにConteet-Lengthを大きな値に設定し、HTTPをBODYは、非常に遅い速度で1バイトずつウェブサーバに送信するため、ウェブサーバはクライアントとの接続を維持し、データ転送の終了を待つ必要があり、Content-Lengthは大きな値に設定されているため、HTTPは、クライアントとの接続を維持し続ける必要がある。BODYの伝送速度は非常に遅く、攻撃者はこの接続を長時間にわたって占用することができ、断続的に単バイトのHTTP BODYコンテンツを送信することで、攻撃者は接続がタイムアウトによって中断されないように確保することができます。攻撃者が大量の制御されたホストを利用してこのような緩慢なHTTPを送信します。POSTがこれらの接続を要求し続けて占用すると、ウェブサーバの接続リソースが消耗し、他のユーザのHTTP要求が処理されなくなり、サービスを拒否する結果となります。

スローポイントの攻撃原理を図のように要求します。

攻撃者はSlowhttptestなどの攻撃を使ってスローPOSTを発動して攻撃を要求することができますが、Slowloris攻撃とは異なり、HTTPプロトコルの設計上の理由により、すべてのウェブサーバソフトはスローPOSTから攻撃を要求する影響を受けます。

3.2.4データ処理プロセスの攻撃

ウェブサーバは、HTTP要求を受けた後、データを確認して処理する必要があり、悪意のある構造要求データの内容によって、攻撃者はデータ処理中のリソース消費を著しく増加させ、サービス攻撃を拒否することができる。

ここでは正規表現では、サービス攻撃とハッシュ衝突拒否サービス攻撃の例を説明します。

正規表現はサービス攻撃を拒否することをReDoSといい、安全研究者が2009年に発見したサービス攻撃を拒否する方法であり、要求データを処理する時、ウェブアプリケーションは正規表現を使って文字のマッチング操作を行います。一部正規表現は非確定性有限状態と呼ばれる自動機の実現方法を使用して、対応できるようにします。複雑な正規表現は、例えば、後ろ参照または括弧取得の正規表現を含んでいます。しかし、このような正則エンジンの実現は、処理時間の増加をもたらしており、特に「否定整合」を決定する場合、正則エンジンは、可能なすべての整合経路をテストする必要があります。ウェブアプリケーションの正則表現が正しくない場合、テストが必要なマッチング経路数は、入力文字列の長さとともに指数関数的に増加し、悪意的な構成を利用します。作成した入力文字列は攻撃者が比較的短い入力文字列を提出するだけで、正規のエンジンに数億の整合経路を処理させることができます。所要時間は数時間か何日間に達することができます。このような悪意ある正規表現のマッチング要求だけで、ウェブサーバの計算リソースを完全に占用できます。ウェブサーバがサービスを拒否します。

ハッシュ競合拒否サービス攻撃は、セキュリティ研究者が2011年に提案したサービス攻撃拒否方法であり、ウェブアプリケーションは、処理要求におけるPOSTデータの場合、通常はキー−値ペアの方式を使用して記憶し、PHP、Python、Javaなどの言語では、キーペアの実質はハッシュテーブルであり、ウェブアプリケーションは、「キー」のハッシュを計算することによって、対応するものを取得する。の「値」を返します。通常の場合、このハッシュ・テーブルのハッシュ・衝突は少ないので、検索と挿入の速度は速く、通常の状態のハッシュ・テーブルは図に示すようになる。

攻撃者が悪意のあるPOSTデータのセットを構築すると、要求中の「キー」のハッシュ値がすべて同じになるので、POSTデータを保存するハッシュテーブルは、結果としてチェーンテーブルに縮退し、ハッシュテーブルの検索や挿入などの動作規則がリンクの巡回操作になり、多くの計算リソースが占有され、サービス攻撃を拒否する結果となる。図に示すように、大量の衝突状態におけるハッシュ・テーブルである。(本文は安全脈拍に属するオリジナル現金奨励計画で、許可なしに転載を厳禁する。https://www.secpulse.com/archives/64888.html

この文章の著者:Lemon

本論文は安全脈拍コラムの作者のために発表します。https:/www.secpulse.com/archives/64888.