【実践】侵入後の調査(フォレンジック入門)をやってみた|ユーザー・鍵・ログの確認方法

Linux

はじめに

今回は「もしサーバに侵入されたらどう調査するか?」という観点で、フォレンジック(侵入後調査)の基礎を実践しました。

これまで「防御(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は最重要チェックポイント

まとめ

侵入されていないことを証明することもセキュリティ

おわりに

今回は「侵入されていないこと」を確認しましたが、次回はあえて疑似的に侵入状態を作り、

  • 不審ユーザー
  • 不正な鍵
  • 異常なログ

を実際に検知するトレーニングを行う予定です。