web-dev-qa-db-ja.com

SSHプリプロセッサからのSnort「プロトコルの不一致」

TL; DR-「プロトコルの不一致」とはどういう意味ですか?これはどのように脅威ですか?抑制してもいいですか?

Snortの調整に忙しい。 SSHプリプロセッサセクションは次のようになります。これは、Snort.orgのデフォルト設定から直接取得されます。

preprocessor ssh: server_ports { 22 } \
                  autodetect \
                  max_client_bytes 19600 \
                  max_encrypted_packets 20 \
                  max_server_version_len 100 \
                  enable_respoverflow enable_ssh1crc32 \
                  enable_srvoverflow enable_protomismatch

現在、「[128:4:1](spp_ssh)プロトコルの不一致」に関する多数のアラートが表示されています

アラートは「スパイク」で発生するようで、比較的短い時間枠で、ホストAからホストBへのこの種のトラフィックを示す1000以上のアラートメッセージが表示されます。 (私はそれが「スパイク」の定義だと思いますが、あなたは私のドリフトを得ます)。とにかく、ここにアラートメッセージの例があります(これはすべて1行です-バックスラッシュ付きの改行は、これを読みやすくするために追加されたものです)。

02/24-17:21:22.386376  [**] [128:4:1] (spp_ssh) \
Protocol mismatch [**] [Classification: Detection of a Non-Standard \
Protocol or Event] [Priority: 2] {TCP} \
10.99.1.44:58391 -> 10.99.1.88:22

細部

  • 「10.99.1.44」サーバー

    • ジャンプホストです
    • これを使用して「.88」ホストにSSH接続するのは、実際の人だけです。つまり、「。44」ホストから生成された自動化されたSSHセッションはありません。
  • 「10.99.1.88」サーバー

    • Snortを実行しています
    • VPNに接続されたユーザーが使用する(つまりブラウザを介して)、およびビルド環境内のサービスが使用する(自動HTTP要求を介して)Webサービスをホストします
    • 443を超えるものだけを自動化サービスに提供します。つまり、「。88」ホストにヒットするSSHベースの自動化はありません。

今日の例のスパイクは、10.99.1.44ホスト経由で10.99.1.88ホストにSSH接続したときに発生しました。

つまり、ssh-> 10.99.1.44-> ssh-> 10.99.1.88

メンテナンスを行うには、88ホストにシェルが必要でした。

その頃、Snortはびっくりしました。上記の投稿と同じメッセージが約1,300通ありました。

  • 当時、どちらのボックスにもSSH接続された他のユーザーはいませんでした
  • いずれかのボックスでSSHを使用している可能性があるcronジョブの実行のsyslogには何も表示されません

最後に、私たちはパペットマスターにこのメッセージを豊富に持っています。明らかな理由はありませんが、上記の警告のほとんど(つまり、SSHは積極的に使用されていないため)もそのボックスに当てはまります。

私はIntergooglesを閲覧して、基本的に2つの解決策を考え出しました:

  • SSHプリプロセッサ構成スタンザからautodetectを削除します
  • または、threshold.confに抑制ルールを追加します

私もどちらでもできますが、根本的な原因を理解せずに物事をシャットダウンするだけなので、どちらも理想的ではないようです。私はこの問題を積極的に再現することができず、SSHプリプロセッサのバグ以外に何が原因であるかについては何も思いつきませんでした。

3
JDS

「プロトコルの不一致」エラーメッセージは、サポートされていないクライアントバージョンのSSHポートに何かが接続したときに発生します。SSHクライアントではないSSHポートに何かがヒットしたときにも生成されます。 Webブラウザ。しかし、それはあなたが説明している問題ではありません。

この特定のエラーメッセージが前に表示されるのを見たことがあります。Googleを簡単に検索すると、古いsnortにバグがあったことが( http://seclists.org/snort/2009/q4/534 )わかります。プロトコルの不一致で誤検知を引き起こすバージョン。

上記のリンクに加えて、私自身の経験からも言えます。「プロトコルの不一致」のsnortアラートは、侵入の可能性について最も情報を与えるものではなく、トリガーに関連する多くのエクスプロイトはありません。そのため、多くの既定のsnortアラートと同様に、環境内のこの特定のアラートは「ノイズ」として無視され、threshold.confで安全に削除できます。このように、sshプリプロセッサに関連する他のアラートは引き続き生成されますが、その特定のアラートはノイズを生成しません。

4
Herringbone Cat

「プロトコルの不一致」とはどういう意味ですか?これはどのように脅威ですか?

opensshサーバーは、仕様に従って有効なプロトコルバージョンを読み取ることができない場合に、このエラーを通知します。

次の場合に発生します。

  • SSH2サーバーに接続するSSH1クライアント
  • SSH1サーバーに接続するSSH2クライアント
  • SSHサーバーに接続する非SSHクライアント。

送信元アドレスを説明する適切なメッセージがsyslogにあるはずです。また、サーバーの最近の更新に関連している可能性もあります。現在のopensshは、プロトコル1バージョンを完全に無効にしています。

説明のソース(Googleの最初のリンク)

抑制してもいいですか?

あなたはこのオプションを削除してそれを行うことができます

enable_protomismatch

ソース

1
Jakuje