Linuxサーバーがハッキングされているかどうかを確認するにはどうすればよいですか?


36

Linuxサーバーがハッキングされたことを物語る兆候は何ですか?定期的に監査レポートを生成してメールで送信できるツールはありますか?


1
状態が不明な場合、実際には方法がありません。そのため、信頼できるインストールソースを使用し、Tripwireなどのツールをセットアップしてから、それ以外のものにさらすことが非常に重要です。
オスカーデューブボーン2009年


10
あなたは「割れた」という意味です。ハッキングは、最初にLinuxを入手した方法です。
gbarry

私たちのサーバーでホストされている私の友人が、奇妙なものがあるように思えたので、彼のサーバーを見るように私にかつて頼みました。ログを見るとすぐに、何かが起きていることがわかりました。彼らは自分たちのトラックをカバーしようとしましたが、ルートキットをインストールしたのに少し混乱したと思います。とにかく、簡単に言うと、サーバー全体をゼロから再構築する必要がありました。一晩かかった後、セキュリティ監査ツールをいくつか設定しました。
マット

@Matt Mindはどのツールを教えてくれましたか?今日も同じですか?
ロドリゴ

回答:


34
  1. キープ手付かずのコピー彼らのmd5sumをして、どこか(例えばLS、PS、netstatコマンド、md5sumのような)重要なシステムファイルのを、定期的にライブバージョンと比較します。ルートキットは常にこれらのファイルを変更します。オリジナルが侵害された疑いがある場合は、これらのコピーを使用してください。
  2. aideまたはtripwireは、データベースが改ざんされていないことを前提に、変更されたファイルを通知します。
  3. syslogを設定して、ログファイルを侵入者が改ざんできないリモートログサーバーに送信します。これらのリモートログファイルで疑わしいアクティビティを監視します
  4. ログを定期的に読む-logwatchまたはlogcheckを使用して重要な情報を合成します。
  5. サーバーを知る。どのような種類のアクティビティとログが正常であるかを把握します。

8
md5は、破棄されない場合、大幅に弱体化されています。sha512に移動することもできます。
ブローム

12

あなたはしません。

私は知っている-私は知っている-しかし、それは本当に妄想的で悲しい真実です;)もちろん多くのヒントがありますが、システムが具体的に標的にされた場合-それを伝えることは不可能かもしれません。完全に安全なものはないということを理解するのは良いことです。しかし、より安全に作業する必要があるため、代わりに他のすべての答えを指摘します;)

システムが危険にさらされた場合、システムツールのどれもが真実を明らかにすることはできません。


5
攻撃者にはある程度のスキルがあり、何らかの方法でステルスになりたいと考えており、スパムを排除してOC3をボットネットに追加することに純粋に興味はありません。最近では、通常、サーバーから大量のスパムが送信されているという事実によって、通常はそうすべきではない過負荷のシステム上で見つけます。最近の「ハッカー」のほとんどはお金に動機付けられています。
アーニー

2
最近の最も高度な攻撃ツールはスキルを必要とせず、簡単に入手できます。また、一部はデフォルトおよび設計により非常にステルスです。ボットネット/ゾンビは攻撃ツールに害はなく、バグのために使用される前に長い時間が不要なクラッシュや奇妙な行動などを引き起こす可能性がアイドルすることができます
オスカーDuveborn

11

Tripwireは一般的に使用されるツールです。システムファイルが変更されたときに通知しますが、明らかに事前にインストールする必要があります。そうでなければ、知らない新しいユーザーアカウント、認識できない奇妙なプロセスやファイル、明らかな理由もなく帯域幅の使用量が増えるなどのアイテムが通常の兆候です。

Zabbixなどの他の監視システムは、/ etc / passwdなどのファイルが変更されたときに警告するように設定できます。


11

過去に私をひっくり返したいくつかのこと:

  • アイドル状態にする必要があるシステムの高負荷
  • 奇妙なセグメンテーション違反。次のような標準ユーティリティからls(これは壊れたルートキットで発生する可能性があります)
  • /またはに隠されたディレクトリ/var/(ほとんどのスクリプトキディは愚かすぎるのでトラックをカバーできません)
  • netstat あるべきではない開いているポートを示します
  • 通常は異なるフレーバーを使用するプロセスリスト内のデーモン(たとえばbind、常に使用しますdjbdns

さらに、ボックスが侵害されていることを示す信頼できる兆候が1つあることもわかりました。システムを継承した管理者の勤勉さ(更新など)について気分が悪い場合は、注意してください。


10

ハッキングされたサーバーをチェックする方法がありますkill-

基本的に、「kill -0 $ PID」を実行すると、プロセス識別子$ PIDにnopシグナルが送信されます。プロセスが実行されている場合、killコマンドは正常に終了します。(FWIW、nop killシグナルを渡すため、プロセスには何も起こりません)。プロセスが実行されていない場合、killコマンドは失敗します(終了ステータスがゼロ未満)。

サーバーがハッキングされた場合/ルートキットがインストールされた場合、最初に行うことの1つは、プロセステーブルなどから影響を受けるプロセスを隠すようカーネルに指示することです。ただし、プロセス。そして、これはつまり

a)このチェックは広範なチェックではありません。適切にコード化された/インテリジェントなルートキットにより、カーネルがこのプロセスを冗長にする「プロセスが存在しない」という応答を返すことが保証されるためです。b)いずれにせよ、ハッキングされたサーバーで「不良」プロセスが実行されている場合、通常は/ procの下にPIDは表示されません。

そのためこれまでここにいた場合、システムで使用可能なすべてのプロセス(1-> / proc / sys / kernel / pid_maxのすべて)を-0で強制終了し、実行されているが報告されていないプロセスがあるかどうかを確認する方法です/ procにあります。

一部のプロセスが実行中として起動しているが、/ procで報告されていない場合、おそらくそれを見ると何らかの問題があります。

これをすべて実装するbashスクリプトは、https://gist.github.com/1032229です。それをいくつかのファイルに保存して実行します。procで報告されていないプロセスが見つかった場合は、掘り始めるためのリードが必要です。

HTH。


それは、生産的な作業システムのようなシステムを維持する時間を持っていない私のホームサーバーにとって本当に便利です。とにかく、プロの環境でこれを使用して、結果を「比較的」確信できますか?そして、答えが3歳であるため:これは、2014年に一般的な感染をチェックする有効な方法ですか?
ハブ14年

7

ここで指定された応答を2番目に追加し、独自の応答を追加します。

find /etc /var -mtime -2

これにより、メインサーバーファイルのいずれかが過去2日間に変更されたかどうかをすばやく確認できます。

これは、ハッキングの検出に関する記事から です。サーバーがハッキングされているかどうかを検出する方法。


1
-mtimeではなく-ctimeと思います。-ctimeを改ざんすることはできません
Tillebeck

5

サーバーからの望ましくない侵入をどのように検出できますか?

  • IDSを使用する

    SNORT®は、ルール駆動型言語を利用したオープンソースのネットワーク侵入防止および検出システムであり、署名、プロトコル、および異常ベースの検査方法の利点を組み合わせています。これまでに何百万ものダウンロードがあったSnortは、世界中で最も広く導入されている侵入検知および防止技術であり、業界の事実上の標準となっています。

    Snortはネットワークトラフィックを読み取り、「ドライブバイペンテスト」など、誰かがサーバーに対してメタスプロイトスキャン全体を実行するようなものを探すことができます。私の意見では、このようなことを知っているのは良いことです。

  • ログを使用...

    使用状況に応じて、ユーザーがログインしたとき、または奇数のIPからログインしたとき、rootがログインしたとき、または誰かがログインしようとしたときに知ることができるように設定できます。私は実際に私のサーバーに電子メールを持っているすべてのログメッセージ高いデバッグより。はい、通知さえ。もちろん、それらのいくつかをフィルタリングしますが、毎朝10件のメールに関するメールを受け取ったとき、それを修正して、それが起こらないようにします。

  • 設定を監視する-リビジョンを追跡できるように、実際には/ etc全体をSubversionに保持します。

  • スキャンを実行します。LynisRootkit Hunterなどのツールを使用すると、アプリケーションのセキュリティホールの可能性を警告できます。すべてのビンのハッシュまたはハッシュツリーを維持し、変更を警告できるプログラムがあります。

  • サーバーを監視します-ディスクスペースについて述べたように-何かが異常な場合、グラフがヒントを与えてくれます。私はCactiを使用して、CPU、ネットワークトラフィック、ディスク容量、温度などを監視します。何かおかしいと思われる場合はおかしいので、なぜおかしいのかを見つけてください。


2

これに追加したいだけです。

bashの履歴を確認します。空で、設定を解除したり空にしたりしていない場合は、誰かがサーバーを侵害した可能性があります。

最後に確認してください。不明なIPが表示されるか、非常に空に見えます。

その後、受け入れられた答えが述べたように、システムファイルはしばしば変更されます。変更された日付を確認してください。しかし、彼らはしばしば変更された日付を改ざんします。

多くの場合、ランダムポートで実行されている別のバージョンのsshをインストールします。これはしばしば奇妙な場所に隠されています。通常、ssh以外の名前に変更されることに注意してください。したがって、netstatを確認し(頻繁に置き換えられるため機能しない場合があります)、iptablesを使用して不明なポートをブロックします。

いずれにせよ、これは予防が治療よりも優れている状況です。侵害された場合は、フォーマットしてもう一度やり直すことをお勧めします。ハックを正常にクリーニングしたことを確認することはほとんど不可能です。

サーバーが危険にさらされるのを防ぐために、次のことに注意してください。

  1. SSHポートを変更する
  2. rootがログインできないようにする
  3. 特定のユーザーのみを許可する
  4. パスワードによるログインを禁止する
  5. sshキー、望ましいパスワード保護キーを使用
  6. 可能な場合はすべてのIPをブラックリストに載せ、必要なIPをホワイトリストに載せてください。
  7. fail2banのインストールと構成
  8. トリップワイヤーを使用して侵入を検出する
  9. Nagiosまたはzabbixでログインしたユーザーの数を監視します。ログインするたびに通知を受けても、少なくとも他の誰かがいつプレイしているかはわかります。
  10. 可能であれば、サーバーをvpn上に保持し、vpn ip経由でのみsshを許可します。VPNを保護します。

1台のサーバーに接続すると、bashの履歴を確認し、そのサーバーからsshを介して接続した他のサーバーを探すことに注意してください。次に、それらのサーバーへの接続を試みます。そのため、パスワードが不十分なために強引に強制された場合、他のサーバーに接続し、それらを侵害する可能性が非常に高くなります。

それはい世界です、私は予防が治療よりも優れていることを繰り返します。



0

GuardRailをチェックアウトする必要があります。サーバーを毎日スキャンして、変更点を視覚的にわかりやすく表示できます。エージェントを必要とせず、SSH経由で接続できるため、エージェントでマシンとリソースをジャンクする必要はありません。

何よりも、最大5台のサーバーで無料です。

こちらをご覧ください:

https://www.scriptrock.com/


これは、root権限でマシンにログインするクラウドサービスですか?サービスが侵害された場合はどうなりますか?
ハブ14年

ルートを指定する必要はありません。また、代わりにエージェントを使用することもできます。これは、マシンがSSH呼び出しの代わりにポーリングすることを意味します。DBなどのパスワードは、クラウドではなく常にマシンに保存されます。
チェーン14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.