软件安全与测试
软件测试安全规范

软件测试安全规范1. 安全测试的重要性软件测试是确保软件安全性的关键步骤之一。
通过进行全面的安全测试,可以帮助发现和修复软件中的安全漏洞和潜在风险,以保护用户的数据和隐私。
2. 安全测试的目标安全测试的主要目标是评估软件的安全性,包括对以下方面进行检查:- 身份验证和访问控制- 数据保护和加密- 安全配置和漏洞扫描- 安全通信和传输- 异常处理和错误处理- 安全审核和日志记录3. 安全测试的方法进行安全测试时,可以采用以下方法:- 静态分析:通过检查源代码或二进制代码来发现可能的漏洞和安全问题。
- 动态分析:通过模拟实际的攻击场景来测试软件的安全性。
- 渗透测试:通过模拟黑客攻击来评估软件的安全弱点,包括网络、服务器和应用程序层面的测试。
- 审查与评估:对软件的整体安全性进行评估和审查,包括检查安全文件和文档。
4. 安全测试流程安全测试需要按照以下流程进行:1. 确定测试目标和范围:明确测试的目标和所需覆盖的范围。
2. 规划测试活动:制定详细的测试计划,包括测试方法、资源需求和时间安排。
3. 执行测试活动:按照测试计划进行测试,并记录测试结果。
4. 分析测试结果:评估测试结果,识别和排除安全漏洞和问题。
5. 核查和确认修复:确认已修复问题并重新进行测试验证。
6. 编写测试报告:撰写详细的测试报告,包括测试方法、结果和建议。
5. 安全测试的最佳实践进行安全测试时,应遵循以下最佳实践:- 使用最新的安全工具和技术来发现漏洞和潜在风险。
- 在测试环境中执行安全测试,以减少对生产环境的影响。
- 使用合法的测试数据,避免使用真实的用户数据。
- 确保测试结果的准确性和可重复性。
- 在测试过程中与开发团队密切合作,以便及时修复发现的安全问题。
- 定期进行安全测试,以保持软件的安全性。
6. 总结软件测试安全规范是确保软件安全的关键步骤。
通过采用适当的安全测试方法和流程,可以发现和修复软件中的安全漏洞和潜在风险。
软件安全测试的内容

软件安全测试的内容软件安全测试是确保软件系统安全性的重要过程,它涵盖了多个方面的测试内容。
以下是一些常见的软件安全测试内容:1. 漏洞扫描:通过自动化工具扫描软件系统,发现潜在的漏洞和安全风险。
这种测试方法可以帮助测试人员更快地发现漏洞,并提供修复建议。
2. 渗透测试:模拟黑客攻击的方式,对软件系统进行授权的安全测试。
这种测试方法可以发现系统的弱点和漏洞,并评估系统的安全性。
3. 代码审计:检查程序源代码是否存在安全隐患,或者有编码不规范的地方,通过自动化工具或者人工审查的方式,对程序源代码逐条进行检查和分析,发现这些源代码缺陷引发的安全漏洞,并提供代码修订措施和建议。
4. 认证和授权测试:测试软件系统的用户认证和访问控制机制,以确保只有授权用户能够访问系统的敏感数据和功能。
5. 数据保护测试:测试软件系统的数据加密和保护机制,以确保用户的敏感数据不会被未经授权的人员访问或篡改。
6. 安全配置测试:测试软件系统的安全配置,包括操作系统、数据库和网络设备等的配置,以确保系统的安全性。
7. 静态代码分析:通过检查源代码或二进制文件来发现潜在的安全漏洞,如缓冲区溢出、代码注入和不安全的函数调用等。
8. 动态代码分析:通过执行软件系统,并监视其运行时行为,以发现可能的安全漏洞和漏洞利用。
9. 压力测试:通过模拟大量用户同时访问系统,测试系统在高负载和压力下的性能和安全性。
10. 安全审计:对软件系统的安全策略、安全控制和安全机制进行全面评估和审查,以确保系统的安全性。
这些测试内容可以单独进行,也可以结合进行,以全面评估软件系统的安全性。
在进行软件安全测试时,应遵循安全标准和最佳实践,确保测试的准确性和可靠性。
软件安全测试面试题

软件安全测试面试题一、简介软件安全测试是一种为了发现和修复软件系统中存在的漏洞和安全风险的活动。
通过对软件系统进行全面测试和评估,以保证安全性和可靠性。
本篇文章将介绍一些常见的软件安全测试面试题,以帮助应聘者更好地理解和应对相关问题。
二、常见面试题1. 什么是软件安全测试?软件安全测试是对软件系统中的漏洞、弱点和潜在问题进行系统评估和测试的过程。
其目的是发现和修复这些问题,以保证软件系统在面临各种安全威胁时能够正常运行。
2. 软件安全测试的目标是什么?软件安全测试的主要目标包括:- 发现软件系统中的安全漏洞和风险;- 评估软件系统在面临恶意攻击时的安全性;- 验证软件系统的可用性和可靠性。
3. 请介绍一些常见的软件安全风险。
常见的软件安全风险包括:- 输入验证不足,导致用户输入被恶意利用;- 身份认证和访问控制不完善,导致未授权的访问;- 数据保护不足,导致敏感信息泄露;- 安全配置错误,导致系统易受攻击;- 缓冲区溢出,导致系统崩溃或被入侵。
4. 请介绍一些常用的软件安全测试方法。
常用的软件安全测试方法包括:- 静态代码分析:对软件源代码进行静态分析,发现潜在的安全问题;- 动态代码分析:运行软件时,通过监控和分析软件的行为,发现安全问题;- 渗透测试:模拟真实攻击场景,测试软件系统的安全性;- 鸭子嘴测试法:通过特定输入和操作来触发特定的软件行为,发现安全漏洞。
5. 请简要介绍一下OWASP Top 10漏洞列表。
OWASP Top 10漏洞列表是由全球应用安全组织OWASP发布的对Web应用程序中最严重的安全漏洞进行排名的列表。
其中包括:- 注入漏洞(Injection);- 跨站脚本攻击(XSS);- 不安全的直接对象引用(Insecure Direct Object References);- 跨站请求伪造(CSRF);- 安全配置错误(Security Misconfiguration);- 敏感信息泄露(Sensitive Data Exposure);- 失效的身份认证和会话管理(Broken Authentication and Session Management);- XML外部实体攻击(XML External Entity);- 不安全的反序列化(Insecure Deserialization);- 使用含有已知漏洞的组件(Using Components with Known Vulnerabilities)。
软件测试安全测试

软件测试安全测试
软件测试是指在软件开发过程中对软件进行验证和评估的过程。
其中的安全测试是指对软件的安全性进行验证和评估的过程。
在进行安全测试时,测试人员主要从以下几个方面进行测试:
1. 访问控制:测试软件的访问控制机制是否完善。
包括登录验证、权限管理等方面的测试。
2. 数据保护:测试软件对用户数据的保护机制。
包括数据加密、数据备份与恢复、数据完整性验证等方面的测试。
3. 输入验证:测试软件对用户输入的合法性进行验证的能力。
包括对输入的长度、格式等进行验证,防止输入的数据对系统造成攻击。
4. 安全配置:测试软件在默认配置的情况下是否具有良好的安全性。
检查软件的默认配置是否容易受到攻击,并提出相应的建议。
5. 安全漏洞:测试软件是否存在安全漏洞,如代码注入、跨站点脚本攻击、跨站请求伪造等。
测试人员会利用一些常见的安全攻击手段对软件进行测试,并分析软件的安全性能。
在进行安全测试时,测试人员需要熟悉常见的安全攻击手段和防范措施,了解安全测试的方法和工具,并能够根据软件的实际情况设计合理的测试方案。
通过安全测试,可以及时发现并修复软件中存在的安全问题,提高软件的安全性能,保护用户的信息安全,提升软件的信誉度。
同时,也可以提高软件对外界攻击的抵抗能力,降低因安全漏洞引发的风险。
综上所述,安全测试是软件测试的重要组成部分,它能够帮助开发人员提高软件的安全性能,减少安全风险。
对于用户来说,安全测试也是一种保障,可以使用户的信息安全得到有效的保护。
软件开发者在进行安全测试时要严谨细致,综合运用各种测试方法和工具,确保软件的安全性能和稳定性。
软件安全与测试

24
软件测试概述-测试目的
测试的目的就是发现软件中的各种缺陷 测试只能证明软件存在缺陷,不能证明软件不 存在缺陷 测试可以使软件中缺陷降低到一定程度,而不 是彻底消灭 以较少的用例、时间和人力找出软件中的各种 错误和缺陷,以确保软件的质量
莱芜职业技术学院
25
软件安全与测试
软件测试概述--测试的目标
23
莱芜职业技术学院
软件安全与测试
软件测试概述
软件测试概念
广义的概念 指软件生存周期中所有的检查、评审和确认 工作,其中包括了对分析、设计阶段,以及 完成开发后维护阶段的各类文档、代码的审 查和确认 狭义概念 识别软件缺陷的过程,即实际结果与预期结 果的不一致
软件安全与测试
莱芜职业技术学院
在分析、设计、实现阶段的复审和测试工作能够发现 和避免80%的Bug 而系统测试又能找出其余Bug中的80% 最后的5%的Bug可能只 有在用户的大范围、长时间使 用后才会曝露出来
28
莱芜职业技术学院
软件安全与测试
软件测试概述--测试的重点
测试用例的良好设计 测试用例的设计是整个软件测试工作的核心 测试用例反映对被测对象的质量要求,决定 对测试对象的质量评估 测试工作的管理
尤其是对包含多个子系统的大型软件系统, 其测试工作涉及大量人力和物力,有效的测 试工作管理是保证有效测试工作的必要前提 测试环境应该与实际测试环境一致
29
测试环境的建立
莱芜职业技术学院
软件安全与测试
软件测试概述—软件测试分类
典型的软件测试类型 功能测试 可靠性测试 容错性测试 恢复测试 易用性测试
软件安全测试报告

软件安全测试报告一、引言。
随着互联网的快速发展,软件安全问题日益凸显。
软件安全测试作为保障软件安全性的重要手段,受到了越来越多的关注。
本报告旨在对软件安全测试的相关工作进行总结和分析,为软件安全性提供参考依据。
二、测试目标。
本次软件安全测试的主要目标是对软件系统的安全性进行全面评估,包括但不限于漏洞扫描、权限控制、数据加密、安全配置等方面的测试。
三、测试范围。
本次测试主要针对软件系统的核心模块进行安全性测试,包括用户身份认证、数据传输、系统权限管理等方面。
四、测试方法。
1. 漏洞扫描,通过使用专业的漏洞扫描工具,对软件系统进行全面扫描,发现潜在的安全漏洞。
2. 安全配置测试,对软件系统的安全配置进行检查,包括密码策略、访问控制、数据加密等方面。
3. 权限管理测试,测试软件系统对用户权限的管理情况,包括用户角色划分、权限控制等方面。
4. 数据加密测试,测试软件系统对敏感数据的加密情况,确保数据在传输和存储过程中的安全性。
五、测试结果。
经过本次软件安全测试,发现了部分安全隐患,主要包括:1. 存在部分未经授权的访问漏洞,可能导致系统数据泄露。
2. 部分敏感数据传输过程中未进行加密处理,存在被窃取的风险。
3. 用户权限管理不够严格,存在权限越权的可能性。
六、问题解决方案。
针对以上发现的安全问题,我们提出了相应的解决方案:1. 加强系统访问控制,限制未经授权的访问。
2. 对敏感数据进行加密处理,保障数据传输和存储的安全性。
3. 完善用户权限管理机制,严格控制用户的操作权限,避免权限越权问题的发生。
七、测试结论。
本次软件安全测试结果表明,软件系统存在一定的安全隐患,但通过采取相应的解决方案,可以有效提升系统的安全性。
建议在后续的开发和运维过程中,继续加强对软件安全性的重视,不断完善安全防护措施,确保软件系统的安全稳定运行。
八、参考文献。
1. 《软件安全测试与保障》。
2. 《软件安全工程,理论与实践》。
3. 《软件安全与可信计算》。
软件测试中的安全测试技术

软件测试中的安全测试技术软件安全测试是指针对软件系统的安全性进行评估和验证的过程。
在当今信息化社会中,软件的安全性成为了重要的关注点。
本文将围绕软件测试中的安全测试技术展开讨论,介绍几种常见的安全测试技术,并分析其应用场景和优缺点。
一、黑盒测试黑盒测试是一种以用户需求为基础进行测试的方法,也是最常用的安全测试技术之一。
黑盒测试不需要了解软件内部的实现细节,而是根据软件的功能和界面进行测试,以发现系统是否存在潜在的安全漏洞。
黑盒测试能够检验系统对非法输入是否进行了正确的处理,并尽可能地模拟恶意攻击的情况。
黑盒测试的优点是能够全面覆盖软件的功能和接口,测试结果客观、可靠。
然而,由于无法了解软件内部的具体实现,黑盒测试往往无法发现一些深层次的安全漏洞。
二、白盒测试白盒测试是一种基于软件内部结构进行测试的方法。
测试人员需要了解软件的源代码、架构和算法等细节信息,以便发现可能存在的安全隐患。
白盒测试可以直接检查代码中是否存在潜在的漏洞,如缓冲区溢出、代码注入等。
此外,白盒测试还可以对系统的授权与认证机制进行评估,从而提高系统的安全性。
白盒测试的优点是可以深入挖掘软件的安全漏洞,发现一些其他测试方法无法发现的问题。
但是,白盒测试需要测试人员具备深厚的技术功底,同时也需要大量的时间和资源进行测试。
三、静态代码分析静态代码分析是一种通过分析源代码中的漏洞和安全隐患来进行安全测试的方法。
测试人员使用专门的工具来扫描源代码,寻找可能存在的安全问题,如密码泄露、SQL注入等。
静态代码分析可以帮助开发人员在编码阶段发现和修复潜在的安全漏洞,提高软件的安全性。
静态代码分析的优点是可以全面分析源代码,减少漏洞的出现。
然而,静态代码分析会产生大量的分析结果,并且可能会出现误报漏报的情况,需要测试人员进行进一步的验证和筛选。
四、动态代码分析动态代码分析是一种在运行时测试软件的安全性的方法。
测试人员通过模拟真实的攻击场景,检测软件在不同情况下的安全性能。
软件安全测试

4. 模糊测试
(1)模糊测试的概念: 模糊测试的方法
• 1)预生成测试用例 • 2)随机生成输入 • 3)手工协议变异测试 • 4)变异或强制性测试 • 5)自动协议生成测试
4. 模糊测试
(1)模糊测试的概念:
模糊测试的优点
• 模糊测试的测试目标是二进制可执行代码,比基于 源代码的白盒测试适用范围更广。
该如此。 – 尽量避免测试的随意性。
1. 软件测试与软件安全测试
(2)软件安全测试主要工作: 软件测试与软件安全测试的区别
• 软件测试主要是从最终用户的角度出发发现缺陷并 修复,保证软件满足最终用户的要求。
• 软件安全测试则是从攻击者的角度出发发现漏洞并 修复,保证软件不被恶意攻击者破坏。
3. 代码分析
(2)源代码静态分析的一般过程: 4)修复漏洞
开发人员需要修复审查人员提交的漏洞。 漏洞修复完成后,应进行漏洞可利用性判定,避免出
现可利用的漏洞没有被修复的情况。 开发人员修复后,审查人员还需要验证修复是否正确。
3. 代码分析
(3)源代码静态分析工具: 商业软件
2. 软件安全功能测试
(1)保密性测试: 1)标准遵从 2)数据验证 3)加密算法的验证
– 检测加密算法的强度。 – 检测伪随机数产生方法。 – 加密密钥不能被明文硬编码到程序源代码中,密
钥的生成、交换、存储、恢复、归档和丢弃过程 也必须被验证。
2. 软件安全功能测试
(1)保密性测试:
软件安全测试的概念
• 软件安全测试的原则
– 应尽早进行软件安全测试,越晚发现漏洞,修复的成本越 高。
– 在有限的时间和资源下进行测试,找出软件所有的错误和 缺陷是不可能的,软件测试不能无限进行下去,应适时终 止。在软件安全测试中同样如此,应该通过威胁建模等方 法,优先测试高风险模块。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Good-enough: 一种权衡投入/产出比的原则
保证测试的覆盖程度,但穷举测试是不可能的
所有的测试都应追溯到用户需求 越早测试越好,测试过程与开发过程应是相结合的 测试的规模由小而大,从单元测试到系统测试 为了尽可能地发现错误,应该由独立的第三方来测试
不能为了便于测试擅自修改程序
如果传递来的参数是“1 or 2>1 --”,则执行SQL语句: SELECT conum FROM cust WHERE id=1 or 2>1 -莱芜职业技术学院
20
软件安全与测试
跨站脚本
跨站脚本(XSS,Cross-site Scripting)漏洞是一类 专门针对Web应用程序的漏洞,它会使得产生漏洞 的Web服务器绑定的用户数据(通常保存在cookie中) 被泄露给恶意的第三方。 所谓“跨站”是指;当一个客户端访问了可正常提 供服务但是有漏洞的Web服务器后,cookie从此客户 端传递给了攻击者控制的站点。 任何用于构建网站的编程语言或者技术都可能受到 影响。
最终目的是确保软件的功能符合用户的需求, 把尽可能多的问题在发布或交付前发现并改正: 确保软件完成了它所承诺或公布的功能 确保软件满足性能的要求 确保软件是健壮的和适应用户环境的 为软件的质量评估提供依据 为软件质量改进和管理提供帮助
莱芜职业技术学院
26
软件安全与测试
软件测试概述—软件测试原则
freedom from danger, risk, or injury.
Security: Freedom from risk or danger.
Safety: The condition of being safe
可靠性是其基础
(修炼深厚内功)
Security: Freedom from risk or danger Robust是其基础 (外习上乘武功)
既应该测试软件该做什么也应该测试软件不该做什么
莱芜职业技术学院
27
软件安全与测试
软件测试概述--测试的规律
木桶原理: 软件质量的关键因素是分析、设计和实现,测试应该 是融于其中的补充检查手段,其他管理、支持、甚至 文化因素也会影响最终软件的质量 测试是提高软件质量的必要条件,最直接、最快捷的 手段,但决不是一种根本手段 Bug的80-20原则
23
莱芜职业技术学院
软件安全与测试
软件测试概述
软件测试概念
广义的概念 指软件生存周期中所有的检查、评审和确认 工作,其中包括了对分析、设计阶段,以及 完成开发后维护阶段的各类文档、代码的审 查和确认 狭义概念 识别软件缺陷的过程,即实际结果与预期结 果的不一致
软件安全与测试
莱芜职业技术学院
“任何软件,不论它看起来是多么安全,其中都隐藏漏洞”。
软件安全的目的是尽可能消除软件漏洞,确保软件在恶意攻 击下仍然正常运行。
莱芜职业技术学院
5
软件安全与测试
软件安全概念
中文的“安全”一词,在English中主要有两个词和它对应:
Safety: The condition of being safe;
莱芜职业技术学院
13
软件安全与测试
实现漏洞示例
2001年的红色代码(Code Red)蠕虫利用Microsoft 的IIS Web服务器的软件缺陷。
字符串变量是Unicode字符类型的(每个字符占用两 个字节),在计算缓冲区的时候应该是偏移量为2, 但IIS在计算缓冲区大小的时候却按照偏移量为1错 误的计算缓冲区。
3
莱芜职业技术学院
软件安全与测试
关于软件安全的相关报道
莱芜职业技术学院
4
软件安全与测试
软件安全概念
软件是将人类目前认为正确的知识,按计算机能理解的方式、 按一定的语法规则,转换成计算机可执行的一系列指令,让计 算机代替人进行某些脑力劳动(如:计算、判断、信息的存取 与变换、信息交换,等). 出现软件故障现象的原因是软件存在漏洞。
尤其是对包含多个子系统的大型软件系统, 其测试工作涉及大量人力和物力,有效的测 试工作管理是保证有效测试工作的必要前提 测试环境应该与实际测试环境一致
29
测试环境的建立
莱芜职业技术学院
软件安全与测试
软件测试概述—软件测试分类
典型的软件测试类型 功能测试 可靠性测试 容错性测试 恢复测试 易用性测试
软件安全与测试
莱芜职业技术学院
18
SQL注入
通过把SQL命令插入到Web表单递交或输入域名或 页面请求的查询字符串,最终达到欺骗服务器执行 恶意的SQL命令。 任何可以与数据库交互的编程语言都可能出现SQL 注入漏洞。 SQL注入的最大的威胁是攻击者可以获得隐私的个 人信息或者敏感数据;也可能导致服务器甚至网络 的入侵。
莱芜职业技术学院
21
软件安全与测试
跨站脚本
莱芜职业技术学院
22
软件安全与测试
其他致命安全漏洞
格式化字符串 整数溢出 命令注入 未能处理错误信息 未能保护好网络流量 未能正确使用SSL和TLS 使用基于弱口令的系统 未能安全的存储和保存数据 信息泄露 不恰当的文件访问 清新网络域名解析 未认证的密钥交换 密码学强度随机数 不良可用性
静态测试 静态测试不实际运行软件,主要是对软件的编程 格式、结构等方面进行评估 静态测试包括代码检查、程序结构分析、代码质 量度量等。它可以由人工进行,也可以借助软件 工具自动进行
33
莱芜职业技术学院
软件安全与测试
软件测试技术-测试工具 测试工具分类:
白盒测试工具 黑盒测试工具 测试管理工具 其他
复杂性
莱芜职业技术学院
7
软件安全与测试
Windows操作系统复杂性
莱芜职业技术学院
8
软件安全与测试
J2EE的N层架构举例
莱芜职业技术学院
9
软件安全与测试
漏洞
莱芜职业技术学院
10
软件安全与测试
漏洞
莱芜职业技术学院
11
软件安全与测试
漏洞
所有的软件都存在潜伏的漏洞 安全必须经过证明 软件安全漏洞可分为两大类: 设计漏洞 实现漏洞
莱芜职业技术学院
19
软件安全与测试
SQL注入
public static boolean doQuery(String Id){ …… try { …… Statement st=….; ResultSet rs=st.executeQuery(“SELECT conum FROM cust WHERE id=”+Id); while(rs.next()){ ….. } catch…… }
莱芜职业技术学院
12
软件安全与测试
设计漏洞示例
Microsoft Bob是作为Windows ME和Windows 98的辅 助程序而设计的,其中包含一个设置系统密码的工 具。 当用户试着输了三次(不正确)密码时,Bob将弹 出如下的信息:“我想你忘记了你的密码,请输入 一个新的密码。”然后,就允许用户修改密码,即 使不知道老密码。
可见,仅用“Security”不能涵盖“安全”的全部含义. 必须增加“Safety”的相应概念. 莱芜职业技术学院
6
软件安全与测试
软件安全问题加剧的三个趋势
互联性
多数计算机与Internet相连 多数软件系统互联于Internet
可扩展性
通过接受更新或者扩展件使系统升级
代码行数增加、网络式、分布式
在分析、设计、实现阶段的复审和测试工作能够发现 和避免80%的Bug 而系统测试又能找出其余Bug中的80% 最后的5%的Bug可能只 有在用户的大范围、长时间使 用后才会曝露出来
28
莱芜职业技术学院
软件安全与测试
软件测试概述--测试的重点
测试用例的良好设计 测试用例的设计是整个软件测试工作的核心 测试用例反映对被测对象的质量要求,决定 对测试对象的质量评估 测试工作的管理
白盒测试也称结构测试或逻辑驱动测试 必须知道软件内部工作过程,通过测试来检测软件 内部是否按照需求、设计正常运行 通过逻辑覆盖、路径覆盖等方式选择测试用例,可 以用测试覆盖率评价测试用例
32
莱芜职业技术学院
软件安全与测试
软件测试技术-动态测试和静态测试
动态测试
动态测试需要在开发/测试环境或实际运行环境中运 行软件,并使用测试用例去查找软件缺陷 动态测试包括功能确认与接口测试、覆盖率分析、 性能分析、内存分析等
15
莱芜职业技术学院
软件安全与测试
几个常见致命安全漏洞
缓冲区溢出 SQL注入 跨站脚本
莱芜职业技术学院
16
软件安全与测试
缓冲区溢出
当一个程序允许输入的数据大于已分配的缓冲区大 小时,缓冲区溢出就会发生。 有些语言具有直接访问应用程序内存的能力,如果 未能处理好用户的数据就会造成缓冲区溢出。C和 C++是受缓冲区溢出影响的两种最常见的编程语言。 缓冲区溢出造成的后果小到系统崩溃,达到攻击者 获取应用程序的完全控制权。 1988年,第一个Internet蠕虫—Morris蠕虫就是对 finger服务器攻击,造成缓冲区溢出,几乎导致 Internet瘫痪。