GrSecurity / PaX:定義済みのセキュリティレベル

(すでにこのテーマに参加している人のための記事です。残りは、 説明インストール構成印象 :Hardened Gentooに関する以前の記事を最初に読むことに興味があります 。)



LinuxカーネルでGrSecurity / PaX (ロシア語のリンクを指定しましたが、英語のリンクのはるかに 有益です )を構成することについてです。 説明されているものはすべてHardened Gentoo (カーネル3.1.5)に関連していますが、どのディストリビューションにも適用できます(インストール済みのGentooレベルのセキュリティレベルのワークステーション/サーバー/仮想化はありませんが、この記事での私の説明によると、手動で簡単に実装できます)。



さらに、GrSecurity / PaXを使用するとシステムがどれだけ遅くなるかを判断するために、少しパフォーマンステストを実施しました。 テストは、32ビットOSのCore2Duoでシングルユーザーモードでカーネルを-j3でコンパイルし、ユーザー+ sysの平均値を3回実行しました(カーネルビルド速度は標準の速度と比較されました。 、gcc)。



したがって、6つの事前定義されたセキュリティレベルがあります( Security options → Grsecurity → Security Level



):
  1. 低い
  2. 高い
  3. 強化されたGentoo [サーバー]
  4. 強化されたGentoo [ワークステーション]
  5. 強化されたGentoo [仮想化]
低および中をテストしませんでした-それらが誰かによって使用されるとは思いません。



以下は、これらのセキュリティレベル間で異なるカーネルオプションのリストです(「+」はオプションがオンになっていることを意味し、「-」はオプションがオフになっていることを意味し、オプションの値は変更されません)。
高い サーバー ws
CONFIG_X86_32_LAZY_GS - -
CONFIG_CC_STACKPROTECTOR - -
CONFIG_GRKERNSEC_IO +
CONFIG_GRKERNSEC_KERN_LOCKOUT +
CONFIG_GRKERNSEC_PROC_ADD + +
CONFIG_GRKERNSEC_SYSFS_RESTRICT +
CONFIG_GRKERNSEC_PROC_IPADDR + + +
CONFIG_GRKERNSEC_RWXMAP_LOG + + +
CONFIG_GRKERNSEC_SYSCTL + + +
CONFIG_GRKERNSEC_SYSCTL_ON + + +
CONFIG_PAX_PER_CPU_PGD + + + -
CONFIG_PAX_ELFRELOCS +
CONFIG_PAX_KERNEXEC + + + -
CONFIG_PAX_KERNEXEC_MODULE_TEXT 4 4 4 -
CONFIG_PAX_MEMORY_SANITIZE + + +
CONFIG_PAX_MEMORY_UDEREF + + -
(CC_STACKPROTECTORを無効にするには、PAX_MEMORY_UDEREFを有効にします。)



ご覧のように、異なるレベルを切り替えることで、同じレベルで異なるオプションセットを取得できます。たとえば、サーバーからワークステーションへの切り替えではUDEREFがオンになり、仮想化からワークステーションへの切り替えではUDEREFがオフになります。 これは正しい動作ですが、事前定義されたセキュリティレベルを切り替えた後、すべての設定を再確認することを忘れないように注意する必要があります。



さらに、定義済みのセキュリティレベルのいずれによっても変更されないオプションのリスト、つまり 完全にユーザーの制御下で指定されます(便宜上、CONFIG_ *形式およびmenuconfig形式で表示します)。

 CONFIG_GRKERNSEC_ACL_HIDEKERN CONFIG_GRKERNSEC_EXECLOG CONFIG_GRKERNSEC_CHROOT_EXECLOG CONFIG_GRKERNSEC_AUDIT_PTRACE CONFIG_GRKERNSEC_AUDIT_CHDIR CONFIG_GRKERNSEC_AUDIT_TEXTREL CONFIG_GRKERNSEC_BLACKHOLE CONFIG_PAX_EMUTRAMP CONFIG_PAX_MPROTECT_COMPAT CONFIG_PAX_MEMORY_STACKLEAK Grsecurity ---> [*] Grsecurity Role Based Access Control Options ---> [ ] Hide kernel processes Kernel Auditing ---> [ ] Exec logging [ ] Log execs within chroot [ ] Ptrace logging [ ] Chdir logging [ ] ELF text relocations logging (READ HELP) Network Protections ---> [ ] TCP/UDP blackhole and LAST_ACK DoS prevention PaX ---> [*] Enable various PaX features Non-executable pages ---> [ ] Emulate trampolines [ ] Use legacy/compat protection demoting (read help) Miscellaneous hardening features ---> [ ] Sanitize kernel stack
      
      





他のすべてのGrSecurity / PaXオプションは、すべてのセキュリティレベルで有効になっています。



パフォーマンスのために。 セキュリティを向上させる可能なオプションをすべて有効にすると、パフォーマンスが5%低下します。 CONFIG_PAX_MEMORY_STACKLEAKを無効にすると、パフォーマンスの低下が最大3%減少します。 CONFIG_PAX_MEMORY_SANITIZEの追加シャットダウン-最大1% 。 正直なところ、私の個人的な意見では、これらのオプションはどちらもワークステーションやほとんどのサーバーでは絶対に必要ではありません。 GrSecurity / PaXのほぼすべての機能と引き換えにパフォーマンスの1%を失うことは間違いなく価値がありますが、これら2つの機能でさらに4%を失う価値があるかどうかはあなた次第です。



そして最後に、これらすべてと通常のホームワークステーションとの互換性-Xs、専用ドライバーnvidia、skype、vmwareが必要です。 現在、もちろん、状況は将来変わる可能性があります。



All Articles