RPMパッケージの改ざん検出

コンピュータが不正アクセスの被害を受け、システムが改ざんされてしまった場合に、改ざんされたファイルを調査する方法として、RPMパッケージの改ざん検出をする方法があります。
RPMパッケージをインストールする時には、ファイルすべてのMD5チェックサムを保存しています。また、ファイルのサイズ、ユーザー、グループ、モード、更新時刻などについても保存しています。これらの情報を用いて、変更が加えられていないか調べることができます。rpmコマンドで-Vオプションを使用して調査します。
ここでは試しにWEBサーバ(httpd)やメールサーバ(sendmail)など、いくつかのパッケージについて調べてみます。

# rpm -V httpd
S.5….T c /etc/httpd/conf/httpd.conf
.M…UG. /var/log/httpd
 
# rpm -V sendmail
SM5….T c /etc/aliases
S.5….T c /etc/mail/access
S.5….T c /etc/mail/local-host-names
S.5….T c /etc/mail/sendmail.cf
S.5….T c /etc/mail/sendmail.mc
S.5….T c /etc/mail/statistics
SM5….T c /etc/mail/submit.cf

インストール時から変更されているファイルについて、8個の文字と属性マークの形式で変更されている内容が出力されます。
文字の意味

  • S ファイルのサイズ (Size) が異なる
  • M モード (Mode; 許可属性とファイルの種類) が異なる
  • 5 MD5 チェックサムが異なる
  • D デバイス (Device) のメジャー/マイナー番号が一致しない
  • L readLink(2) したパスが一致しない
  • U 所有者 (User) が異なる
  • G グループ (Group) が異なる
  • T 修正時刻 (mTime) が異なる

属性マークの意味

  • c %config 設定ファイル。
  • d %doc 文書ファイル。
  • g %ghost ファ イル(すなわち、パッケージの内容物としては含まれていないファイル)。
  • l %license ライセンスファイル。
  • r %readme readme ファイル。

文字の部分で、”. “(ピリオド) はテストを通過した こと意味し、”?” (クエスチョンマーク) はテストが実施されなかった (すなわち、ファイルパーミッションにより読み込めなかった) ことを意味しています。
オプションをつけることによって検証結果を絞り込むことができます。設定ファイルなどのように管理者によって変更されたファイルを除外することができます。次はそれらのオプションの一部です。

  • –nouser
  • –nogroup
  • –nomtime
  • –nomode
# rpm -V –nouser –nogroup –nomtime –nomode httpd
S.5….. c /etc/httpd/conf/httpd.conf

すべてのパッケージについて検証を行う場合は次のようにします。

# rpm -Va

この出力結果をファイルにリダイレクトして記録しておくとよいでしょう。