バイナリファイルが勝手に書き換わってしまう現象

普段使っている環境を Red Hat Enterprise Linux 4 へアップグレードして 2 日目の朝。 cron で整合性のチェックを実行したレポートをみると、数百のプログラムやライブラリのバイナリファイルが書き換わってしまっている。ファイルの整合性を確認するためのデータベースを更新してからチェックされるまでは約 4 時間だった。その間、起動はしていたものの、インターネットへは接続していない。たった 4 時間の間に何が起こったのだろうか。

改ざん?これだけは考えたくなかった。しかし、 LAN ケーブルを抜いた状態では外部から侵入することは不可能だ。次に考えたのはファイルシステムの破損だった。どちらにしてもこのシステムを使うのは危険に感じたため、ここからは CD ブートの Knoppix に切り替えた。 RAID1 なので HDD を片方ずつをマウントして両方のファイルを比較したが、チェックサムは同じだった。 S.M.A.R.T. 情報も特に問題はないのでファイルシステムの障害も考えにくい。 続いて手作業で調べてみる。もとの RPM パッケージからファイルを取り出し、ファイルサイズとチェックサムを比較してみた。やはり元のファイルとは異なっていた。 ここで Knoppix での作業はやめ、 RHEL4 で立ち上げ直す。 奇妙なのは、 rpm -V で調べても変化したファイルについて何も表示されないことだ。また、ファイルの日付も変わっていないが、何らかの作業が行われたことは確かで、ディレクトリの日付には変化があった。その時間のログを確認し、 cron.daily の中のプログラムが実行された時間であることがわかった。 その中で気になったのは prelink というものだった。 man ページによると、プログラムの開始をスピードアップさせるために、ライブラリのリンク先をバイナリに付加するものらしい。知らなかった。これは -u オプションで完全に元に戻すこともできる。元に戻して再度整合性を確認すると、ファイルサイズとチェックサムが一致した。なるほど、これの仕業だったのか。ただ、 cron でこれが実行されたのでは、後でファイルの整合性を確認しても改ざんされたかどうかがわからなくなってしまう恐れがある。ソフトウェアをアップデートしたり、新しく追加した時は、すぐに手動で prelink を実行して、整合性を確認するためのデータベースを更新しておいたほうがよさそうだ。

このエントリへのトラックバック

spamが増えたためトラックバック機能は停止中です。

このエントリへのコメント

spamが増えたためコメント機能は停止中です。

Information

サイト内検索

けんども日記

直近 10 件
RSS
RSS 1.0
Home@けんどもネット
diary.php(v2): 2005-06-11
Copyright © 2003-2005 Kendomo.net.