ネットワークセキュリティHACKS Wiki 見本 - careerbeat/dit-ehime GitHub Wiki

HACK#5 ログの改ざん防止

概要

  • ファイルやディレクトリに拡張属性(追加のみ許可など)を設定してログが改ざんされるのを防ぐ
  • 攻撃者が残した痕跡(ログなど)を故意に消せないようにするため

背景

ログとは

  • システムの動作状況をファイルに保存する仕組み
  • システム上の不具合やエラー、セキュリティに関する情報など障害や攻撃されたときに対処するための必要な情報を記録
    → 改ざんされると障害や攻撃されたことの事実が消去され、対処できなくなる

ログの改ざん

  • 通常一般ユーザーはログファイルに変更を加えたり、削除することができない
  • もし、root権限が奪われてしまうと、ログファイルからログを削除したり、ログファイル自体の削除が可能になる
    ※強力なパスワードを設定するだけではroot権限の奪取を完全に防げない

そこで、ログファイルに既に記録されている内容の削除やログファイルの削除をできないようにする

前提知識

拡張属性が設定されているかどうかは下記のlsattrコマンドを実行する

lsattr 対象

拡張属性を設定するには下記のchattrコマンドを実行する

charttr +拡張属性 対象

下記表は拡張属性の例である

拡張属性 意味
a 追加のみ許可
i 変更禁止
u 削除禁止

ただし、root権限が奪われると拡張属性の前の「+」を「-」に変えることで簡単に削除できてしまう

そこで、rootの権限を制限する(属性の変更を禁止する)ためにcapability機能を用いる

capabilityの設定変更にはlcapなどのユーティリティツールを用いると良い

確認方法

適当なファイルを作成して「追加のみ許可」属性を設定します。

# touch chattrtest
# chattr +a chattrtest

これで設定することができました。

では実際にその属性が適用されているか確認してみましょう

# echo "This is test" > chattrtest
bash: chattrtest: 許可されていない操作です

「chattrtest」を上書きに失敗しました。

では今度は追記してみましょう。

# echo "This is test" >> chattrtest
# cat chattrtest
This is test

追記は成功したので、これで正常に「追加のみ許可」属性を設定することができました。

⚠️ **GitHub.com Fallback** ⚠️