| Learning Objective | Essential Knowledge |
|---|---|
4.1.A |
|
4.1.B |
|
4.1.C |
|
4.1.D |
|
保护设备
AP 网络安全 · 第 4 主题
4.1
设备漏洞与攻击
大纲
来源:美国大学理事会 AP 课程与考试说明
一个设备是任何计算机——一台服务器、一台个人笔记本电脑、一部智能手机,或一台建入一台机器里的嵌入式计算机(embedded computer)。带嵌入式计算机的日常设备被称为物联网(IoT)(Internet of Things)设备,而它们运行从水泵到洗衣机的一切。
对一个设备的主要威胁是恶意软件(malware)——恶意的软件。学这些类型:
- 病毒(virus)——必须由一个用户打开一个文件来激活。
- 蠕虫(worm)——自己扩散,没有人的动作。
- 木马(Trojan)——藏在看起来安全的软件里面;一个远程访问木马(RAT)(remote access trojan)给对手远程控制。
- 勒索软件(ransomware)——加密你的文件并要求为密钥付款。
- 间谍软件(spyware)——秘密地追踪你做什么。
- 键盘记录器(keylogger)——记录每个击键以窃取密码。
- 逻辑炸弹(logic bomb)——只在一个条件被满足时触发(一个日期、一个版本)。
- Rootkit——深深地藏在操作系统里,甚至能使自己不可见。
大多数恶意软件是一个文件,但无文件恶意软件(fileless malware)不同:它只存在于 内存(RAM)里并滥用设备上已经有的合法程序,不留下文件给一个扫描器找到。
对手利用未打补丁的软件(unpatched software)、弱密码、无保护的 BIOS/UEFI 启动设置,和开放的端口。我们按设备的价值和关键性给设备风险评级——一家医院未打补丁的电子邮件服务器是高风险,而一个员工带一个未使用的开放端口的笔记本电脑是低。
Name the malware from its behaviour
Each kind of malware has one defining trait: a worm self-spreads, a virus needs a user to run it, ransomware encrypts for money, and a rootkit hides deep in the OS.
| 英文 | 中文 | 拼音 |
|---|---|---|
| embedded computer | 嵌入式计算机 | qiàn rù shì jì suàn jī |
| Internet of Things (IoT) | 物联网 | wù lián wǎng |
| malware | 恶意软件 | è yì ruǎn jiàn |
| Virus | 病毒 | bìng dú |
| Worm | 蠕虫 | rú chóng |
| Trojan | 木马 | mù mǎ |
| remote access trojan (RAT) | 远程访问木马 | yuǎn chéng fǎng wèn mù mǎ |
| Ransomware | 勒索软件 | lè suǒ ruǎn jiàn |
| Spyware | 间谍软件 | jiàn dié ruǎn jiàn |
| Keylogger | 键盘记录器 | jiàn pán jì lù qì |
| Logic bomb | 逻辑炸弹 | luó jí zhà dàn |
| fileless malware | 无文件恶意软件 | wú wén jiàn è yì ruǎn jiàn |
| RAM | 内存 | nèi cún |
| unpatched software | 未打补丁的软件 | wèi dǎ bǔ dīng de ruǎn jiàn |
| patch | 补丁 | bǔ dīng |
4.2
身份验证
大纲
| Learning Objective | Essential Knowledge |
|---|---|
4.2.A |
|
4.2.B |
|
4.2.C |
|
4.2.D |
|
来源:美国大学理事会 AP 课程与考试说明

要安全地存储密码,系统使用一个密码散列函数(cryptographic hash function)——一个把任何输入变成一个固定长度字符串叫散列值(hash)(或摘要)的单向数学算法。散列有三个关键的性质:它们是抗碰撞(collision resistant)的(难以找到两个有相同输出的输入)、有抗原像(pre-image resistance)(你不能反推到输入),和可重复(相同的输入总是给出相同的散列)。

真实的散列函数有名字。安全散列算法(SHA)(Secure Hash Algorithm)家族——SHA-256 和 SHA-512——是今天的标准。对手通过尝试强制一次碰撞(两个不同的输入有相同的散列)来攻击一个散列函数;一旦存在一种高效的碰撞攻击,那个函数就被弃用(deprecated)(从安全用途中退役)。MD5 和 SHA-1 是经典的被弃用的例子——今天绝不要依赖它们来保护数据。
一个服务从不存储你的明文密码。它存储散列值;当你登录时,它把你打的散列并比较。要阻止两个相同的密码产生相同的散列,几个叫盐值(salt)的随机位在散列之前被添加,所以每个存储的散列都是唯一的。
Worked example. 两个用户都选择密码 sunshine。没有盐值,两个存储的散列会相同,所以破解一个立即破解另一个。给每个用户一个唯一的盐值——比如说 x7 和 q2 ——而服务转而散列 sunshinex7 和 sunshineq2。这两个存储的散列现在看起来完全不同,所以对手必须分别攻击每个账户。这就是为什么一个被窃取的散列数据库在散列被加盐时危险得多。
对手用密码攻击回击。在线攻击对一个实时登录猜测;离线攻击窃取散列数据库并在他们自己的机器上破解它(这样就绕过了任何账户锁定保护)。技术包括:
- 暴力破解(brute force)—— 自动化工具逐一尝试每一个可能的密码;最终一定能成功,但很慢,而且随密码长度爆炸式增长。
- 字典攻击(dictionary attack)—— 工具先尝试一份常用词和已知密码的清单,因为大多数人选的密码都容易猜。
- 密码喷洒(password spraying)—— 一个常见密码对许多账户(这样能躲开锁定,因为锁定是按每个账户计失败次数的)。
- 撞库(credential stuffing)—— 重用窃取或默认的凭据,利用人们跨网站重复用密码这一点。
- 彩虹表(rainbow table)—— 一张密码及其散列的预计算表,按散列排序,这样一个捕获的散列可以直接查表,而不必重新计算。
Password policy settings
管理员通过配置登录设置来加固账户 —— 考试要你能说出它们的名称,并说明每一项防的是什么:
| 设置 | 作用 | 它减慢的攻击 |
|---|---|---|
| 复杂度(complexity) | 要求每个字符集(大写、小写、数字、特殊字符)各出现一个 | 暴力破解 / 字典攻击 |
| 最小长度(minimum length) | 要求至少 N 个字符 —— 长度比什么都重要 | 暴力破解(呈指数增长) |
| 最长有效期(maximum age) | 每约 90-120 天强制更换一次 | 限制一个被窃密码还能用多久 |
| 密码历史(password history) | 保存最近 5-10 个散列,禁止重用 | 阻止重新用回一个旧的(可能已泄露的)密码 |
| 锁定(lockout) | 在 3-5 次错误尝试后锁定账户 | 暴力破解 / 在线猜测 |
有一个值得得分的细节:一些国家标准现在反对强制到期更换,因为定期更换会把用户逼成可预测的模式,比如 PasswordFall2028。密码管理器(password manager)才真正解决了根本问题 —— 它为每个网站生成并保存一个又长又独特的密码,这样就没有一个密码会被重用或被猜到。
身份验证因素(authentication factors)证明你是谁,并落入几类:你知道的东西(一个密码)、你拥有的东西(一个令牌或手机)、你是的东西(一个像指纹或视网膜扫描的生物特征(biometric)),和你在的某处(一个位置因素)。使用两个或更多是多因素身份验证(MFA)(multifactor authentication)——远强于单独一个密码。
How a hash maps any input to a fixed slot
A hash function sends every input to a fixed-length output. The same input always lands in the same place (repeatable), and you cannot work backwards from the slot to the input.
| 英文 | 中文 | 拼音 |
|---|---|---|
| cryptographic hash function | 密码散列函数 | mì mǎ sàn liè hán shù |
| hash | 散列值 | sàn liè zhí |
| collision resistant | 抗碰撞 | kàng pèng zhuàng |
| pre-image resistance | 抗原像 | kàng yuán xiàng |
| deprecated | 弃用 | qì yòng |
| salt | 盐值 | yán zhí |
| brute force | 暴力破解 | bào lì pò jiě |
| dictionary attack | 字典攻击 | zì diǎn gōng jī |
| password spraying | 密码喷洒 | mì mǎ pēn sǎ |
| credential stuffing | 撞库 | zhuàng kù |
| rainbow table | 彩虹表 | cǎi hóng biǎo |
| complexity | 复杂度 | fù zá dù |
| minimum length | 最小长度 | zuì xiǎo cháng dù |
| maximum age | 最长有效期 | zuì zhǎng yǒu xiào qī |
| password history | 密码历史 | mì mǎ lì shǐ |
| lockout | 锁定 | suǒ dìng |
| password manager | 密码管理器 | mì mǎ guǎn lǐ qì |
| biometric | 生物特征 | shēng wù tè zhēng |
| multifactor authentication (MFA) | 多因素身份验证 | duō yīn sù shēn fèn yàn zhèng |
4.3
设备防护
大纲
| Learning Objective | Essential Knowledge |
|---|---|
4.3.A |
|
4.3.B |
|
4.3.C |
|
4.3.D |
|
来源:美国大学理事会 AP 课程与考试说明
管理控制设定规则:一个可接受使用政策(acceptable use policy)列出用户可以和不可以做什么、一个密码政策设定长度和重用规则,而一个软件安装政策控制什么能被安装。
技术控制做工作。反恶意软件(anti-malware software)保持一个恶意软件特征的数据库并隔离任何匹配的文件。保持操作系统和应用更新——安装每个补丁(patch)——在对手能使用它们之前关闭已知的洞。一个主机防火墙(host-based firewall)控制进出一个单一设备的流量,阻止它不需要的端口和服务。

| 英文 | 中文 | 拼音 |
|---|---|---|
| acceptable use policy | 可接受使用政策 | kě jiē shòu shǐ yòng zhèng cè |
| Anti-malware software | 反恶意软件 | fǎn è yì ruǎn jiàn |
| host-based firewall | 主机防火墙 | zhǔ jī fáng huǒ qiáng |
4.4
检测设备攻击
大纲
| Learning Objective | Essential Knowledge |
|---|---|
4.4.A |
|
4.4.B |
|
4.4.C |
|
4.4.D |
|
来源:美国大学理事会 AP 课程与考试说明
设备记录登录、文件变化和进程,而这些日志揭示一个入侵指标(IoC)(indicator of compromise)——一个对手进入的证据。基于主机的 IoC 显示为意想不到的进程或改变的设置;基于文件的 IoC 是散列匹配已知恶意软件的文件;基于行为的 IoC 是像许多失败的登录或不寻常的登录时间这样的东西。
选择一个检测方法意味着权衡性能(基于特征更轻,对弱设备更好)、成本(一个端点检测与响应(EDR)(endpoint detection and response)服务强大但昂贵),和设备有多敏感。读身份验证日志暴露密码攻击:一个用户的许多错误密码标志一个猜测攻击;许多用户从一个 IP 失败标志密码喷洒;一阵默认凭据标志撞库。不过,离线攻击不能被检测——它们在对手自己的计算机上发生。
| 英文 | 中文 | 拼音 |
|---|---|---|
| indicator of compromise (IoC) | 入侵指标 | rù qīn zhǐ biāo |
| endpoint detection and response (EDR) | 端点检测与响应 | duān diǎn jiǎn cè yǔ xiǎng yìng |
4.4
考试技巧
- 知道每个恶意软件类型的定义特征:蠕虫自我扩散、病毒需要一个用户、勒索软件为钱加密、RAT 给远程控制、rootkit 隐藏。
- 一个散列是单向和固定长度的;盐值使相同的密码散列不同。绝不说一个服务"存储密码"——它存储加盐的散列。
- 说出真实的算法:SHA-256/SHA-512 是现行的;MD5 和 SHA-1 因为存在高效的碰撞攻击而被弃用。
- 把密码攻击匹配到它的日志特征:一个用户 + 许多错误密码 = 猜测;许多用户 + 一个 IP = 喷洒;默认凭据 = 撞库。
- 把身份验证因素分成知道 / 拥有 / 是 / 在哪里,并记住 MFA 结合两个或更多——一个指纹加一个密码,不是两个密码。
- 离线密码攻击不能被检测,因为破解在对手的机器上发生——一个最爱的考试"陷阱"。
本主题的互动课程
逐步学习,并即时检测练习。