Главная
Study mode:
on
1
Intro
2
Kernel Self Protection Project
3
C as a fancy assembler almost machine code
4
C as a fancy assembler: undefined behavior
5
Variable Length Arrays are bad
6
Variable Length Arrays are slow
7
Switch case fall-through did I mean it?
8
Switch case fall-through: new statement
9
Switch case fall-through new statement
10
Always-initialized local variables: just do it
11
Always-initialized local variables switch gotcha
12
Arithmetic overflow detection Clang :
13
Bounds checking: explicit checking is slow
14
Bounds checking memory tagging :
15
Control Flow Integrity: indirect calls
16
CFI, forward edges: enforce prototype :
17
CFI, backward edges: two stacks
18
CFI, backward edges: shadow call stack . Clang's Shadow Cal Stack
19
CFI, backward edges: hardware support
20
Where is the Linux kernel now?
21
Challenges in Kernel Security Development
Description:
Explore the efforts to enhance C language safety in Linux kernel development through this informative conference talk by Kees Cook from Google. Delve into various strategies for mitigating security vulnerabilities and undefined behaviors inherent in C programming. Learn about removing Variable Length Arrays, enforcing stack variable initialization, implementing implicit bounds checking, handling arithmetic overflows, and protecting function calls with Control Flow Integrity. Gain insights into the Linux kernel's approach to modifying C standards and redefining undefined behaviors to create a more secure codebase. Discover the challenges faced in kernel security development and the ongoing work to make C less hazardous for critical infrastructure.

Making C Less Dangerous

Linux Foundation
Add to list