web-dev-qa-db-ja.com

SIP=サーバーのフラッディングを防ぐために、SipVicious( 'friendly-scanner')を停止するにはどうすればよいですか?

SIPサーバーはUDPポート5060でリッスンし、公衆インターネットからの認証済みリクエストを受け入れる必要があります。

問題は、SIPサーバーをスキャンして悪意のあるサーバーをスキャンし、サーバーをブルートフォースで攻撃しようとする人が一日中そこに留まることです。私はこの攻撃に十分な長さの資格情報を使用しています。うまく機能することは決してありませんが、多くの帯域幅を消費するので迷惑です。

私はfail2banを設定してアスタリスクログを読み取り、iptablesでこれを行うIPを禁止しました。これにより、アスタリスクが10回失敗した後の着信SIP REGISTERの試行を確認できなくなります(これは、私が見ている攻撃の速度で2番目です。ただし、SipVicious派生スクリプトは、ICMP宛先ホスト到達不能を取得した後すぐに送信を停止しません-パケットとの接続をハンマーし続けます。停止するまでの時間は設定可能ですが、残念ながらこれらのタイプのブルートフォース攻撃を行う攻撃者は、通常、タイムアウトを非常に高く設定します(fail2banが攻撃を停止した後、攻撃は何時間も高レートで継続し、SIP応答が返されると、 SIPサーバー)の初期確認が表示されました。

接続時にパケットの送信を停止する方法はありますか?

7
a1kmm

これらの攻撃者の多くが使用する公的に利用可能なSipViciousスクリプトは、無効なSIPなしのFrom:行のない応答を受け取った場合、即座に攻撃を停止します。SipViciousは、 SIPフレンドリースキャナーへのリクエスト。

この手法を実際の攻撃者に対して使用することで、パケットのフラッドを即座に阻止することができました。このようなパケットは簡単なスクリプトで送信できます。例えば:

cat >UnfriendlyScannerStopper.scala <<END
import Java.net._

object UnfriendlyScannerStopper {
  def main(args : Array[String]) : Unit = {
    if (args.length < 2) {
      System.out.println("Usage: FriendlyScannerStopper ipAddr port")
      return
    }

    val udpSocket : DatagramSocket = new DatagramSocket();
    val packetContents : String = "SIP/2.0 400 Go Away!!!\r\n\r\n"
    udpSocket.send(new DatagramPacket(packetContents.getBytes("utf-8"), packetContents.size,
      InetAddress.getByName(args(0)), Integer.parseInt(args(1))))
  }
}
END
scala UnfriendlyScannerStopper.scala 188.138.107.179 5102

SIP攻撃で送信されているパケットのViaヘッダーのアドレスとポートを188.138.107.179と5102に置き換える必要があります。

11
a1kmm

上流のプロバイダーに相談してください。私のブラックリストにはREST APIを提供するAPIがあります。このWebサービスを呼び出すようにfail2banを設定しました。パケットがファイアウォールに到達する前にプロバイダーのネットワークのどこかで停止されます。

4
longneck

誰もあなたの質問に直接回答しなかったので:NO

誰かが境界ゲートウェイにパケットを送信するのを防ぐことはできません。あなたができる最善の方法は、それらを上流で停止する(上記のロングネックのように)か、ファイアウォールで停止することです。

Fail2banは失敗した攻撃の数に基づいてトリガーします(すでに上で説明したとおり)。そのため、代替(または組み合わせ)は、ソースIPの地理的な場所に基づいてブロックすることです。 SecAst のような製品または一部のハードウェアファイアウォールは、地理的位置に基づいてブロックすることができ、サーバーに到着するパケットの数をさらに削減します( www.telium.io を参照)。

元の質問に戻る:いいえ

4
TSG

SIPプロキシを設定してみましたか?

まだ設定していない場合は、「SIPサーバー」の前にKamaillioまたはOpenSIPSを設定してください。これらのパッケージはSIPメッセージルーターであり、SIPプロキシとして構成できます。

OpenSIPSまたはKamaillio内では、この問題を解決するために、次のように単純なルーティングスクリプトに行を追加できます。

if($ ua =〜 "friendly-scanner"){drop(); }

これでインバウンドの試みが停止することはありませんが、試みがどこにも行かず、「SIPサーバー」がそれを見ることはありません。非常に控えめなハードウェアであっても、OpenSIPSやKamaillioでは、1秒あたり500のレジスタであっても心配する必要はありません。

VoIPインフラストラクチャの保護は、OpenSIPSとKamaillioが行うように設計されていることの大部分です。これは、着信SIPリクエストをプロキシし、正規化し、不正なリクエスト(およびユーザーエージェントからのリクエスト)ネットワークと通信するビジネスはありません)、プロキシ認証(REGISTER)。

また、トポロジをインターネットから隠し、メディアサーバーにさらに高いレベルのセキュリティを追加します(おそらく、これは「SIPサーバー」が実際に行っている機能です)。

アスタリスクを実行している場合、OpenSIPS/Kamaillio/SERを統合することは、キャリアITSPデプロイメントで一般的な方法です。

そして、帯域幅についてのあなたの声明に関して:これらの攻撃が多くの帯域幅を使用していると聞いて、少し驚いたでしょう。 「たくさん」は相対的な言葉だと思います...しかし、これからどれだけのトラフィックが見られますか?

これがお役に立てば幸いです。ヘルプが必要な場合は、コンサルタントであり、特定の環境に合わせてこれを構成する際のお手伝いをします。

ジェレミー・D・ウォード、CWNE

PS:私を見つけるために、Googleは次のようにします:ジェレミーワードワイヤレス。私のLinkedInプロファイルが最初の結果です。

1
Jeremy Ward

これらのiptablesルールは私には問題なく機能します。このような攻撃の間、CPU負荷は2%未満に保たれます。

http://txlab.wordpress.com/2013/06/29/protecting-a-vpbx-from-dos-attacks/

1

別の方法として、SIPここに関連するファイアウォールを見てください: VoIP Firewalls

0
TSG

Pfsenseやおそらく他の製品では、ファイアウォールアプライアンスを作成または購入できます。ソフトウェアは無料です。次に、Suricataを無料でロードできます。これは、Sipviciousなどに関連する大量のIPを即座にドロップするゲートキーパーのようなものです。基本的に、彼らがあなたのIPをスキャンするとき、彼らのパケットはすぐに落とされます。問題がなければ、そのアドレスにSIPサーバーがあることに気づくこともありません。同じファイアウォールには、SIPプロキシをインストールするためのパッケージもあるので、両方を実行できます。

0
gust a guy