インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
脆弱性を悪用する特定の攻撃からプログラムを保護する Control-flow Enforcement Technology (CET) を有効にします。このオプションは、CET を試験的にサポートします。
Linux*: | -qcf-protection[=keyword] |
macOS*: | なし |
Windows*: | /Qcf-protection[:keyword] |
keyword |
保護レベルを指定します。設定可能な値は以下のとおりです。
|
-qcf-protection=none または /Qcf-protection:none |
Control-flow Enforcement Technology (CET) による保護は行われません。 |
このオプションは、脆弱性を悪用する特定の攻撃からプログラムを保護する Control-flow Enforcement Technology (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 を指定しないで [q または Q]cf-protection を使用するか、-qcf-protection=full (Linux*) または /Qcf-protection:full (Windows*) を指定します。
Linux* および macOS* では、gcc オプション -fcf-protection でも CET 機能を有効にできます。オプションに関する詳細は、gcc ドキュメントを参照してください。
Linux* および macOS*: -fcf-protection (サポートされる gcc オプション)
Windows*: なし