LinuxとWindowsにおけるセキュリティインシデント対応の実践ガイド

セキュリティインシデント対応の基本構成

ネットワークセキュリティインシデント対応は、既発生または予期される脅威に対して監視・分析・協調・対処を行うプロセスであり、組織の情報資産を保護するための重要な仕組みです。このプロセスは、侵入検出、事象診断、攻撃の隔離、迅速な復旧、ネットワーク追跡、コンピュータ証拠収集、自動反応などの技術を活用し、同時に安全管理体制の強化も求められます。

対象となる事象は、自然災害、システム障害、内部/外部の人物による行動、ウイルスやワームなどによる侵害で、情報の機密性、完全性、可用性(CIA)のいずれかを損なう行為として定義されます。一般的に、以下の6段階に分けて対応が行われます:

  1. 準備段階:事前に対象システムの初期状態をスナップショット取得し、応急対応ツールセットを整備。
  2. 検知段階:監視ツールやログ解析を通じて異常を早期発見。
  3. 抑制段階:影響範囲の拡大を防ぐために即時措置を講じる。
  4. 根絶段階:攻撃の原因を特定し、根本的な除去を行う。
  5. 復旧段階:システムの正常稼働を確認し、安全な状態への回復を実施。
  6. 振り返り段階:全プロセスを評価し、改善点を抽出して将来の対応に活かす。

Linux環境でのインシデント対応

Webシェルの探索

悪意のあるスクリプト(例:Webシェル)の存在を確認するためのコマンド:

find /var/www -type f -name "*.php" | xargs grep -l "base64_decode"
find /var/www -type f -name "*.jsp" | xargs grep -l "exec("
find /var/www -type f -name "*.asp" | xargs grep -l "execute("
find /var/www -type f -name "*.aspx" | xargs grep -l "eval("

不審なユーザーおよび権限設定の確認

管理者権限を持つ不審なアカウントの有無を確認:

cat /etc/passwd
cat /etc/sudoers
ls /etc/sudoers.d/

SUIDビットが設定されたファイルを探索:

find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 2>/dev/null

不審なファイルおよび接続の調査

システムの不審な操作を確認:

cd /opt && ls -la
cat /root/.ssh/authorized_keys
cat ~/.ssh/authorized_keys

netstat -anpt | grep ESTABLISHED
grep -rni 'http' /var/www/html/
grep -rni 'href=' /var/www/html/

永続化設定の調査

起動時に自動実行される設定ファイルの確認:

  • ユーザー単位: ~/.bashrc, ~/.profile, ~/.zshrc
  • システム全体: /etc/profile, /etc/bash.bashrc, /etc/rc.local

システム状態の確認

crontab -l
ps aux | grep -v grep
systemctl list-unit-files --type=service
ls /etc/init.d/ /etc/rc*.d/ /etc/systemd/system/
ls ~/.config/autostart/ ~/.config/systemd/user/
history

Linuxログの分析

主なログファイルの位置:

  • /var/log/:システム全体のログ
  • /var/log/apache2/access.log:Apacheアクセスログ
  • /var/log/nginx/access.log:Nginxアクセスログ
  • /var/log/auth.log:認証関連ログ
  • /var/log/redis/redis.log:Redisの操作記録

Redisログから不正操作を検出:

sudo grep 'CONFIG SET' /var/log/redis/redis.log
sudo grep 'SLAVEOF' /var/log/redis/redis.log
sudo grep 'MODULE LOAD' /var/log/redis/redis.log
sudo grep 'Module '\''system'\'' loaded from' /var/log/redis/redis.log

SSHログの解析:

grep 'Failed password' /var/log/auth.log
grep 'Accepted password' /var/log/auth.log
grep 'Accepted ' /var/log/secure | awk '{print $11}'
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

MySQLセキュリティインシデント対応

データベースの異常な操作を検出するためのクエリ:

SELECT '' INTO OUTFILE '/var/www/html/shell.php';
SELECT LOAD_FILE('/etc/passwd');
SHOW GLOBAL VARIABLES LIKE '%secure%';
SELECT * FROM mysql.func;

プラグインディレクトリの確認:

ls /usr/lib/mysql/plugin/
find / -name config.inc.php

Windows環境でのインシデント対応

イベントログの主要なイベントID

  • 4624:成功したログイン
  • 4625:失敗したログイン
  • 4648:憑証を使用したログイン
  • 4672:特権アカウントのログイン
  • 4688:新規プロセス作成
  • 4720:新しいユーザー作成
  • 4719:監査ポリシーの変更
  • 4663:オブジェクトへのアクセス試行
  • 4946:ファイアウォールルールの追加
  • 4700:スケジュールタスクの有効化

ユーザーとアカウント情報の確認

wmic useraccount get Name
net user ユーザー名

レジストリからの調査

起動時に実行されるプログラムの確認:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names

ネットワーク状態の確認

netstat -ano
taskmgr

プロセスの異常動作を確認するには、タスクマネージャーや「火绒剑」などのプロセス監視ツールを利用。

タグ: linux Windows インシデント対応 セキュリティ監査 ログ解析

8月20日 15:59 投稿