投稿-再開
近年、侵入テストだけでなく、多くの場合ウェブサイトであるサービス拒否攻撃に対するサービスの耐性をテストする顧客が増えているという事実から始める価値があると思います。 そして、私たちの実践では、実際の作業サイト(以前に準備されたサイトではない)が失敗しなかった単一のケースはまだありません。 異なる保護システムの下にあります。 この投稿は、完全に異なるインフラストラクチャのさまざまな方法(銀行から一般的な企業サイトまで)による現在の(D)DoSテストの経験の要約です。
DDoS攻撃の可視化それではまた行きましょう。 タスクは、侵入者であるかどうかにかかわらず、利用可能な方法でリソースを無効にすることです。 99%では、ソースドメインはIP / IPです。
仕事はどうですか?
最初に、テスト手法が選択され、顧客と合意されます。 選択の構成は次のとおりです。
- チャネルに対する攻撃(最大スループットに達する);
- ネットワークサービスへの攻撃(遅いhttp、特定のWebサーバーのDDoSに対するエクスプロイトの使用、SSLへの攻撃、その他の技術);
- そして、最もクールで興味深いのは、アプリケーションレベルでの攻撃です(このアプリケーションの機能を使用)。
時間、パワーは調整され、スカイプチャットは適切なタイミングで行われ、すべてのアクションはすでに調整されています。
そして今、それぞれのテクニックについて。
チャンネル攻撃
または額への攻撃。 タスクは、サーバーチャネルを詰まらせ、正当なクライアントがアクセスできないようにすることです。 実際には、攻撃者はさまざまな手法を使用しています-実際のボットネットから、公共のDNS / NTPサーバーを介した攻撃まで。 何してるの? Habré-
Node.jsでの100万の同時接続に関する記事があり
ました。 素晴らしいアイデア-Amazonクラウドを使用してください! いくつかのツールを追加して、イメージにトラフィックを生成し、起動後にノードに配置し、100 Mbpsカードを搭載した独自のミニボットを取得します! その結果、ノードの数で攻撃を制御し、世界のさまざまな地域からターゲットを攻撃することができます(Amazonはさまざまな国にサーバーを提供しているため)。
数ギガビットの攻撃
に到達します(実際の攻撃の速度はさまざまな統計で判断すると、1 GB / s未満です)。 実際には、ホスティング事業者のラック全体が脱落し、その後何かが脱落します。 ホスティング事業者との共同作業の責任はお客様が負うものとします(テストなどが行われることを警告するため)。 サーバーをテストした経験があり、CloudFlareなどのサービスなど、このような攻撃に対するさまざまな保護下にありました。
CloudFlareおよびDDoSに対する保護のための他の多くのサービスの作業スキームそして実際には-彼らは本当に保護を提供します。 このサイトは機能し、機能しています。 ただし、保護されているサーバーは非常にまれです。 それでも、dns / ntpサーバーを使用しているときに何が起こったのかを覚えておく価値はあります。 このような容量から、DDoS保護サービスが不快に感じるだけでなく、トラフィック交換自体がポイントになることもあります。
ネットワークサービスへの攻撃
一番下の行は、ネットワークサービス自体(Webサーバー、プロキシ、バランサー、外に見える何か)を何らかの方法で正確に配置することです。 もちろん、最初に頭に浮かぶのは遅いhttpです! どのくらいそれ
が habr
に書かれたかについて。 スローPOSTの例を使用して、2、3の文章の本質を説明します。httpリクエストを送信し、コンテンツの長さが長いことを示し、1バイトのみをゆっくりと送信し、ある時点で接続を切断し、新しいものを開始します。 標準によると、サーバーはデータが完全に送信されるのを待って(完了-Content-Lengthバイトでコンテンツを受信した)、タイムアウトによってのみ中断する必要があります。 それだけです! サーバーは接続のクラウドを開き、リソース(ほとんどの場合-システム内の開いているファイル記述子の数)を消費し、レイダウンします。 同じApacheが1秒でクラッシュします。 自宅では、
OWASPからツールをダウンロードできます。
OWASP HTTPポストツール同様のスキームによると、SSLサーバーの場合、「遅いSSL」に対する攻撃が試行されます(SSL証明書の取得は非常に遅くなります)。 また、可能であれば、ポートへのフラッディング-Webサーバー自体の悪用。 そして、ノードでこれをすべて同じように行うことができます。サーバーはそのような数の接続(正当な接続であっても)を単に提供しないかもしれません。
ところで、練習から。 Microsoft Forefrontがテストオブジェクトにインストールされているという事実に出くわし、遅いhttpを試しました。 そして彼は首尾よくそれを撃退した-それはログにあった。
1秒あたりの拒否されたTCPおよび非TCPパケットの数がシステムの制限を超えました。 その結果、Forefront TMGは、ログに書き込まれる拒否されたパケットのレコード数を削減しました。
1つまたは複数のゾンビホストが被害者サーバーに対して攻撃を試みている可能性がありますが、Forefront TMGポリシーは攻撃トラフィックをブロックします。
Forefront TMGの洪水緩和の詳細については、製品のドキュメントを参照してください。
しかし、後に彼はまだチャンネルへの攻撃から落ちました。 多くの「ホームベース」の解決方法があり、それはすべて攻撃に依存しています。 ところで、スクリプトと設定の例を含む保護方法は、DoSに関する
ロシア語版ウィキペディアの
記事 (および
英語のみの理論)で説明されています。
アプリケーションレベルの攻撃
一番下の行は、このアプリケーションの機能を見つけて、それらにサーバーを通すことです。 保護、バランサー、外部サービスはこれから救いません。 どういう意味ですか? 大量のデータの取得など、さまざまな「重い」クエリ。 数十台の車からの完全に合法的な要求で、彼らは到着しました。 当然、DoSテストがPentestの一部であり、アプリケーションを勉強する時間があれば、そのような場所を見つけるのは簡単です。 実際の例として:
- ZIP爆弾( 8.5ペタバイトの42 kbアーカイブ )
- XML爆弾-en.wikipedia.org/wiki/Billion_laughs(XXEはあるが、外部エンティティを接続できず、内部転送のみ)
- 前述のように、明らかに大きなデータサンプル
- さまざまなデータをサンプリングする際のパラメーターの改ざん(たとえば、100個の製品を選択できると言われています。HTTP要求を手動で変更し、999999 +製品を選択します)
- 検索機能
- Djangoやパスワード変更などのその他の特定のケース
基本的に、もちろん、これらはすべてバックエンド(ポストデータ処理、データベース)を攻撃することを目的としていますが、問題はこれに対する普遍的な保護がなく、状況を分析して修正するためにセキュリティの管理者/プログラマー/人が必要なことです。 アーキテクチャを修正せずに問題をまったく解決できない場合、松葉杖が開始されます(可能な場合)。
おわりに
サービス拒否テストは、外部DoS保護サービス、構成、新しいiptablesルールなどによって保存できない暗黙的なアーキテクチャの問題を明らかにすることができます。 そして、このタイプのテストに十分な注意を払う価値があります。