/system
誰かが読み書きモードで再マウントしようとしたときにマウントシステムコールを避けたいと思います。これは、次の操作を許可したくないことを意味します。mount -o remount,rw /system
。カーネルでコードをどこで変更する必要があるかを知っている人はいますか?インストールに関連する機能の一部がどこにあるかを確認しようとしましたが、/fs/namespace.c
わかりません。
答え1
SELinuxなどを使用できますが、seccomp
root権限全体を使用すると、パーティションをマウントしたり、他の不快な操作を実行せずにパーティションを変更したり、制限を回避するためにカーネルモジュールをロードしたりすることができることを考慮すると、それほど簡単ではありませんあります。少なくともすべての共通の抜け穴を解決する包括的なルールセットが必要です。
バイナリやCライブラリを修正することはmount
解決策ではありません。これは、すでに作成されたバイナリやライブラリを介さずにシステムコールを直接呼び出すのが非常に簡単なためです。
SELinuxと一般的なパーティショニングと強化技術は、まずrootアクセス権を取得することをより困難にします。これは他の理由で役に立ちます。
また、もう一つの質問は、対応するマウントポイントに何がありますか?このシステムにのみ関連している場合、誰かが変更できるかどうかは重要ですか?コンピュータへの完全な管理アクセス権を取得すると、他のすべてを台無しにすることができ、バックドアを離れ、少なくとも問題のパーティションを破壊する可能性があります。変更する必要がなく、コンテンツの損失を防ぐ場合は、読み取り専用ストレージに保存する方が簡単です。そしてバックアップしてください。
ファイルシステムが複数のシステムで使用されている場合は、ネットワーク経由でマウントできます。この場合、サーバー側での書き込みを防止する方が良いので、カーネルが読み取り/書き込みマウントを試みても、まだ機能しません。