脆弱性を悪用する特定の攻撃からプログラムを保護するインテル® インテル コントロールフロー・エンフォースメント・テクノロジー (インテル® CET) を有効にします。このオプションは、インテル® CET を試験的にサポートします。
Linux*: | -fcf-protection[=keyword] |
macOS*: | なし |
Windows*: | /Qcf-protection[:keyword] |
keyword |
保護レベルを指定します。設定可能な値は以下のとおりです。
|
-fcf-protection=none または /Qcf-protection:none |
インテル® インテル コントロールフロー・エンフォースメント・テクノロジー (インテル® CET) による保護は行われません。 |
このオプションは、脆弱性を悪用する特定の攻撃からプログラムを保護するインテル® インテル コントロールフロー・エンフォースメント・テクノロジー (インテル® CET) を有効にします。
インテル® CET による保護は、インテル® CET をサポートするプロセッサーで実行されます。インテル® CET をサポートしないプロセッサーでは無視されるため、さまざまなプロセッサーで実行されるプログラムで安全に使用することができます。
shadow_stack を指定すると、ROP (Return-Oriented Programming) 攻撃からプログラムを保護するのに役立ちます。ROP (Return-Oriented Programming) は、コールスタックを制御することで非実行メモリーやコード署名のようなコンピューター・セキュリティー防護を悪用して、プログラムの制御フローを変更し、特定のマシン命令シーケンスを実行する手法です。
branch_tracking を指定すると、COP/JOP (Call/Jump-Oriented Programming) 攻撃からプログラムを保護するのに役立ちます。JOP (Jump-Oriented Programming) は ROP の一種で、間接ジャンプ/呼び出しを悪用してリターン命令をエミュレートします。COP (Call-Oriented Programming) も ROP の一種で、間接呼び出しを悪用します。
両方の保護を有効にするには、keyword を指定しないでこのコンパイラー・オプションを使用するか、-qcf-protection=full (Linux*) または /Qcf-protection:full (Windows*) を指定します。
Linux* および macOS*: -qcf-protection
Windows*: なし