はじめに
今回は「もしサーバに侵入されたらどう調査するか?」という観点で、フォレンジック(侵入後調査)の基礎を実践しました。
これまで「防御(fail2banなど)」を中心に学習してきましたが、今回は一歩進んで
侵入されたかどうかを見抜く技術を学びます。
前提環境
- OS:Ubuntu(VPS)
- SSH:ポート変更済(2222)
- 認証:公開鍵認証
- セキュリティ:fail2ban + recidive
フォレンジックの基本
侵入が疑われる場合、確認するポイントは以下の3つです。
① 誰が入ったか
② 何をしたか
③ まだいるか
① ログイン履歴の確認
last -n 10
確認結果
すべて同一IP(自分のIP)のみ
判断ポイント
- 見知らぬIPがないか
- 不自然な時間帯(深夜など)がないか
👉 今回は問題なし
② 現在ログイン中のユーザー
who
確認結果
自分の接続のみ
判断ポイント
知らないユーザーがログインしていないか
👉 問題なし
③ ユーザー一覧の確認
cat /etc/passwd
見るポイント
・見覚えのないユーザー
・ログイン可能なシェル(/bin/bash)
今回の結果
・root → OK
・ubuntu → OK
・s-hashiba → OK
👉 不審ユーザーはなし(想定内)
④ バックドア(authorized_keys)の確認
攻撃者が最もよく行うのが「鍵の埋め込み」です。
自分の鍵確認
cat ~/.ssh/authorized_keys
全ユーザー確認
sudo find /home -name authorized_keys
root確認
sudo cat /root/.ssh/authorized_keys
確認結果
・自分の鍵のみ存在
・不審な鍵なし
👉 バックドアなし
フォレンジックチェックリスト
① last → ログイン履歴
② who → 現在ログイン
③ /etc/passwd → ユーザー
④ authorized_keys → 鍵
⑤ auth.log → 認証ログ
⑥ ps / ss → プロセス・通信
今回の結論
侵入の痕跡なし(正常状態)
学び
今回の学習で重要だったポイントは以下です。
- 攻撃は日常的に発生している
- 防御していても「侵入確認」は必須
- 正常な状態を把握しておくことが重要
- authorized_keysは最重要チェックポイント
まとめ
侵入されていないことを証明することもセキュリティ
おわりに
今回は「侵入されていないこと」を確認しましたが、次回はあえて疑似的に侵入状態を作り、
- 不審ユーザー
- 不正な鍵
- 異常なログ
を実際に検知するトレーニングを行う予定です。

