HardenedBSD/tools/build/options/WITH_CFI
Shawn Webb f38b51668e
HBSD: Introduce Control-Flow Integrity (CFI)
Control Flow Integrity, or CFI, is an exploit mitigation technique that
helps prevent attackers from modifying the behavior of a program and
jumping to undefined or arbitrary memory locations. Microsoft has
implemented a variant of CFI, which they term Control Flow Guard, or
CFG. The PaX team has spent the last few years perfecting their Return
Address Protection, RAP. CFI, CFG, and RAP all attempt to accomplish the
same goal, with RAP being the most complete and effective
implementation. Clang's CFI is stronger than Microsoft's CFG and PaX
Team's RAP is stronger than both CFI and CFG. RAP would be a great
addition to HardenedBSD; however, it requires a GPLv3 toolchain and is
patented.

HardenedBSD is excited to announce the integration of Clang's CFI into
base. CFI is enabled by default in HardenedBSD 12-CURRENT on amd64 and
can be disabled by setting WITHOUT_CFI in src.conf. CFI is not
applicable to architectures other than amd64.

Since CFI requires lld, this also sets ld.lld as the default linker on
amd64 and arm64.

Signed-off-by:	Shawn Webb <shawn.webb@hardenedbsd.org>
Sponsored-by:	SoldierX
2017-03-02 16:12:02 -05:00

2 lines
47 B
Plaintext

Set to build with Control-Flow Integrity (CFI)