
| ログの改竄を防止する |
サーバを管理していく上でログは非常に重要なものです。もし不正侵入されてもログを見れば、
何時、どのように攻撃されたかを確認することができます。しかし、root権限を奪取した攻撃者は
ログの改竄を行なうでしょう。侵入の形跡となる部分を削除*1してしまうのです。
このようにされてしまうと、侵入されたのかどうかも分からなくなってしまいます。更には
何時、どのような手法で侵入されたのか分からないので、この侵入への対策を行なうことができません。
このような場合には、侵入されたからとりあえず再インストールして、システムを復旧したとしても
同じ構成でサーバを構築したのなら、全く同じ手法で侵入されてしまうでしょう。
ここでは、ログを改竄されないようにする対策を施します。
この対策を施すことにより、攻撃者がログの改竄を行なうことは難しくなります。
*1 逆に侵入の形跡や怪しいと思われるログを大量に残すことによって、捜査をかく乱させ、追跡を困難にする手法もあります。
| chattrでログを追記のみ可能にする |
chattrコマンドを使用してログの改竄を防止することが可能です。
+aのオプションを付けて対象のログファイルを指定して実行すると、そのログファイルは追記は可能だが、
削除はできないという状態にできます。
| # chattr +a /var/log/secure |
以下は、上で追記のみ可能にした/var/log/secureを空にする試みをしましたが、拒否されました。
chattrコマンドを実行していない状態であれば、これは空にできてしまいます。
| # echo > /var/log/secure -bash: /var/log/secure: 許可されていない操作です |
以下にログの改竄防止をしておく必要があると思われるものを列挙します。
/var/log/secure、/var/log/messages、/var/log/wtmp、/var/log/lastlog、/var/log/httpd/error_log など
他にも各種サービスのログで、改竄されては困るログがある場合は、そちらにもchattr +aしておきます。
ただし、この方法は完璧ではなく、chattrに先ほどとは逆の-aオプションを付ければ、
このような追記のみ可能な状態を解除することができます。
| # chattr -a /var/log/secure |
chattrコマンドを知らない攻撃者にはかなり有効な方法ですが、知っている攻撃者にとっては
あっさり回避されてしまいます。
| chattr -aによる回避を防ぐ |
それでも改竄を防止する方法はあります。lcapというツールを使用します。
wgetでダウンロードし、導入、実行の流れを以下に示します。
| # wget http://packetstormsecurity.org/linux/admin/lcap-0.0.3.tar.bz2 # tar jxvf lcap-0.0.3.tar.bz2 # cd lcap-0.0.3 # make // 以下のコマンドを実行する # ./lcap CAP_LINUX_IMMUTABLE # ./lcap CAP_SYS_RAWIO |
この後で、chattr -aしてみます。
| # chattr -a /var/log/secure chattr: 許可されていない操作です while setting flags on /var/log/secure |
このように拒否され、追記のみ可能な状態を変更できなくなります。
これで攻撃者がログの改竄を行なうことは、難しくなります。
lcap実行後の注意点は2つです。
1つ目は、確かにchattr -aできなくなるんですが、chattr +aもできなくなります。
なので、lcapを実行する前に、ログに対してchattr +aをしておく必要があります。
2つ目は、再起動するとこのchattr -aできなくなるという制限が外れてしまいます。
なので、再起動後も問答無用にchattr -aできなくする場合には、/etc/rc.d/rc.localに
以下の記述をしておきます。
| # vi /etc/rc.d/rc.local /root/lcap-0.0.3/lcap CAP_LINUX_IMMUTABLE /root/lcap-0.0.3/lcap CAP_SYS_RAWIO (lcap-0.0.3を/rootに展開した場合の例) |
また、全体のまとめとして、このchattrによるログ改竄の防止方法には問題点が1つあります。
それは、chattrによって追記のみ可能にしたログは、ログローテーションに失敗します。
これにより、追記のみ可能にしたログはどんどんサイズが大きくなっていってしまいます。
ログローテーションに失敗はするものの、ログを守れる点はかなりのメリットだと思います。
この辺を踏まえて、対象とするログを検討してみてください。
当サイトの対象ログファイルには、Apacheのアクセスログは含めませんでした。
本当なら保護したいところですが、これは恐ろしいほどログのサイズが大きくなる可能性が
あるので、現時点では対象から外しました。
■参考文献
『ネットワークセキュリティHACKS』 (O'REILLY)
最終更新 : 06/17/2005