病毒
定义
计算机病毒指一段在运行过程中把自己复制到其他程序或文件中、并借宿主程序执行而获得运行机会的代码,属于恶意软件中的一类[1][2]。它通常不是独立运行的程序,而是寄生在可执行文件或数据文件中,宿主被启动时才被一并激活[1]。
学术上的经典定义由弗雷德·科恩在 1984 年前后给出,大意是一个程序通过修改别的程序、把自身或其变种写入其中,从而使对方被“感染”[3]。中国大陆的行政法规把计算机病毒界定为编制或插入计算机程序中、破坏计算机功能或毁坏数据、影响计算机使用并具有自我复制能力的一组指令或代码[4]。这类界定强调自我复制与破坏性两项要素[5]。
病毒的常见性质包括传染性、潜伏性、可触发性和破坏性:它在条件满足时才发作,发作前可能长期静默[6][5]。按寄生的对象与方式,可分为常驻内存型、可执行文件型、引导扇区型、宏病毒和多态型等类别;宏病毒攻击的是文档而非可执行文件,因而常随邮件附件跨平台扩散[1]。
原理
一个病毒通常包含传播机制和载荷两部分:传播机制负责把自身副本写入新的宿主或新系统,载荷则是在感染成功后执行的动作,如删除或篡改文件、加密数据、开启后门等。就文件型病毒而言,它把代码嵌入宿主文件,并修改入口地址,使宿主运行时先跳到病毒代码,执行完再交回原程序,宿主外观与功能可能看不出异常。
病毒借宿主启动的方式使其获得运行权限,因此用户的常规操作即可成为感染入口,例如打开来源不明的附件、运行下载的安装包或接入已带毒的移动存储介质[7]。与依靠漏洞自行扫描网络传播的蠕虫不同,传统病毒一般需要用户的一次操作才能扩散到新的主机[2]。
按 Cohen 的形式化思路,感染可以用“把一个程序 P 改写为包含 P 副本的新程序”来描述:$P' = P \cup V$,其中 $V$ 是病毒代码,宿主被感染后仍能执行原有功能,从而使感染不易被察觉[3]。这一模型也说明,只要“自我复制”与“修改他者”被形式化,病毒集合本身是一个可递归定义的程序集合[3]。
flowchart LR
A[病毒样本落地] --> B[寄生/感染宿主文件]
B --> C[宿主被用户启动]
C --> D[病毒代码取得执行权]
D --> E[复制并感染其他文件]
D --> F[载荷发作]
发展历程
自我复制程序的理论设想早于实际病毒出现:冯·诺依曼在 1949 年前后就讨论过程序在内存中自我复制的可能性,为后来的病毒概念提供了思想基础[8]。1971 年,BBN 公司在 ARPANET 上编写出能够自行在联网机器间移动的 Creeper,常被视为最早的蠕虫式程序;它还引出了专门用于清除它的 Reaper,被视作早期反恶意代码工具[9][10]。
1983 年 11 月,南加州大学的研究生弗雷德·科恩在安全讨论会上演示了一个能够自我复制并感染其他程序的实验程序,其导师伦·艾德勒曼据生物学类比将其命名为“计算机病毒”[8]。此后科恩在 1984 年发表论文,给出病毒的定义与实验方法,使这一概念进入学术视野[11][3]。
1988 年 11 月,康奈尔大学的罗伯特·莫里斯在互联网上释放了后来以他命名的蠕虫,感染了数以千计的 Unix 系统并造成网络拥塞,也使应急响应机制受到重视,CERT 一类组织的建立与此相关[12][9]。进入 2000 年代,病毒与蠕虫借助电子邮件和服务器漏洞大规模扩散,Code Red、SQL Slammer 等事件显示了自动化传播的速度[7]。
2010 年前后出现的 Stuxnet 把攻击目标指向工业控制系统,被普遍视为恶意代码针对实体设施的早期案例。同一时期,勒索软件逐渐成为主流威胁形态,无文件攻击、利用合法系统工具驻留等手法也日益常见[7]。
应用
在安全研究与教学中,病毒代码常被作为样本用于分析感染机制、提取特征码和测试检测引擎;教材通常以病毒生命周期为线索组织攻击与防御两部分内容[13]。反病毒产品的工作原理也建立在对这类样本的静态与动态分析之上,例如通过特征码比对、行为监控、沙箱运行等方式判定可疑程序[13][9]。
在攻防演练与教学环境中,自我复制程序常被用来演示传播链与隔离策略,帮助评估终端防护和应急响应流程的有效性[14]。部分课程以编写和阻断病毒、蠕虫、木马的方式讲授恶意代码原理,这一做法在学界也伴随伦理争议[14]。
局限
病毒概念的边界并不清晰。由于“是否具有破坏性”往往取决于使用者的意图与场景,同一段代码在不同语境下可能被视作工具或病毒,这使得按定义精确判定某程序是否属于病毒缺乏唯一标准[3]。此外,许多现代恶意程序同时具备病毒、蠕虫和木马的特征,不同厂商对同一样本的归类也常不一致[3][7]。
在检测层面,纯粹依靠特征码难以覆盖变形、多态和加壳样本,误报与漏报始终存在,且扫描本身占用较多系统资源[9][1]。病毒因嵌入合法文件,清除时常难以与宿主剥离,实践中多以隔离或删除整个被感染文件告终,可能连带损失数据[7]。
从传播条件看,传统病毒依赖用户触发,若使用者不运行被感染文件则难以扩散,这一被动性使其在恶意软件中的占比下降,攻击者更多转向木马、勒索软件与无文件手法[7]。技术上也不存在能够对所有程序作出绝对准确判定的通用方法,检测只能依靠多重手段与持续更新[3]。
任何自称“病毒”的样本,其危害程度还受操作系统、文件格式与运行环境制约,跨平台时常常失效,这使得同一样本在不同系统上的表现差异明显[13]。
参见
参考资料
- 资讯安全网: 恶意软件 [引用日期2026-10-29]
- cp-14-4501-61039-1 [引用日期2026-10-29]
- 3 期 [引用日期2026-10-29]
- 中华人民共和国计算机信息系统安全保护条例 [引用日期2026-10-29]
- 计算机病毒 [引用日期2026-10-29]
- 中国科普博览_电信博物馆 [引用日期2026-10-29]
- 恶意软件分类大全 [引用日期2026-10-29]
- 电脑病毒25岁了!_环球科学(《科学美国人》中文版)-世界科普杂志第一品牌-139位诺贝尔奖得主撰稿 [引用日期2026-10-29]
- 惡意威脅與網路安全的起源 | Rockwell Automation [引用日期2026-10-29]
- Malware 101: Würmer und wie sie sich verbreiten [引用日期2026-10-29]
- Malware vs. viruses [引用日期2026-10-29]
- computer-fraud [引用日期2026-10-29]
- 计算机病毒技术及其防御(网络空间安全系列教材)(中文) [引用日期2026-10-29]
- CS305 Topic [引用日期2026-10-29]