Linuxサーバーがハッキングされました。いつ、どのように行われたのかを知るにはどうすればよいですか?


11

デスクトップUbuntuディストリビューションを実行しているホームサーバーがあります。私はこれを私のcrontabで見つけました

* * * * * /home/username/ /.access.log/y2kupdate >/dev/null 2>&1

そして、そのディレクトリ(username /の後のスペースはディレクトリ名)を見ると、明らかにすべきでないことをしている多くのスクリプトを見つけました。

そのコンピューターをワイプし、ものを再インストールする前に、セキュリティ侵害の原因とその時期を調べたいと思います。だから、私は再び同じ穴を開けません。

どのログファイルを調べる必要がありますか?私が知っているサーバー上で実行されているサーバーは、sshdとlighttpdだけです。

このようなことが再び起こるかどうかを検出するにはどうすればよいですか?


SUへの移行に投票した@Person:ウイルス/ハッキングフォレンジックは、サーバーフォールトよりもスーパーユーザーに関連すると思いますか??
クリスS

3
計画は、コンピューターを消去して再インストールすることだと聞いてうれしいです。あなたが見つけたものに関係なく、それは絶対に正しいことです。なぜなら、あなた見つけられなかったより悪い何かがある可能性が常にあるからです。
mattdm

はい、本当にSUやServerfaultではなく、ITセキュリティ(security.stackexchange.com)に移行するよう投票してください!
ロリーアルソップ

回答:


4

まず、コンピューターがネットワークから切断されていることを確認します。
次に、ハッキングされたOSを再度起動する前に、ドライブから重要なデータを取得してください。

問題のファイルのタイムスタンプをチェックアウトすることから始めます。多くの場合、それらは正確です。
ワイプされていない場合は、httpdログとauthログでそれらを相互参照します。他の1つがワイプされた場合、それが侵入の手段であることに間違いはありません。それらがまだ巧妙な状態にある場合は、ログからそれらがどのように取得されたかについて、より多くの情報を収集できるかもしれません。

それらがすべてワイプされている場合、あなたはかなりめちゃくちゃです。何が起こったのかを知るには、価値がある以上に時間がかかるでしょう。

これらの2つのサービスが実行されているとおっしゃいましたが、他のすべてがアクセスされるのを防ぐための適切なファイアウォールがありましたか?ポート22でSSHを許可しましたか。あなたのログインは推測しやすいものです; パスワードによるログインを許可しましたか?パスワードログインに実際のレート制限がありましたか?lighttpdで追加のソフトウェアをインストールしましたか?perl; php; cgi; CMSまたは同様のものですか?すべてのソフトウェアの更新バージョンを実行していましたか?実行するすべてのソフトウェアのセキュリティ通知を購読し、すべての通知を慎重に評価して、実行または公開するソフトウェアに適用されるかどうかを確認しますか?


インストールは標準のUbuntu Desktop Edition 10.xであり、セキュリティのために特に何も行われませんでした。デフォルトで十分なファイアウォールがあると想定しました。それは間違っていますか?ポート22でのパスワードログインを許可しましたが、パスワードはランダムな8文字の文字列でした。十分なはずですか?
ジョナタンカルス

デフォルトのファイアウォールは「Wide Open-No Firewall」だと思います。注意深く設定しない限り、何もしません。
クリスS

問題は、どのファイアウォールよりも多くのサービスを実行していたかです。アクセス用に特定のIPを構成するようにファイアウォールがセットアップされていない限り、最初に不要なサービスを実行しないことが最善のファイアウォールです。そして、あなたのネットワーク設定は何でしたか?インターネットに開かれていますか?プライベートネットワーク内ですか?内部ネットワークがインターネットに接続された時点でファイアウォールがありませんでしたか、またはサーバーがDMZにありましたか?
バートシルバース

サーバーはインターネットに直接接続されていました。ルーターとしても使用しました。デフォルトのファイアウォールが広いオープンしている場合は、私がどのようにこれが...起こることができるために十分な、について説明があると思う
はJonatan Kallus

4

これは一種のトピックです。詳細については、Linuxのフォレンジックを検索してください。基本的に、最初にオフライン分析用のドライブのイメージを作成してから、コンピューターをワイプし、クリーンな状態からインストールする必要があります。

そして、すべての付随的なものを覚えておいてください。コンピューターを使用している人はだれでもパスワードが危険にさらされる可能性があります。「クリーンルーム」(隔離されたVM)でパスワードを取得するまで、パスワードを変更したり、オフラインにしたりします。

それ以外の場合は、多くのチェックログ(偽造可能)とアプリケーションのチェック(phpスクリプト、データベース、最新の修正プログラムの更新、他のユーザーによるパスワードの配布)が行われます。

サーバーでフォレンジック作業を行い、ホールをチェックする必要があるため、質問に答える簡単な方法はありません。いくつかの自動化ツールを使用できますが、攻撃者がシステムバイナリをもう信頼できないルート権限を持っている場合、ログを信頼できないことに注意してください。

将来の攻撃に関しては、どの程度安全にするかによって、システムログの保存に使用するシステムにログをリダイレクトすることから始められます。他のアクセスはありません。攻撃のフットプリントを削減します。

また、Tripwireなどのシステムでチェックサムソフトウェアを実行して、ファイルの整合性をチェックします。

そしてもちろん、アップデートを最新の状態に保ち、ルートキットをチェックするスキャンソフトウェアを実行します。

繰り返しになりますが、セキュリティはすぐに使えるものではありません。それ自体も特色になることがあります。階層化セキュリティは、ネットワークに属さないホスト/ IPのチェック、システムへのすべてのアクセスの暗号化、システムで検出された変更の毎日のログの送信、ネットワークへのハニーポットの設定と同様に厳しくなります。奇妙なアクティビティを探します(サーバーがハニーポットコンピューターのポート25に接続しようとしているのはなぜですか?)

何よりもまず、アクティビティを確認する場合は、ディスクイメージを取得してサーバーソフトウェアを再インストールします。最初から。サーバーのバイナリはもはや信頼できません。

編集-SSHを実行しているので私に起こる他のいくつかのこと-denyhostsをインストールしてください。SSHD上のシステムに対する自動化された攻撃がX回試行された後にロックアウトされるように構成できます。また、「クラウド」内の他のdenyhostサーバーから更新してロックアウトされたIPを共有し、自動化された攻撃を最小限に抑えるように構成することもできます。リッスンしているポートを移動することもできます。多くの人が、それは単なるあいまいさによるセキュリティであると指摘していますが、スキャンするボットの数を考えると、これはランダムな侵入の試みを大幅に削減します。


ありがとう!あなたはそれぞれ質問の半分を本当に答えました、私は両方を受け入れられた答えとしてマークできたらと思います。
ジョナタンカルス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.