2.2业界现有技术的缺点1)、不支持自动csrf漏洞检测;2)、误报率很高。
3.创新的CSRF检测技术针对近期外部报告的大量csrf漏洞,为快速地解决当前面临的问题,腾讯安全团队自研了一款全自动检测csrf漏洞的工具——CsrfScanner,主要检测基础数据库中的存在的漏洞。csrf产生危险的核心就是利用的他人的cookie来进行有敏感的操作,区别对待带cookie和不带cookie两种情况是扫描器的检测逻辑的关键点。CsrfScanner的检测步骤如下:1)、不带cooie访问页面得到表单form1。2)、带cookie访问页面得到表单form2。3)、判断form1与form2是否为同一个表单,如果不是则转到步骤4。这是因为要取出能利用cookie的form。4)、判断form2是否存在token、g_tk等字样,如果不存在,则转到步骤5;否则,则说明该指向的cgi有极大的可能做了csrf防御,为了降低误报率,应过滤掉。5)、判断form2是否存在search、login等黑名单字样,如果不存在,则转到步骤6;否则,则说明该指向的cgi有极大的可能不存在敏感性,为了减低误报率,应过滤掉。6)、判断form2是否存在保存、修改,提交等白名单字样,如果存在,则说明该form2所指向的cgi具有相当的敏感性,因此检测出该指向的cgi存在csrf漏洞。
CsrfScanner的主要是使用C++开发,使用qtwebkit库在返回的html内容中解析出尽可能多的form,即将js动态生成的form也能显示出来。以下是CsrfScanner所检测出的漏洞及其利用截图,此为公司微博业务存在CSRF漏洞,可以导致黑客任意创建微活动并导致蠕虫:
5.后续目前腾讯安全团队已经设计出新的csrf漏洞检测方案来进一步提升CsrfScanner的检测能力。简单的说,该方案通过使用webkit内核,hook住敏感的请求,在该请求中检测token是否存在来判断是否存在csrf漏洞,正在排期完成。该方案的增强点主要在1)、覆盖form以外的csrf漏洞检测,提供更广的检测宽度2)、更高精度的检测3)、通过hook每一个敏感请求,能准确定位漏洞的原因最后感谢各位业界安全大牛在TSRC上反馈的漏洞,每一个漏洞都鞭策着腾讯安全漏洞检测团队不断前进,让我们的漏洞检测系统走在业界的最前列。