安全检测的一些心得

安全检测的一些心得

时间:2016-08-17 作者:zhankehua 评论:0 点击:2763 次

 

在以往的工作中,通过跟同行交流,感觉好多开发工程师包含信息安全测试人员都看不起做安全测试的。说测试人员就是拿个工具扫扫漏洞,出出报告嘛,没有什么技术含量。听到这种论断,安全工程师们,你们是什么想法?安全测试真的就那么简单吗?我看不尽然。那我就来谈谈我的安全测试经验吧。

我认为安全测试是一个系统、细致,同时是一个非常具有挑战性的工作。安全测试并不是说拿个工具扫描一下就好了,实际上有很多工作要做(作为一个负责任的安全工程师来说)。我的安全测试流程(只针对应用测试,不包含环境)如下:

1、信息收集

作为安全测试的第一步,首先要了解信息系统的概况例如:编程语言、数据库类型、FLASH、第三方插件(编程器、控件等)、系统功能、业务类型等信息。为后期的扫描策略的制定做准备。

2、工具扫描:

有了以上的基础,我们需要先进行工具扫描。要想准确而高效的使用工具进行漏洞扫描,需要制定好一系列的漏洞扫描方案。当然了,漏洞扫描不能只使用一种扫描工具,需要多个工具配合使用,因为每个工具都有它自身的特点。我使用的工具主要是OWASP ZAP、AppScan、Acunetix、burp suite、sqlmap、OWASP-CSRFTester。

1)首先我通过OWASP ZAP的爬虫功能抓取网站的URL,了解系统的规模。为什么要合适OWASP ZAP呢?因为它是轻型的,使用起来速度很快,它的抓取能力不毋庸置疑。那么,抓取后分析什么呢?看看我实际工作中的分析。

0001.png

通过owasp zap的爬虫对网站的抓取(速度很快哦),我们了解到网站的URI约为7533个,同时我们还发现好多网页内容结构是重复的,例如上面的a2016文件夹下的.html文件。了解到以上信息,再加上前期的信息收信。为下面使用appscan扫描策略的制定做好了准备。

2)接下来就是使用AppScan进行漏洞扫描,AppScan的详细使用方法在这里就不多作说明,网上资料多的是。这里主要讲述一下如何根据以上的信息进行扫描策略的配置。

配置环境

0002.png

排除和保留路径

0003.png

测试策略配置—依据严重性删除参考信息项的扫描策略(为了提高扫描速度)

 0004.png


测试策略配置—删除非网站语言的漏洞(此处为示例,依据实际情况自己确定使用哪些策略)

0005.png

我个人的习惯是再使用Acunetix工具对系统做漏洞扫描,主要是为了验证和补充。因为不同的扫描工具,扫描出来的漏洞是不一样的。

 

3)接着对扫描了的漏洞进行验证,为什么要验证呢?一是因为扫描工具扫描出的漏洞有可能是误报,另一方面是为自己的系统做检测要求要准确,方便开发人员修复。我在验证中主要是使用burp suit,firefox中的一些插件。比如说会话定置漏洞的验证。

Ø  先以普通用户登录系统

0006.png

获取此用户的sessionid,为

0007.png

Ø  其次,在另一台电脑上使用此sessionid访问网站并以admin登录

Ø  最后在刷新以普通用户登录的网站,结果是显示的admin用户的菜单列表:

0008.png

当然了,还有好多验证方法,可以使用工具,手工,在这里就不中国啰嗦了。

3、手工检测

在工具扫描的基础上进行手工检测,主要是检测系统无法扫描的漏洞,例如逻辑漏洞、不安全的对象引用漏洞、还有就是因使用ajax导致工具无法检测的漏洞,可进行手工检测是否存在SQL注入,跨站等漏洞。

检测依据是OWASP TO 10

A1 注入:SQL注入,LDAP注入

A2 失效的身份认证和会话管理:暴露的账户、密码、会话ID等,从退出、密码管理、超时、记住我、秘密问题、账户更新等方面找出漏洞。会话ID在URL中,会话ID受到会话固定的攻击,没有超时限制,用户会话或身份验证令牌用于注销时没有失效。成功注册后,会话ID没有轮转。

A3 跨站脚本编制

A4 不安全的直接对象引用

A5 安全配置错误

A6 敏感信息泄漏

A7 功能级访问控制缺失:是否存在未授权的导航,服务器端的身份认证或授权功能是否完善,服务器检查是否仅仅依赖攻击者提供的信息?

A8 跨站请求伪造

4、编写报告

最后,将以上检测结果进行总结汇报。

 

结束语

个人认为,安全检测并不是那么简单,需要有相当的开发经验和安全经验的人,才能做好检测。以上只是我个人心得,望大神指正。

 


已有 2763 位网友参与,快来吐槽:

发表评论

必填

选填

选填

◎欢迎参与讨论,发表您的看法、交流您的观点。