内核安全机制与漏洞防护实战
📚 共计 30 章节
01
内核安全概述
操作系统内核的角色、内核安全的重要性、常见内核攻击面分析(系统调用、驱动、内存管理)。
攻击面
系统调用
02
用户态与内核态
特权级概念(Ring 0-3)、系统调用机制、用户态与内核态的切换开销。
Ring0
切换开销
03
内存管理基础
虚拟内存、分页机制、页表结构、TLB(快表)的作用。
分页
TLB
04
进程与线程安全
进程控制块(PCB)、进程隔离、内核线程与用户线程的区别。
PCB
隔离
05
内核同步机制
自旋锁、互斥锁、读写锁、信号量、RCU(读-拷贝-更新)机制。
RCU
自旋锁
06
中断与异常处理
中断向量表、中断处理流程、下半部机制(软中断、Tasklet、工作队列)。
下半部
Tasklet
07
内核模块与驱动
LKM(可加载内核模块)框架、驱动开发基础、驱动安全风险。
LKM
驱动风险
08
系统调用安全
系统调用表、参数验证、权限检查、常见的系统调用攻击(如TOCTOU)。
TOCTOU
参数验证
09
缓冲区溢出防护
栈保护(Canary)、地址空间布局随机化(ASLR)、数据执行保护(NX/DEP)。
Canary
ASLR
10
内核堆内存安全
SLAB/SLUB分配器、堆溢出攻击、Use-After-Free(UAF)漏洞原理。
UAF
SLUB
11
内核栈安全
内核栈结构、栈溢出攻击、栈切换机制、内核栈隔离技术。
栈溢出
隔离
12
权限提升攻击
普通用户到root的提权路径、capability机制、SELinux/AppArmor基础。
提权
capability
13
内核漏洞利用技术
ROP(返回导向编程)、ret2dir、ret2usr攻击原理。
ROP
ret2usr
14
KASLR与绕过技术
内核地址空间布局随机化、KASLR绕过方法(如侧信道攻击)。
KASLR
侧信道
15
内核控制流完整性(CFI)
CFI原理、kCFI实现、影子栈(Shadow Stack)概念。
CFI
影子栈
16
内核隔离技术
KPTI(内核页表隔离)、KASAN(内核地址消毒器)、KCOV(代码覆盖率)。
KPTI
KASAN
17
内核漏洞缓解机制
FORTIFY_SOURCE、Stack Clash防护、内核自保护(KSPP)。
FORTIFY
KSPP
18
内核安全审计与测试
静态分析(Sparse、Coccinelle)、动态分析(Syzkaller fuzzing)。
Syzkaller
Coccinelle
19
内核漏洞案例1:Dirty COW
CVE-2016-5195 漏洞原理与复现分析。
Dirty COW
CVE-2016
20
内核漏洞案例2:CVE-2017-5123
waitid系统调用漏洞分析。
waitid
CVE-2017
21
内核漏洞案例3:Dirty Pipe
CVE-2022-0847 漏洞原理与利用。
Dirty Pipe
CVE-2022
22
内核漏洞案例4:StackRot
CVE-2023-3269 内核栈溢出漏洞分析。
StackRot
CVE-2023
23
内核漏洞案例5:Netfilter UAF
CVE-2024-1086 Netfilter UAF漏洞分析。
Netfilter
UAF
24
内核安全加固
内核编译选项优化、sysctl安全配置、seccomp(安全计算模式)应用。
seccomp
sysctl
25
容器与内核安全
Namespace隔离、Cgroups资源限制、容器逃逸攻击与防护。
容器逃逸
Cgroups
26
内核安全监控
auditd审计系统、内核事件追踪(tracepoint、kprobe)、eBPF安全监控。
auditd
eBPF
27
eBPF与安全
eBPF程序类型、eBPF验证器、eBPF在安全检测中的应用(如 Falco)。
Falco
验证器
28
内核安全开发规范
安全编码指南、内核API安全使用、错误处理与资源释放。
安全编码
API
29
内核安全测试环境搭建
QEMU/KVM虚拟化、内核编译与调试、GDB调试内核。
QEMU
GDB
30
内核安全未来趋势
Rust for Linux、机密计算、硬件辅助安全(Intel SGX/TDX)。
Rust
SGX