Главная
Study mode:
on
1
Intro
2
Making C Less Dangerous in the Linux kernel
3
Kernel Self Protection Project
4
C as a fancy assembler: almost machine code
5
C as a fancy assembler: undefined behavior
6
Variable Length Arrays and alloca () are bad
7
Variable Length Arrays are slow
8
Variable Length Arrays: stop it
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: gcc?
13
Arithmetic overflow detection: Clang :
14
Bounds checking: explicit checking is slow
15
Instead of sprintf(): scnprintf()
16
Instead of memcpy: uhhh ... be ... careful?
17
Bounds checking: memory tagging :
18
Control Flow Integrity: indirect calls
19
CFI, forward edges: just call pointers
20
CFI, forward edges: enforce prototype :
21
CFI, backward edges: two stacks
22
CFI, backward edges: shadow call stack
23
CFI, backward edges: hardware support
24
Where is the Linux kernel now?
25
Challenges in Kernel Security Development
Description:
Explore strategies for enhancing C language safety in Linux kernel development during this 45-minute conference talk from linux.conf.au. Delve into techniques for mitigating undefined behaviors, removing Variable Length Arrays, enforcing stack variable initialization, implementing implicit bounds checking, handling arithmetic overflows, and protecting function calls with Control Flow Integrity. Learn how the Linux kernel is adapting C standards and reorganizing code to reduce security vulnerabilities and strengthen infrastructure. Gain insights into the Kernel Self Protection Project and understand the challenges faced in kernel security development.

Making C Less Dangerous in the Linux Kernel

linux.conf.au
Add to list