资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
代码安全机制与实现技术代码安全机制与实现技术测试应用程序的安全性姚砺东华大学计算机学院课程概述课程概述 软件测试是一项非常复杂的、创造性的和需要高度智慧的挑战性任务。我测故我在课程概述课程概述软件测试的现状n软件测试在软件生命周期中占据重要的地位,软件测试慢慢的独立发展成为一个行业,并且在迅猛发展。n对美国大量软件项目的观察结果表明,软件项目的成功在很大程度上依赖于软件测试的成功。软件测试在软件企业中担当的角色是“质量管理”,即及时纠错及时更正,为产品推向市场贴上“质量合格”的标签。n开发与测试进攻与防守:好看靠进攻,冠军靠防守 课程概述课程概述软件测试的现状n对国际著名IT企业的统计数据表明,软件测试在整个软件项目中所占的比例为 40% 以上,占整个项目费用的 50% 以上,软件测试人员与开发人员的人数比例接近1 1:1 1。n国内软件企业在软件测试上的投入一般在 5% 以下,测试人员所占比例很小(软件测试人员与开发人员之比仅为1 1:8 8),经常处于从属地位。中国软件工业要健康发展,必须正视和努力缩小这个差距。 课程概述课程概述微软的测试n “很多人都认为微软是一家软件开发公司,而事实上,我们是一家软件测试公司” 比尔盖子n 在微软内部,软件测试人员与软件开发人员的比率一般为1.5-2.5左右 Exchange2000Windows20200000项目项目经理经理25人人约约250人人开发开发人员人员140人人约约1700人人测试测试人员人员350人人约约3200人人课程概述课程概述软件测试的作用软件测试的作用n软件质量与软件质量保证教学考试与教学质量保证n软件开发的每个阶段都要测试,测试人员应该参与设计阶段:评审安全性设计n传说中的微软测试部门的格言:没有最BT,只有更BT。课程概述课程概述软件测试之独孤九剑软件测试之独孤九剑n全程测试,测试先行n剑走偏锋 不走寻常路n完全测试程序是不可能不可能的n软件测试是有风险有风险的行为程序中的大部分错误往往是在一小部分模块中发现的-帕雷托定律n设计周密的测试用例先求开展,后求紧凑,乃可缜密矣-九阴真经n框起你的测试来刚中带柔,柔中带刚,如海中波涛,刚柔并济。 排云掌第五式“云海波涛 ”n具有良好的计算机编程基础n优秀的安全测试人员格言:给我一个socket,我能破坏任何软件。课程概述课程概述一次转身最远能产生多远的距离 从传统软件测试转向安全性测试n如果不付出相当大的努力去消除,每个复杂的软件程序都会有代价高昂的安全漏洞。这些漏洞会造如果不付出相当大的努力去消除,每个复杂的软件程序都会有代价高昂的安全漏洞。这些漏洞会造成病毒和蠕虫的横行,也会使得罪犯能够攫取用户的个人财务数据,而这些用户已如惊弓之鸟,并成病毒和蠕虫的横行,也会使得罪犯能够攫取用户的个人财务数据,而这些用户已如惊弓之鸟,并且本来就很不愿意把他们的个人数据放在且本来就很不愿意把他们的个人数据放在InternetInternet上。上。n20052005年,年,CardSystemsCardSystems成为数字化攻击的牺牲品,由于对信用卡数据在未加密情况下存储,有成为数字化攻击的牺牲品,由于对信用卡数据在未加密情况下存储,有40004000多万张借记卡和信用卡泄密,多万张借记卡和信用卡泄密,4 4个月后,这家公司倒闭出售。个月后,这家公司倒闭出售。n安全性测试:不是验证软件的正确性,而是挖掘软件的漏洞(软件中的安全性测试:不是验证软件的正确性,而是挖掘软件的漏洞(软件中的“不应该不应该”和和“不允许不允许”部部分,例如:代码中的缓冲区溢出漏洞,电子秤中的作弊后门等)。分,例如:代码中的缓冲区溢出漏洞,电子秤中的作弊后门等)。- - 越崩溃越快乐!越崩溃越快乐!nRFC2828RFC2828将漏洞定义为将漏洞定义为“系统设计、实现或操作和管理中存在的缺陷或弱点,能被利用而违背系统系统设计、实现或操作和管理中存在的缺陷或弱点,能被利用而违背系统的安全策略的安全策略”n例如:对于一个例如:对于一个webweb输入界面的测试,其上有个字段输入界面的测试,其上有个字段【银行账号银行账号】(正确输入是(正确输入是1212个数字),对该个数字),对该字段的测试包括:字段的测试包括:正确输入验证:正好正确输入验证:正好1212个数字(分该账号存在和不存在两种情况验证)个数字(分该账号存在和不存在两种情况验证)异常输入验证:(模仿用户的一些无意错误操作)输入不满异常输入验证:(模仿用户的一些无意错误操作)输入不满1212个数字,超过个数字,超过1212个数字,有非数字字符,空,个数字,有非数字字符,空,等等。等等。安全测试:安全测试:SQLSQL注入攻击(用注入攻击(用webweb代理来输入,绕过客户端的检验检查)、跨站点脚本输出、整数溢出等。代理来输入,绕过客户端的检验检查)、跨站点脚本输出、整数溢出等。n安全测试的出发点:像攻击者一样思考安全测试的出发点:像攻击者一样思考课程概述课程概述一些攻击模式的范例n验证用户输入不会提供机会让攻击者通过已知的SQL注入攻击来操纵后台数据库;n验证不存在跨站点执行脚本的可能性;n验证在向服务器发送一个它不能正确处理的非法数据包的情况下,服务器不会崩溃;n验证用户输入不会导致数据处理溢出;n验证程序对错误的处理是恰当的;n验证数据在网络传输中或存储时是经过了保护的n验证不会出现信息泄露n验证访问控制n。课程概述课程概述建立安全性测试计划建立安全性测试计划- 基于风险的安全测试基于风险的安全测试n威胁威胁/ /风险建模风险建模:排定安全测试的优先级。在对应用程序的设计和应用:排定安全测试的优先级。在对应用程序的设计和应用流程加以理解的基础上,可假定潜在的安全风险并对其进行评价。然后,流程加以理解的基础上,可假定潜在的安全风险并对其进行评价。然后,根据易于攻击和攻击的影响严重性,将这些威胁进行分级并依次消除。根据易于攻击和攻击的影响严重性,将这些威胁进行分级并依次消除。然后安全测试人员就可以将其注意力集中于那些攻击难度最低而影响最然后安全测试人员就可以将其注意力集中于那些攻击难度最低而影响最大的领域。大的领域。n流程流程:信息搜集:需要测试哪个应用程序和应用程序中的哪些模块(组件),对每一个模块(组件)做哪些安全假设,每个组件的哪些安全因素需要测试,预期的结果是什么。n登录页面:(见后)识别威胁将与威胁相关的风险进行分级潜在的破坏程度再现性和可利用性:探测并利用这个漏洞所做的努力受影响的用户课程概述课程概述登录页面的威胁分析n猜测口令:设计时应设计登录试探次数,例如:只许试探三次,然后锁定ip地址。n利用password文件系统地猜测口令:加密文件(密码强弱,文件存放是否安全)n分析协议和滤出口令:不能明文传输,密码的强弱n重放攻击:加时间戳n木马监视登录/口令:系统安全,一次性口令n盗链:nSQL注入漏洞n异常输入破坏:课程概述课程概述安全测试技术之七种武器安全测试技术之七种武器n一个完整的WEB安全性测试可以从以下几个方面入手:1.安全体系测试网络是否提供了安全的通信部署拓扑结构是否包括内部的防火墙部署拓扑结构中是否包括远程应用程序服务器操作系统是否存在漏洞,例如Unix上的缓冲区溢出漏洞、WindowsWindows上的RPCRPC漏洞、缓冲区溢出漏洞、安全机制漏洞等; 2. 输入验证如何验证输入是否清楚入口点是否验证Web页输入是否对传递到组件或Web服务的参数进行验证是否验证从数据库中检索的数据是否依赖客户端的验证应用程序是否易受SQL注入攻击应用程序是否易受XSS攻击如何处理输入课程概述课程概述3.身份验证和授权是否区分公共访问和受限访问如何验证调用者身份如何验证数据库的身份如何向最终用户授权4. 敏感数据是否存储机密信息如何存储敏感数据是否在网络中传递敏感数据5. 加密为何使用特定的算法如何确保加密密钥的安全性6.参数操作是否验证所有的输入参数是否在参数过程中传递敏感数据是否为了安全问题而使用HTTP头数据7.审核和日志记录是否明确了要审核的活动是否考虑如何流动原始调用这身份课程概述课程概述应用服务器的安全性测试技术n一、应用服务器的安全性测试内容 基于应用服务器的安全性测试内容主要包括:验证隐私系统是否受到保护、数据是否加密,检测系统是否有安全保密的漏洞,检验系统及其所在的网络是否能够承受各种类型的恶意攻击。对于Web 服务器而言,具体测试内容还有测试用户登录与注册、是否有超时限制、服务器脚本语言、日志文件、目录安全、SSL 安全传输测试等。n二、应用服务器的安全性测试方法与技术 (一)全面搜集与应用服务器安全相关的各种信息,分析其可能出现的安全隐患应用服务器被使用的企业单位基本信息、管理中薄弱环节、应用服务器配置信息、系统可访问的主机IP 地址及对应的主机名、服务器所在网络的拓朴结构等,这些信息可能成为被利用的安全隐患,有的可能在互联网上搜索得到,要对其进行分析和安全隐患检查。课程概述课程概述应用服务器的安全性测试技术(二)应用服务器的漏洞探测和扫描 1、利用搜索引擎搜索已公布的漏洞。可利用Google 等工具搜索资源,研究系统漏洞。可访问CVE(公共漏洞和暴露)数据库,查找漏洞。Packet Storm 组织是由一些致力于提供必要信息以安全化全球网络的安全专业人士组成的非盈利组织,在其网站上可以找到许多安全信息,如Windows 中缓冲区溢出漏洞、Unix主机中远程过程调用(RPC)的安全隐患、FTP漏洞,Sendmail邮件服务软件的漏洞等。 2、利用扫描工具进行漏洞探测。服务器漏洞扫描的工具很多,基于Linux的扫描工具有Namp、Netcat、Nessus。基于Windows的端口扫描器有NeWT 等。还有很多扫描工具,如:著名的COPS、Tiger、 Fluxay5(流光)、X-scan、N-Stealth、Metasploit Framework(http:/metasploit.com:55555/)等。其中,很多工具可以在网上免费下载。可以利用上述工具探测系统漏洞,查看系统是否打了补丁。课程概述课程概述应用服务器的安全性测试技术(三)模拟攻击测试 采用拒绝服务、缓冲区溢出攻击、密码破解攻击等方法进行测试。 1、Web 服务器利用测试。针对Windows IIS5.0 Web 服务器中的目录遍历漏洞(CVE-2001-0333),可采用如下方法测试。若主机IP 为:67.168.100.102,则在IE 的地址栏中输入: http:/67.168.100.102/scripts/.%255c./winnt/system32/cmd.exe?c+dir 若在浏览器中看到目录C:inetpubscripts 中的内容,则说明存在漏洞。 2、拒绝服务攻击测试。Land 攻击:判断网络数据包的源地址和目标地址是否相同。 Ping Of Death 攻击:判断数据包的大小是否大于65535 个字节。如果操作系统接收 到长度大于65535 字节的数据包时,就会造成内存溢出、系统崩溃等后果。 Teardrop 攻击:对接收到的分片数据包进行分析,计算数据包的片偏移量(Offset)是否有误。某些操作系统收到含有重叠偏移的伪造分片数据包时将会出现系统崩溃、重启等现象。 SYN Flood 攻击:从随机的或欺骗来的IP 地址产生大量的SYN数据包,导致合法请求被拒绝。 SMBDie 攻击:利用SMB(服务器消息块)中代号为CVE-CAN-2002-0274 的缓冲区溢出漏洞攻击,可能导致Windows 计算机死亡蓝屏。课程概述课程概述应用服务器的安全性测试技术3、E-mail 炸弹攻击测试。邮件炸弹不仅能造成收件人信箱爆满而无法再接收其他的邮件,而且还会加重网络的流量负荷,甚至会导致整个邮件系统瘫痪。常见的邮件炸弹软件有KaBoom!、Avalanche 等。4、密码破解和特权提升测试。采用穷举法、漏洞利用和字典法等方法破解系统用户密码,常用工具有:L0phtcrack 、Crackerjack、John the Ripper 等,在试着破解前用pwdump5来获取密码的哈希,可参考网站:http:/www.openwall.com SQL Server 弱口令测试:用scansql.exe 工具测试SQL Server 数据库应用系统是否有默认用户SA 及弱口令。 击键记录测试:采用击键记录工具(如keylog5.exe)进行测试。检查能否记录管理员的用户名和口令。 登录测试:对用户名和匹配的密码进行校验,以阻止非法用户登录。可测试输入的密码是否对大小写敏感、是否有长度和条件限制、最多可以尝试多少次登录等情况。 测试时可以将上述多种方法混合使用,进行暴力攻击测试。课程概述课程概述应用服务器的安全性测试技术(四)使用计算机病毒及木马测试系统的防护能力 最典型的计算机病毒和木马有“木马代理”、“网游大盗”、“艾妮”、“熊猫烧香”、 “QQ 木马”、“灰鸽子”等。有的木马能绕过天网等大多数防火墙的拦截。可以利用这些典型病毒和木马测试应用服务器系统的防护能力,验证服务器检测到病毒时的应急能力。许多病毒和木马在网上很容易下载到。可以使用网页木马生成器方便地生成木马。也可以利用操作系统的Shell 编程技术和Socket 编程技术尝试编写新的攻击程序,用于系统安全性测试。(五)数字取证测试 利用系统中的日志、审计、Cookies、历史记录等功能,验证应用服务器遭到攻击后是否留下痕迹,便于取证。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号