来自德国Saarland University和SAP SE公司的研究人员Giancarlo Pellegrino等提出一种用动态分析和属性图来检测CSRF攻击的工具——Deemon &…
来自德国Saarland University和SAP SE公司的研究人员Giancarlo Pellegrino等提出一种用动态分析和属性图来检测CSRF攻击的工具——Deemon 。
背景
与XSS和SQL注入相比,对CSRF的研究很少。目前,主流的CSRF检测主要是手动的。但是,Gmail,Netflix,Google和Skype等主流网站都发现了CSRF漏洞。 CSRF漏洞的使用导致用户财产丢失,帐户接管和远程命令执行。
CSRF是伪造用户在站内正常操作的请求。我们知道大多数网站通过cookie等方式识别用户(包括使用服务器端)。
Session的网站,因为会话ID也主要存储在cookie中
在里面),然后授权。因此,伪造用户正常操作的最佳方法是通过XSS或链接欺骗让用户在机器上(例如拥有身份cookie)。
浏览器端)发起用户不知道的请求。
要完成CSRF攻击,受害者必须按顺序完成两个步骤:
1.登录可信网站A并在本地生成cookie。
2.访问危险网站B而不退出A.

Deemon
Deemon对动态跟踪方法和操作行为特征图分析进行CSRF攻击检测。
守护者的关键部分
监视程序执行的状态转换和数据流信息,包括网络交互,服务器执行和数据库操作;
使用属性图的边来表示不同模型之间的关系;
使用图表的遍历来查找与安全性相关的状态变化;
增强Web应用程序的执行环境,然后复制用户操作以监视服务器程序的执行;
使用虚拟环境测试Web应用程序。

Deemon的测试过程
Deemon的输入是用户操作的集合,包括鼠标单击,HTML表单提交等。检测到后,将输出漏洞报告,列出可能用于执行已更改状态的CSRF攻击的HTTP请求。

Web应用程序的测试过程如下:
如果HTTP请求包含反CSRF参数,则生成不包含参数的HTTP请求;
如果HTTP请求不包含反CSRF参数,则生成获取的HTTP请求;
在两个请求中,请求的会话cookie由重放用户的登录操作更新。
研究人员使用Deemon测试10个主流开源Web应用程序并检测到29个与安全相关的状态变更请求,其中17个是CSRF漏洞(其中14个以前未被发现)。

当前版本的Deemon支持检测使用MySQL数据库的PHP Web应用程序,后续版本将支持其他编程语言和数据库。
Deemon git地址:https://github.com/tgianko/deemon/
参考来源:https://arxiv.org/pdf/1708.08786.pdf
本文作者:ang010ela 从Freebuf转移