ルートキット / マルウェア
ルートキット・バックドア・隠しプロセスの痕跡 — 既に侵害されていることを示す最優先の兆候です。
- 既知のルートキット痕跡 既知のルートキットのファイル・パス・シグネチャの有無。
- ld.so.preload の注入 /etc/ld.so.preload や LD_PRELOAD による共有ライブラリの強制読み込み。
- 隠しプロセス ps の一覧と /proc の不一致(隠された PID)。
- 不審なカーネルモジュール 署名のない、または未知の読み込み済みカーネルモジュール。
- プロミスキャスモードの NIC プロミスキャスモードのネットワークインターフェース。
- ルートキットスキャナーの結果 rkhunter / chkrootkit が導入されている場合の警告。
パッチ / 更新
セキュリティ更新の適用状況と EOL 状態 — 既知の脆弱性への露出です。
- 未適用のセキュリティ更新 未適用のセキュリティ更新の件数(yum / apt)。
- EOL の OS OS リリースがサポート終了かどうか。
- カーネル再起動の保留 稼働中のカーネルが最新のインストール済みカーネルと異なる(再起動保留)。
SSH 設定
リモートアクセスの入口の堅牢化 — root ログイン、パスワード認証、空パスワード。
- root の直接ログイン sshd の PermitRootLogin 設定。
- SSH の空パスワード sshd の PermitEmptyPasswords 設定。
- SSH のパスワード認証 sshd の PasswordAuthentication(鍵認証が推奨)。
- SSH の脆弱なアルゴリズム 旧プロトコルや脆弱な KEX・暗号・MAC の使用。
- SSH の認証試行回数の上限 sshd の MaxAuthTries の値。
アカウント / 権限
権限昇格の攻撃面 — UID0 の重複、空パスワードのアカウント、広すぎる sudo。
- UID 0 の重複 root 以外で UID 0 を持つアカウント。
- 空パスワードのアカウント /etc/shadow でパスワードが空のアカウント。
- パスワードなしの sudo 広範な NOPASSWD の sudo ルール(例: ALL)。
- パスワードの有効期限 パスワードの最長有効期間が設定されているか。
- システムアカウントのシェル ログインシェルを持つシステムアカウント。
ネットワーク露出
外部に公開されたサービス、レガシープロトコル、公開された DB ポート。
- 平文のレガシーサービス telnet・rsh・rlogin・平文 ftp が有効になっている。
- DB ポートの公開 MySQL / PostgreSQL / Redis / Mongo が 0.0.0.0 で待ち受けている。
- 公開されたリスナー 0.0.0.0 / :: で待ち受けているサービス。
ファイル権限
誰でも書き込み可能なファイル、SUID、機微ファイルの権限 — ローカル権限昇格の経路です。
- /etc/shadow の権限 shadow ファイルの所有者・権限(640 / 000)。
- 誰でも書き込み可能なファイル スティッキービットのない、誰でも書き込み可能なファイル/ディレクトリ。
- SUID/SGID の棚卸し 想定外の SUID/SGID バイナリ。
- /etc/passwd の権限 passwd ファイルの権限(644・root 所有)。
- /tmp の実行制限 /tmp が noexec / nosuid でマウントされているか。
システム堅牢化
カーネルとセキュリティモジュールの設定 — ASLR、SELinux、SYN cookies などの基本項目。
- SELinux / AppArmor 強制アクセス制御が enforcing になっているか。
- ASLR kernel.randomize_va_space の値(2 を推奨)。
- TCP SYN cookies net.ipv4.tcp_syncookies が有効か。
- IP フォワーディング net.ipv4.ip_forward(ルーター用途でなければ 0)。
- コアダンプの制限 setuid プロセスおよび全体のコアダンプ制限。
サービス / ファイアウォール
ホストファイアウォールの有効化と不要なサービス — 攻撃面の縮小です。
- ホストファイアウォール firewalld / ufw / nftables が有効か。
- 不要なサービス 必要もなく有効化されているデーモン。
監査 / ログ
auditd と syslog — 侵害後の追跡とフォレンジックの前提条件です。
- 監査デーモン(auditd) auditd が稼働しているか。
- システムログ rsyslog / journald が稼働しているか。