web-dev-qa-db-ja.com

サイトがハッキングされた後にログを分析する方法

Webプロジェクトの1つがハッキングされました。 Malefactorは、プロジェクト内のいくつかのテンプレートファイルとWebフレームワークの1つのコアファイル(有名なphpフレームワークの1つ)を変更しました。破損したファイルをすべてgitで見つけて、元に戻しました。だから今、私は弱点を見つける必要があります。

高い確率で、それはftpまたはsshパスワードの誘拐ではないと言うことができます。ホスティングプロバイダーのサポートスペシャリスト(ログ分析後)は、それがコードのセキュリティホールであると述べました。

私の質問:

1)Apacheのアクセスログとエラーログを確認するには、どのツールを使用する必要がありますか? (私たちのサーバーディストリビューションはDebianです)。

2)疑わしい行の検出のヒントをログに書き込むことができますか?たぶん、いくつかの有用な正規表現やテクニックのチュートリアルや入門書ですか?

3)「通常のユーザーの行動」をログ内の疑わしいものから区別する方法。

4)Apacheでの攻撃を防ぐ方法はありますか?

ご協力いただきありがとうございます。

4
Vasiliy Toporov

HopelessNOObのように、これについて専門家の助けを借りることをお勧めします。

システムが危険にさらされていることがわかっている場合、システムに保存されているanyデータに依存することはできません。さらに、侵害がHTTPを介したものである場合、何が起こったのかを特定するのに十分な情報が標準ログにない可能性があります。これが、Webサーバーのセキュリティに真剣に取り組んでいる人々が、mod_securityなどを使用してより詳細なログを取得し、ホストベースのIDSを実行して侵害を検出する理由です。

ホスティングプロバイダーのサポートスペシャリスト(ログ分析後)は、それがコードのセキュリティホールであると述べました

彼/彼女がその主張をすることができるならば、彼/彼女はあなたの質問への答えをすでに知っている必要があります-それまたは主張は立証されておらず、彼らは本当に彼らが彼らのものに何も悪いことを見つけることができなかったと言うことを意味します。

あなたの目的はあなたのサイトをオンラインで安全に戻すことです。サイトを安全にするには、すべての穴を塞ぐ必要がありますが、サイトを危険にさらすには、1つの穴を見つけるだけで済みます。サイトに少なくとも1つの穴があることはわかっていますが、修正する必要がありますany =存在する-つまり、サイトのセキュリティに対して非常に異なるアプローチを取る必要があります。今回悪用された脆弱性を特定して修正することはできますが、これが孤立したインシデントであると確信するためのプロセスとスキルが整っていないことを示す証拠があります。

7
symcbean

JennyDから良い回答がありましたが、別のアプローチをお勧めします。

専門家を雇う。

実際に生活のためにこれを行い、ハッキングされた方法とまだ脆弱な場所を特定するために、はるかに優れた、はるかに迅速な仕事をするセキュリティ専門家がいます。地元のセキュリティ市場をチェックしてください。ログを分析し、システムで少なくとも基本的な侵入と脆弱性スキャンを実行するためのコンサルティングサービスで適切な価格を見つけることができない場合は、驚きます。 )。あなたは自分自身を守るためにあなたがしなければならないことのはるかに完全な全体像を得るでしょう、そしてあなたはあなたの専門分野の中であなたの時間を過ごすことに戻ることができるでしょう。

5
HopelessN00b

1)私はそれらのほとんどを自分で使用していませんが、あなたはあなたを助けるためにいくつかのソフトウェアのために これらのリンク を見ることができます。ただし、変更されたファイルのタイムスタンプがある場合は、それらの日付と時刻のログファイルを確認することから始めます。変更されたファイルの1つのファイル名のgrep。それはあなたに悪意のある人のIPアドレスを与えるはずです、そしてあなたはそれのためにgrepを始めることができます。

2と3)あなたがする必要がある最初のことはあなた自身のサイトのために何が正常であるかを見つけることです。そのための1つの方法は、awstatなどの標準的な分析ツールでログを毎日確認することです。あなたの主な問題は、あなたがあなたのサイトにとって何が正常であるかを知らないということであるように見えます、それであなたは何が異常であるかを知る方法がありません。

4)もちろん軍拡競争ですが、いくつかの攻撃を防ぐ方法があります。しかし、最も一般的なエクスプロイトを削除するだけで、ランダム攻撃の標的になる可能性がはるかに低くなります。インストールに、OS、Apache、およびphp用の最新のセキュリティパッチが適用されていることを確認する必要があります。 mod_security も確認する必要があります。これにより、疑わしいアクティビティをログに記録したり、たとえばクライアントがUser-Agentなどのヘッダーを送信する必要がありますが、多くのクラックツールでは送信されません。

また、可能であれば、ログ、特にエラーログとmod_securityログを別のサーバーに送信することを検討することをお勧めします。そうすれば、誰かがサーバーにアクセスしたとしても、ログファイルを編集できなくなります。トラックを非表示にします。

5
Jenny D

ここでのガイダンスに加えて、これらのトピックはセキュリティスタック交換について詳細に説明されています。 Apacheの強化に関する質問を読んでください: https://security.stackexchange.com/questions/77/485

4
Rory Alsop

LORG -- https://github.com/jensvoid/lorg --Apache access_logsの攻撃後のフォレンジック用に設計されたPHP-CLIツール(GPL)を確認することをお勧めします。いくつかの方法(署名ベース、統計、学習ベース)を使用して、HTTPDログファイル内のWebアプリケーションに対する攻撃を検出します。

これらの疑わしいアクティビティをセッションにグループ化しようとし、ロボット検出技術を適用します(通常、攻撃者は自動スキャンを実行し、後で戻って検出内容を手動で確認する場合があります)。また、ジオマッピングとDNSBLルックアップを使用して、攻撃が特定の国またはボットネットから発生したかどうかを確認します。

その後、さまざまなメカニズムを選択して、攻撃が成功したかどうかを判断できます。アクティブなリプレイと署名の照合、HTTP応答コード、または応答のサイズの範囲外(送信バイト数フィールド)。

明らかに、ログファイルが変更または削除された場合、状況が困難になる可能性があります(LORGには、アクティビティのない異常な時間枠を見つけるために単純な改ざんチェックを実行するオプションがありますが、これは実際には役に立ちません)。

攻撃を防ぐことに関しては、mod_securityを使用します(ホスティングプロバイダーが許可している場合)。

3
Keen

1)Apacheのアクセスログとエラーログを確認するには、どのツールを使用する必要がありますか? (私たちのサーバーディストリビューションはDebianです)。

以下のリンクにあるsyslogといくつかのツールのマニュアルページを確認してください。

2)疑わしい行の検出のヒントをログに書き込むことができますか?たぶん、いくつかの有用な正規表現やテクニックのチュートリアルや入門書ですか?

これはもう少し複雑で、それ自体が大きなトピックになりますが、始めるために、上記のツールがログ分析のために何をするのか、そしてそれらが何を探しているのかを調べます。以下のリンクは、学習を開始するための一般的な方向を示しているはずです。

3)「通常のユーザーの行動」をログ内の疑わしいものから区別する方法。

練習、練習、練習。また、一連のツールをよく学び、「内部」で何が起こっているのかを理解します

4)Apacheでの攻撃を防ぐ方法はありますか?

いいえ。私たちが住んでいる世界は混沌としている。人々が常により少ないお金で新しい機能を望んでいる限り、コーナーがカットされ、バッファがオーバーフローします。これにより、Apacheソフトウェア自体はおそらくかなり安全です(高度に監査されています)が、使用するライブラリと、誤ってまたは無意識に設定したアクセス許可に翻弄されます。

最後に、お金があり、重要な目的でサイトを使用している場合、またはサイトから得られる収益に依存している場合は、他のコメントに記載されているように専門家を雇うのが最善の方法です。

余談ですが、OPが専門家を雇うことを示しているほとんどの回答に非常に失望しています。これは答えの前に置くための適切なアドバイスかもしれませんが、OPの注意深く配置された質問のいずれにも答えません。

1
rmoro