SED のバッファー・オーバーフロー保護メカニズム

AIX®は、スタック上のコードの実行とプロセスの選択されたデータ領域を無効にするスタック実行無効化(SED)メカニズムを有効にしている。

侵害性のプログラムを実行不可にして終了させると、アタッカーは、バッファー・オーバーフロー・アタックを通して root ユーザー特権を取得できなくなります。 この機能は、バッファー・オーバーフローを停止するものではありませんが、オーバーフローしたバッファーでのアタックの実行を使用不可に設定して、保護を提供します。

POWER4 ファミリー以降、メモリーに対してページ・レベルの実行の有効化/無効化機能を使用できるようになりました。 AIX SED メカニズムは、この基礎となるハードウェア・サポートを使用して、選択されたメモリー領域に非実行フィーチャーを実装します。 このフィーチャーが使用可能になると、オペレーティング・システムは実行可能プログラムの実行中に各種のファイルを検査してフラグを付けます。 続いて、オペレーティング・システムのメモリー・マネージャーおよびプロセス・マネージャーに、作成中のプロセスについて SED が使用可能になったというアラートを出します。 選択されたメモリー領域は非実行のマークが付けられます。 これらのマークされた領域でなんらかのコードが実行されると、ハードウェアは例外フラグを立て、オペレーティング・システムは対応するプロセスを停止します。 例外とアプリケーション終了の詳細は、AIXのエラーログイベントを通じて取得される。

SED は、主に sedmgr コマンドによって実装されます。 sedmgr コマンドにより、システム全体の SED モードの操作を制御することができ、また実行可能ファイルをベースとして SED フラグを設定することができます。