51Testing软件测试论坛

标题: 【你来问我来答第42期】:揭开web安全测试的神秘面纱(已结束) [打印本页]

作者: lsekfe    时间: 2014-1-2 10:07
标题: 【你来问我来答第42期】:揭开web安全测试的神秘面纱(已结束)
[attach]88847[/attach]

论坛ID jacksonren1987


真实姓名: 任健勇


网络昵称: 风落


现任职位: 测试主管


工作经验: 带领测试部门从零开始建立安全性测试规范,使用Burpsuite等半自动化测试套件及手工测试进行过多个大型项目的web安全测试;针对web安全测试搭建了基于开源工具的安全测试架构,并应用于SaaS平台等云计算项目;并为一些中小型企业进行过安全测试咨询工作。


[attach]88846[/attach]

各位会员可以在01月11日前以回帖的方式向客座专家提问。

(请大家围绕本期客座专家的擅长领域进行提问、探讨)

客座专家将在1月11日—1月31日为大家集中解答。

机会难得,欢迎大家踊跃提问!


作者: lsekfe    时间: 2014-1-2 10:11
新一期,欢迎给位踊跃参加!新年的第一期哦!~
作者: 楠族开心果    时间: 2014-1-2 10:39
围观
作者: 千余同    时间: 2014-1-2 13:19
需求文档中没有的功能是否要测?
作者: Miss_love    时间: 2014-1-2 13:54
围观
作者: 淑君NJ    时间: 2014-1-2 14:01
有问题就要问哦~!!
作者: 黑羽祭    时间: 2014-1-2 14:12
1. 如何从无到有建立安全测试团队?
2. 如何做好日常安全测试工作?需要用到哪些工具?
3. 安全测试中,需要关注哪些测试点?
4. 能否共享一下比较常用和最常暴露出问题的脚本?
作者: 如小果    时间: 2014-1-2 14:15
web安全测试主要测试什么?
作者: zaza9084    时间: 2014-1-2 14:26
欢迎大家踊跃参与~
作者: li_feibo    时间: 2014-1-2 18:41
1、怎么分析网站的跨站点脚本编制问题?
2、怎么分析网站的XSS安全问题?
3、用appscan工具,如何较好的实现网站系统的安全性测试?
4、能否提供下模板?或能否共享一下比较常用和最常暴露出问题的脚本?
谢谢!
作者: panaifengenen    时间: 2014-1-3 08:58
web安全测试从哪些方面进行测试,大概怎么做
作者: piaolingxue423    时间: 2014-1-3 10:56
能否详细谈一下你的安全测试架构组成部分以及如何实施的?谢谢
作者: 木头人6229    时间: 2014-1-3 13:36
菜鸟提问:
1.手工测试的着重点主要在哪里?安全性测试,从您的经验来说,重点在哪里?经常会被遗忘的点有哪些?
2.自动化测试:或者能否共享一下比较常用和最常暴露出问题的脚本?
谢谢~~
作者: 邱建忠    时间: 2014-1-3 13:42
我的疑问:
目前公司只有通过Appscan简单的进行安全性测试,没有流程和制度,
如何开始将安全真正的做起来呢?流程?制度?可否说说你们的过程?
作者: cvim00    时间: 2014-1-3 13:49
web的安全测试需要注意哪些方面,该如何入手?
对于只是针对某个公司来使用的网站,又该注意一些什么问题?
作者: xuquan    时间: 2014-1-3 14:07
一个平台类产品,B/S架构的。 如何进行完整的安全测试?  测试思路是怎么样的?
作者: lacylee200    时间: 2014-1-3 14:14
安全测试技术需要从哪些方面进行提高?应该按怎样一个过程来提升自己
作者: wuliangye    时间: 2014-1-3 14:53
先支持一个
作者: 城邦    时间: 2014-1-3 14:55
从安全方面讲,手工测试和自动化的优缺点
作者: fangyiye    时间: 2014-1-3 17:24
安全测试应该从哪些方面考虑呢。除了漏扫工具还能用什么方法
作者: maliya1314    时间: 2014-1-5 14:45
你好,请问你的安全测试架构是怎么建立起来的,你为什么选用这种架构?
作者: 测试缘    时间: 2014-1-6 12:58
1.安全测试注意事项?
2.安全测试完毕后,如何分析才不至于漏掉关键点
作者: dennyqiang    时间: 2014-1-6 14:09
想请问一下勇哥,现在企业在安全测试领域的研究特别是软件和分布式系统的安全性投入感觉不是很大,而且很多服务器和防火墙现在也对安全性做了很多默认的设置,导致的结果是感觉进行安全性测试的价值很难体现,或者很难真正找到一些有价值的安全性问题,不知道勇哥是如何看待这个问题的呢?
作者: 测试你    时间: 2014-1-6 15:38
web方面最基本的安全测试会包含哪些方面?
要做深入的安全测试,需要从哪些知识入手??
作者: jacksonren1987    时间: 2014-1-6 16:12
回复 4# 千余同


首先我要说,严格意义测试应该从需求开始抓起,参与需求的评审,对详细设计也要测试,如果可以做到这样,那么无需求测试的状况就不会出现了;但目前我们并没有做这么多,或者说做得不完全。所以每个测试人员都会或多或少的遇到这种无完善需求文档的测试状况,这时候我们需要谨记的则是我们必须保证我们的测试用例包含了你所要测试对象的所有功能点。
作者: jacksonren1987    时间: 2014-1-6 16:30
本帖最后由 jacksonren1987 于 2014-1-7 09:54 编辑

回复 [url=http://bbs.51testing.com/redirect.php?goto=;findpost&pid=3218151&ptid=1000310]7#[/url] 黑羽祭


问题很好~~我按顺序回复吧O(∩_∩)O:
1. 谈到从无到有,最重要的就是无的阶段。首先要让公司、开发部分认识到安全对于一个系统的价值,例如我们抓一个XSS漏洞,截获到用户的cookie;或者我们从服务器端日志分析出系统曾遭受了哪些安全攻击,并对此进行针对性建议。将这些问题在部门会议、冲刺 (sprint) 计划会议等重要会议上提出,很快就可以被接受,因为当前安全问题的确是重大问题,如果你有这个能力,公司自然愿意放手让你去做。
其次再说安全团队的建设,其实和其他测试团队一样,我们需要不同技术能力、不同特色的人组成一支精锐部队,来应对安全难题。大体上可以分为先验团队和监控团队。先验团队中包括系统安全架构设计(安全分析、策略设计)、安全用例设计、安全测试执行等角色;监控团队则更多对服务器日志、蜜罐日志、服务器状况进行监控。当然,小型团队中一人可兼任多职位。

2. 如何做好日常安全工作和工具
安全可能跟其他测试不是特别一样,用我常说的就是“要知其然,还要知其所以然”,大部分开发人员可能并不了解一些安全漏洞,所以很多时候你提出的问题开发团队无法给出很好的回复。这时候可能需要我们去“教”开发人员写代码。一个好的安全人员需要了解原理、熟悉测试手段、熟悉防范措施,然后按照合理的安全测试流程去工作。具体的流程可以参考我写的这篇文章http://www.besttest.cn/的自学手册中“安全测试自学路线”。
至于工具,手工测试我比较推荐burpsuite,辅助一些专用软件 sqlmap,csrftester等

3. 需要关注的测试点
在最早的安全测试中,对于一个网站,最重要的安全点应该是登录模块和支付模块的安全性。举个例子,登录模块可能包含的安全漏洞点很多:权限验证缺陷、登录机制缺陷、多阶段登录漏洞、sql注入、xss漏洞、绕过前端、会话管理机制漏洞等等,这在我之前一个公开课的视频中有所讲解,暂且把它放在这儿吧,大家有兴趣可以看下:http://v.youku.com/v_show/id_XNjQ5NTg2MzU2.html

4. 比较常见的漏洞
  1. $username=$_POST['username'];
  2.         $userpass=$_POST['userpass'];
  3.         $sql="select * from user where username='$username' and userpass='$userpass'";
  4.     $query=mysql_query($sql);
  5.     $arr=mysql_fetch_array($query);
复制代码
这是一个简单的sql注入代码,大家很容易就可以看出问题的
作者: jacksonren1987    时间: 2014-1-6 16:33
回复 8# 如小果


Web安全测试主要是针对网站分析所制定的安全策略进行安全监测,包含的可能是多方面的,例如:绕过客户端、验证机制、会话管理、sql注入、XSS、CSRF,甚至包括社会工程学等等。
作者: jacksonren1987    时间: 2014-1-6 16:36
回复 7# 黑羽祭


额,不知道是不是给这个问题回复的有点长,提示要审核~
作者: lsekfe    时间: 2014-1-6 16:40
回复  黑羽祭


额,不知道是不是给这个问题回复的有点长,提示要审核~
jacksonren1987 发表于 2014-1-6 16:36



    审核有点慢了不好意思,里面有链接,很有可能进入审核~~
作者: jacksonren1987    时间: 2014-1-6 16:44
回复 10# li_feibo


你好,1,2 我们都拿到一起说,跨站脚本,xss,甚至说包括csrf都属于跨站漏洞,我们想要分析我们的网站是否包含这些漏洞首先要了解其原理。XSS是怎么产生的?什么是反射型xss,什么是存储型xss,什么是基于dom的xss;在了解原理的基础上我们去学习如何进行测试?基本的测试手段,更详细的定位方式,包括针对不同类型xss漏洞所做的不同策略;最后就是如何防范。
其实推而广之,对所有类型的漏洞都是一样的。
3. appscan,webinspect这两种工具的使用,其实我个人是并不推荐的,一来自动化审计所出现的bug漏报错报比较严重,二来过于依赖自动审计工具,对于其提出的问题,你没有原理的了解就没办法知道问题产生的原因;三来开发人员有时需要你去指导他们修复一些安全问题,使用自动审计工具你也没办法去了解防范手段等;四就是对于测试人员而言,自动审计对于自己的提高也是毫无裨益的
4. 这个可以参考26楼我的回复哈~
作者: jacksonren1987    时间: 2014-1-6 16:47
回复 11# panaifengenen


大概的内容其实就是我在27楼的回复,具体如何去进行安全测试,可能说起来就比较复杂,也不是一时一刻能说清的,大致来说流程就是 解析分析web应用--确定安全策略--根据安全测试进行测试(验证机制、会话管理、xss、sql注入等等)--总结分析
作者: zyl520xz    时间: 2014-1-6 17:19
请问下对于一个未踏入安全测试的测试员,如何去逐步学习安全测试呢?
作者: jacksonren1987    时间: 2014-1-7 08:25
回复 12# piaolingxue423


谈安全测试架构,首先我们需要对测试架构这个概念有一个了解。这里的架构不仅仅指一个自动化或者半自动化测试框架,而包含了更多问题。在软件测试活动中,一个测试架构师要解决什么问题?
例如:如何更好的指导开发工程师写出更高效的代码?如何用更快捷高效的办法来设计测试用例?如何提高测试覆盖率?如何完成复杂系统的非功能性(性能、安全性、兼容性、可靠性等)?能否对测试技术的发展趋势做出正确判断?等等一系列问题

测试架构就是为解决上述问题而产生的,安全测试架构也是如此。大体上看可以分为软件系统技术架构和软件测试框架两部分。第一部分也就是包括需要对安全测试点进行合理的划分、归类,建立用例模型,设计合理的测试结构;从测试工作角度说,需要建立合适的测试管理系统;从技术发展趋势上说,就包括研发新的测试方法,并借助测试工具来实现。

至于说软件测试架构这一部分,其实也就是集成测试环境、测试脚本分层处理等,从安全测试角度来看,更多的是如何将安全测试套件与部分半自动化工具集成起来。这里我推荐的是以Burpsuite为核心,以sqlmap等半自动化开源测试工具的模式。
作者: jacksonren1987    时间: 2014-1-7 08:31
回复 13# 木头人6229


手工测试,如果是刚开始进行安全测试尝试,我建议将重点放在登录验证模块和支付模块上,因为这部分安全级别相对较高;
自动化测试:不知道你是不是在指自动化审计,我个人还是不推荐初学者进行自动化审计,因为如前所说,既不能保证测试质量,又无法让你去指导开发者修改安全问题,更对测试人员自身提高没有什么益处。
作者: jacksonren1987    时间: 2014-1-7 08:37
回复 14# 邱建忠


首先和上边一样,对于完全没有经验的安全初学者来说,对自动化审计工具所提出的bug无法进行更好的分类和筛选,因为自动化审计工具的错报与漏报非常频繁,同时自动化审计工具上提出的bug对于开发人员也不易于修改。具体可以参阅下我之前的回复。
我个人更多的是以安全套件执行手工测试,兼以部分半自动化测试工具。具体的流程和大体思路可以参考我的这篇文章,相信会有所帮助:http://www.besttest.cn/article.php?id=168
作者: jacksonren1987    时间: 2014-1-7 08:47
回复 15# cvim00


web安全测试基本是需要依据自身制定的安全策略来进行测试执行。常见的需要注意的漏洞包括绕过漏洞啊,XSS,验证机制,会话管理,sql注入等等。具体的可以参考http://www.besttest.cn/article.php?id=168 里边提到的,这是我写的一个安全测试自学路线,希望能对大伙有所帮助。
如果是内网网站,我建议把更多精力放在服务器和网络安全上,而非web安全。
作者: jacksonren1987    时间: 2014-1-7 08:48
回复 16# xuquan


BS和CS架构其实在测试过程中思路并无不同,大致来说流程就是 解析分析web应用--确定安全策略--根据安全测试进行测试(验证机制、会话管理、xss、sql注入等等)--总结分析。可能更核心的部分是解析分析和确定策略。
作者: jacksonren1987    时间: 2014-1-7 09:09
回复 17# lacylee200


安全测试相对于其他测试可能需要掌握更全面的基础知识和一定的代码能力。入手我建议从漏洞原理开始学习,会让你对安全测试有更深入简单的了解。具体自学的路线可以参考下边这篇文章我的总结:http://www.besttest.cn/article.php?id=168
作者: jacksonren1987    时间: 2014-1-7 09:11
回复 19# 城邦


自动化审计节省时间,可以产生大量问题去验证筛选;缺点是漏报误报比较多,没有针对性。
手工测试浪费时间,且需要比较好的基础能力;但是同样,不容易误报,且可以根据不同模块执行不同的安全策略,有针对性;
作者: jacksonren1987    时间: 2014-1-7 09:17
回复 20# fangyiye


除了自动化扫描,我更推荐手工测试,包括最新的模糊测试技术都是很好的安全测试手段。具体安全测试考虑方面,可以参考我之前的回复和回复中提到的安全测试自学路线吧,详细的可能会说来话长喽O(∩_∩)O
作者: jacksonren1987    时间: 2014-1-7 09:19
回复 21# maliya1314


这个问题详见下33楼。我强调下,安全测试架构不是指一个自动化测试框架,测试架构的范围会更广,而测试架构师要做的也不仅仅是搭建测试框架。
作者: jacksonren1987    时间: 2014-1-7 09:23
回复 22# 测试缘


1. 安全测试核心其实在解析分析和策略建立上,针对于不同的被测项目,需要建立不同的安全策略;即便是同一个项目中不同模块,也要进行不同的策略。这算是安全测试最需要考虑的地方
2. 安全测试,咱们刚才提到的都算是先验测试,在测试工作中,先验测试固然很重要,但是另一方面来说,对服务器的监控,日志的阅读,甚至是蜜罐的使用,才是保证一个项目一个系统尽可能少的受到攻击的关键。
作者: jacksonren1987    时间: 2014-1-7 09:27
回复 23# dennyqiang


首先来说 服务器和防火墙,哪怕是web安全防火墙一类的安全附加工具,从实质上来说都是基于恶意攻击的屏蔽措施,也就是拒绝接受某些恶意攻击。实际上来讲,对于代码安全是没有任何作用的。所谓魔高一尺,道高一丈吧,在安全测试领域,追求的是高质量的代码+高效的安全附加措施,这恐怕才是未来安全的发展方向。
作者: jacksonren1987    时间: 2014-1-7 09:28
回复 24# 测试你


请参考一下26楼关于类似问题的回复~~谢谢~
作者: xqtesting    时间: 2014-1-7 09:35
落哥,顶起来,哇哈哈,大家有问题就赶紧提,不要错过哦

这里还有安全测试自学手册哦
作者: jacksonren1987    时间: 2014-1-7 09:58
回复 45# xqtesting


哈哈,谢谢小强老师~~
作者: shujin6040    时间: 2014-1-7 10:26
怎么去手工测试!举个例子
作者: shujin6040    时间: 2014-1-8 11:14
安全测试怎么进行手工测试!举个例子
作者: fsweicaixia    时间: 2014-1-10 14:45
你这问题问的  那就问上级领导呗
作者: 栋婷的春天    时间: 2014-1-10 16:31
你好,我是刚入门的小测试员,很想知道安全测试的一些知道。我们公司主要做app和web的测试,这两个方面的安全测试要注意哪些点,有什么不同。能否具体讲一下你平时是怎么进行安全测试的,用的是什么工具。谢谢。
作者: liurenhui    时间: 2014-1-13 11:46
MTM 为什么的邮箱设置Accounting  Setting不能点击呢?邮箱不能发送呢,需要配置什么吗?
作者: VIP有风吹过    时间: 2014-1-13 15:25
围观
作者: spring139    时间: 2014-1-14 12:13
作为测试人员,在工作中应该保持怎样的心态?谢谢
作者: kuangli1020    时间: 2014-1-14 15:54
安全测试该如何入门
作者: meqili    时间: 2014-1-14 17:26
selenium工具从哪里开始学起?
作者: cjwgreat    时间: 2014-1-15 11:31
安全意识如何培养
作者: ffwithvv    时间: 2014-1-17 14:58
sql注入 有什么工具可以推荐吗?谢谢
作者: weiqiangz2002    时间: 2014-1-17 16:47
回复 1# lsekfe


    榜样啊
作者: weilian0818    时间: 2014-1-21 09:22
应届毕业生如何开展并走好软件测试之路?
作者: jacksonren1987    时间: 2014-1-26 13:33
回复 48# shujin6040


在我的理解里,安全测试可能更多反而需要的是用手工去进行一些验证,大多数时候这些工作往往是自动化所不能解决的。
怎么进行呢?首先是你需要对安全漏洞的原理有一定的了解,在了解的基础上根据其漏洞产生原因和现象做有根据性的手工测试。
我举个简单的例子吧,例如我们要测试一个购物车是否有绕过客户端的漏洞,那么我们首先要抓取关键请求,一般是“下一步”或者“支付”。接下来手动拦截到这个请求后,查看是否具有关键信息或隐私信息,如果有,进行修改,查看该请求是否能被服务器所接收;如果没有,则进行简单的解码工作;如果仍未发现隐私信息,则抓取其他购物车同类请求比较,查看变化规律,做出预测请求判断或替换请求参数等操作。
作者: jacksonren1987    时间: 2014-1-26 13:45
回复 50# 栋婷的春天


如果抛开服务器端安全事项来说,app和web其实在安全点防范上并无很大区别,安全测试的核心可以简单用一句话来概括,就是“所有的用户请求都不可信”。注意事项和关键点可以参考下我在26# 和 30# 的相关回复。 说到我平时安全测试的手段,主要分为先验和监控。先验也就是通常大家能理解的安全测试,基于安全测试策略,对网站的xss、sql注入、绕过、会话管理、验证机制等等安全漏洞进行测试验证;这里边我通常建议使用的工具是burpsuite,结合其他一些半自动化工具,如sqlmap等等;监控也是安全测试很重要的一部分,包括监控已上线服务器和蜜罐,作用也就是为了新攻击方式的采集和项目安全的后续措施保障。
作者: jacksonren1987    时间: 2014-1-26 13:47
回复 51# liurenhui


额,这个问题在我使用qtp的时代里,QC已经发展的如日中天了,mtm这个脚本管理器基本是听说过没有用过。。所以,基本的用法我还有所了解,详细的配置。。就只好去参考一下相关说明文档了
作者: jacksonren1987    时间: 2014-1-26 13:52
回复 53# spring139


说到测试人员的心态问题,其实主要是有一种先入为主的观念:测试人员不如开发人员。这个观念从本质上就是不完全正确的。大多数时候,对于一个优秀的测试人员,所需要了解、掌握的可能要远远超越开发人员,所以,测试人员要做的是要懂一点开发,能写一点代码,最后达到“教开发人员写代码”的程度。
作者: xiaoming00    时间: 2014-1-26 13:54
顶一个,哈哈
作者: jacksonren1987    时间: 2014-1-26 13:55
回复 54# kuangli1020

安全测试很多人都是从自动化审计工具开始入门的,例如appscan;我对这个有不同的看法,我认为在做自动化审计对于测试人员自己来说毫无提高可言,其次自动化工具的错报漏报率很高,也需要有大量时间排查;最后,由于你对其原理、防范措施的不了解,你也无法指导开发去修改这些问题;

我认为入门的最好手段就是先了解安全漏洞的原理,从原理入手,从而掌握相应的测试方法,最后,从代码层面掌握其漏洞的防范。
作者: jacksonren1987    时间: 2014-1-26 13:58
回复 55# meqili


我现在恰好正在做关于webdriver的二次开发,其实我觉得webdriver(Selenium2.0)的基本学习并不难,提供的方法也就那么多,重点是不要只去想怎么学,而是动手去做,在实践中提高自己的能力;其实无论什么技术都是一样的。
作者: jacksonren1987    时间: 2014-1-26 14:00
回复 56# cjwgreat


安全意识这是个很宽泛的问题。从我自己的经历来说,我觉得要培养一个团队的安全意识,重点是让大家了解安全为何物,安全漏洞会造成什么样的影响,在团队现有的产品中你用安全手段戳几个窟窿的话会更有效果。当安全测试推广开来,很快,团队的安全意识便提高了。
作者: jacksonren1987    时间: 2014-1-26 14:01
回复 57# ffwithvv


如果要推荐sql注入检测工具的话,一定是要首推sqlmap的。
作者: jacksonren1987    时间: 2014-1-26 14:05
回复 59# weilian0818


首先要端正正确的职业观吧,不要觉得因为我觉得做开发很累、很难,做其他的我也干不了,所以我去做测试。其实要想在测试道路上有所发展,可能需要努力的比开发要更多。我的推荐是从功能测试入手学习,并经过一些项目的历练,再寻找一个高级测试的发展方向吧。
作者: shujin6040    时间: 2014-1-27 13:14
回复 60# jacksonren1987


    安全漏洞的原理可以推荐本书看吗?或者哪有可以找到资源去学习原理
作者: shaoling_liang    时间: 2014-2-7 14:29
大神,本人是菜鸟中的菜鸟任务,问一下
关于Magento这种开源网站怎么开展测试呢?
作者: Ivytesting    时间: 2014-2-23 13:37

作者: skchao1111    时间: 2014-11-13 11:21
不错不错赞赞赞



                                                                           




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2