考点精讲
- 恶意代码(Malware)分类:病毒(Virus)感染文件、需宿主程序、靠人工传播;蠕虫(Worm)可自我复制、无需宿主、通过网络自动传播;木马(Trojan)伪装成合法软件、无自我复制能力、诱导用户安装后窃取或留后门;勒索软件(Ransomware)加密受害者文件并勒索赎金。缓冲区溢出(Buffer Overflow)当程序向缓冲区写入超过其容量的数据时,溢出数据覆盖相邻内存,可导致程序崩溃或被攻击者劫持执行流(如执行恶意代码),是经典的内存安全漏洞,防御靠安全编码(边界检查、使用安全函数)。TOCTOU(Time-of-Check to Time-of-Use,检查时间与使用时间)漏洞指程序「检查」某资源状态到「使用」它之间存在时间差,攻击者借此间隙篡改资源,属竞态条件。
记忆技巧
记「毒寄生、虫自跑、马伪装、勒索锁」——病毒靠宿主、蠕虫自己跑、木马装好人、勒索锁文件。
缓冲区溢出记「装太多溢出来盖邻居」——超界写入覆盖相邻内存。
TOCTOU 记「检查完了、用之前,被钻了空子」——本质是竞态条件。
缓冲区溢出记「装太多溢出来盖邻居」——超界写入覆盖相邻内存。
TOCTOU 记「检查完了、用之前,被钻了空子」——本质是竞态条件。
常见误区
- 把蠕虫与病毒混同——蠕虫无需宿主、可自我复制,病毒需宿主、靠人工传播。
- 把木马当成能自我复制——木马无自我复制能力,靠伪装诱导安装。
- 把缓冲区溢出当成只导致崩溃——严重时可被劫持执行流、执行任意代码。
真题思路
- 【示例】 【示例】常考「某恶意代码(自我复制/伪装/加密勒索)属于哪一类」或「缓冲区溢出/TOCTOU 的本质」,病毒与蠕虫的「宿主/自我复制」是高频区分点。参考 Practice Tests 第 8 章(Domain 8)。
常见问题
Q:蠕虫和病毒哪个传播更快?
A:蠕虫,因其可自我复制、自动网络传播。
Q:如何防御缓冲区溢出?
A:安全编码(边界检查、安全函数)、编译器保护(如栈保护)、运行时防护(ASLR、DEP)。
Q:蠕虫和病毒一样吗?
A:不一样,蠕虫无需宿主、可自我复制;病毒需宿主、靠人工传播。
Q:木马会自我复制吗?
A:不会,木马无自我复制能力,靠伪装诱导安装。
Q:缓冲区溢出只会导致崩溃吗?
A:不是,严重时可被劫持执行流、执行任意代码。
相关知识
教材出处:Domain 8 · 软件开发安全 恶意代码与缓冲区溢出