安全测试知识

测试用例评审记录
测试人员 需求名称 用例数 测试要点 疑问点 解决方案
Appcsan
WASC威胁分类(中文)安全风险 URL 当前级别(High/ Medium/Low/Info)原始级别 bug一般会进行分类(日志伪造攻击数量X个,上传下载攻击 X个,XML注入攻击X个,其他 bug x个)

一、会话

1. 认证前会话

系统应支持“限制或禁止同一用户同时建立多个会话”的功能若同一账号的第二次登录建立会话,系统可以注销前一次的会话或者拒绝当前登录并给出账号已登录的提示。若系统因业务需求需要支持同一账号同一时刻多处登录或者支持多种通道登录的场景,系统必须支持并发多会话机制,并且用户应当可以查看到自己账号的所有登录信息,包括登录时间和登录IP。
认证前会话(B/S)
开始 是否是有效用户(NO断开连接/YES进入下一步)是否是有效IP(NO断开连接/YES进入下一步) 是否在允许时间内(NO断开连接/YES进入下一步)建立会话

2.会话生成

会话标识是由服务器/应用程序生成的用于唯一标识当前会话的一个值。通常会话标识在系统中表示为sessionid。会话标识不能根据客户端提交的信息来生成,因为客户端提交的信息可能存在泄露和被劫持风险或带有恶意代码
Session ID采用通用名称,防止暴露服务端额外信息,会话标识名称可以公开Web应用使用的技术和编程语言。
建议将Web开发框架的默认 SessionID名称修改为通用名称,如id、sessionid等
用户权限变更场景,建议更换会话标识
用户权限变更的场景(用户修改密码、用户角色或权限变更等)建议产品销毁当前用户账号的所有会话,提示用户重新登录或者更换该用户账号的会话标识。更换会话标识可以减小会话劫持给用户带来损失。
B/S 架构为防止会话劫持情况的发生,最好的方法就是使用 HTTPS进行加密传输。
cookie是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存中,并可以从客户端的硬盘或内存中读取数据的一种技术,sessionid通常被保存在 cookie中。cookie分为会话cookie和持久性 cookie,如果没有“认证一次在一定期限内免认证”的需求,必须使用会话cookie来维持会话。会话cookie不设置过期时间,被保存在浏览器的内存中,只要关闭浏览器窗口,cookie就被删除。会话cookie一般应用于每次登录都需要认证,也无需在客户端记录任何有关有用户信息的情况。
持久性cookie需设置过期时间,被浏览器保存到硬盘上直到超过过期时间才失效。一般应用只需认证一次在一定期限内无需重复认证,如购物网站我们只需认证一次,在一段时间内无需认证便可以登录,这是因为cookie中保存了认证需要的信息
因为持久性cookie会被保存到用户本地,即便我们使用了 httponly和Secure属性,也只能保障cookie在传输过程中的安全,如果用户本地发生入侵,保存cookie的文件被窃取,将会导致个人信息的泄漏,使攻击者有可能伪造成用户对服务端进行访问,所以在使用持久性cookie时如果要保存信息到用户本地需对信息进行加密或MAC处理。
必须使用会话Token对敏感或关键的操作进行校验,会话Token必须使用安全随机数算法生成、有效长度不少于24byte或192bit,且需要设置有效期
1.会话Token是服务器为确认客户端请求的有效性,防止跨站请求伪造攻击(跨站请求伪造攻击是攻击者诱骗用户去执行攻击者预先设置的操作)而随机生成一段字符串。客户端发起的数据添加、修改、删除、上传以及开关配置等敏感或关键的操作(如:支付操作、修改密码操作、添加修改管理员操作、重启设备操作等)
2.必需使用会话Token验证请求的有效性。会话Token通常与 sessionid一起使用,来验证用户身份,以确保客户端提交的请求是用户主动发起,而非攻击者伪造的请求。会话Token必须使用安全随机数算法生成,有效长度不少于24byte或192bit。会话生成(B/S)
开始 客户端认证通过(NO结束/YES进入下一步)服务器创建session 服务器随机生成 sessionid 服务器创建cookie设置cookie属性将cookie发送到浏览器 会话维持

3.会话维持

为防止跨站请求伪造攻击、会话劫持攻击等行为,必须要保证会话Token在一段时间范围内有效,通常情况下会话Token的有效期和会话有效期相同,但是在一些安全级别比较高的应用中,要求每次请求后要更换会话Token,并且要对会话Token设置一个较短的有效期(如20分钟),带有过期会话Token的请求被认为是无效请求。
B/S架构下,浏览器会保存URL历史记录,同时Web服务器和代理服务器的日志也都可能保存 URL信息,如果URL中携带会话标识(如sessionid),则容易造成会话标识泄露
会话维持(B/S)
开始 客户端请求访问页面、提交操作 服务器验证sessionid合法性(no/会话销毁,yes/下一步)服务器验证Token正确(no/会话销毁,yes/下一步)服务器验证IP、账号等合法(no/会话销毁,yes/下一步)服务器验证操作流程正确(no/会话销毁,yes/下一步) 执行操作、返回请求页面(下一步)是否继续访问页面(no/结束, yes/重新进入客户端请求访问页面、提交操作)

4.会话销毁

所有登录后才能访问的界面都必须提供主动退出选项,当用户退出时,服务器端必须清除该用户的会话信息
用户向服务器主动发送退出请求时,服务器应当根据用户的请求删除全部会话信息,并且使此会话的sessionid失效。即使浏览器没有关闭,cookie中的 sessionid依旧失效,以此减小攻击者获得有效sessionid的可能性
非法会话中很大部分是攻击者试图伪造他人或尝试对服务器造成破坏,为了防止上述情况的发生,C/S通常采用服务器拒绝响应或返回连接错误信息的方式来处理非法会话,B/S除拒绝响应的方式还可以采用一些相对友好的方法来处理,如提示用户未登录、返回认证界面等。当有非法会话情况出现还要记录安全日志,可以让管理员从日志中发现非法请求的信息,分析非法会话产生的原因。
必须设置会话闲时超时机制,在超时过后必须要清除该会话信息说明:设置会话超时时间,避免攻击者有充足的时间猜测或使用暴力尝试的方式得到有效的 sessionid来模拟用户和服务器之间进行通信
会话固定超时机制是指系统在创建会话时,设定了会话的最大可用时间,超过此设定时间后,不管会话是否是活跃的,系统都将此会话注销,用户必须重新认证,建立新的会话。
会话固定超时可有效限制攻击者利用劫持受害者会话标识的时间。
会话销毁(B/S)
开始 浏览器发送退出请求 服务器删除会话信息 返回登录前页面 结束
或者
开始 服务器检测到session超时服务器删除会话信息 返回开始到服务器检测session超时过程中
不安全算法:MD5,哈希算法(SHA1)
安全强密码算法:哈希算法(SHA256或以上)

二、隐私保护

(1)物理上隐私:搜查个人住宅或个人财产、搜身、监控或提取生物特征信息等;
(2)信息性的隐私:个人控制、编辑、管理和删除关于自己信息的能力和决定如何与他人沟通自己这些信息的能力。个人数据

三、敏感个人数据

数据控制者:单独或者与他人共同确定个人数据处理的目的和手段的自然人、法人、公共机构、政府部门或其他机构
数据处理者:指代表数据控制者处理个人数据的自然人、法人、公共机构、政府部门或其他机构隐私保护原则:
数据最小化:尽可能对个人数据进行匿名或化名,降低对数据主体的风险
完整性与保密性:根据现有技术能力、实施成本、隐私风险程度和概率采取适度的技术或组织措施确保个人数据的适度安全,包括防止个人数据被意外或非法毁损、丢失、篡改、未授权访问和披露。

四、不安全算法/XSS

检查项 检查结论 静态扫描规则检查方式 排查指导 错误示例 Hash算法 不安全算法:MD2、 MD4、MD5、SHA1
秘钥长度:证书RSA、DH秘钥长度不低于2048,推荐3072; ECC秘钥长度256
禁止使用编码的方式(如
Base64编码)实现数据加密目的
不安全传输协议:比如http传输敏感数据或个人数据 XSS攻击
反射型XSS黑盒
URL请求串、请求体中的参数值在响应中展示,并且没有正确转码
用>“&/ 等特殊字符进行赋值,看响应报文是否对这些特殊字符做了转码
如果转码可以参见绕过章节2.5绕过利用尝试绕过,如果未转码,那么就是一个反射型xss
&-> &<-><>->>”->" ‘->’/–>/注意:某些场景下即使做了html转码,也会存在xss白盒
因模式1:搜索
getParameter(“xx”)、S
(param[“xx”])、#parameters.xx等从查询串中获取参数值的 api,跟踪看其输出是否正确转码,未正确转码可能存在反射型 xsS
DOM型XSS
黑盒
DOM型xss发生在浏览器端,在浏览器上执行的js都可以直接查看源码,因此不存在黑盒测试的场景,测试方法请参见白盒。白盒
模式1:从输入查找,搜索 location.search, location.hash, location.href, document.URL, document.URLUnencoded, document.referer等api,看是否有将其值直接输出到DOM,有则存在DOM型xss
在js中,获取url参数的api大致有location.search,
location.hash, location. href, document.URL,
document.URLUnencoded,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值