说说渗透测试

来源:互联网 发布:log4j打开sql执行日志 编辑:程序博客网 时间:2024/04/29 23:43

【1】怎么定义渗透测试

这个概念应该是渗透测试的执行者们最有资格去定义的。

我曾经就是个执行者,所以我坚信这个问题的答案与我所期望的相符 —— 无论是众测平台上的白帽子们、还是安全厂商的服务团队精英们,我给你一个IP地址、三天时间,谁可以给我打包票可以100%发现目标的全部安全问题?

我想答案一定是:不能!

有能的可以直接评论出来,我一定通过,让所有人来向你顶礼膜拜。

【2】为什么不能?

虽然说上一个问题还没有给渗透测试做定义,但还是先说一下为什么答案是“不能” —— 刚才心里默念一定能做到的大神可以跳过此节。我看到的原因有:

  • 安全的流动性决定的,道理很简单,2014年对Windows目标的渗透,应该几乎无人能拿出2015年的MS15-051的exp
  • 业务的流动性决定的,与上面类似,IP后面对应的东西有可能是不断变换的,即便同一个业务系其版本或模块也会有不断的变化,当然,有人说这是耍流氓,因为渗透测试本应是基于一个特定的基准态而进行的,但有时候事实却不是这样,此处不费太多文字拆开去说,真正做过项目的人都会明白
  • 安全的外延决定的,IP地址对应的就是网线那一头的一个(或一堆)设备而已,但安全本身的外延有可能是无限大的,最常见的就是能够直接或间接接触到这个IP的管理员或高权限用户,他们本身作为突破口其实也有流动性
  • 人的能力所决定的,任何一个人都会有穷一生之力也无法做到的事情,对于挖掘漏洞也是如此

【3】再说定义问题

上面两个问题结合起来,我这样定义渗透测试:

目标在约定状态下,安全测试人员使用不直接对业务造成伤害的手段,验证某种威胁的可实施性及可实施深度。

约定状态:可以约定多个状态,比如,v1.0时来一次,v1.1时再来一次

不直接对业务造成伤害:这个约束条件其实并非必选项,有些用户也舍得让大家可劲招呼、往死里整

可实施性:证明目标是可渗透

可实施深度:给用户一个指标,帮助评估最终的风险大小

【4】服务完成的条件

这个太重要了 —— 我给你一个IP,我会问你,什么时候可以做完?

这个时候考核“做完”条件一般会有两种:

第一种:(服务人员简单看过目标之后回答)大概三天时间可以完成,同时交付渗透测试报告;

第二种:至少发现一个漏洞之后(但一般都不会直接这么说,可实际上当测试人员给出“三天”这个答案时就已经在想 —— 刚看了一眼这个破系统,三天怎么也能整出点东西了)

【5】问题

他们都说我话痨,其实我是怕很多事情说不清楚还要反复解释。

现在基本上我所理解的前提条件都讲的差不多了,这才是正题。

当前渗透测试最大的问题在于:

第一,甲方过于相信“专家能力”而造成了“这个目标已经做过渗透测试了为什么还会出问题”这样的疑问出现;

第二,因为甲方信任专家能力而致使乙方要包装各种专家团队,以此来欺骗甲方“这个目标我们做过渗透了就不会出现问题”的假象。

其实我就想问一句:“你们两方互相骗来骗去的,玩的开心吗?”

【6】再说众测

最大的问题:信任问题。

众测其精华在于“众”,人多势众 —— 人够多。

从概率上来讲,人多了就应该是有更多机会发现更多问题,甚至在某个特定技术层面上目标的问题真的在特定时间内完全被挖出来。

但其问题也在于“人多”。一个人出事了,就等同于全出事了。

其次还有一个问题,这个问题可能会出在众测平台这一端。

我不是特别的清楚众测后台的一些操作,但由于渗透测试是一项保密性要求较高的工作,所以肯定有很多信息是不能完全对称给白帽子们的,因此,在白帽子看来,众测平台(甚至是众测平台和甲方)在某些操作上有暗箱之嫌 。

这种事情最怕日积月累,一旦有白帽子有了这种想法,会越传越广,这样的后果,大家随意YY吧。

【7】怎么说、怎么做、怎么改

随便说说,肯定不全面。

我盖好了一座房子,找个人来测试一下保安系统。

这个人来了之后一板砖放到了我,拿着我的钥匙和从我手上切下来的手指头就进去房子交差了 ……

面对这样的“渗透测试”在你醒过来之后应该不会太愿意去付钱。

所以第一个问题是:约定好目标 —— 我要你测试的是门还是窗户?而不能只是笼统的说,进去就好。这其实就是渗透本身手段上的一个映射关系,是要针对Web做常规的TOP 10 漏洞测试、还是加上社工、还是关注一下某些应用的认证问题、甚至看看物理环境是否安全等等,这实际上本身就是对渗透测试中所涉及威胁手段分类的一个巨大挑战,如果这个分类做好了,实际上就等于是给了用户一个可选的菜单,也就相对的约束了目标类别。

紧接着,对方明白了是测试防盗门,于是抱着雷管又跑到了你的面前。

马上就出现了第二个问题:约定好测试手段(就是上面说的菜单) —— 就是你在安装防盗门时所设想的其所能抵御的盗贼都是使用什么类别的手段?我想一般人都不会去考虑面临雷管的攻击(虽然你可能为房子上了保险)。就好象大家虽然多会为自己的数据做灾备,但也一定会反对渗透测试人员使用物理方式损毁IP后面的那一个或一堆设备。

测试人员明白了你是希望测试技术开锁是否能突破防盗门,于是,他趁着你不注意的时候马上掏出了多啦A梦的四次元口袋,把手伸进去穿越到了门的另一端而打开了门锁。

这就是第三个问题:手段实际上也是有等级的 —— 有一些超高级的手段是日常很难见到,而且也不在你所设计的安全防御体系范畴之内,比如:一般人不会考虑怎么设计去防御等级很高的 0-day (即便现在沙箱已经很成熟了),你拿出哆啦A梦的四次元口袋完全就是0-day啊,谁能接受乙方拿出一个自己都不知道的玩意搞进去之后丢一堆内部数据给他,然后转身离去、只是深藏功与名?

如果这个问题也解决了,接下来,把前三个问题结合起来。这样就解决一个潜在问题:就是对“完成”条件的判断问题,因为手段、手段等级和目标都确认了,说直白一点,就是依靠个人技术把这些手段在目标上都过一遍也就完成了,至于过一遍后有没有效果:看下面。

测试者这时羞愧的收起四次元口袋之后安心使用技术开锁,半个小时过去了,没打开。

这就是第四个问题:如何面对一个尴尬的结果 —— 上面说过,人总有穷其一生之力也无法解决的事情。即便约定了手段和目标,依然可能因为个体能力差异而导致执行结果的差异。此时,除了换一个能力更强的人以外,还真是没有其他办法。但在换人之前还是应该考虑好一件事,就是前任失败者到底做了什么?前任的执行深度和广度如果能有持续的跟踪和记录,是为评价后续更换的测试人员的一个技术基线指标。

请来了第二个人,按照测试手段上的十种手法都测试过了,发现其中三种可以打开门锁,但趁你不注意的时候从玄关顺了一双阿迪王走。

这就是第五个问题:保密协议是底限 —— 信息最麻烦的地方就是可以任意拷贝(此处先不在DLP这类问题上较劲),有人顺走了一双阿迪王的话,主人清查一下自己的资产马上就能发现,但你的数据被复制走了,你却未必能知晓。所以,总要有类似保密协议这样的东西来托底。

要回了那双绝版限量阿迪王之后,你询问测试人员:该怎么办?测试人员立马掏出自家产品清单 —— 您需要在防盗门前面再安装一道我们家出品的强力防盗门。

这就是最终极、最尴尬的问题:为什么现在大家都愿意免费给你渗透?就想卖你防盗门呗!

所以 ……

甲方如果踏踏实实的把渗透当服务买(前提是你得知道渗透到底能做什么),乙方才能踏踏实实把渗透当服务做。

乙方明明白白的把渗透测试(前面说的1、2、3那三点)定义清楚、说明白了,甲方买的时候心里才会有底。


转自 : http://www.1937cn.net/?p=2087

0 0
原创粉丝点击