異常なエントリのシステムログ分析
このステップでは、システムログを分析して不審なアクティビティの証拠を見つける方法を学びます。システムログはシステムで発生したイベントの記録であり、セキュリティ監視およびフォレンジック分析のための重要な情報源です。ここでは、ユーザーログインと権限昇格を追跡する認証ログに焦点を当て、grep、tail、journalctl などの標準的な Linux ツールを使用して異常なエントリを見つけます。
Linux システムのほとんどのシステムログは /var/log ディレクトリに保存されています。セキュリティにとって最も重要なものの 1 つは /var/log/auth.log で、SSH ログインや sudo コマンドの使用を含む、認証関連のイベントを記録します。まず、tail コマンドを使用してこのファイルの最後の数行を表示することから始めましょう。このファイルは保護されているため、sudo が必要です。
sudo tail /var/log/auth.log
タイムスタンプ付きのエントリのシリーズが表示されます。フォーマットには通常、日付、時刻、ホスト名、ログを生成したプロセス、およびイベントメッセージが含まれます。
Jul 22 10:30:01 labex-vm sudo: labex : TTY=pts/0 ; PWD=/home/labex/project ; USER=root ; COMMAND=/usr/bin/tail /var/log/auth.log
Jul 22 10:30:01 labex-vm sudo: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
Jul 22 10:30:01 labex-vm sudo: pam_unix(sudo:session): session closed for user root
次に、一般的な不審なイベントであるログイン試行の失敗をシミュレートしましょう。攻撃者は、有効なユーザー名または一般的なユーザー名のパスワードを推測しようとすることがよくあります。存在しないユーザー名 (baduser) を使用して、自分のマシン (localhost) に SSH 接続しようとすることでこれをシミュレートできます。
ssh baduser@localhost
システムはパスワードを要求します (パスワードとして labex を使用できます)。ユーザーが存在しないため、どのパスワードでも失敗します。パスワードプロンプトをキャンセルしてターミナルに戻るには、Ctrl+C を押すだけです。接続試行は失敗しますが、ログに記録されます。
次に、証拠を探しましょう。「failed」という単語を含む行を auth.log ファイルからフィルタリングするために grep コマンドを使用できます。これにより、失敗したイベントを迅速に特定できます。
sudo grep "Failed" /var/log/auth.log
出力には、SSH ログイン試行の失敗のログエントリが明確に表示され、これは潜在的な侵入試行の強力な兆候です。
Jul 22 10:35:15 labex-vm sshd[12345]: Failed password for invalid user baduser from 127.0.0.1 port 54321 ssh2
systemd を使用する最新の Linux システムには、journald によって管理される中央ログシステムもあります。journalctl コマンドは、これらのログをクエリするための強力なツールです。sshd プロセスからのメッセージを検索して、同じログイン失敗イベントを見つけましょう。システムレベルのログを表示するには sudo を使用する必要があることに注意してください。
sudo journalctl | grep sshd
出力 (矢印キーを使用し、終了するには q を押します) をスクロールすると、同じ「Failed password」エントリが見つかります。さらに簡単にするために、メッセージの優先度でフィルタリングできます。journalctl に、sshd サービスのエラー (err) 以上の優先度を持つエントリのみを表示するように要求しましょう。
sudo journalctl -p err | grep sshd
このコマンドは、エラー状態のみの非常に簡潔なビューを提供し、問題の特定に非常に効率的です。
-- Logs begin at ... --
Jul 22 10:35:15 labex-vm sshd[12345]: Failed password for invalid user baduser from 127.0.0.1 port 54321 ssh2
-- End of logs --
最後に、logger コマンドを使用してメッセージを手動でログに挿入することもできます。これは、カスタムスクリプトがセキュリティイベントを報告するのに役立ちます。カスタムアラートを作成しましょう。
logger "SECURITY-ALERT: Unauthorized file access detected in /etc"
次に、システムログでこの特定のアラートを検索します。
sudo grep "SECURITY-ALERT" /var/log/syslog
カスタムメッセージが表示され、独自の監視をシステムのログ機能と統合する方法を示しています。
Jul 22 10:40:00 labex-vm labex: SECURITY-ALERT: Unauthorized file access detected in /etc
これで、システムログを操作して異常で潜在的に悪意のあるアクティビティの証拠を見つけるための基本を学びました。