天创培训:您身边的信息安全培训专家!
栏目列表
开班计划
2018年8月CISP培训开班通知
主讲老师   张老师、王老师等
开课时间   2018年8月28日-9月2日
培训方式   实地/面授
授课天次   培训5天+考试半天
上课时间   09:00 -- 16:30
课程介绍 在线报名
Web渗透测试(高级)开班通知
主讲老师   张老师、高老师等
开课时间   2018年8月16日-31日
培训方式   实地/面授
授课天次   16天
上课时间   09:00 -- 17:00
课程介绍 在线报名
Web渗透测试(中级)开班通知
主讲老师   张老师、王老师等
开课时间   2018年8月16日-22日
培训方式   实地/面授
授课天次   7天
上课时间   09:00 -- 17:00
课程介绍 在线报名
CISP-PTE渗透测试工程师开班
主讲老师   张老师、高老师等
开课时间   2018年8月23日-30日
培训方式   实地/面授
授课天次   8天
上课时间   09:00 -- 17:00
课程介绍 在线报名
技术中心您当前位置:首页 > 资源专区 > 技术中心

WAF开发之Cookie安全防护

作者:天创培训  来源:px.tcnet.com.cn  更新时间:2018-04-03  关键词:WAF,Cookie

一、前言
Cookie安全防护功能主要实现以下两个目标
1、防止XSS攻击盗取用户Cookie
2、防止基于Cookie的SQL注入\命令注入\其他乱七八糟的攻击
优点
1、安全(有破解思路麻烦告知)
2、通用
3、配置简单
缺点
1、基于IP地址进行识别,在相同外网IP的情况下,可XSS盗取Cookie成功,既不防熟人XSS攻击
2、在登陆后如果IP地址变动,需重新登陆
二、实现
实现思路是通过AES加密Set-Cookie中的键值来确保Cookie的安全,具体如下图:
Set-Cookie加密流程
WAF开发之Cookie安全防护
首先获取AES的初始密钥Key,接着判断是否开启客户端IP绑定,是的话AES的密钥为Key+ClientIP,不是则为Key,之后通过AES对Set-Cookie的键值进行加密,加密过程中忽略expires,max-age,domain等保留键,之后重写整个Set-Cookie 
Cookie解密流程
WAF开发之Cookie安全防护
首先获取AES的初始密钥Key,接着判断是否开启客户端IP绑定,是的话AES的密钥为Key+ClientIP,不是则为Key,之后通过AES对Cookie的键值进行解密,解密过程中判断是否开启安全模式,是的话将丢弃无法解密的键值,不是则保留键值,之后重写整个Cookie
开启配置
WAF开发之Cookie安全防护
如上图,一共四个选项:
第一个为是否开启Cookie安全防护,默认为关闭;
第二个为是否开启客户端IP绑定,默认为开启;
开启客户端IP绑定后,当攻击者通过XSS漏洞盗取用户Cookie后,因IP不同导致AES密钥不同,无法成功解密进而无法登陆系统。关闭客户端IP绑定将无法防止XSS攻击盗取用户 Cookie。
第三个为安全模式选择;
默认为兼容模式,兼容模式下,如果参数解密失败,将保留,即解密失败的键值将维持原样传递到后端服务器,例如XSS攻击获取的session加密串将直接传递到后端,但因服务器检测不到session键值而无法登陆。安全模式将丢弃所有无法解密的键值。选择兼容模式无法防止基于Cookie的SQL注入等攻击。
第四个为密钥,值默认为false,开启后需点击按钮生成随机16位密钥。
实现效果
WAF开发之Cookie安全防护
三、总结
Cookie安全防护功能的核心在于,数据的加密解密都在WAF上进行,密钥无需存储在前端,在没有密钥的情况下,可以认为密文是无法破解的。在开启客户端IP绑定后,可以在全站层面有效防止XSS攻击盗取用户Cookie的情况,攻击者就算拿到用户session的密文也因WAF无法解密而失效。而开启安全模式后,攻击者输入的基于Cookie的SQL注入\命令注入等因WAF无法解密而被丢弃,从而保护后端服务器安全。总的来说,该功能可以做为一种低成本的全站XSS攻击缓解方案。
对于WAF而言,该功能的意义在于,后续的防护规则开发,可以忽略Cookie方面的规则防护。同时如果基于性能和风险考虑,也可以相应的减少XSS攻击甚至不要XSS攻击的防护规则,从而减少规则集的维护难度和WAF处理性能。XSS的问题可以通过前端框架处理以及配合其他诸如前端参数加密,机器学习等方法来解决。
对于现有的网站来说,可以通过重写网站架构中Cookie相关的代码来实现同样的功能,实现起来也不复杂。 



推荐阅读

网站首页 |  关于天创 |  课程体系 |  最新动态 |  联系我们 |  网站地图 |  二维码
版权所有:江苏天创科技有限公司 苏ICP备16028135号-2
苏州总部地址:江苏省苏州市十梓街327号 电话:0512-65129087 传真:0512-65157410 邮编:215000
南京分公司地址:南京珠江路88号新世界中心A座 电话:025-84533276 传真:025-84533286 邮编:210000