用黑客思维做测试---大型项目安全测试思路分享

2015-10-08   出处: 淘测试  作/译者:潜伏


随着业务的需要,大数据项目以及大型项目业务越来越多的研发上线,网络知识的普及和频发的安全事件也使客户及业务方对网络安全性要求越来越高,安全测试除了常规的白盒自动化代码扫描外,很多功能、逻辑判断上的安全隐患在目前是无法很清晰的做到自动化分析,这个时候需要一定黑盒及手工方法来做深入的安全测试。下面整理下个人在从事大型业务及大数据项目的黑盒及手工安全测试思路,仅供各位参考。


个人习惯在对项目进行测试的时候大致分为 web、网络、系统 三个方面来了解相关业务。根据业务的具体情况针对性的从这三个大层面来挖掘安全隐患。


一:web层面

      
首先明确此业务的web页面的功能,根据功能来判断此功能可能产生的一些安全隐患,下面再举几个我个人的心得为例。


1:数据的报表呈现。

那么这个功能和模块我根据个人经验可能偏重于水平权限等越权操作类的安全测试,相对于此类页面多数的XSS根据个人经验更多是selfxss综合利用场景和效果危害偏小,我会降低此类页面XSS漏洞的投入成本


2:登录页面 

①这个功能上那么XSS就显示的较为高危了,利用场景较多钓鱼伪造登陆页面等等;②是否有防爆破(撞库)的风控机制,例如验证码及密码错误次数限制;③密码是否明文传输,是否使用https。


3:选购、支付页面

 ①csrf,恶意添加删除购物车货品对用户造成经济损失。②支付逻辑,要检查支付或扣费是否只在前端进行了计算而服务端并没有效验。


4:控制台

①水平权限。这个漏洞在云项目控制台类页面较为常见,遍历用户或者业务ID等方法可以进行越权查看及操作。②csrf。如果用户遭受类似APT等针对性的攻击,攻击者可能会通过csrf导致用户进行添加删除等高危操作。


5:其他

在大型项目中很多集成了沙箱、容器、虚机;在线执行数据库语句 python shell等等高级功能,用户体验非常好,但是同样风险问题很多,目前普遍是在沙箱或者容器中使用低权非root账号,来防止沙箱或者容器虚机遭到破坏,其实在操作系统中是存在很多系统溢出造成的提权漏洞可以将低权限账号提权为管理员权限。例如:在测试中要注意发现是否可以使用wget ftp 等等类似下载的命令及方法,用户是否可以执行任意shell脚本,是否对网络访问没有进行限制等等避免用户私自下载提权exp至容器或虚机中进行提权操作。


还有一点在线预览以及一些与xml相关的业务要手工测试是否存在近期较为流行的XXE安全漏洞。


 二:网络层面

这个主要是测试我们的服务器(虚机)的网络是否与外网有隔离,是否做了网关绑定或者其他安全措施来抵御arp嗅探等网络层面攻击。


再有检查是否屏蔽了非必须的UDP等网络协议,避免恶意用户使用业务机对外进行ddos攻击。


三:系统层面

 1:系统安全

这方面主要是配合上面讲到的为了防止提权或者溢出类攻击是否update了相关的补丁。敏感端口是否对外暴露开放。以及服务器账号及文件夹的权限设置等问题。


2:应用及软件

一些项目因为面向用户的特殊需求,需要使用如redis、memcache等内部较少使用的应用,这些应用需要重点测试是否在端口及身份验证上进行了安全防御,稍有不慎可能导致如memcache信息泄漏及redis利用config set直接写入webshell等操作。


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
234° /2342 人阅读/0 条评论 发表评论

登录 后发表评论