- 強化されたツールチェーンに切り替えて、システム全体を再構築して、すべてのバイナリがPIEとSSPを使用するようにします(その後、システムはSSPによって保護されます)
- 強化されたソース(PaX + GrSecurity + SeLinux + Gentooの追加パッチを含む)をインストールし、PaX、GrSecurity、GrSecurity / RBACのサポート付きでコンパイルします。
- 新しいカーネルで再起動します(その後、システムはPaX + PIEおよびGrSecurityでも保護されます)
- しばらくアクセス制限を設定およびデバッグします(その後、システムはGrSecurity / RBACによっても保護されます)
予想される問題:
- すべてをPIE + SSPでコンパイルできるわけではありません-おそらく、個々のパッケージのいずれかまたは両方を使用せずにパッチまたはコンパイルする必要があります(今のところ、ATI woodで動作するようにXをコンパイルするためにのみgcc-configを介してvanilla gccに切り替える必要があります)
- すべてがうまく機能するとは限りません 一部のプログラム(通常Xsおよびjavaと呼ばれます)は、完全に正当な目的で動的に生成されたコードの実行を使用します。これを実行しようとすると、SSPまたはPIE + PaXを吐き出します。これらのプログラムでは、PaX保護の一部を個別に無効にする必要があります(このため) paxctlなどの特別なユーティリティがあります。SSPなしでコンパイルします。
- GrSecurityカーネルの「機能」の制限のためにすべてが機能するわけではありません-この場合、GrSecurity保護の一部を無効にする必要があります(グローバルに、make menuconfigで)
- アクセス権の制限を設定するのは簡単ではないかもしれません。また、スレッドがプログラムの権限を設定するときに考慮しなかった何かを実行するときはいつでも-カーネルによって釘付けになります...そしてこれらのルールを緊急に修正する必要があります
さあ、行こう... :)
最適化が強すぎる(-O3)と強化されたツールチェーンにより、さまざまなコンパイルの不具合やコンパイルの失敗が発生する可能性があるため、/ etc / make.confで-O3を-O2に置き換え、他のすべての-f *オプティマイザーフラグを削除する必要があります。
強化されたプロファイルに渡します。 (理論的には、これの代わりに、USEフラグに単純に「hardened pie ssp」を追加できます。)
ln -snf ../usr/portage/profiles/hardened/x86/2.6/ /etc/make.profile
プロファイルをhardened / x86 / 2.6 /に切り替えた後、いくつかのUSEフラグをオフにする必要があります。これらのフラグは通常のプロファイルで自動的にオンになります-make.confに追加しました(このフラグに従うことを忘れないでください)。
avi encode gtk2 jpeg mpeg oss quicktime spell truetype xv bitmap-fonts truetype-fonts type1-fonts
hardened-toolchainをコンパイルし、他のすべてのパッケージを再構築します:
emerge binutils gcc glibc emerge -e world dispatch-conf
次に、さらにいくつかのパッケージを配置する必要があります。
emerge paxtest paxctl gradm
強化されたツールチェーンに切り替える前に、paxtestは以前に配信されていた可能性があります。 このユーティリティは、通常はエクスプロイトを実行するさまざまな危険な操作(コード実行によるスタックオーバーフローなど)を試みます。 システムが保護されている場合、その試行はすべて抑制され、報告されます。 一般的に、強化されたツールチェーンをインストールする前、PaXが有効になっているカーネルで再起動した後、そしてそれをドライブして、楽しくすることができます。 :)
paxtestは依存関係としてchpaxプログラムもインストールします-これはPaXを制御する古い方法であり、代わりにpaxctlを使用することをお勧めします。 ただし、ソースなしで配布された一部のプログラムはコンパイルされているため、paxctlはそれらを使用できないため、chpaxを使用する必要があります。
まあ、GrSecurityでRBACを構成するにはgradmが必要です-プロセスとユーザーの権利に関する同じ制限。
カーネル設定に関しては。 まず第一に、GentooおよびGrSecurityドックで説明されているようにすべてを構成しました。すべての保護が有効になっているわけではありませんが、ほとんどのソフトウェアはこれらの設定で動作します。 設定を分析する過程で、いくつかの理論的な仮定が生じました。
- システムを再コンパイルする前に強化されたカーネルをロードする場合、このオプションを有効にすると問題が発生する可能性があります。
PaX -> Non-executable pages -> Disallow ELF text relocations
- Xがないサーバーでは、さらに有効にすることができます(X以外、特にhwclockが動作を停止しなかったことを確認することを忘れないでください)。
Grsecurity -> Address Space Protection -> Disable privileged I/O
- さらに、いくつかのchroot制限がGentooのインストール(chroot内にインストール)やシステムの修正(たとえば、強化されたカーネルでCDから起動する場合)などの操作を妨げる可能性があるという前提があります。
Grsecurity -> Filesystem Protections -> Deny mounts Grsecurity -> Filesystem Protections -> Deny double-chroots Grsecurity -> Filesystem Protections -> Deny (f)chmod +s Grsecurity -> Filesystem Protections -> Deny mknod
スタート。 続行するには...