Linuxサーバーがハッキングされた兆候は何ですか?監査レポートを定期的に生成してメールで送信できるツールはありますか?
あなたはしません。
私は知っています。しかし、それは妄想的で悲しい真実です;)もちろん、ヒントはたくさんありますが、システムが具体的に対象とされている場合、それを伝えることは不可能かもしれません。完全に安全なものは決してないことを理解するのは良いことです。しかし、私たちはより安全に取り組む必要があるので、代わりに他のすべての答えを指摘します;)
システムが侵害された場合、システムツールのいずれも真実を明かすことはできません。
過去に気になっていたいくつかのこと:
ls
などの標準ユーティリティから(これは壊れたルートキットで発生する可能性があります)/
または/var/
の非表示ディレクトリ(ほとんどのスクリプトキディは、トラックをカバーするには愚かすぎるか、怠惰です)netstat
は、そこにあるべきではない開いているポートを示しますbind
、ただし常にdjbdns
を使用)さらに、ボックスが危険にさらされていることを示す信頼できる兆候が1つあります。システムを継承した管理者の勤勉さ(更新など)に不満を感じている場合は、注意深く監視してください。
ハッキングされたサーバーをkill
でチェックする方法があります-
基本的に、「kill -0 $ PID」を実行すると、ID $ PIDを処理するためにnopシグナルが送信されます。プロセスが実行中の場合、killコマンドは正常に終了します。 (FWIW、nop killシグナルを渡しているため、プロセスには何も起こりません)。プロセスが実行されていない場合、killコマンドは失敗します(終了ステータスが0未満)。
サーバーがハッキングされている/ルートキットがインストールされている場合、サーバーが最初に行うことの1つは、影響を受けるプロセスをプロセステーブルなどから隠すようにカーネルに指示することです。プロセス。つまり、これは
a)このチェックは広範囲なチェックではありません。適切にコーディングされた/インテリジェントなルートキットは、カーネルが「プロセスが存在しない」という応答で応答することを保証するため、このチェックは冗長になります。 b)どちらの方法でも、ハッキングされたサーバーで「不良」プロセスが実行されている場合、そのPIDは通常/ procの下には表示されません。
だから、あなたが今までここにいるのなら、メソッドはシステムで利用可能なすべてのプロセス 1から何でも->/proc /)をkillすることですsys/kernel/pid_max)を実行し、実行中のプロセスが/ procで報告されていないかどうかを確認します。
一部のプロセスが実行中と表示されても、/ procで報告されない場合、おそらくそれをどのように見ても問題があります。
これをすべて実装するbashスクリプトは---(https://Gist.github.com/1032229 です。それをいくつかのファイルに保存して実行します。procで報告されていないプロセスが見つかった場合は、調査を開始するためのリードが必要です。
HTH。
ここで与えられた応答を2番目にして、自分の応答を1つ追加します。
find /etc /var -mtime -2
これにより、メインサーバーファイルのいずれかが過去2日間に変更されたかどうかをすばやく確認できます。
これはハッキング検出に関する記事からです サーバーがハッキングされたかどうかを検出する方法
から サーバーでの不要な侵入を検出するにはどうすればよいですか?
IDSを使用する
SNORT®は、ルール駆動型言語を利用したオープンソースネットワーク侵入防止および検出システムであり、署名、プロトコル、および異常ベースの検査方法の利点を組み合わせています。現在までに何百万ものダウンロードがあり、Snortは世界で最も広く導入されている侵入検知および防止テクノロジーであり、業界の事実上の標準となっています。
Snortはネットワークトラフィックを読み取り、サーバーに対してmetasploitスキャン全体を実行する "ペンによるテストによるドライブ"などを探すことができます。私の意見では、このようなことを知るのは良いことです。
ログを使用...
使用方法に応じて、ユーザーがログインするとき、奇妙なIPからログインするとき、またはrootがログインするとき、または誰かがログインしようとするときを常に把握できるように設定できます。私は実際にサーバーにデバッグよりもeveryログメッセージを電子メールで送信しています。はい、通知さえ。もちろん、そのうちのいくつかはフィルタリングしますが、毎朝、ものについて10通のメールが届くと、それを修正して、発生しなくなるようにします。
設定を監視します-私は実際に/ etc全体をSubversionに保持して、リビジョンを追跡できるようにします。
スキャンを実行します。 Lynis や Rootkit Hunter などのツールを使用すると、アプリケーションにセキュリティホールが存在する可能性があることを警告できます。すべてのビンのハッシュまたはハッシュツリーを維持し、変更を警告できるプログラムがあります。
サーバーを監視する-ディスクスペースについて述べたのと同じように-異常が発生した場合、グラフからヒントが得られます。私は Cacti を使用して、CPU、ネットワークトラフィック、ディスク容量、温度などを監視しています。何かが見える場合is奇数であり、なぜ奇数であるかを理解する必要があります。
これに追加したいだけです:
Bashの履歴を確認します。空であり、未設定または空にしていない場合は、誰かがサーバーを侵害した可能性があります。
最後に確認してください。不明なI.Pが表示されるか、非常に空に見えます。
次に、受け入れられた回答が述べているように、システムファイルはしばしば変更されます。変更された日付を確認してください。ただし、変更された日付を改ざんすることがよくあります。
多くの場合、ランダムなポートで実行されている別のバージョンのsshをインストールします。これは、いくつかの本当に奇妙な場所に隠されていることがよくあります。通常は、ssh以外の名前に変更されます。したがって、netstatをチェックし(頻繁に置き換えられるため機能しない可能性があります)、iptablesを使用して不明なポートをブロックします。
いずれにせよ、これは予防が治療よりも優れている状況です。危険にさらされている場合は、フォーマットして最初からやり直すことをお勧めします。ハックの駆除に成功したことを確認することはほとんど不可能です。
サーバーが危険にさらされないようにするには、次の点に注意してください。
それらが1つのサーバーに入ると、bashの履歴をチェックし、そのサーバーからssh経由で接続した他のサーバーを探すことに注意してください。次に、それらのサーバーへの接続を試みます。したがって、不十分なパスワードが原因でブルートフォースを強制された場合、他のサーバーに接続してそれらを侵害する可能性が非常に高くなります。
世の中は醜い世界です。予防は治療よりも優れています。
少し検索した後、これもあり、他のいくつかのものの中で、上にリストしたものを実行します: http://www.chkrootkit.org/ および http:// www.rootkit.nl/projects/rootkit_hunter.html
GuardRailを確認してください。それはあなたのサーバーを毎日スキャンし、何が変わったのかを素敵な視覚的な方法で教えてくれます。エージェントを必要とせず、SSH経由で接続できるため、エージェントを使用してマシンとリソースをジャンクアップする必要はありません。
何よりも、最大5台のサーバーで無料です。
ここでそれをチェックしてください: