作者:京东物流 陈维
一、引言
本文咱们将以围绕系统安全品质晋升为指标,讲述在 性能平安测试 & 平安浸透测试 上实际过程。
心愿通过此篇文章,帮忙大家更深刻、透彻地理解平安测试。
二、平安浸透测试实际
平安前置扫描次要是辨认白盒破绽、黑盒破绽问题,针对 JSRC 类问题,须要通过浸透测试进行破绽发现。
1. 平安测试类别
平安测试依据发展的阶段不同,测试对象不同,能够分为:性能平安测试、平安浸透测试。
以下是两者定义、两者的区别:
两者定义 | 性能平安测试 | 在平安开发生命周期(SDL)的测试验证阶段,对利用零碎进行测验,验证是否合乎平安需要定义和产品质量规范的过程。 |
---|---|---|
平安浸透测试 | 在性能平安测试实现后和产品正式上线公布前,以黑客视角对利用零碎的能够被利用的安全漏洞进行发现和查看,以爱护资产和重要数据的机密性、完整性和可用性。 |
| | 性能平安测试 | 平安浸透测试 |
---|---|---|---|
两者区别 | 出发点不同 | 以发现零碎所有可能的安全隐患为出发点 | 以胜利入侵零碎,证实零碎存在平安问题为出发点 |
视角不同 | 站在防护者角度思考问题,尽量发现所有可能被攻击者利用的安全隐患,并领导其进行修复 | 浸透测试是以攻击者的角度来对待和思考问题 | |
思考域不同 | 以零碎所具备的性能为思考域 | 岂但包含零碎的性能,还有零碎的机制、外部环境、利用与数据本身平安危险与平安属性等 |
具体内容:
性能平安测试:
在功能测试阶段进行,由各业务线测试工程师进行,次要包含以下几个方面:
• 人员权限设置,是否满足需要文档中的阐明:
1). 是否初始化好所有的角色;
2). 每个角色是否按最小权限进行性能配置;
•权限测试:程度越权、垂直越权、穿插越权;
•敏感信息处理是否符合规范;
1). 加密存储;
2). 显示屏蔽;
3). 脱敏导出;
4). 操作平安日志记录;
平安浸透测试:
逻辑平安测试 | 登录逻辑平安测试 | 次要测试登录验证逻辑是否能够绕过,是否存在验证码、是否能够撞库和暴力破解 |
---|---|---|
批改明码逻辑平安测试 | 针对批改明码逻辑程序绕过问题测试,针对批改明码中短信、邮件发送逻辑和其中验证码逻辑做相干测试 | |
验证码逻辑测试 | 对验证码复杂度和验证码验证程序逻辑、验证码验证重放攻打做平安测试 | |
认证模块测试 | 对手机短信、ca 证书等强认证模块的绕过测试 | |
客户端平安测试 | XSS 测试 | 用户输出畸形脚本及标签过滤本义 |
CSRF 测试 | 验证服务器是否增加会话 TOKEN 及验证 referer | |
JSON 挟持测试 | 检测 json 格局变动及是否验证 referer | |
XSIO 测试 | 测试是否限度图片 postion 为 absolute | |
根底认证钓鱼测试 | 查看是否能够批改 img 标签的 src 属性结构根底钓鱼页面 | |
URL 跳转测试 | 检测用户是否批改利用的 url 参数使页面跳转到指定页面 | |
Flash 平安测试(客户端) | 测试 Flash 配置中 allowscriptaccess、allowNetworking 是否合理配置 | |
cookie 平安测试 | 测试重点 cookie 是否应用了 HttpOnly | |
CRLF 测试 | 检查用户输出在 HTTP 头中返回, 并且没有过滤 %0a%0d | |
服务端平安测试 | SQL 注入测试 | 在数据库交互操作的输出点,输出 sql 语句测试是否能够执行 |
上传破绽测试 | 在上传性能点,测试服务端是否对上传文件类型进行无效限度 | |
信息泄露测试 | 测试利用是否对系统报错、测试页面等进行无效解决,是否会泄露零碎敏感信息 | |
文件下载平安测试 | 在文件下载或者读取性能上,测试功能设计是否正当,是否文件名称和门路用户可控 | |
HTTP 头测试 | HTTP 头代理伪造、HTTP 头 PUT 申请等畸形数据测试 | |
近程代码执行测试 | 提交特定的代码,测试代码是否会被利用执行 | |
门路遍历测试 | 拜访各个门路,测试是否能够显示门路下文件信息 | |
垂直权限测试 | 检测普通用户是否能进入以后用户权限不能进入的性能,执行高权限操作 | |
Flash 平安测试(服务端) | 查看配置文件 crossdomain.xml 是否配置正当 | |
程度权限测试 | 测试用户是否只能操作本人以后用户的资源,是否可能操作其余雷同权限用户的资源 | |
SSRF 破绽 | 测试相干服务是否存在对外部网络探测 | |
框架平安测试 | struts 框架平安测试 | 针对 struts2 表达式代码执行破绽进行测试 |
springMVC 框架平安测试 | 针对 springMVC 标签多个代码执行破绽进行测试 | |
openssl 平安测试 | 针对 openssl“心脏出血”等破绽进行测试 |
1. 性能平安测试
(1)发展性能平安测试
Step1:确定我的项目是否须要平安评审
参考规范(起源安全部):
•公司重点策略我的项目
•外网新零碎
•大量内部人员应用的内网零碎(倡议 15 人以上)
•含重大商业秘密,非凡敏感性的零碎;
•新洽购的乙方我的项目或外包我的项目;
•下面几类零碎在重大降级时。
Step2:依靠 SDL 流程发展平安测试:
Step3:测试阶段的性能平安测试:
平安用例设计 -> 测试执行 -> 破绽报告
Step4:上线前的提交浸透测试
(2)性能平安在我的项目中发展
SDL 测试阶段发展性能平安测试:
①确定测试计划:性能平安测试、平安浸透测试、代码白盒扫描、利用黑盒扫描。
②平安用例设计
③性能平安用例: 基于性能点,从权限管制、越权类、数据类 维度进行用例设计。
SDL 上线前提交平安浸透测试.
2. 平安浸透测试
(1)发展浸透测试
Step1: 应用测试工具:
•BurpSuite 装置:
下载地址:https://portswigger.net/burp/communitydownload
Proxy SwitchyOmega(代理插件):代理插件下载地址
•浏览器代理配置:
•BurpSuite -Proxy 监听配置:
•BurpSuite 应用:
浏览器启用 Proxy 进行代理,通过 BurpSuite 进行数据抓取:
Proxy-Repeater 进行申请包的重发:
Proxy-Intruder 进行暴力爆破:
选定变量参数 – 参数化 – 批量重发申请 – 后果获取剖析。
Step2:测试执行
Step3:整顿报告
(2)常见破绽测试
权限绕过
定义:指权限管制性能不谨严,零碎用户能够拜访或者操作未受权的性能或者数据。
程度越权场景:当零碎存在多个雷同权限的用户时,A 用户越权拜访或操作到 B 用户的资源。
垂直越权场景:当零碎存在不同权限的用户时,低权限用户越权拜访或操作到高权限用户的资源。
未受权拜访:用户在没有通过认证受权的状况下可能间接拜访须要通过认证能力拜访的页面或者信息。
提交了大量的举证单信息:
SSRF(服务端申请伪造)
定义:由攻击者结构申请,由服务端发动申请的安全漏洞,SSRF 攻打的指标是外网无法访问的外部零碎(正因为申请是服务端发动的,所以服务端能申请到与本身相连而与外网隔离的外部零碎)。
存储 XSS 破绽
定义:跨站脚本攻打是一种针对网站应用程序的安全漏洞攻打技术,是代码注入的一种。容许歹意用户将代码注入网页,其余用户在浏览网页时会受到影响。歹意用户利用 XSS 代码攻打胜利后,很可能取得很高的权限。
XSS 分为:反射型,存储型,DOM 型。
三、总结
本文次要讲述了性能平安测试 & 平安浸透测试 的定义、区别、发展计划,以及实际举例。
这两中平安测试既可在我的项目发展 SDL 流程的过程中发展,同时也可将平安浸透测试独自拿进去,针对组内外网零碎,专项进行浸透测试。
通过这样的测试,能够升高脱漏到 JSRC 内部白帽问题数。