web-dev-qa-db-ja.com

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

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

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

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

そのコンピュータをワイプして再インストールする前に、セキュリティ違反の原因とそれがいつ行われたのかを知りたいと思います。なので、同じ穴を開けないようにしています。

どのログファイルを調べればよいですか?コンピューター上で実行されているサーバーは、sshdとlighttpdだけです。

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

11
Jonatan Kallus

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

問題のファイルのタイムスタンプをチェックアウトすることから始めます。多くの場合、それらは正確です。
ワイプされていない場合、httpdログと認証ログでそれらを参照します。もう一方がワイプされた場合は、それがエントリーの手段だったに違いありません。それでも問題がない場合は、ログからどのように取得したかに関する詳細な情報を収集できる可能性があります。

それらがすべてワイプされている場合、あなたはかなりねじ込まれています。何が起こったのかを理解するのに、それよりも時間がかかる可能性があります。

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

4
Chris S

これ自体は一種のトピックです。詳細については、Linux Forensicsでグーグルできます。基本的には、まずオフライン分析用にドライブのイメージを作成し、次にコンピューターをワイプして白紙の状態からインストールする必要があります。

そして、すべての付帯事項を覚えておいてください。コンピューターを使用している誰もがパスワードを侵害された可能性があります。 「クリーンルーム」(分離されたVM)に入るまで、パスワードを変更したり、オフラインにしたりします。

それ以外の場合は、ログの確認(偽造の可能性があります)とアプリケーションのチェック(phpスクリプト?データベース?最新の修正のために更新?パスワードを提供する他のユーザー?)

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

将来の攻撃については、どれだけ安全にしたいかに応じて、システムログの保存に使用されるシステムにログをリダイレクトすることから始めます。他のアクセスはなく、攻撃の足跡を減らします。

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

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

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

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

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

4