
私は、ファイルシステムレベルでの書き込みを許可しながら、ブロックデバイス(ブートディスク(AppleのSIPなど)などの特定のブロックデバイスのみ)への直接書き込み試行を無効化/拒否するLinux用のソリューションを探していました。 。
grsecurityはこのソリューションを備えた最初のプロジェクトで、そこでアイデアを得ました。問題は、それが提供する残りの部分について私が必要としないか興味がなく、あまりにも包括的であるということです。読み取り専用でマウントまたはマウント解除されたすべてのブロックデバイスはそれ自体が読み取り専用になり(つまり実行できません)、dd if=/dev/zero of=/dev/sda1
実行中に読み取り/書き込み状態(再度)はマウントできません。保護を有効にします。彼らのコードを見て、同じことをするためにカーネルモジュール(そして一方向sysctlエントリを持つカーネルパッチ)を書いています。後で名前だけに基づいて生の書き込み/dev/sda
操作をブロックするようにカーネルモジュールを変更しました/dev/sda1
。その後、非正規パスを処理する方法がわからなかったので、キー番号に基づいて書き込みのみをブロックするように書き直しました。
モジュールがはるかに簡単なのでカーネルをあきらめましたが、数字をハードコードする必要がないように、ブートデバイスとその親デバイスを決定できるコードを書く方法を知っているのであれば、簡単になります。それで、これは一般的なアイデア(ブートディスクをターゲットにしていない)であると考えて、解決策を見つけるためにGoogleを見つけました。私の結果は、rawデバイス、フォレンジックライトブロッカー、およびメモリ関連のraw IOにのみ関連しています。データ記憶装置への直接書き込みを禁止するシステムを記述するために使用される用語は何ですか?