Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

附加章十二:漏洞与病毒

复习

  • 程序:程序由人编写,难免存在疏漏
  • 指令执行:计算机能执行任何被写入的指令,无论善意还是恶意

TL;DR

  • 漏洞是程序或系统中可被利用的缺陷
  • 病毒、蠕虫、木马、勒索软件是不同形态的恶意程序
  • 攻击面越大,可乘之机越多
  • 及时修补、最小权限、保持警惕,是基本防线

正文

  既然程序难免有疏漏,那么必然有人会去找这些疏漏,并想方设法加以利用。这一章,我们看看这些缺陷和它们带来的恶意程序。

漏洞:可被利用的缺陷

  漏洞(vulnerability)是程序或系统里的一处缺陷,本身可能只是个小疏忽,却可能被攻击者用来做本不该允许的事。

  举个经典例子:程序把用户输入的一段文字存进一块固定大小的空间,却没有检查长度。如果输入特别长,就会溢出到相邻的内存里,覆盖掉原本的数据,甚至改变程序接下来的执行流程。攻击者借此可能让程序去执行他自己塞进去的代码。

  这类问题的根源,往往不是“算错了”,而是对边界和异常情况考虑不周。这也和上一章呼应:真正的危险,常常藏在边界上。

恶意程序的几种形态

  被利用的缺陷,往往要靠一段恶意程序来“落地”。它们形态各异:

  • 病毒:寄生在正常文件里,靠用户运行被感染文件来传播
  • 蠕虫:能自己通过网络扩散,不需要宿主文件
  • 木马:伪装成有用的程序,诱骗你主动安装
  • 勒索软件:加密你的数据,索要赎金才肯解密

  它们的传播途径也五花八门:可执行文件、恶意网页、带毒邮件附件,以及利用前面说的那些漏洞主动入侵。

技术之外的战场:社会工程

  不过,再坚固的技术防线,也常常败在“人”这一环。

  社会工程(social engineering)不靠技术漏洞,而是靠欺骗:伪装成客服、上司、熟人,诱导你说出密码、点击链接、转账。它攻击的是信任和习惯,而不是代码。

  这提醒我们:安全从来不只是技术问题,也是人的问题。

基本防线

  面对这些威胁,普通人也能做不少事:

  • 及时打补丁:漏洞一旦被公布,尽快修复,别给攻击者留窗口
  • 最小权限:能不用管理员身份就不用,减少被利用后的破坏范围
  • 谨慎点击:对陌生的链接、附件保持警惕,先怀疑再行动
  • 备份:面对勒索软件,可靠的离线备份常常是最后的救命稻草

  这些做法都不高深,却非常有效。安全的本质,往往不是某一项炫酷技术,而是一整套朴素的习惯。

思考题

  为什么“及时打补丁”和“最小权限”能显著降低风险?

小结

知识点

  • 漏洞是可被利用的缺陷,多源于边界与异常处理不当
  • 病毒、蠕虫、木马、勒索软件各有传播方式
  • 社会工程攻击的是人的信任与习惯
  • 打补丁、最小权限、谨慎点击与备份是基本防线

参考资料

  1. Wikipedia(zh):漏洞 (计算机安全):可被利用的系统缺陷
  2. Wikipedia(zh):恶意软件:病毒、蠕虫、木马等程序
  3. Wikipedia(zh):社会工程学:利用心理弱点获取信息或权限

思考题答案(仅供参考)

  因为漏洞一旦公开,攻击者会迅速利用,及时打补丁能把这个“可乘之机”尽快关掉,减少暴露时间。而最小权限能让程序或账号只拥有完成任务所必需的权力,即使它被攻破,攻击者能造成的破坏也有限。两者都在努力缩小可被利用的范围。

协议

  本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

封面图

设计师 | 南国微雪