附加章十二:漏洞与病毒
复习
- 程序:程序由人编写,难免存在疏漏
- 指令执行:计算机能执行任何被写入的指令,无论善意还是恶意
TL;DR
- 漏洞是程序或系统中可被利用的缺陷
- 病毒、蠕虫、木马、勒索软件是不同形态的恶意程序
- 攻击面越大,可乘之机越多
- 及时修补、最小权限、保持警惕,是基本防线
正文
既然程序难免有疏漏,那么必然有人会去找这些疏漏,并想方设法加以利用。这一章,我们看看这些缺陷和它们带来的恶意程序。
漏洞:可被利用的缺陷
漏洞(vulnerability)是程序或系统里的一处缺陷,本身可能只是个小疏忽,却可能被攻击者用来做本不该允许的事。
举个经典例子:程序把用户输入的一段文字存进一块固定大小的空间,却没有检查长度。如果输入特别长,就会溢出到相邻的内存里,覆盖掉原本的数据,甚至改变程序接下来的执行流程。攻击者借此可能让程序去执行他自己塞进去的代码。
这类问题的根源,往往不是“算错了”,而是对边界和异常情况考虑不周。这也和上一章呼应:真正的危险,常常藏在边界上。
恶意程序的几种形态
被利用的缺陷,往往要靠一段恶意程序来“落地”。它们形态各异:
- 病毒:寄生在正常文件里,靠用户运行被感染文件来传播
- 蠕虫:能自己通过网络扩散,不需要宿主文件
- 木马:伪装成有用的程序,诱骗你主动安装
- 勒索软件:加密你的数据,索要赎金才肯解密
它们的传播途径也五花八门:可执行文件、恶意网页、带毒邮件附件,以及利用前面说的那些漏洞主动入侵。
技术之外的战场:社会工程
不过,再坚固的技术防线,也常常败在“人”这一环。
社会工程(social engineering)不靠技术漏洞,而是靠欺骗:伪装成客服、上司、熟人,诱导你说出密码、点击链接、转账。它攻击的是信任和习惯,而不是代码。
这提醒我们:安全从来不只是技术问题,也是人的问题。
基本防线
面对这些威胁,普通人也能做不少事:
- 及时打补丁:漏洞一旦被公布,尽快修复,别给攻击者留窗口
- 最小权限:能不用管理员身份就不用,减少被利用后的破坏范围
- 谨慎点击:对陌生的链接、附件保持警惕,先怀疑再行动
- 备份:面对勒索软件,可靠的离线备份常常是最后的救命稻草
这些做法都不高深,却非常有效。安全的本质,往往不是某一项炫酷技术,而是一整套朴素的习惯。
思考题
为什么“及时打补丁”和“最小权限”能显著降低风险?
小结
知识点
- 漏洞是可被利用的缺陷,多源于边界与异常处理不当
- 病毒、蠕虫、木马、勒索软件各有传播方式
- 社会工程攻击的是人的信任与习惯
- 打补丁、最小权限、谨慎点击与备份是基本防线
参考资料
- Wikipedia(zh):漏洞 (计算机安全):可被利用的系统缺陷
- Wikipedia(zh):恶意软件:病毒、蠕虫、木马等程序
- Wikipedia(zh):社会工程学:利用心理弱点获取信息或权限
思考题答案(仅供参考)
因为漏洞一旦公开,攻击者会迅速利用,及时打补丁能把这个“可乘之机”尽快关掉,减少暴露时间。而最小权限能让程序或账号只拥有完成任务所必需的权力,即使它被攻破,攻击者能造成的破坏也有限。两者都在努力缩小可被利用的范围。
协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
封面图
设计师 | 南国微雪