なぜログを改ざんするのか

攻撃者は侵入の後、自らの痕跡を抹消する目的で、あるいは追跡者を困惑させる愉快犯的な目的でログを改ざんします。正しいログが残っていれば、例えば時刻やIPアドレスや、利用されたユーザー名など、攻撃者を特定するための有力な手がかりが得られることがあるため、実際にサーバを運用管理する人であれば、改ざんという行為の悪質性については、語るまでもなくご存知でしょう。

また、完全に痕跡を消せないまでも、多少の工作を行うことで、攻撃があったことが発覚するまでの時間を大幅に減らすことが可能です。時間を稼ぐことは攻撃者にとってみれば重要なポイントとなります。

この記事では、ごく初歩の手法を用いて、簡単にログの改ざんが行えることを紹介したいと思います。ログの改ざんと聞いてイメージがわかない方に、「ログの改ざん」って簡単なんだと理解いただき、正しいログを保管することの重要性について気付きがあれば嬉しく思います。

ログの削除と改ざん

攻撃者が対象サーバ上のログから自身の痕跡を消すためには、ログファイルそのものを削除する方法があります。

例を挙げて見てみましょう。

UNIX系のOSでは、lastlogと呼ばれるログがあります。これは、システム上に作成されているユーザーがそれぞれ最後にログインした情報が記録されます。このログは、前回にログインした時刻と照らしあわせて、不正なログインが行われていないかを調査するのに利用できます。

なお、lastlogはバイナリファイルであるため、専用のコマンド(lastlog)を用いることで確認できます。

ログの削除は簡単です。root権限があることが前提とはなりますが、

# rm /var/log/lastlog

と、一般的なUNIXにおけるファイル削除のコマンドを用いることで削除することができます。ファイルを残して中身を空にする手法としては、

# cat /dev/null > /var/log/lastlog

といったものもあります。これも「空」という概念を表す「/dev/null」というファイル(スペシャルファイルと呼ばれる特殊なファイルです)を上書きすることによって、ファイルの中身を「空」にします。

これにより、lastlogコマンドは正しい情報を返さなくなります。

他にも、localhostへtelnetログインすることで、ログインしたIPアドレスを隠蔽することができます。

# telnet localhost

いずれも簡単なコマンドで実現できることがおわかりいただけると思います。

削除する場合は、管理者の注意を喚起することとなるため、気づく可能性が高くなります。通常は後者の攻撃者自身に関する痕跡のみ改ざんすることになるでしょう。

簡単な手順でも効果は大きい

いかがでしょうか。

ログの改ざんといっても、この例で挙げた方法は稚拙なものですから、見破る方法や対策はたくさんあります。しかし、攻撃者も労せずして、「UNIX入門講座」に出てきそうな基本的なコマンドを一行入力するだけで、一つ痕跡を消せることがわかります。

簡単な方法でも管理者のスキルが足りなかったり、備えがない場合は致命的な事態になりかねません。

ログの大切さを今一度考えなおしてみてはいかがでしょうか。