• 投稿者:
  • 投稿カテゴリー:OS
  • 投稿の最終変更日:2025年1月21日

Linuxシステムでファイルの改竄か自動アップデートかを判断する方法

RHEL9を含むLinuxシステムでファイルの改竄が自動アップデートによるものか、改竄によるものかを判断するための詳細な手順を説明します。この方法では、システムのログやファイルの変更履歴を調査し、改竄またはアップデートの原因を正確に特定することができます。


1. ファイル変更の検出

ファイルが改竄されたか、アップデートで変更されたかを判別するために、まずはファイル自体の状態を確認します。

1.1. ファイルのハッシュ値を確認する

ファイルの整合性を確認する最も基本的な方法は、そのハッシュ値を比較することです。ファイルが改竄されている場合、その内容が変更されているため、ハッシュ値も異なります。以下のコマンドを使用して、ファイルのSHA-256ハッシュ値を取得できます。

sha256sum /path/to/file

これにより、指定したファイルのハッシュ値が表示されます。以前に記録したハッシュ値(手動で記録した、またはセキュリティツールが保存したもの)と比較してみてください。異なる場合、そのファイルは変更されています。

保存されている元のハッシュ値を確認する方法として、次のような場所を調べます:

  • パッケージマネージャのデータベース(例:RPM、DPKG)
  • セキュリティツール(例:AIDE、Tripwire)
  • 手動で記録したハッシュ値

2. 自動アップデートによる変更かを確認

次に、システムが自動的にアップデートを実行したかを確認します。もしアップデートが原因であれば、システムのログや自動アップデートの設定にその痕跡が残ります。

2.1. パッケージマネージャのログを確認

自動アップデートが行われた場合、その履歴はパッケージマネージャのログに記録されます。各ディストリビューションによってログの場所が異なるため、以下のコマンドでログを確認してください。

  • Debian/Ubuntucat /var/log/apt/history.log このログファイルには、パッケージのインストール、削除、アップデートの履歴が記録されます。
  • CentOS/RHEL/Fedoracat /var/log/yum.log または、dnfを使用している場合は以下のコマンドを実行します: journalctl | grep dnf
  • Arch Linuxcat /var/log/pacman.log

これらのログファイルを確認し、特定のパッケージが更新された履歴があるかを確認します。もし、問題のファイルを含むパッケージが更新されていれば、それは自動アップデートによる変更です。

2.2. 自動アップデート設定の確認

自動アップデートが有効になっているかどうかを確認するために、システム設定ファイルを確認します。

  • Debian/Ubuntucat /etc/apt/apt.conf.d/20auto-upgrades このファイルに APT::Periodic::Unattended-Upgrade "1"; の設定があれば、自動アップデートが有効です。
  • CentOS/RHELcat /etc/yum/yum-cron.conf このファイルで update_cmd が有効になっている場合、システムが自動的にアップデートを実行するように設定されています。
スポンサーリンク

3. 改竄の兆候を確認

自動アップデートによる変更ではない場合、改竄の兆候を探る必要があります。改竄が発生している場合、その痕跡を確認するためにシステムログや監査ツールを使用します。

3.1. システムログの確認

改竄の兆候を確認するために、以下のセキュリティログを調査します:

  • Debian系cat /var/log/auth.log
  • RHEL系cat /var/log/secure

これらのログには、ログインや権限昇格の情報が記録されます。不正アクセスや異常な活動がないか確認してください。

3.2. ファイルのタイムスタンプを確認

ファイルのタイムスタンプを確認することでも、変更が行われた日時を調べることができます。以下のコマンドを使って、ファイルの詳細なタイムスタンプを確認します:

stat /path/to/file

Modify(変更日時)と Change(メタデータ変更日時)を確認します。もし意図しないタイミングで変更されていれば、それは改竄の兆候かもしれません。

3.3. ファイル監査ツールを使用

AIDEやTripwireなどのツールを使うことで、改竄を検出することができます。これらのツールは、ファイルシステムの状態を定期的にチェックし、変更があった場合に警告を出します。

  • AIDEを使った検査
    • AIDEのインストール: sudo apt install aide # Debian系 sudo dnf install aide # RHEL系
    • 初期データベースの作成: aide --init mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
    • 整合性チェック: aide --check

これにより、変更されたファイルやその内容を検出することができます。

4. RHEL9での確認方法

RHEL9では、dnfrpmを使用して自動アップデートと改竄を調べることができます。

4.1. rpm -Vを使って整合性を確認

RHEL9では、rpmを使ってインストールされたパッケージの整合性を確認できます。例えば、openssh-serverパッケージをチェックする場合、以下のコマンドを実行します:

rpm -V openssh-server

出力に S(サイズ変更)、M(パーミッション変更)、5(ハッシュ値変更)などのフラグが表示された場合、そのファイルは変更されています。

4.2. dnf historyでアップデート履歴を確認

dnfで最近のアップデート履歴を確認します。更新履歴が表示されるので、特定のID番号で詳細を調べることができます。

dnf history

特定のアップデートIDについて詳細情報を表示するには、次のコマンドを実行します:

dnf history info <ID>

これにより、そのアップデートがどのパッケージを更新したか、どのファイルが変更されたかを確認できます。

スポンサーリンク

5. 改竄の可能性がある場合の対応方法

もし改竄が疑われる場合、速やかに以下の対応を行います。

  1. ネットワークを遮断:改竄の原因が外部からの攻撃である可能性があるため、まずネットワーク接続を切断し、システムを保護します。
  2. ログの詳細確認auditdや他の監査ツールを利用して、詳細なログを確認し、どのプロセスやユーザーが変更を行ったかを特定します。
  3. バックアップからの復元:改竄の範囲が広がっている場合、バックアップからシステムを復元することを検討します。
  4. セキュリティパッチの適用:システムに脆弱性があった場合、迅速にセキュリティパッチ

を適用します。


以上の方法で、自動アップデートと改竄の原因を正確に特定することができます。