Linuxサーバ侵入緊急対応記録(概要)

Linuxサーバ侵入緊急対応記録(概要)

最近、お客様から支援の依頼を受けました。管理されている通信コンピュータ ルームから、サーバーの 1 つが外部に攻撃トラフィックを送信していることが検出されたという情報が届きました。問題の解決にご協力いただければ幸いです。

1. セキュリティインシデントを確認する

状況は緊急であり、まず最初にセキュリティインシデントの真偽を確認することが重要です。サーバー運用保守担当者と連絡を取ったところ、業務はイントラネット内でのみ適用されていたが、実際にはサーバーはパブリックネットワークに公開されており、パブリックネットワーク上で直接 ping を実行でき、22 番のリモート ポートが開かれていたことが判明しました。この時点で、サーバーがハッキングされたことが基本的に確認できます。

2. ログ分析

ハッカーはSSHブルートフォース攻撃によってサーバーにログインした可能性があると推測されています。 /var/log のログを確認すると、ほとんどのログ情報が消去されていますが、セキュアログは破棄されていません。大量の SSH ログイン失敗ログが見られ、複数回のログイン失敗後に root ユーザーがログインに成功した記録があり、ブルートフォースクラッキングの特徴を満たしています。

脅威インテリジェンスを確認したところ、ブルートフォース攻撃に使用された複数の IP アドレスにはすべて悪意のあるスキャン動作が見られたことが判明しました。

3. システム分析

主要なシステム構成、アカウント、履歴記録などをチェックして、システムへの影響を確認します。

/root/.bash_history 内の履歴レコードがクリアされており、その他の異常は見られなかったことが判明しました。

4. プロセス分析

現在アクティブなプロセス、ネットワーク接続、スタートアップ項目、スケジュールされたタスクなどを確認します。

以下の問題が見つかりました:

1) ネットワーク接続異常

システムのネットワーク接続を確認したところ、外部ネットワーク接続を持つトロイの木馬バックドアプログラムte18が存在することが判明しました。

このファイルはオンラインで確認したところ、Linux のバックドア プログラムであることが判明しました。

2) 異常なスケジュールタスク

crontab のスケジュールされたタスクを確認すると、異常なスケジュールされたタスクがあることがわかります。

スケジュールされたタスクの実行ファイルと起動パラメータを分析する

オンラインチェックとキル関連のファイルはマイニングプログラムです

マイニングプールの設定ファイルを表示する

5. 文書分析

ハッカーによって埋め込まれた悪意のあるコードと関連する操作ファイルが /root ディレクトリに見つかりました。

ハッカーは、マイニング関連のプログラムを保存するために隠しフォルダ /root/.s/ を作成します。

6. 裏口調査

最後に、RKHunterを使用してシステムのバックドアをスキャンします。

VII. 結論

上記の分析により、ハッカーが SSH ブラストを通じてルートユーザーのパスワードを解読し、システムにログインしてマイニング プログラムとトロイの木馬バックドアを埋め込んだことが判明しました。

強化案

1) crontab のスケジュールされたタスクを削除し (ファイル /var/spool/cron/root の内容を削除)、ハッカーがサーバーに埋め込んだ悪意のあるファイルを削除します。

2) すべてのシステム ユーザーのパスワードを変更し、パスワードの複雑さの要件を満たします (大文字と小文字、数字、特殊記号の組み合わせを含む 8 文字以上)。

3) 必要がない場合は、SSH ポートが外部ネットワークに開かれないようにするか、デフォルトの SSH ポートを変更して許可されるアクセス IP を制限します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linuxサーバーにハッキングしてトロイの木馬プログラムを削除した体験を記録する
  • 方法: UNIX および Linux サーバーのハッキングを始める

<<:  GolangでMySQLデータベースを操作するための実装コード

>>:  Reactにおける制御されたコンポーネントと制御されていないコンポーネントの簡単な分析

推薦する

WeChatアプレットのスクロールビューが左右連動効果を実現

WeChatアプレットはスクロールビューを使用して左右のリンクを実現します。参考までに、具体的な内容...

Dockerを使用してコンテナリソースを制限する方法

覗き見の問題サーバーでは、IIS サービスが複数のサイトを展開していると仮定すると、サイトの 1 つ...

jconsole を使用してリモート Tomcat サービスを監視する方法

JConsoleとはJConsole は Java 5 で導入されました。 JConsole は、コ...

Docker管理に関する断片的な知識のまとめ

目次1. 概要2. 応用例2.1、Docker コンテナ分離名前空間2.2. Docker のフリー...

マークアップ言語 - HTML を学んだ後に何を学ぶべきか?

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

UnityはMySQLに接続し、テーブルデータの実装コードを読み取ります

表は以下のとおりです。 Unity が読み取って呼び出すときのコード: データベース内の別のテーブル...

Linux でのソース パッケージ インストールのサービス管理

目次1. ソースパッケージサービスの起動管理2. ソースパッケージサービスのセルフスタート管理3. ...

JavaScriptはボタンをクリックして4桁のランダムな検証コードを生成します

この記事の例では、ボタンをクリックすることで4桁のランダムな検証コードを生成するjsの具体的なコード...

Mysql一時テーブルの原理と作成方法の分析

この記事は主にMysql一時テーブルの原理と作成方法を紹介します。この記事のサンプルコードは非常に詳...

Ubuntu 上の MySQL における中国語文字化け問題の解決方法

問題を見つける最近 Django を学習しているのですが、MySQL データと組み合わせてデータを挿...

Linux サーバーでフォルダー、ファイル、解凍コマンドを削除する方法

1. フォルダを削除する例: rm -rf /usr/java /usr/javaディレクトリとその...

Reactは二次的連鎖効果(階段効果)を実現する

この記事では、二次リンク効果を実現するためのReactの具体的なコードを参考までに共有します。具体的...

JDBC-idea で mysql をインポートして java jar パッケージに接続する (mac)

序文1. この記事ではMySQL 8.0バージョンを使用していますバージョン5.0と比較すると、パッ...

js 配列 fill() 充填メソッド

目次1. fill() 構文2. fill() の使用3. まとめ序文:配列の初期化方法についてはよ...

JavaScript es6 における var、let、const の違いの詳細な説明

まず、よくある質問は、ECMAScript と JavaScript の関係は何ですか? ECMAS...