私はスタックバッファオーバーフローの脆弱性を持つLinuxカーネル用の単純なモジュールを書いています。このモジュールを利用したいのですが、まずカーネルでスタックプロテクターをオフにする必要があります。これをどのようにすばやく簡単に実行できますか?
毎回カーネルをコンパイルする必要がありますか?
Linuxカーネルモジュールで(カーネルをコンパイルせずに)スタック保護をオフにする他の方法はありますか?
答え1
これらのオプションはオプションをコンパイラに渡すことで動作するため、最も簡単な方法はカーネルを再コンパイルすることです。
ただし、反復可能でモジュール固有の方法でkbuildを使用すると、モジュールごとにカスタムCFLAGを設定できます。
https://www.kernel.org/doc/Documentation/kbuild/makefiles.txt
特に活用したいモジュールに対して-fno-stack-protectorを設定しようとしています。
DKMSを使用すると、カーネルのすべてのバージョンに対してツリー外部ドライバの自動再構築を設定することもできます。