安全测试简述/安全审计工具

安全测试占比例比较少,一般在专业型公司或者和钱打交道的app,

Web安全测试介绍

Web应用的概念
◆Web应用是由动态脚本、编译过的代码等组合而成。
◆它通常架设在Web服务器上,用户在Web浏览器上发送请求。这些请求使用HTTP协议,由Web应用和企业后台的数据库及其他动态内容通信。

web应用三层架构
一般安全测试在中间层,尤其是web层到应用层的传输,是最容易发生安全问题的
在这里插入图片描述

日常网络行为与安全时时相关
◆为什么我们登录的时候经常要求我们输入一个验证码?
防止通过脚本的方式来暴力破解用户名和密码,毕竟验证码你是无法提前获知的。

◆在一个网站上长时间没有操作,为什么会session失效?
属于后验证测试,害怕用户的程序电脑被黑客攻击,所以当用户一定时间没操作,就要退掉,用户要操作就得重新操作。

◆为什么支付宝之类的支付接口都是https?
因为http在传输过程中是加密处理,但是你的系统仍然是不安全的,仍然需要相应的安全测试。

安全模型

因为由于拥堵,乘客可能被挤下地铁或者把别人挤下地铁,或者发生踩踏事故
可以思考:
地铁增开
多开几个站口
地铁改造:一层改成两层
限流(限号进站之类)
试运行,看看开x号线有没有去坐的人过于多

从WASC和OWASP谈漏洞分类

WASC
◆Web Application Security Consortium
◆是一个由安全专家、行业顾问和诸多组织的代表组成的国际团体(公益性组织)。他们负责为WWW制定被广为接受的应用安全标准。(给现在的互联网制定了安全标准)

◆WASC将Web应用安全威胁分为六大类:
◆Authentication (验证) : 用来确认某用户、服务或是应用身份的攻击手段

(对于登陆的验证,比如三个核心功能 : 注册登录忘记密码)
短信拦截,验证码拦截等,可以避免漏洞

◆Authorization (授权) : 用来决定是否某用户、服务或是应用具有执行请求动作必要权限的攻击手段
(主要对应的是session,cookie,所以要注意session的加密,处理传输过程中是否容易被拦截破解)

◆Client- Side Attacks (客户侧攻击) :用来扰乱或是探测Web站点用户的攻击手段
(比如淘宝卖家卖了海洋之心给买家,卖的非常贵,然后买家通过客户端攻击的方法进行绕过,修改了相应的金额并且成功支付,叫做客户端攻击)

◆Command Execution (命令执行) : 在Web站点上执行远程命令的攻击手段
(在站点上留了一些能够被别人发现的漏洞,自己能够远程命令。也容易让别人钻漏子)

◆Information Disclosure (信息暴露) : 用来获取Web站点具体系统信息的攻击手段
(在展现错误信息的时候展现的过于详细,甚至展现出了数据库用户名等)

◆Logical Attacks (逻辑性攻击) : 用来扰乱或是探测Web应用逻辑流程的攻击手段
(并不是严格意义上的安全攻击,只是这些漏洞和业务紧密相关,但是有些漏洞在业务上又不能体现出,只有拿到安全角度才能去分析)

OWASP 其实是一个项目
◆Open Web Application Security Project
◆致力于发现和解决不安全Web应用的根本原因。

最大贡献:发现并且每年更新web安全里最核心的十大安全漏洞
在这里插入图片描述

WEB安全测试的流程

将页面进行肢解,然后去测试,然后总结
在这里插入图片描述

项目考虑最先执行功能测试,再自动化,再安全,再性能测试
原因:
安全测试会涉及很多的代码修改,会反过来影响到性能测试的结果。

在这里插入图片描述
安全测试也分手动和自动化测试

安全审计工具

不建议过多依赖于安全审计工具:
原因是
1.这样的安全设计工具会发现很多漏洞,但是你不能知道这些漏洞的意思,也不能复现,所以这些审计报告给出测试报告结果,需要你使用自己的技术去排查这些漏洞
2.不是一个真正的安全测试的方法,不能让自己真正的学会安全测试,无法提升自己的能力。

自动化审计工具(当时间比较紧迫的时候)
随着安全测试的开展和深入,越来越多的公司开始采用安全测试的手段,由于测试人员的能力和时间等因素,更多的采取诸如AppScan、Weblnspect等安全审计工具。

节省时间,但是也带来了很多问题(错报漏报,在验证机制会话管理都有可能漏报,所以需要用手工去弥补)

AppScan在项目团队中的协作

◆开发人员
**开发人员在开发过程中可以使用AppScan或者专用插件,随时开发随时测试,**最大化的保证个人开发程序的安全性。越早发现问题,解决问题的成本就越低,这为Web应用的安全提供了最为坚实的基础保障。
◆测试人员
系统测试时测试人员用AppScan对应用做全面的测试
, 一旦发现问题,可以快速的生成defect, 通过CQ集成可以实现defect电子化跟踪,再传递到开发人员手中,指导开发人员迅速解决问题。(测试要去拍查一下哪些是安全漏洞,再给开发人员)
**◆审核人员
这是系统上线前的安全质量关卡。**任何系统上线都应该经过严格的上线测试,这也最大化的减少了上线后问题的出现,避免生产系统上线后给企业带来的巨额损失。
◆上线后审计、监控人员
上线的系统应该定期检测,一旦出现问题更应该及时检测,越快速的定位发现问题,损失就会越小。

扫描主要范围是:web服务器,数据库,应用
在这里插入图片描述

扫描原理

在这里插入图片描述
探测阶段:(类似于做一个策略的选择,相当于测试方案)
探测过程中,所采用的测试策略可以选择默认的或自定义的,可采用不同的测试策略,测试策略库是Appscan内置的,它可以定义为你想要的组合,去检测你最想检测的可能存在的安全隐患。
(相当于测试网站的站点信息。拿到我们要测试的链接)

◆模仿一个用户对被访问的Web应用或Web服务站点进行探测访问,通过发送请求对站点内的链接与表单域进行访问或填写,以获取相应的站点信息(Application Tree)。
◆ Appscan分析器将会对自己发送的每一个请求后的响应做出判断,查找出任何可能潜在风险的地方,并针对这些可能会隐含风险的响应,确定将要自动生成的测试用例。
◆探测阶段完成后,这些高危区域是否真的隐含着安全缺陷或应做更好的改良,以及这些隐含的风险是处于什么层度的,是需要在测试执行完成后,才能最终得出决论

测试阶段:(对应测试用例的编写)
◆探测阶段后,Appscan已经分析出可能潜在安全风险的站点模型。
◆AppScan也已经知道需要生成多少的测试用例,以便检测这些区域的安全隐患。这个时候的工作,主要就是生成这些已经计划好的测试用例。
◆Appscan是通过测试策略库中对相应安全隐患的检测规则而生成对应的足够全面而且复杂的测试输入。

扫描阶段:(对应测试执行阶段)
◆A扫描阶段,Appscan才是真正的工作起来,他将会把上个阶段的测试用例产生的服务请求陆续的发送出去
◆然后再检测分析服务的响应结果,从而判断该测试用例的输入,是否造成了安全隐患或安全问题。
◆然后再通过测试用例生成的策略,找出该安全问题的描述,以及该问题的解决方案,同时还报告相关参数的请求发送以及响应结果。

操作过程

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
安全测试人员不光要找到漏洞,还得知道怎么解决这个漏洞,好去指导开发人员解决漏洞

发布了82 篇原创文章 · 获赞 7 · 访问量 4168

猜你喜欢

转载自blog.csdn.net/sunshine612/article/details/105453124