banner
[面包]MrTwoC

[面包]MrTwoC

你好,欢迎来到这个基于区块链的个人博客 名字:面包 / MrTwoc 爱好:跑步(5/10KM)、咖啡、游戏(MMORPG、FPS、Minecraft、Warframe) 兴趣方向:Rust、区块链、网络安全、量子信息(量子计算)、游戏设计与开发
bilibili
steam
email
github

Linux緊急対応

緊急対応の概要#

企業がハッキング、システムクラッシュ、またはその他の業務の正常な運営に影響を与えるセキュリティインシデントに直面した場合、迅速に対処する必要があります。企業のネットワーク情報システムを最短時間で正常に復旧させ、侵入の出所をさらに調査し、侵入事故の過程を復元し、同時に解決策と予防策を提示して、企業の経済的損失を回復または軽減します。
一般的な緊急対応イベントの分類:
web 侵入:ウェブページのマルウェア、ホームページの改ざん、Web シェル
システム侵入:ウイルス、トロイの木馬、ランサムウェア、リモートコントロールバックドア
ネットワーク攻撃: DDOS 攻撃、DNS ハイジャック、ARP スプーフィング。

基本情報の取得#

この部分の基本情報の取得は、Linux のコマンドやツールを使用して実現できます。この部分には、システム情報の取得、ネットワーク情報の取得、プロセス情報の取得、ユーザー情報の取得、サービス情報の取得、ファイル情報の取得、ファイル権限情報の取得、SUID 情報の取得、現在のユーザーのログイン情報の取得、システムコマンド情報の取得が含まれます。

システム情報の取得#

uname -a 現在のシステムカーネルバージョンを取得
ifconfig 関連するネットワーク情報を取得
netstat -napt 現在のポートの開放状況を確認
lsof -i プロセスとポートの対応関係を表示 (Linux)
netstat -an |grep tcp すべての tcp 接続を確認(Listen 状態を含む)
netstat -an |grep syn すべての tcp 接続を確認(Listen 状態を含む)
top -c プロセスコマンドを迅速に確認
ps -aux プロセスの関連を確認
a:すべてのプログラムを表示、他のユーザーのプログラムも含む
u:ユーザーを主とした形式でプログラムの状況を表示。
x:すべてのプログラムを表示、端末による区別なし
pstree 子プロセスと親プロセスの関係を直感的に表示
cat /proc/ プロセス id/maps そのプロセスに関連するいくつかのファイル(例: so など)を確認
lsof -p 21269 (PID) プロセスの占有情報を確認

ユーザー情報の取得#

cat /etc/passwd 異常ユーザーの存在を確認
awk -F : '$3==0 {print}' /etc/passwd uid が 0 のユーザーを確認
more /etc/sudoers | grep -v "^#|^$" | grep "ALL=(ALL)" sudo 権限を持つアカウントを確認
awk '/$1|$6/{print $1}' /etc/shadow リモートログイン可能なアカウント情報を確認
コマンドラインで root 権限の下、home フォルダ内の内容を確認します。一般的に新しいユーザーは home フォルダ内にユーザー名と同じ名前のフォルダを作成します。

サービス情報の取得#

Linux システム下の各サービスの起動スクリプトは /etc/init.d/ と /etc/xinetd.d ディレクトリに保存されており、これらのディレクトリ内のスクリプトに異常がないか確認できます。
また、定期的なタスクも確認する必要があります。crontab -1 で現在のユーザーの定期的なタスクを検出し、crontab -u ユーザー名 -1 で対応するユーザー名の定期的なタスクを確認できます。

ファイル情報の取得#

ファイル名の特徴に基づいてファイルを検索: grep -rni "www" *
ファイルサイズで検索: find /-size 114k (ファイルサイズ)
作成時間で検索: find ./-mtime 0 #1 日以内に変更されたファイルを検索

パラメータの簡単な紹介:
-ctime -n 現在から n24H 以内に変更されたファイルを検索
-ctime n 現在から n
24H 前、(n+1)*24H 以内に変更されたファイルを検索
-ctime +n 現在から (n+1)*24H 前に変更されたファイルを検索
[alclm] min [最終アクセス | 最終状態変更 | 最終内容変更] min
[alc|m] time [最終アクセス | 最終状態変更 | 最終内容変更] time

パラメータの簡単な紹介:
Linux ファイルのいくつかの時間(find の例):
atime 最後のアクセス時間、ls、more などによって変更されますが、chmod、chown、ls、stat などはこの時間を変更しません。ls -utl を使用してこの時間順に表示できます;
ctime 最後の状態変更時間、chmod、chown などの状態時間が変更されますが、変更時間は変更されません。stat file を使用して確認できます;
mtime 最後の内容変更時間、vi 保存後など、変更時間が変更されると、atime と ctime もそれに応じて変更されます。

ファイル権限情報の取得#

/etc/passwd のデフォルト権限は 644 で、最小権限は 444 です。まずこのファイルの権限を確認して、設定が正しいか確認します:
ls -l /etc/passwd
shadow のデフォルト権限は 600 で、最小権限は 400 です。権限設定が正しいか確認します:
ls -l /etc/shadow

現在のユーザーのログイン情報の取得#

image.png
これらのフィールドの意味を簡単に説明します:
1.USER フィールドは現在ログインしているシステムのユーザー名を表示
2.TTY フィールドはユーザーセッションに割り当てられた端末を表示します。ttyX はコンソールログインを示し、pts/X および ttypX はネットワーク接続を示します
3.FROM フィールドはリモートログインホストの IP アドレスを表示
4.LOGIN@フィールドはログインユーザーのローカル開始時間を表示
5.IDLE フィールドは最近のプロセスの実行開始からの時間の長さを表示
6.JCPU フィールドはそのコンソールまたはネットワーク接続のすべてのプロセスが使用した時間を表示
7.PCPU フィールドは WHAT 欄の現在のプロセスが使用したプロセッサ時間を表示
8.WHAT フィールドはユーザーが実行しているプロセスを表示

システムコマンド情報の取得#

場合によっては、システムコマンドが正しいかどうかを確認する必要があります。ウイルスやトロイの木馬はシステムコマンドに偽装する可能性があるため、ここで元のコマンドを確認する必要があります。
ls -alt /usr/bin/ | head -n 10
image.png
.bash_history を通じてアカウントが実行したシステムコマンドを確認
1、root の履歴コマンド
history
2、/home の各アカウントディレクトリ内の.bash_history を開き、一般アカウントの履歴コマンドにログインの IP アドレス、実行コマンドの時間などの情報を追加します:
1)1 万件のコマンドを保存
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile

Linux ログ分析#

重要なファイル
/var/log/wtmp
/var/log/utmp
/var/log/lastlog—— ログサブシステムの重要なファイルで、ユーザーのログイン状況を記録し、すべてのタイムスタンプを含みます
/var/run/wtmp 各ユーザーのログイン、ログアウト、およびシステム起動を永久に記録
var/run/utmp 現在ログインしている各ユーザーの情報を記録します。ユーザーがシステムにログインおよびログアウトするにつれて変化します
var/log/lastlog 最近の成功したログインイベントと最後の不成功のログインイベントを記録し、log によって生成され、バイナリファイルであるため、lastlog コマンドで確認する必要があります。もし特定のユーザーが一度もログインしていない場合は、「Neverloggedin」と表示されます。bin、daemon、adm、uucp、mail などのシステムアカウントは決してログインすべきではなく、これらのアカウントがログインしていることが判明した場合、システムが侵入されている可能性があります。

以下は一般的なログ messages ログです
RedHat の messages ログの位置は /var/log/messages で、messages には実行情報と認証情報が記録されており、悪意のあるユーザーのログイン行動を追跡するのに非常に役立ちます。例えば、以下は su ログの一例:
Mar 22 11:11:34 abc PAM_pwdb[999] failure;cross(uid=500)->root for su service
cron ログ
RedHat の cron ログはデフォルトで /var/log/cron に記録され、主に crontab のログ記録を行います。
secure ログ
Linux の ssh ログインログは /var/log/secure に保存され、ログに連続して大量のログインエラー情報が表示される場合、リモートホストが ssh ログインパスワードを破る試みをしている可能性があります
Last ログ
last コマンドは最近のユーザーのログイン状況を確認するために使用され、last コマンドは wtmp の内容を読み取ります。Linux には lastlog コマンドも存在し、システム内のすべてのアカウントの最後のログイン情報を確認するために使用され、このコマンドは /var/log/lastlog の内容を読み取ります。
shell ログ
Bash ログはユーザーのディレクトリ内の.bash_history ファイルに保存されており、一部の攻撃者は SSH でログインした後にコマンドを実行する可能性があるため、このログには実行されたコマンドが記録される可能性があります。このログのエントリ数はシェル変数 $HISTSIZE によって制御されます。

一般的なツール
chkrookit:
chkrootkit は UNIX/Linux 用のローカル rootkit チェックツールです。
chkrootkit の公式サイト: http://www.chkrootkit.org/
一般的な操作ガイド:
コンパイル:
tar xvzf chkrootkit.tar.gz
cd chkrootkit-xx
make sense
rootkit を検出: ./chkrootkit -q
Live CD でホストを起動し、元のホストハードディスク(侵入された)を /mnt にマウントすると、-r パラメータを使用して侵入されたホストのルートディレクトリを指定し、オフラインでチェックできます。chkrootkit は最終的に疑わしい項目のみを出力します:
./chkrootkit -q -r /mnt

rkhunter :
Rootkit Hunter の結果は chkrootkit よりも詳細で正確であり、条件があれば Rootkit Hunter を使用してシステムを再確認することをお勧めします。
Rootkit Hunter のダウンロードアクセス: http://sourceforge.net/projects/rkhunter/
一般的な操作ガイド:
Rootkit Hunter をインストール:
tar xvzf rkhunter-xx.tar.gz
cd rkhunter-xx
./install.sh --layout default --install
(カスタムインストールパスを指定する場合は、./install --layout custom /custom_path --install を実行する必要があります)
Rootkit Hunter を使用: rkhunter -check(カスタムインストールディレクトリの場合は、完全なパスを記入する必要があります)

lynis :
ここではこのツールをお勧めします。上記の 2 つはすでにメンテナンスされておらず、このツールは rootkit のチェックだけでなく、Linux のセキュリティベースラインの監査も行うことができます。root 権限で実行することをお勧めします。
プロジェクトアドレス: https://github.com/CISofy/lynis
一般的な操作ガイド:
cd lynis
./lynis audit system
image.png

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。