skipfish-基于谷歌开源的app scan

黄小昏 | 2013-02-07 23:13

skipfish是什么?

Skipfish是一个积极的Web应用程序的安全性侦察工具。 它准备了一个互动为目标的网站的站点地图进行一个递归爬网和基于字典的探头。 然后,将得到的地图是带注释的与许多活性(但希望非破坏性的)安全检查的输出。 最终报告工具生成的是,作为一个专业的网络应用程序安全评估的基础。

许多商业和开源工具类似的功能更是一应俱全(例如, 尼克托 , Websecurify , Netsparker , w3af , Arachni );坚持一个最适合你的。这就是说,skipfish试图解决一些常见的问题与网络安全扫描器。 具体优点包括:

高性能:500 +每秒,对响应互联网的目标,2000 + LAN / MAN网络上每秒请求,7000 +对当地情况的请求的请求已经观察到,一个很不起眼的CPU,网络和内存占用。 这可以归因于:

复用单线程,完全异步的网络I / O和数据处理模型,消除了内存管理,调度和IPC的低效率中存在的一些多线程的客户端。

HTTP/1.1的功能,如先进的范围要求,内容压缩,和keep-alive连接,以及强迫响应的大小限制,以保持网络级的开销检查。

智能响应缓存和先进的服务器行为的启发式算法,以尽量减少不必要的交通。

以业绩为导向,纯C语言实现,包括一个自定义的HTTP协议栈。

易用性:skipfish具有很强的适应性和可靠的。 扫描仪的特点:

启发式识别晦涩的路径和基于查询的参数处理方案。

适度处理多框架的地方,一定的路径服从一个完全不同的语义,或者是不同的过滤规则。

自动词库建设的基础上的网站内容分析。

概率的扫描功能,允许任意复杂的网站定期的,有时限的评估。

精心设计的安全检查:该工具是为了提供准确的和有意义的结果:

手工制作的辞典提供出色的网络覆盖,并允许彻底的关键字。扩展测试在一个合理的时间范围内。

三步差分探头用于检测漏洞的签名检查是首选的。

Ratproxy式的逻辑是用来发现微妙的安全问题:跨站点请求伪造,跨站脚本包含混合内容,问题MIME字符集不匹配,不正确的缓存指令,等等。

捆绑的安全检查,被设计来处理棘手的情况:存储XSS(路径,参数,报头),盲目的SQL或XML注入,或盲目外壳注塑。

报告处理后大幅降低由任何其它的假阳性或服务器的噱头通过识别重复图样所引起的噪声。

说,skipfish是不是银弹,并可能不适用于某些用途。 例如,它不符合大多数WASC Web应用程序安全扫描评估标准 (其中一些的目的是,一些必要的)中列出的要求,而不像其他大多数这种类型的项目,它不来与广泛的数据库已知漏洞的旗帜型检查。

最奇怪的! 有什么具体的测试实施?

该工具所提供的安全检查的一个粗略的列表被概述如下。

高风险漏洞(可能导致系统安全受到威胁):

服务器端SQL / PHP注射液(,包括盲人载体,数值参数)。

显式的类似于SQL的语法GET或POST参数。

服务器端的shell命令注入(包括盲人载体)。

服务器端的XML / XPath注入(包括盲人载体)。

格式化字符串漏洞。

整数溢出漏洞。

点接受HTTP PUT。

中等风险的缺陷(可能导致数据泄漏):

存储和反映的XSS向量在文档正文(最小支持JS XSS存在的话)。

通过HTTP重定向的存储和反映的XSS向量。

存储和反映XSS载体,通过HTTP头分裂。

目录遍历/文件包含(包括约束向量)。

什锦兴趣点(服务器端源的configs等)的文件。

攻击者提供的脚本和CSS列入载体(存储和反射)。

外部不可信的脚本和CSS列入载体。

脚本和CSS资源(可选)的混合内容的问题。

密码形式提交或在非SSL页面(可选)。

不正确或缺失的MIME类型,renderables。

renderables的通用MIME类型上。

renderables不正确或丢失字符集。

冲突的renderables MIME /字符信息。

坏的cookie设置响应缓存指令。

低风险问题(影响有限,特异性或低):

目录上市旁路载体。

重定向到攻击者提供的URL(存储和反射)。

攻击者提供嵌入的内容(存储和反射)。

外部不可信嵌入的内容。

非脚本化的混合内容的子资源(可选)。

HTTPS – > HTTP提交的HTML表单(可选)。

HTTP URL中的凭据。

过期或尚未有效SSL证书。

没有XSRF保护的HTML形式。

自签名的SSL证书。

SSL证书的主机名不匹配。

坏的缓存指令上不太敏感内容。

内部警告:

资源撷取尝试失败。

超过抓取限制。

404行为检查失败。

IPS过滤检测。

意外的响应变化。

看似错误分类的抓取节点。

非特定的信息项:

一般SSL证书的信息。

显着变化的HTTP Cookie的。

更改服务器 , 通过X-…头。

新的404个签名。

不能被访问的资源。

资源需要HTTP身份验证。

断开的链接。

服务器错误。

所有的外部链接,否则不分类(可选)。

所有的外部电子邮件(可选)。

所有的外部的URL重定向器(可选)。

链接到未知的协议。

不能自动完成表单字段。

输入密码的形式(外部蛮力)。

上传文件的形式。

其他HTML表单(不归类否则)。

数值的文件名(外部蛮力)。

用户提供的链接以其他方式呈现在页面上。

不正确或缺失显著含量少的MIME类型。

通用MIME类型内容少显著。

不正确或缺少的字符集内容少显著。

冲突的MIME /字符集信息,内容少显著。

OGNL般的参数传递约定。

随着发现的问题的列表,skipfish还提供了文件类型,以及发现的问题类型的简要概述,以及一个互动的网站地图,通过蛮力发现的节点以与众不同的方式表示。

注:作为一个有意识的设计决策,skipfish不会冗余抱怨的高度非特异性或没有影响的问题,包括但不限于:

非httponly或者非安全的饼干,

非HTTPS或自动完成功能的形式,

HTML在页面上检测到的意见,

文件系统中路径或内部IP中的错误信息披露的,

服务器或框架版本公开,

支持TRACE或OPTIONS请求的服务器,

仅仅是存在一定的技术,如WebDAV。

这些方面在一份报告中便于检查,如果需要的话 – 例如,所有的HTML表单和密码的形式单独列出,所以有新的cookies或有趣的HTTP标头 – 和预期的是,核数师可能会选择做出一定的根据这个数据,在适当情况下的设计建议。

扯了这么久….地址在这里

吧啦吧啦….祝基友们春节快乐!!!

http://code.google.com/p/skipfish/