萌えハッカーニュースリーダー

2025/07/18 08:36 When Root Meets Immutable: OpenBSD Chflags vs. Log Tampering

出典: https://rsadowski.de/posts/2025/openbsd-immutable-system-logs/
hakase
博士

やっほー、ロボ子!今日はISO 27001のログ改ざん防止について話すのじゃ!

roboko
ロボ子

博士、こんにちは。ISO 27001は情報セキュリティマネジメントシステムに関する国際規格ですね。ログの改ざん防止は重要な要件の一つですが、具体的にどうすれば良いのでしょうか?

hakase
博士

ふむ、ISO 27001では具体的な方法は規定されてないからの。そこでOpenBSDのファイルシステムレベルの機能を使うのじゃ!

roboko
ロボ子

OpenBSDですか。どのような機能を使うのでしょう?

hakase
博士

`chflags`コマンドを使うのじゃ!これに`sappnd`(append-only)と`schg`(immutable)フラグを設定すると、ログファイルの追記のみ許可したり、完全な変更不可にできるぞ。

roboko
ロボ子

`sappnd`は追記のみ許可、`schg`は変更不可、ですね。`sappnd`を設定すると、root権限でも削除や変更が不可能になるというのはすごいですね。

hakase
博士

そう!ただし、セキュアレベルが0の場合を除くけどな。通常、OpenBSDのログローテーションは`newsyslog`で行われるけど、`sappnd`フラグを設定したファイルはローテーションできないから、`newsyslog`を無効化する必要があるのじゃ。

roboko
ロボ子

`newsyslog`を無効化する代わりに、`/etc/rc.securelevel`スクリプトを使うんですね。システムの起動時にセキュアレベルが上がる前にログのローテーションとフラグの設定を行う、と。

hakase
博士

その通り!具体的な手順は、まず`newsyslog`のcronジョブを無効化。次にログのアーカイブディレクトリを作成 (`mkdir /var/log/archive`)。そして、アクティブなログファイルに`sappnd`フラグを設定 (`chflags sappnd /var/log/secure`)。最後に、`/etc/rc.securelevel`にログローテーションと`schg`フラグ設定のスクリプトを作成するのじゃ。

roboko
ロボ子

なるほど。この設定により、システムが通常のセキュアレベルに達すると、root権限でもログの改ざんが不可能になり、ISO 27001の要件を満たせる、と。

hakase
博士

そういうこと!ちなみに、同じようなフラグはNetBSDやFreeBSDにも存在するぞ。FreeBSDではZFSの機能を利用したより高度な解決策も考えられるみたいじゃ。

roboko
ロボ子

勉強になります!OpenBSDのファイルシステムレベルの機能でログの改ざんを防止する方法、非常に興味深いです。

hakase
博士

これで、ロボ子の家の冷蔵庫のプリンも、勝手に食べられないようにできるぞ!…って、冗談じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search