Making C Less Dangerous in the Linux kernel
Kees Cook
https://2019.linux.conf.au/schedule/presentation/178/
With the Linux kernel written in C, it comes with some worrisome baggage, "undefined" behaviors, and other weaknesses that lead to security flaws and vulnerable infrastructure. Some of these weaknesses related to the design of chipsets and how close C is to machine code, but others are less specific.
This presentation will explore the areas where the kernel is changing the C standard, defining undefined behaviors, or otherwise reorganizing things to make C itself less of a hazard.
Specifically this will cover removing (and enforcing the lack of) Variable Length Arrays in kernel code, forcing all stack variables to be initialized with a GCC plugin, performing implicit bounds checking with overloaded builtins, handling arithmetic overflows safely, and protecting forward (call) and reverse (return) indirect function calls with CFI under Clang.
linux.conf.au is a conference about the Linux operating system, and all aspects of the thriving ecosystem of Free and Open Source Software that has grown up around it. Run since 1999, in a different Australian or New Zealand city each year, by a team of local volunteers, LCA invites more than 500 people to learn from the people who shape the future of Open Source. For more information on the conference see https://linux.conf.au/
#linux.conf.au #linux #foss #opensource
Видео Making C Less Dangerous in the Linux kernel канала linux.conf.au
https://2019.linux.conf.au/schedule/presentation/178/
With the Linux kernel written in C, it comes with some worrisome baggage, "undefined" behaviors, and other weaknesses that lead to security flaws and vulnerable infrastructure. Some of these weaknesses related to the design of chipsets and how close C is to machine code, but others are less specific.
This presentation will explore the areas where the kernel is changing the C standard, defining undefined behaviors, or otherwise reorganizing things to make C itself less of a hazard.
Specifically this will cover removing (and enforcing the lack of) Variable Length Arrays in kernel code, forcing all stack variables to be initialized with a GCC plugin, performing implicit bounds checking with overloaded builtins, handling arithmetic overflows safely, and protecting forward (call) and reverse (return) indirect function calls with CFI under Clang.
linux.conf.au is a conference about the Linux operating system, and all aspects of the thriving ecosystem of Free and Open Source Software that has grown up around it. Run since 1999, in a different Australian or New Zealand city each year, by a team of local volunteers, LCA invites more than 500 people to learn from the people who shape the future of Open Source. For more information on the conference see https://linux.conf.au/
#linux.conf.au #linux #foss #opensource
Видео Making C Less Dangerous in the Linux kernel канала linux.conf.au
Показать
Комментарии отсутствуют
Информация о видео
Другие видео канала
Does making the kernel harder make making the kernel harder?DebConf 14: QA with Linus TorvaldsWriting Viruses for Fun, not ProfitTutorial: Building the Simplest Possible Linux System - Rob Landley, se-instruments.com"What UNIX Cost Us" - Benno Rice (LCA 2020)"Zero Trust SSH" - Jeremy Stott (LCA 2020)Booting fasterFreeBSD, The Other Unix-Like Operating System and Why You Should Get Involved!"New" Features in C - Dan SaksLinux Tip | 10 Useful Linux Commands"picolibc: a C library for small 32-bit systems" - Keith Packard (LCA 2020)The Tragedy of systemdSee what your computer is doing with Ftrace utilitiesYou Can't Unit Test C, Right?"The New COBOL" - Benno Rice (PyCon AU 2019)Making C Less Dangerous - Kees Cook, GoogleLets LISP like it's 1959But Mummy I don't want to use CUDA - Open source GPU computeHow to Disappear Completely