私たちは自分でddosボットネットを攻撃しました





親愛なるhabrasocietyの皆さん、ハブロフスク市民の要請で、私は反発攻撃の個人的な実務経験に基づいてdDoSとの戦いにおける私の成果のいくつかを共有することにしました。

この記事は、自分でDDoSから身を守るための新しい方法ではありません。これに関する情報はたくさんあります。 もう少し反対側に行きます。

彼らが言うように、最良の防御は攻撃です。 それで、私たちは、最も苦しいddosersの場所-ボットであなたと攻撃します。 私たちにとってさらに楽しいボーナスは、私たちが善行を行い、少なくとも感染したマシンのいくつかを邪悪なボットネットの拘束から解放することです。

ボットネットを殺すことはできないことは明らかですが、特にボットネットの主要部分がルートキットを備えたデディックで構成されている場合、非常に大きな打撃を与える可能性があります。 まあ、彼の数百人の血とそれから採掘されたボットを持つkulhacker Vasyaも非常にうまくいくことができます。 ボットにとって、特に良いチャネルや良い地域からの場合、費用がかかり、時にはかなりの費用がかかります。 彼らが崩壊する悪用から息を吹き始めた場合、dDoderがあなたにうなずき続けることは不利益であり、顧客の価格を上げるか、攻撃を止めることさえできます。 あまりノイズがかからない人を訓練する方がはるかに簡単です。





ボットを殺す方法は?





それでは、ボットをどのように殺すか、少なくとも彼の魂を私たちにin延している邪悪な力から解放しようとするのでしょうか?



これを行うには、以下を行う必要があります。



1)。 攻撃ボットのIPアドレスを定義する

2)。 IPアドレスデータの所有者(親組織:DC、プロバイダー、機関など)を特定し、whoisから苦情を送信する連絡先悪用メールのリストを取得します

3)。 攻撃の事実を確認するログを準備します。

4)。 不正使用ログリストのメールを送信する



ボットがあまりない場合は、これをすべて手で行うことができますが、このプロセスは自動化されます。



Ddosは違います



異なるDDoSがあり、悪意のあるアドレスを特定する普遍的な方法はないことを覚えています。具体的には、異なるアルゴリズムと他のソースがあります。



一般に、これは別の記事のトピックですが、誰にとっても簡単でアクセス可能な方法の選択を理解しようとします。

したがって、異なるポートにTCP / UDPフラッドがあり、一部のDDoSメソッドが抑制され、マシンへのアクセスがありますが、攻撃力を減らしてその増加を防ぎたい、または単にDDoSerを台無しにしたいとしましょう。

タスクは、反撃し、ボットネットから最もアクティブなボットを奪うことです。



ログを収集します



多くのオプションがありますが、ここでも別の記事のトピックです。 トラフィックをログに記録するには、tcpdump、iptrtaf、netflowなど、さまざまな方法があります...

どういうわけか、歴史的に、ほとんどのログはiptrafを使用して削除されました。iptrafは攻撃を監視するために使用され、すべてのスクリプトはそれらを解析するように構成されました。 解決策は最も美しいものではないかもしれませんが、非常に普遍的です。 最小限の変更で、任意のログを使用して、以下にリストされているすべての操作をリアルタイムで実行できます。



したがって、DDoSが開始され、iptrafが開始され、設定(構成)でログ記録(ログ記録)が有効になります。IPトラフィックモニターを開始すると、たとえば、ログを保存するファイルを尋ねられます。

/var/log/iptraf/iptraf.log

これで、iptrafは各パッケージ(ドロップされたパッケージを含む)に関する基本情報を記録します。

個人的な観察によると、サーバーはこれによって悪化することはありません。このログは有用なサーバーリソースをほとんど無駄にしません。



虐待を送る



ログが存在する場合、その処理に進み、感染したマシンのプロバイダーに幸福の手紙を送信して、所有者に対処できるようにします。

これを行うには、このために設計されたいくつかの自己記述スクリプトを提案します。

スクリプトは非常に困難な時期に作成されたため、美しさと最適化についての話はありませんでした。

特別にすべての作業をいくつかのモジュールに分割し、それぞれがタスクを担当します。 これにより、ケースに合わせて調整し、すべてのステップを制御できます。



スクリプト



すべてのスクリプトは、 github.com / Ajex / AntiDdosAbuseからダウンロードできます。



以下にそれぞれについて説明します。



1)。 show_ips.sh-ログからのIPアドレスのリストと、収集間隔中に通過したパケットの数を表示します。



起動パラメーター:

./show_ips.sh iptraf.log "Dec 12" > ddos_ips.txt
      
      





その後、スクリプトはiptraf.logファイルと12月12日のフィルターを初期ログとして使用してファイルを解析し、結果をddos_ips.txtファイルに表示して、他のスクリプトでさらに分析できるようにします。



*特定の時間などのデータを選択して、任意のフィルターを適用できます



その結論は次のようになります。



  3 1.1.1.1. 3 1.1.1.2. 3 1.1.2.1. 10 2.3.2.2. 10 2.3.2.2. .... 7833 xxxx 19343 yyyy 58234 zzzz
      
      







このログは攻撃時に行われるため、最小値と最大値の間には非常に大きなギャップがあります。 時には何千回も何万回も。 ここでも、トラフィックを異常と見なすための基礎となる普遍的なアルゴリズムはありません。頭で見て考えなければなりません。

ただし、通常のユーザーは数分で数万件のリクエストを送信できないため、原則としてファイルは非常に明確に表示されます。

このログに基づいて、IPがボットと見なされる境界を決定します。 さらに、apache / nginxおよびiptrafログを使用して、トップからいくつかのアドレスを手動で確認できます。

たとえば、ボットはUDPを介してクラッシュし、一部の左ポートでWebサーバーまたはTCPが叩かれただけで、それらはしっかりと閉じられました。

繰り返しますが、普遍的な方法はありません。すべてのサーバーが攻撃を受けているか、どのサービスが実行されているか、どの負荷かによって異なります。

スクリプトを改良し、たとえば、アドレス領域を番号とともに表示し、ボットが破壊された閉じたポートの数をカウントしたり、Webサーバーログから情報を追加したりできます...

精神活動には、この記事の範囲を超える分野全体があります。



2)。 get_info.sh-ステップ1でshow_ips.shスクリプトによって受信された各IPアドレスのwhois情報から悪用メールを抽出します。

起動パラメーター:

 ./get_info.sh ddos_ips.txt > abuse_email.txt
      
      





ここで、 ddos_ips.txtはステップ1で作成されたファイルです

その後、 abuse_email.txtには、レターを送信するための電子メールアドレスのリストが含まれます。



その結論は次のようになります。



 xxxx abuse@aaa.com master@aaa.com yyyy abuse@bbb.com zzzz abuse@ccc.com ....
      
      







スクリプトにth_limit構成パラメーターがあることが重要です。これは、ip botと見なされる接続の数を意味します。この境界は前のステップで決定されます。



3)。 get_logs.sh-スクリプトは、iptrafログから各IPアドレスから情報を抽出し、個別のファイルに保存してGzipにパックします



起動パラメーター:



 ./get_logs.sh ddos_ips.txt iptraf.log "Nov 20" pref
      
      





ここで、作成されたログの優先プレフィックスは、それらをソートするのに便利です。



パラメーターでth_limitを指定することは必須です。これも、ボットから適切なIPアドレスを分離するddos_ips.txtファイルからの接続数です。

出力では、個々のIPのログを含むGzipファイルが現在のフォルダーに作成されます。



4)。 mail_send.sh-ステップ2で受け取ったリストから悪用を送信するスクリプト。get_info.shスクリプト



起動パラメーター:



 ./mail_send.sh abuse_email.txt pref
      
      







ここで、ステップ2で取得したabuse_email.txtファイル



スクリプト内には、手紙の見出しと本文があり、必要に応じてやり直します。 あなたは天からのあらゆる種類の罰を脅かし、警察などに連絡する脅迫をすることができます。



echo "Hi, today, our server xxxx was attacked from your or your c$ip

Here are the logs yourcompany.com/abuse$pref$ip.txt.gz (TZ - Europe/Moscow) ... bla bla bla ... The Company Name Ltd." | mail -s "[Abuse] ddos attack from your $ip" $email_row






(テンプレートに従って送信せず、スパムフィルターに入らないように、テキストを特に提供しません)



送信テンプレートのスクリプトには、ログファイルへのリンクが含まれています。 私はファイルをレターに直接添付しようとしましたが、最初は大量にあることが多く、2つ目はスパムフィルターによってカットされて疑わしいことが多く、3つ目はdDoSの下のマシンから送信するのが難しく、企業のWebサイトへのリンクがより実質的で安全に見えることです。

そのため、単純なスクリプトを使用してWebサーバーを上げた別のマシンにログをコピーし、メッセージの本文にログへのリンクを単純に示しました。



do_all.sh-このスクリプトはすべてのアクションを順番に実行しますが、実行する前にスクリプトパラメータ、特にケースのth_limitを調整する必要があるため、デモのためにさらに多くのことが行われました



オプションは次のとおりです。



parse_date-特定の数値または時間のエントリを選択する必要がある場合、この式でGrepログが実行されます

pref-作成されたファイルのプレフィックス、たとえば同じ日付

iptraf_raw_file -iptrafaログを取得する場所



ストリームを介してスクリプトを作成することが可能であったことは明らかですが、この記事と私が行った作業を理解するために、想像力の範囲は無限です。 すべてのプロセスを調整および自動化できます。たとえば、攻撃の開始後にロギングを自動的に有効にし、ステップ1のより正確なアナライザーを作成します。



賢明に行動すれば、特にボットの数が少ない場合、ボットネットにかなり大きな打撃を与えることができますが、ほとんどの場合、ルートキット上のDediksで構成されています。 私は個人的な経験からこれを言います。



そして、結果は何ですか? これは本当に機能しますか?



結果として生じる虐待はどうなりますか? おそらく、彼らはそれを無視しますが、たとえば、翌日、IPアドレスが再びブラックリストに登録され、abbusaが再びなくなるなど、いつかは反応するでしょう。

unが何らかの空軍/空軍サーバーであり、悪用が詳細なログとともにデータセンターに侵入した場合、たとえば通常は発行されますが、おそらくそれが検査され、ログが非常に重く、データセンターの統計に収束している場合、ブロックが存在する可能性があります。 それはおよそ50/50のどこかで、一般的には悪くもありません。

これがプロバイダーに来る場合、彼はおそらくサブスクライバーに通知します(彼はいくつかの知人と話をしました、彼らはちょうどそれをするだろうと言いました)、そして再び推論されるいくつかの苦情がある場合、彼らはクライアントが通常のアンチウイルスを置くまでブロックするかもしれません。



世界中のニュースレターの後に、私たちが知ることのない一連のイベントがあり、おそらく決定的な影響はありませんが、いずれにしても、何もしないで明日を終えることを望んでいるよりはましですあなたではなく、他の誰かになります。

そのような行動が多数派によって実行され、悪用が異なるIPからまき散らされた場合、プロバイダーは対策を講じることを余儀なくされ、そのような悪用はそれぞれボットネットのcoに釘付けになります。



あなたの注意をありがとう、これはハブに関する私の最初の記事です、何かが間違っていても私をあまりmuchらないでください。 トピックに興味がある場合は、実際の経験を共有します。深刻なリソースがなく、胸に3ルーブルがあり、かなり強い攻撃に対して自分の強さに耐えることができます。 時々、cさと工夫が強力な鉄または幅広のチャンネル以上のものを与えることができます。



UPD:ところで、記事で説明されている方法がDDoSからの本当の救いになることがあります。 たとえば、幅の広いチャネルでポートの幅全体を比較的少数のボットでいっぱいにした場合、またはネットワークが要求のフローに対処できない場合。 この場合、多くのDCでは不可能な場合が多いアップストリームルーター側のブロック、または悪用の助けを借りた戦いが役立ちます。 後者は、そのシンプルさとアクセシビリティに加えて、dDodersをうまく機能させ、それらを武装解除することを可能にします。



All Articles