Linuxの攻撃者目線からのディレクトリ構造
攻撃者がシステムに侵入した場合、最初に行うことは、システムの情報を収集して状況を把握することです。攻撃者が確認する重要なディレクトリには、システム構成やセキュリティ情報、ユーザーアカウントなどが含まれている場所が多く含まれます。以下は、攻撃者が通常確認する典型的なディレクトリとその理由です。
1. /etc ディレクトリ
理由: システム全体の設定ファイルが格納されており、攻撃者はシステムの構成や設定情報、パスワードファイルを確認します。
よく確認するファイル:
- /etc/passwd: ユーザーアカウント情報を確認するため。これはパスワードが格納されていた古い名残ですが、現在はユーザーアカウント情報が格納されています。パスワード自体は暗号化されており、/etc/shadowに保存されています
- /etc/shadow: 暗号化されたパスワードが格納されています。root権限があれば、ここにアクセスしてパスワードクラッキングを試みることがあります
- /etc/hosts: システムがどのホストと通信しているか、あるいはホストの名前解決設定を確認します
- /etc/ssh/sshd_config: SSHの設定を確認し、リモートログインの設定やポート、認証方法を調べ、SSH経由で持続的なアクセスを確保できるか確認します
2. /home ディレクトリ
理由: 各ユーザーのホームディレクトリに個人データや設定ファイル、SSHキー、パスワードファイルなどが保存されているため、攻撃者はここにアクセスしてユーザーデータを盗む、もしくは後続の攻撃手法を探ります。
よく確認するファイル:
- ~/.ssh/: SSHキーが保存されているため、他のシステムへのアクセスが可能かどうかを調べます。id_rsa などの秘密鍵があれば、別のシステムにログインできる可能性があります
- ~/.bash_history: ユーザーが過去に実行したコマンドの履歴を確認します。これにより、ユーザーの行動やアクセスしたリソースを追跡できます
- ~/.profile, ~/.bashrc: ログイン時に実行される設定ファイルです。攻撃者はここに悪意のあるコマンドを追加して、バックドアを仕掛けたり、シェルの動作を改変したりすることがあります
3. /var ディレクトリ
理由: ログファイルやシステムの動作に関するデータが保存されているため、攻撃者はログを確認・削除して証拠隠滅を図ります。
よく確認するファイル:
- /var/log: システムのログファイルが保存されており、ここを確認して自身の侵入に関するログが残っていないか、あるいは侵入の痕跡を消すことを試みます。具体的には以下のファイルが重要です:
- /var/log/auth.log(もしくは/var/log/secure): ログイン認証に関する情報が記録されます。SSH経由の侵入や、root権限の取得を試みた形跡がないか確認できます
- /var/log/syslog: システム全般の動作ログが記録されます。システムの異常動作やアクセスに関する情報がここに記録されている可能性があります
4. /tmp ディレクトリ
理由: 一時ファイルを保存する場所として、/tmpはしばしば攻撃者が自分のスクリプトやツールを隠して実行するために使用します。また、他のユーザーとの共有領域としても使われるため、ここで一時的なファイルを操作することが可能です。
使い方:
攻撃者はここにマルウェアやバックドア用のスクリプトを一時的に保存して実行します。/tmpはほとんどのシステムで書き込み可能なディレクトリであり、システム再起動後には自動でクリーンアップされるため、一時的な攻撃やデータ隠蔽に便利です。
5. /proc ディレクトリ
理由: システム上で実行中のプロセスに関する情報が格納されています。攻撃者は、システムのプロセスやネットワーク接続情報を調べて、どのようなサービスが動いているか確認します。
よく確認するコマンド:
- cat /proc/cpuinfo: システムのCPU情報を確認して、システムのスペックや性能を把握します
- cat /proc/meminfo: メモリの使用状況を確認して、システムのメモリ状態を把握します
- cat /proc/net/tcp: TCP接続に関する情報を確認して、ネットワーク接続状況や、リモートからの通信を確認します
6. /usr ディレクトリ
理由: ユーザーがインストールしたアプリケーションやツールがここに格納されています。攻撃者は、システムにインストールされたソフトウェアを確認し、脆弱性を持つアプリケーションが存在しないか調べます。
使い方:
- /usr/bin: 一般ユーザーが使用できる実行ファイルが格納されています。攻撃者はシステムにインストールされているソフトウェアを確認し、それに関連する脆弱性を利用するかを検討します
- /usr/local: 手動でインストールされたソフトウェアやツールが含まれるため、特にカスタムソフトウェアの存在を確認して、脆弱なものがないかを探ります
7. /boot ディレクトリ
理由: システムのカーネルやブートローダーに関するファイルが保存されています。ブートローダーやカーネルを改ざんして、システムの起動プロセスに干渉し、攻撃者が持続的なアクセスを得ることを試みることがあります。
攻撃者の行動パターン
1 初期情報収集
- システム情報を収集して、システムのディストリビューション、カーネルバージョン、インストールされているソフトウェアを確認し、脆弱性を探します。uname -a, cat /etc/os-release, ps aux などが使用されます
2 ユーザーアカウント情報の確認:
- /etc/passwd や /etc/shadow を確認して、ユーザーアカウント情報を取得し、特権ユーザーや弱いパスワードがないかを調べます
3 ログイン方法の探索:
- SSHの設定や他のリモートアクセス手段を調べて、持続的なアクセス手段(バックドアやSSHキーの追加など)を確保しようとします
4 証拠の隠滅:
- ログファイルを確認して、自身の活動が記録されていないかをチェックし、証拠隠滅を図ります。具体的には/var/log内のログを改ざん、削除することがあります
まとめ
攻撃者は、システムへの侵入後に主に以下のディレクトリを確認します。
/etc: システム設定やユーザーアカウント、SSH設定などを確認。
/home: ユーザーの個人データやSSHキー、コマンド履歴などを取得。
/var/log: ログファイルを確認して、侵入の痕跡を隠蔽。
/tmp: 一時的なファイルやスクリプトの格納、実行場所として使用。
/proc: システムのプロセスやネットワーク接続情報を確認。
これらのディレクトリには、システムに関する重要な情報が保存されており、攻撃者はこれを利用してシステムへの持続的なアクセスを試みたり、さらなる攻撃を展開します。