第 5 章:系统安全 —— 守护你的"数字家园"¶
场景: 你家装了最好的防盗门(防火墙),但窗户没关(系统漏洞)、家里进了小偷你不知道(无监控)、小偷在你家装了窃听器(木马)。系统安全就是确保你的"数字家园"——操作系统——本身是安全的。
5.1 操作系统安全基础¶
核心比喻:操作系统安全就是房子的结构安全
防火墙是围墙,但房子本身也要安全——窗户要能锁、房间要有门、贵重物品要放保险箱。操作系统安全就是确保"房子"本身没有结构缺陷。
操作系统安全机制¶
| 机制 | 作用 | Linux 实现 | Windows 实现 |
|---|---|---|---|
| 身份认证 | 验证用户身份 | PAM(可插拔认证模块) | Windows Hello、Kerberos |
| 访问控制 | 控制资源访问 | DAC(rwx)+ MAC(SELinux) | NTFS 权限 + 强制完整性控制 |
| 审计日志 | 记录安全事件 | syslog、auditd | 事件查看器、安全日志 |
| 内存保护 | 防止内存攻击 | ASLR、DEP、Stack Canary | ASLR、DEP、CFG |
| 最小权限 | 限制进程权限 | sudo、capabilities | UAC(用户账户控制) |
5.2 恶意代码¶
恶意代码分类¶
| 类型 | 定义 | 特点 | 比喻 |
|---|---|---|---|
| 病毒(Virus) | 寄生在正常程序中,运行时复制传播 | 需要宿主程序 | 传染病(需要宿主) |
| 蠕虫(Worm) | 独立程序,通过网络自我复制传播 | 无需宿主,自动传播 | 鼠疫(自行扩散) |
| 木马(Trojan) | 伪装成正常软件,暗中执行恶意操作 | 不会自我复制 | 特洛伊木马(伪装潜入) |
| 勒索软件(Ransomware) | 加密用户文件,勒索赎金 | 破坏性强 | 绑匪(绑架数据要赎金) |
| Rootkit | 隐藏自身和恶意活动,难以检测 | 深度隐藏 | 间谍(潜伏在暗处) |
| 间谍软件(Spyware) | 暗中收集用户信息 | 隐蔽性强 | 窃听器 |
病毒 vs 蠕虫 vs 木马¶
| 对比维度 | 病毒 | 蠕虫 | 木马 |
|---|---|---|---|
| 是否需要宿主 | ✅ 需要 | ❌ 不需要 | ❌ 不需要 |
| 是否自我复制 | ✅ | ✅ | ❌ |
| 传播方式 | 文件感染 | 网络漏洞 | 用户下载运行 |
| 典型代表 | CIH 病毒 | 冲击波蠕虫、WannaCry | 灰鸽子 |
5.3 漏洞管理¶
核心比喻:漏洞就是没锁的窗户
你家的防盗门再坚固,如果有一扇窗户没锁,小偷就能轻松进入。系统漏洞就是这些"没锁的窗户"——攻击者通过它们绕过所有安全防护。
漏洞生命周期¶
| 概念 | 说明 |
|---|---|
| 0-day 漏洞 | 尚未被厂商发现或修复的漏洞,攻击价值最高 |
| CVE | 公共漏洞和暴露(Common Vulnerabilities and Exposures),漏洞的唯一编号 |
| CVSS | 通用漏洞评分系统,0~10 分,分数越高越严重 |
| 补丁管理 | 及时测试和部署安全补丁的流程 |
常见系统漏洞类型¶
| 漏洞类型 | 说明 | 防御措施 |
|---|---|---|
| 缓冲区溢出 | 写入数据超出缓冲区边界,覆盖相邻内存 | ASLR、DEP、Stack Canary、安全编码 |
| 整数溢出 | 整数运算结果超出表示范围 | 输入验证、使用安全库 |
| 格式化字符串 | 用户输入被当作格式化字符串处理 | 使用固定格式字符串 |
| 竞态条件 | 多线程/进程访问共享资源时序问题 | 正确的同步机制 |
| 权限提升 | 低权限用户获取高权限 | 最小权限原则、及时打补丁 |
5.4 主机安全防护¶
主机安全防护体系¶
┌────────────────────────────────────┐
│ 主机安全防护体系 │
├────────────────────────────────────┤
│ 防病毒/反恶意软件(AV/EDR) │
├────────────────────────────────────┤
│ 主机入侵检测(HIDS) │
├────────────────────────────────────┤
│ 文件完整性监控(FIM) │
├────────────────────────────────────┤
│ 主机防火墙(iptables/Windows FW) │
├────────────────────────────────────┤
│ 系统加固(关闭不必要服务、最小权限) │
├────────────────────────────────────┤
│ 补丁管理(及时更新安全补丁) │
└────────────────────────────────────┘
| 防护措施 | 说明 |
|---|---|
| 杀毒软件(AV) | 基于特征库检测已知恶意代码 |
| EDR | 端点检测与响应,实时监控终端行为 |
| HIDS | 主机入侵检测,监控文件/进程/注册表变化 |
| 系统加固 | 关闭不必要服务、修改默认配置、最小权限 |
| 应用白名单 | 只允许运行受信任的程序 |
5.5 常见考试题型¶
例题 1: 以下不需要宿主程序即可自我复制传播的是( )。
A. 病毒 B. 蠕虫 C. 木马 D. 逻辑炸弹
查看答案
答案:B
蠕虫是独立的程序,利用网络漏洞自我复制传播,不需要寄生在宿主程序中。病毒需要宿主程序,木马不会自我复制。
例题 2: 缓冲区溢出攻击的防御措施不包括( )。
A. ASLR B. DEP C. 防火墙 D. Stack Canary
查看答案
答案:C
防火墙是网络层防护,不能防御缓冲区溢出攻击。ASLR(地址空间布局随机化)、DEP(数据执行保护)、Stack Canary(栈金丝雀)都是操作系统层面的缓冲区溢出防御机制。
例题 3: 0-day 漏洞是指( )。
查看答案
答案:尚未被厂商发现或发布补丁的安全漏洞。
0-day 漏洞是攻击者已经发现并可能利用,但软件厂商尚未知晓或尚未发布修复补丁的漏洞。这类漏洞攻击价值最高,因为没有现成的防御措施。
要点总结¶
- 操作系统安全机制:认证、访问控制、审计、内存保护、最小权限
- 恶意代码分类:病毒(需宿主)、蠕虫(自传播)、木马(伪装)、勒索软件
- 漏洞管理:CVE 编号、CVSS 评分、0-day 概念、补丁管理
- 缓冲区溢出防御:ASLR、DEP、Stack Canary
- 主机防护:AV/EDR、HIDS、系统加固、应用白名单
课后练习¶
-
恶意代码辨析 :从是否需要宿主、是否自我复制、传播方式三个维度对比病毒、蠕虫和木马。
-
漏洞分析 :解释什么是缓冲区溢出攻击,以及 ASLR 和 DEP 如何防御此类攻击。
-
真题演练 :WannaCry 勒索软件利用的漏洞类型是( ),它通过( )协议在局域网内传播。
下一章预告: 系统安全搞定了,但 Web 应用呢?SQL 注入、XSS、CSRF——这些应用层攻击是黑客最常用的入侵手段。第 6 章见。