Linuxボックスが潜入しているかどうかをどのように判断しますか?


11

最近、悪意のあるSSHログイン試行の分析に関する記事を読みました。これにより、私のDebianボックスのSSHユーザー名、パスワードの組み合わせは一般的ではないかと思いました。力ずくの辞書攻撃の標的にされたのですか?/var/log/auth.log.0を見てみましょう。

Sep 23 07:42:04 SLUG sshd[8303]: Invalid user tyjuan from 210.168.200.190
Sep 23 07:42:09 SLUG sshd[8305]: Invalid user tykeedra from 210.168.200.190
Sep 23 07:42:14 SLUG sshd[8307]: Invalid user tykeem from 210.168.200.190
Sep 23 07:42:19 SLUG sshd[8309]: Invalid user tykeshia from 210.168.200.190
Sep 23 07:42:25 SLUG sshd[8311]: Invalid user tyla from 210.168.200.190
Sep 23 07:42:30 SLUG sshd[8313]: Invalid user tylan from 210.168.200.190
Sep 23 07:42:35 SLUG sshd[8315]: Invalid user tylar from 210.168.200.190
Sep 23 07:42:40 SLUG sshd[8317]: Invalid user tyler from 210.168.200.190
Sep 23 07:42:45 SLUG sshd[8319]: Invalid user tylerfrank from 210.168.200.190
Sep 23 07:42:50 SLUG sshd[8321]: Invalid user tyliah from 210.168.200.190
Sep 23 07:42:55 SLUG sshd[8323]: Invalid user tylor from 210.168.200.190

見栄えが良くありません。攻撃の対象になっていること、およびユーザー名とパスワードの組み合わせの一部が弱いことがわかったので、どうすればよいですか?

  • ...私のLinuxボックスが侵入されたかどうかを判断しますか?
  • ...加害者が残したダメージを元に戻しますか?
  • ...これが将来発生しないようにしますか?

更新

加害者が残した損害取り消すためのアドバイスはありますか?


そのログは、あなたが侵害されたことを示唆していません。心配する以上の情報はありますか?

回答:


15

多くの人がDenyHostsを提案しているようですが、私のシステムでFail2Banを使用して多くの成功を収めています。(構成可能な)障害の数を監視し、アクションを実行します-私のサーバーでは、そのアクションはiptablesを使用してホストからのすべてのトラフィックをドロップすることです。ログインに10回失敗すると、それらは禁止され、それで終わりです。

私はこれをLogcheckと組み合わせて使用​​しているため、サーバーで何が行われているのかを常に把握しています。

誰かが実際にシステムに侵入した証拠がある場合(投稿したログはその証拠ではありません)、唯一の解決策は、保持する必要のあるすべてのデータをバックアップし、マシンをワイプし、再インストールして、復元することです。バックアップから。そうでなければ、確認する方法はありません。


1
私はlogcheckとfail2banも使用しています。とても良い組み合わせです。

次に、fail2banの使用について説明します。
マルフィスト2009

fail2banはより多くのサービス(メール、Web、FTPなど)を監視し、より構成しやすいため、denyhostsからfail2banに切り替えました
Jure1873

10

有効なログイン試行もログインしているため、ブルートフォース試行の後に成功が見られる場合は、何か悪いことが発生したことを示しています。

私が使用しDenyHostsを不審SSHトラフィックのための私のログを監視するために、そして私はそれがある時点でホストをオフに自動的にファイアウォールに設定されています。

負荷パターン、ログインアクティビティ、定期的なトラフィックスニッフィング、実行中のプロセスと開いているポートの監視、tripwireなどのツールを使用したファイルの整合性の確認など、マシンが侵害されていないかどうかを監視したいさまざまな方法があることに注意してください。

1つだけ行う場合は、システムの負荷を監視することは、侵害を検出する非常に効果的な方法です。これは、ほとんどのマシンが侵害された場合、大量のスパムを送信したり、大量のトラフィックを受信したりするために使用されるためです。あなたが価値の高いターゲットであり、ホストをゾンビにする以外の理由で人々が特にあなたに侵入しようとしている可能性がある場合は、おそらく役に立ちませんが、それでも価値があります。さらに、プロファイリングと、より多くのハードウェアまたはより良いソフトウェアに投資する必要がある場合に把握するために、負荷の監視が必要です。

また、auth.logやその他の予期しないことを調べて、包括的なログ分析を行う必要があります。ログファイル分析は競争の激しい市場であり、問​​題はまだ解決していませんが、要約を毎日送信するように構成できるlogwatchなどの無料ツールがあります。

レイヤーを介したセキュリティ!


1
もちろん、攻撃者はログを変更して侵入の証拠を削除することもできたため、ログに証拠がないからといってすべてが正常であるとは限りません。

これは本当です。私の本では、証拠の欠如は基本的に妥協の証拠ではありません。リモートサーバーにログを記録すると、ログの信頼性が高まります。この目的のために、syslog-ngトンネルとsshトンネルを使用しています。

私もサーバーをハッキングしようとする途方もない数の試みを見てきました...私はDenyHostsをインストールし、わずか10分程度ですでにいくつかのIPを追加していました。ありがとう!
アーロンブラウン

4

Tripwireは忘れてください。代わりにAIDEを使用してください。その無料でセットアップは簡単です(ただし、除外する一時ディレクトリーを決定するのに少し時間がかかりますが、それ以外の場合は構成します)。

実行すると、すべてのファイルのデータベースが構築されます。もう一度実行すると、変更されたファイルがわかります。

もう1つ行うことは、denyhostタイプのブロッカーを持つCSFをインストールすることです。人々が繰り返しログインに失敗すると、ファイアウォールルールに追加されます。また、SSHログインに公開鍵を要求することもできます。スクリプトキディは、好きなだけログインを試行できます。


Tripwireのオープンソース(無料)バージョンがあります。tripwire.orgを
Dan Andreatta

4
"* ... determine if my Linux box has been infiltrated?"
  • 奇妙なプロセスの兆候を探します。私は通常、chkrootkitに付属するツール(http://www.chkrootkit.org)を使用しています
  • 別のマシンからnmapでポートスキャンを実行します。ボックスが危険にさらされている場合、攻撃者がバックドアをインストールしている可能性があります

「* ...加害者が残したダメージを元に戻しますか?」

それを忘れて、攻撃があった場合、最善のアドバイスはそれを最初から再インストールすることです(新しいインストールの穴をプラグインすることを確認してください)。バックドアやステルスプロセスに気づかないのは非常に簡単です。再インストールする方がよいでしょう。

「* ...これが今後起こらないようにしますか?」

  • セキュリティアップデート

  • タイトなファイアウォール

  • 強力なパスワード

  • 不要なサービスをオフにする


3

logcheckportsentrytripwireなどのツールをご覧ください。ランダムな辞書SSHの試行では非常に一般的であるため、それほど心配する必要はありません。ランダムな難読化のためにポートを変更することもできますが、それでも時々ランダムな試行が表示されます。これは、インターネット上にマシンが存在する生活です。


3

これらの攻撃を防ぐためにサーバーで使用するものの1つがDenyHostsです。DenyHostsは、悪意のあるユーザーがログインを試みるのを防ぎます。それをインストールしてから、ログファイルのログイン試行エントリがはるかに少なくなりました。


3

追加の認証として公開/秘密キーペアを使用することをお勧めします。そうすれば、ユーザーは正しいキーがないとSSHでログインできません。総当たり攻撃を推測するのはかなり不可能でしょう。これに関する素晴らしい記事はここにあります

これだけでパスフレーズを使用することは、SSH認証にとって非常に堅実です。しかし、もっと脆弱性があります!開いているポートを使用するすべてのアプリケーションに注意してください。バグが含まれている場合、悪用者がシステムを追い抜く可能性があります。良い例は、現在使用しているwebstatsソフトウェアのバグが原因でサーバーにインストールされたスパムボットでした。


2

Fail2banは、アクセスログのリアルタイムアナライザーです。ログイン試行に失敗したIPをブロックするように構成できます。これにより、sshポートを移動することなく辞書攻撃を回避できます。chkrootkitとrootkithunterは、侵入をチェックするのに適したユーティリティです。侵入が成功した場合、ベストプラクティスはデータ(および実行可能ファイルではなくデータのみ)のコピー、ワイプ、再インストールです。これは、システムが完全にクリーンであることを100%確認することは本当に難しいからです。


2

あなたの箱が侵害されたことを示唆するものはここには何もありません。パスワードが非常に弱い場合でも、ユーザー名ごとに1回だけログイン試行を行う辞書攻撃は成功する可能性が非常に低いです。

ただし、パスワードが弱いことがわかっている場合は、パスワードを強化してください。個人的には、pwgen(Debianでパッケージ化されています)が好きです。実行するたびに、yodieCh1、Tai2daci、またはChohcah9など、(少なくとも私にとっては)覚えやすいかなり強力な、しかし比較的発音しやすい多数のパスワード候補が生成されます。

ただし、システムが危険にさらされていることを示す他の証拠がある場合は...軌道から消してください。確認する唯一の方法です。

非実行可能データはおそらく救済可能ですが、実行可能コンテンツ(MS Officeドキュメントや一部の構成ファイルなどが含まれる可能性がある)を含むものはすべて、手動で調べて確認できない限り、行かなければなりません」敵対的になった場合、または敵対的である可能性を受け入れて、システムに損傷を与えたり、そのままにしておくと将来の再妥協の手段を提供する可能性がある場合。


2

私が好きな小さな追加の保護の1つは、着信ssh接続をレート制限して、辞書攻撃などを遅くすることです。これだけですべてが保護されるとは思わないでください。ただし、パスワード認証の無効化など、他の回答の提案に加えてこれを使用してください。

iptablesを使用する:

$ iptables        -A INPUT      -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
$ iptables        -A INPUT      -p tcp --dport 22 -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
$ iptables        -A INPUT      -p tcp --dport 22 -j DROP

2

このスレッドには、次のような不適切なアドバイスがあります。

  • sshに非標準ポートを使用します(間違っています!)
  • サードパーティのセキュリティツールを使用する(不要な依存関係/複雑さを追加する)
  • ファイアウォールをブロックまたはホワイトリストに登録する(メンテナンスの頭痛)

/etc/ssh/sshd_config代わりに、単に微調整してセキュリティを改善します。

  • PermitRootLogin no
  • sshアカウントを持つシステム上のユーザーのみにAllowUsersを構成します
  • 「PasswordAuthentication no」の物理キーのみを使用することを検討してください

あなたがボックスである場合は浸透しました。ボックスを再構築します。


(-1)ファイアウォールでルールを構成するか、侵入防止システムを使用することが必要な場合があります。なぜそれが良いアイデアではないかについての追加の議論なしにそれを貧弱なアドバイスと呼ぶことはあまり役に立ちません。
ゾレダチェ

1

sshを有効にすると常に発生します。高いポートに移動します。

侵入検知には優れていますが、インストールがかなり難しい「Tripwire」と呼ばれるプログラムがあります。他に何もない場合は、問題を理解するためにそれらのドキュメントを読む必要があります。


1

マシンをインターネットに接続する前に、侵入検知をインストールする必要があります。

そして、SSH接続をIPホワイトリストに登録することは、全世界がそのようなことを試みることさえできないことを確認するためだけに得策です。


また、SSH経由でのログインを許可するユーザーをホワイトリストに追加し、可能であればパスワードベースの認証を無効にします。

1

Linuxボックスが浸透しているかどうかを確認するにはどうすればよいですか?

読み取り専用メディア(livecd)から起動し、ファイルをバックアップまたは元のメディアと比較します。

奇妙な動作を見て回ってください。もちろん、これはハックの前に時間をかけて「通常」のことをよく理解している場合に最も簡単です。

投稿したエラーは妥協を示すものではありません。ちょうど誰かが試みています。

加害者が残した損害をどのように取り消すことができますか?

システムが危険にさらされる前に、バックアップを再インストールして復元します。

見る:

将来これが起こらないようにするにはどうすればよいですか?

見る:




0

rkhunterまたはchkrootkit、あるいはその両方を使用します。外部からボックスをスキャンして、開いているポートを確認します

とにかく、あなたが持っているすべてが無効なユーザーである場合、心配する必要はありません:)


0

非常に異なるもの:IPアドレスでGoogleを使用してみてください!トルコから自分自身をSTARTURKと呼ぶハッカーが、サイトをハッキングしようとした可能性があります。

システムに対するブルートフォース攻撃のように見えますが、このハッカーが1回試行しただけで他のサイトに移動している可能性があります。


0

多くの人が指摘しているように、Tripwire / AIDEはシステムの変更を探す最良の方法です。残念ながら、既知の良好なシステムで構成する必要があるため、牛はその牛の納屋から外れています。

少なくとも始めるのに役立つかもしれない1つのことは、RPMデータベースを使用してファイルのmd5sumをチェックすることです。基本的な要点は次のとおりです。

rpm -qa | xargs rpm -V

これはさまざまな理由で完全ではありません。まず、ローカルRPMデータベースが理論的に変更されている可能性があります。次に、ほとんどのディストリビューションはプリリンクを使用しており、RPMはプリリンクに対応していません。MD5は、合法的なプロセスから変更されたように見える場合があります。

最善のアドバイスはこれです:あなたがあなたが危険にさらされたかどうかわからない場合、それは本当に再構築の時間です。


0

将来のセキュリティ問題を防ぐために、OSSECを確認できます。これを使用して、サーバーでファイルの整合性チェックとログ監視を行います。これは非常に完全で、設定が簡単です。メール通知を送信できます。コマンドラインまたはWebインターフェイス経由でアラートを確認できます。

http://www.ossec.net/

ウェブサイトから取得:

「OSSECは、オープンソースのホストベースの侵入検知システムです。ログ分析、ファイルの整合性チェック、ポリシーの監視、ルートキットの検出、リアルタイムの警告、アクティブな応答を実行します。」

  • ログ分析それはあなたのサーバー上のログファイルをチェックし、ルールを介してあなたに警告することができます(たくさん事前に定義されており、あなたはあなた自身のものを追加することができます)

  • ファイルの整合性tripwire /機能のような支援により、サーバー上でファイルが変更されているかどうかを確認できます。

  • ポリシーの監視:「ベストプラクティス」のセキュリティルールを確認します

  • ルートキットの検出:rkhunter、chkrootkitのような機能

  • リアルタイムのアラートとアクティブな応答:アラートに自動的に反応するようにossecを設定できます(これは使用しませんが、接続試行の失敗が多すぎるホストへのsshアクセスをブロックするために使用できます)

本当に良い商品で、とてもアクティブです

あなたの箱を強化するために使うこともできlynisバスティーユ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.