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

Posted ArkTeam

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Deemon:自动化CSRF安全检测框架相关的知识,希望对你有一定的参考价值。

原文标题: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攻击

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

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

2 Deemon流程图Deemon:自动化CSRF安全检测框架

  1. Web应用程序正在运行的实例中重新生成用户操作作为模型的初始输入;

  2. 通过传感器生成包含网络痕迹和函数调用痕迹的应用程序执行痕迹;

  3. 从这些痕迹中,Deemon推断出一个简单模型(FSM和数据流模型)的组合模型——属性图;

  4. Deemon使用模型查询来挖掘生成安全测试和一个oracle(出度等于1SQL查询的抽象分析树根的集合,用于确定是否发生了与安全有关的状态转换);

  5. Web应用程序中运行上一步中生成的安全测试;

  6. 最后,针对oracle预测测试结果来检测CSRF漏洞。

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

属性图

属性图说明


以上是关于Deemon:自动化CSRF安全检测框架的主要内容,如果未能解决你的问题,请参考以下文章

《白帽子讲WEB安全》学习笔记之第12章 WEB框架安全

CSRF-Scanner——打造全自动检测CSRF漏洞利器

CSRF 攻击API 设计Redis微服务框架| Chat · 预告

Go 语言安全编程系列:CSRF 攻击防护

web安全之token和CSRF攻击

web安全:xss && csrf