2026年9月はAI関連サービスの認証情報漏えい・侵害の報道が相次ぎました。狙われるのはクラウドのAPIキーだけでなく、自分のLinuxサーバーの設定ファイルも同じです。侵入者は~/.sshや/etc配下の設定ファイルを書き換えて居座ろうとすることがあります。この記事ではfindとstatコマンドを使い、「誰でも書き込める設定ファイル」「身に覚えのない所有者変更・更新日時」を自分の手で洗い出す方法を、実際の出力例つきで解説します。
なぜ「ログイン試行」だけでなく「ファイルの中身」も見るべきか
Linux Foundationが2026年9月10日に公開した調査では、オープンソースのCVE検出件数が2026年第1四半期に前年同期比394%も急増したと報告されています。攻撃側の自動化が進んでいるということは、たとえログイン試行のブロックに成功していても、既に何らかの経路で入り込まれた後に設定ファイルだけ書き換えられているケースを見落とす可能性があるということです。
SSHのログイン試行を見る方法は別記事(今誰がSSHに入っているか確認2026年9月)で扱いました。今回はその一歩先、「実際にファイルが触られていないか」を確認します。難しいツールは不要で、Ubuntu/Debianに標準で入っているfindとstatだけで点検できます。
find で「誰でも書き込める」設定ファイルを洗い出す
世界書き込み可能なファイルを探す
まず、本来は管理者しか書けないはずなのに、誰でも書き込める状態になっているファイルがないかを確認します。これは設定変更を伴わない読み取り専用の調査で、sudoは不要です(一部の権限がないディレクトリは結果に出ないだけで、エラーは無視して問題ありません)。
find /etc -xdev -type f -perm -o+w 2>/dev/null「何を見ているか」:/etc配下のファイルのうち、パーミッションの「その他(o)」に書き込みビット(w)が立っているものを探しています。-xdevは別のディスクやネットワークマウントに脱線しないための指定、2>/dev/nullは権限エラーのメッセージを非表示にする指定です。
正常な判断基準:何も出力されない(=該当なし)のが正常です。もし次のような行が出た場合は要注意です。
/etc/cron.d/oldjob
/etc/ssh/sshd_config.d/99-legacy.conf設定ファイルやcronジョブの定義が誰でも書き込める状態は、他のユーザーやプロセスに乗っ取られると設定を差し替えられてしまうため異常です。
持ち主が存在しないファイルを探す
ユーザーを削除した後に残ったファイルは正規の運用でも発生しますが、身に覚えのないタイミングで出てきた場合は不審です。
find / -xdev \( -nouser -o -nogroup \) -type f 2>/dev/null「何を見ているか」:所有者(ユーザーIDまたはグループID)が/etc/passwd・/etc/groupに存在しないファイルを探しています。攻撃者が一時的に作ったユーザーで書き込み、そのユーザーを消して痕跡を消そうとした場合にここに引っかかることがあります。
正常な判断基準:出力なしが正常。出てきた場合は、そのファイルの内容(catやfileコマンド)とタイムスタンプを確認し、身に覚えがなければ次の章の手順で対処します。
stat で所有者・パーミッション・更新日時の異常を見分ける
重要ファイルを一括チェックする
次に、狙われやすい代表的なファイルの所有者・権限・更新日時をまとめて確認します。
stat -c '%A %U:%G %Y %n' /etc/passwd /etc/shadow /etc/sudoers /etc/ssh/sshd_config ~/.ssh/authorized_keys「何を見ているか」:%Aがパーミッション(rwx表記)、%U:%Gが所有者とグループ、%Yが最終更新日時(UNIX時間)、%nがファイル名です。出力例は次のようになります(ユーザー名・ホスト名は説明用の仮の値です)。
-rw-r--r-- root:root 1690000000 /etc/passwd
-rw-r----- root:shadow 1690000000 /etc/shadow
-r--r----- root:root 1690000000 /etc/sudoers
-rw-r--r-- root:root 1690000000 /etc/ssh/sshd_config
-rw------- username:username 1758400000 /home/username/.ssh/authorized_keys正常/異常の見分け方:
/etc/passwd・/etc/ssh/sshd_configの所有者がroot:root以外になっている → 異常。書き換え可能な別ユーザーに所有権が移った可能性があります/etc/shadowや/etc/sudoersのパーミッションにrやwが想定以上に付いている(例:-rw-r--r--になっている等、他人が読める状態) → 異常。パスワードハッシュや管理者権限の設定が漏れますauthorized_keysの更新日時(%Yの数値、または%yオプションに変えれば人間が読める日付で表示可能)が、自分で鍵を追加・削除した覚えのある日と一致しない → 異常。中身をcat ~/.ssh/authorized_keysで確認し、見覚えのない公開鍵が増えていないか確かめる
%Yを人間が読める日時にしたい場合はstat -c '%y %n'のようにy(小文字)に変えると2026-09-15 10:22:11.000000000 +0900のような表記になります。
最近変更されたファイルだけを絞り込む
「何かが変わった日」に心当たりがある場合は、期間を絞って変更ファイルを洗い出すほうが効率的です。
find /etc -xdev -type f -mtime -7 2>/dev/null「何を見ているか」:/etc配下で過去7日以内に更新されたファイルの一覧です。-mtime -1にすれば過去24時間以内に絞れます。
判断基準:apt upgradeや自分の設定変更で更新されたファイルが混じるのは正常です。一覧に出たファイルをひとつずつ見て、「自分が触った覚えのないファイル」が残るかどうかで判断してください。覚えのないものが残った場合は、前の項のstatで所有者とパーミッションも確認します。
異常が見つかったときの対処
ここまでの手順はすべて読み取りのみで、設定変更は一切発生しません。異常が見つかった場合だけ、以下の手順に進みます。
Debian/Ubuntu:パッケージのファイルを検証する
sudo apt install debsums
debsums -c「何を見ているか」:パッケージインストール時に記録されたチェックサムと、現在のファイルの中身を比較します。sudoが必要ですが、ファイルの中身は変更しません。出力が空なら改ざんなし、パスが出力されればそのファイルがパッケージ配布時から変更されています。RHEL系(CentOS・AlmaLinux等)では同等のチェックをrpm -Vaで行えます。
権限・所有者を元に戻す
世界書き込み可能になっていたファイルは、元の権限に戻します(元の値が分からない場合、多くの設定ファイルは644=所有者のみ書き込み可・他は読み取りのみが標準です)。
sudo chmod 644 /etc/ssh/sshd_config
sudo chown root:root /etc/ssh/sshd_configこれは設定変更を伴う操作です。実行前にcp /etc/ssh/sshd_config /etc/ssh/sshd_config.bakのようにバックアップを取っておけば、意図しない副作用が出た場合もすぐ戻せます。authorized_keysに見覚えのない鍵があった場合は、該当行を削除してからchmod 600 ~/.ssh/authorized_keysで権限を締め直してください。
PAM(ログイン認証の仕組み)自体が書き換えられていないかは、別記事(PAMバックドアPlague点検2026年9月最新)でも具体的な確認方法を扱っています。あわせて、動的リンカの設定ファイルが悪用される手口の点検はld.so.preload点検|Auto-Color2026/9を参照してください。
定期点検として仕組み化する際の注意
手動で気づいたときだけ実行するのではなく、上記のコマンドを週1回など定期的に回すと変化に気づきやすくなります。ただし自動化する場合は、同じジョブが重複実行されないよう注意が必要です。実行の仕組み自体もcronではなくsystemdのtimerで管理するほうが、PCがスリープしていた場合の取りこぼしにも強くなります(詳しくはsystemd timer移行で二重実行を防ぐ2026年9月を参照)。ディストリビューションはDebian 13系(最新は2026年9月12日リリースのDebian 13.7)やUbuntu 26.04 LTS系を前提にしていますが、コマンド自体はどちらでも同じように使えます。OpenSSHは2026年8月11日リリースの10.5でも設定ファイルの扱い自体に変更はなく、この点検方法は現行バージョンでそのまま有効です。
関連する選択肢
毎日決まった時刻にスクリプトを動かすだけなら、共有のレンタルサーバーでも足ります。cronが使えるプランを選べば、自分でOSを管理する必要はありません。
※ 広告を含みます(A8.net)。リンク経由でお申し込みがあった場合、手数料を受け取ることがあります。
まとめ
find・statはどちらもUbuntu/Debianに標準で入っている読み取り専用のコマンドで、世界書き込み可能なファイル・所有者不明のファイル・想定外の所有者やパーミッション・最近の更新日時を手軽に確認できます。異常が見つかった場合のみ、debsumsでの検証とバックアップを取ったうえでのchmod/chownという設定変更に進む、という順序を守れば初心者でも安全に点検できます。2026年9月のAI関連サービスの認証情報漏えい報道を踏まえ、月1回でもこの手順を回してみてください。