Deemon:自动化CSRF安全检测框架

作者:{WJN}@ArkTeam

原文作者:Giancarlo Pellegrino, Martin Johns, Simon Koch et al.

原文标题:Deemon: Detecting CSRF with Dynamic Analysis and Property Graphs

原文会议:2017 ACM Conference on Computer and Communications Security (CCS)

原文链接:https://dl.acm.org/citation.cfm?doid=3133956.3133959

跨站请求伪造(CSRF)是一种十分重要的Web应用程序漏洞,在OWASP Top Ten上一直榜上有名,但却很少受到研究人员和安全测试社区的关注,迄今为止,CSRF漏洞的检测仍主要由人工操作实现。

基于这样的背景,本文研发了首个针对CSRF漏洞的自动化安全监测框架——Deemon。通过将执行痕迹、数据流等Web应用程序的多方面信息统一映射为一个属性图,通过图遍历的方法挖掘潜在的易受攻击的操作。文末实验部分利用10个流行的开源Web应用程序来评估Deemon,发现了14个以前未知的可被利用的CSRF漏洞,从而证明了Deemon的有效性。

本文将CSRF攻击分成两类:authenticated CSRF(后文简称aCSRF)和login CSRF

1)认证型CSRF:已经存在一个受害者和目标网站之间的session

2)登陆型 CSRF:不存在一个受害者和目标网站之间的session,攻击者的目标就是以攻击者自己的证书登录。

本文主要关注对认证型CSRF的检测,并做如下定义:

如果web应用程序接受具有以下属性的HTTP请求,则web应用程序存在aCSRF漏洞:

P1)传入请求会导致Web应用程序的安全相关状态更改。

P2)该请求可以由攻击者可靠地创建,即攻击者知道所有需要的参数和请求的值。

P3)请求在用户的有效认证上下文内处理。

1 aCSRF攻击

1 文章技术难点及其解决方法

2 Deemon流程图

  1. Web应用程序正在运行的实例中重新生成用户操作作为模型的初始输入;
  2. 通过传感器生成包含网络痕迹和函数调用痕迹的应用程序执行痕迹;
  3. 从这些痕迹中,Deemon推断出一个简单模型(FSM和数据流模型)的组合模型——属性图;
  4. Deemon使用模型查询来挖掘生成安全测试和一个oracle(出度等于1SQL查询的抽象分析树根的集合,用于确定是否发生了与安全有关的状态转换);
  5. Web应用程序中运行上一步中生成的安全测试;
  6. 最后,针对oracle预测测试结果来检测CSRF漏洞。

    值得关注的是,Deemon流程图中所有步骤都是自动生成的。

3 属性图

2 属性图说明

发表评论

电子邮件地址不会被公开。 必填项已用*标注