On 14/02/2022 13:43, Jan Beulich wrote:
> On 14.02.2022 14:10, Andrew Cooper wrote:
>> On 14/02/2022 12:50, Andrew Cooper wrote:
>>> CET Indirect Branch Tracking is a hardware feature designed to protect 
>>> against
>>> forward-edge control flow hijacking (Call/Jump oriented programming), and 
>>> is a
>>> companion feature to CET Shadow Stacks added in Xen 4.14.
>>>
>>> Patches 1 thru 5 are prerequisites.  Patches 6 thru 60 are fairly mechanical
>>> annotations of function pointer targets.  Patches 61 thru 70 are the final
>>> enablement of CET-IBT.
>>>
>>> This series functions correctly with GCC 9 and later, although an 
>>> experimental
>>> GCC patch is required to get more helpful typechecking at build time.
>>>
>>> Tested on a TigerLake NUC.
>>>
>>> CI pipelines:
>>>   https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/470453652
>>>   https://cirrus-ci.com/build/4962308362338304
>>>
>>> Major changes from v1:
>>>  * Boilerplate for mechanical commits
>>>  * UEFI runtime services unconditionally disable IBT
>>>  * Comprehensive build time check for embedded endbr's
>> There's one thing I considered, and wanted to discuss.
>>
>> I'm tempted to rename cf_check to cfi for the function annotation, as
>> it's shorter without reducing clarity.
> What would the 'i' stand for in this acronym?

The class of techniques is called Control Flow Integrity.

>  Irrespective of the answer
> I'd like to point out the name collision with the CFI directives at
> assembler level. This isn't necessarily an objection (I'm certainly for
> shortening), but we want to avoid introducing confusion.

I doubt there is confusion to be had here.  One is entirely a compiler
construct which turns into ENDBR64 instructions in the assembler, and
one is a general toolchain construct we explicitly disable.

~Andrew

Reply via email to