什么是skipfish_『信息安全』杂谈。低调讨论不是技术的技术,屠龙之术 ...

===========================================
skipfish - 网络应用程序安全扫描
===========================================

*书面和Michal Zalewski首先保持<>。
*版权所有2009年,2010年谷歌公司,版权所有。
*下发布的条款和Apache许可证,2.0版的条件。

--------------------
1。什么是skipfish?
--------------------

Skipfish是一个积极的Web应用程序的安全侦察工具。它准备
一为通过开展有针对性的递归抓取网站的交互式地图
和基于字典的探头。由此产生的地图,然后加注
产量从活跃(但希望非破坏性)的安全检查。
{zh1}报告工具生成的是为了作为一个基础
专业的网络应用安全评估。
何必去理会这个特殊工具吗?

类似的功能与商业和开源工具,是
现成的(例如,日高,Nessus的);坚持一个最适合你的。
尽管如此,skipfish试图解决相关的一些常见问题
与网络安全扫描器。具体优点包括:

*高性能:500 +每秒对Internet请求作出反应
    目标,要求2000 +每秒的局域网/城域网网络,和7000 +的要求
    针对当地的情况已经指出,一个非常温和的CPU,网络,
    和内存占用。这可以归因于:

     - 复用单线程,xx异步网络I / O和数据
      处理模式,xx了内存管理,调度和IPC
      效率低下,在目前一些多线程的客户。

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

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

     - 绩效导向,纯C的执行情况,包括自定义
      HTTP堆栈。

*易于使用:skipfish具有高度灵活性和可靠性。扫描仪
    特点:

     - 启发式的小路承认和查询的参数
      处理方案。

     - 优美处理多框架的网站,服从某些路径
      一个xx不同的语义,或受到不同的过滤
      规则。

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

     - 概率扫描功能,以便定期,有时间限制
      评估,任意复杂的网站。

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

     - 三步差分探头是{sx}的签名支票
      检测漏洞。

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

     - 捆绑的安全检查的目的是处理棘手的情况:
      存储跨站脚本(路径,参数,头),SQL盲或XML注入,或
      盲目壳注射。

     - 报告后处理大大减少所造成的噪音
      其余查明误报或服务器噱头重复
      模式。

尽管如此,skipfish不是银弹,并可能对某些不适合
目的。例如,它不能满足大多数要求概述
西非海缆Web应用程序安全扫描评估标准(其中一些
为此,一些出于需要),而不像大多数这种类型的其他项目,
它不来一个已知漏洞的广泛数据库
横幅式检查。

-------------------------------------------------- ---
2。{zh0}奇!有什么具体测试实施?
-------------------------------------------------- ---

据一项由该工具提供的安全检查粗糙名单概述如下。

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

     - 服务器端SQL注入(包括失明载体,数值
      参数)。
     - 明确的SQL样GET或POST参数语法。
     - 服务器端的shell命令注入(包括失明矢量)。
     - 服务器端的XML / XPath的注射(包括失明矢量)。
     - 格式串漏洞。
     - 整数溢出漏洞。

*中等风险的缺陷(可能导致数据的妥协):

     - 存储和反映跨站脚本文件身体向量(最小JS跨站脚本
      支持至今)。
     - 存储和反射向量通过HTTP重定向跨站脚本。
     - 存储和反映通过HTTP头分裂跨站脚本向量。
     - 目录遍历(包括限制矢量)。
     - 拼盘文件兴趣点(服务器端源,configs等)。
     - 攻击者提供的脚本和CSS列入向量(存储和
      反映)。
     - 外部信任脚本和CSS列入向量。
     - 混合的脚本和CSS资源内容的问题(可选)。
     - 不正确或失踪renderables MIME类型。
     - 关于renderables通用的MIME类型。
     - 不正确或丢失字符集的renderables。
     - 冲突的MIME /字符集信息的renderables。
     - 不良反应的Cookie上设置缓存指令。

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

     - 目录列表绕过媒介。
     - 重定向到攻击者提供的网址(存储,反映)。
     - 攻击者提供的嵌入内容(存储,反映)。
     - 外部不受信任的嵌入内容。
     - 混合内容非脚本subresources(可选)。
     - 在URL的HTTP凭据。
     - 过期或不仍未生效的SSL证书。
     - HTML表单没有XSRF保护。
     - 自签名的SSL证书。
     - SSL证书的主机名不匹配。
     - 坏不太敏感的内容缓存指令。

*内部警告:

     - 失败的资源获取的企图。
     - 超出检索限制。
     - 失败的404行为检查。
     - 新闻通讯社过滤检测。
     - 意外的反应的变化。
     - 看似错误分类检索节点。

*非特异性信息条目:

     - 一般的SSL证书信息。
     - 显着变化的Cookie。
     - 更改服务器,威盛,或X - ...头。
     - 新404的签名。
     - 资源无法访问。
     - 资源需要HTTP认证。
     - 断开的链接。
     - 服务器错误。
     - 所有的外部链接不属其他(可选)。
     - 所有的外部电子邮件(可选)。
     - 所有外部URL重定向(可选)。
     - 链接到未知的协议。
     - 表格字段不能autocompleted。
     - 所有HTML表单检测。
     - 密码(外部蛮力)报名表格。
     - 数值(外部蛮力)文件名。
    否则,页面上呈现 - 用户提供的链接。
     - 不正确或失踪不太重要内容的MIME类型。
     - 在不太重要的内容通用的MIME类型。
     - 不正确或丢失字符在不太重要的内容。
     - 冲突的MIME /上不太重要的内容字符集的信息。
     - OGNL的样传递公约的参数。

随着一个确定的问题清单,skipfish还提供摘要
文件类型和发现的问题类型的概述;和一个互动地图,
通过暴力,一种独特的方式记队发现的节点。

-------------------------------------------------- ---------
3。好吧,我想试试。什么我需要知道吗?
-------------------------------------------------- ---------

首先,请不要作恶。使用skipfish只针对服务
你自己,或有权限的考验。

请记住,安全测试的所有类型可以被破坏。虽然
扫描仪的设计不进行恶意攻击,它可能会意外
干扰网站的运作。你必须接受的风险,并计划
据此。对测试运行情况下可行的,并扫描仪
准备处理的后果如果出了问题。

另外请注意,该工具是指由专业人员使用安全,并
实验性质。它可能会返回误报或错过明显的安全
问题 - 甚至当它运行xx,实在不应该是一个
指向并单击应用。不要依赖于它在面值输出。

运行该工具,对供应商提供的演示网站不是一个好办法
评价它,因为它们通常近似的漏洞非常不完善,我们
没有作出努力,以适应这些案件。

{zh1},扫描仪根本没有设计和处理与流氓
行为不端的HTTP服务器 - 并提供安全(或健全的无担保)的行为
那里。

--------------------------
4。如何运行扫描仪?
--------------------------

编译它,只需解压缩档案,并尝试进行。机会是,你会
需要安装libidn{dy}。

接下来,您需要复制的需要,从字典词典文件/对
skipfish.wl。请阅读字典/ README文件,首先要仔细作出正确
选择。这一步对以后的扫描结果的质量产生深远的影响。

一旦你选定的词典,您可以尝试:

$。/ skipfish邻output_dir

请注意,你可以提供一个以上的起始URL如果需要的话,他们都
会被抓取。

在上面的例子,skipfish将扫描整个(包括
在其他港口服务,如果与从主网页),并写了一份报告
到output_dir /内。然后,您可以查看您最喜爱的这份报告
浏览器(必须启用JavaScript)。 index.html文件是静态的,实际
结果存储为一个JSON文件,机器适合等级
如有需要,处理。

有些网站可能需要验证,对简单的HTTP凭据,您可以尝试:

$。/ skipfish -用户:其他参数传递... ...

另外,如果该站点的cookie依赖,而是在你登录
浏览器或使用简单卷曲脚本,然后提供了一个会议skipfish
曲奇:

$。/ skipfish - C名字=缬氨酸其他参数... ...

其他会话cookie可以通过同样的方式,为每一个- C选项。

网站上的某些网址可能会记录你的会议;你可以打击2本
通过使用- N选项,这会导致扫描仪拒绝企图方式:
设置或删除cookie,或- X参数,从而防止匹配的网址
被提取:

$。/ skipfish -的X /注销/ logout.aspx其他参数... ...

- x选项也是有用的加快,排除/图标/你的扫描,
/ doc /下,/手册/,和其他标准,沿着这些路线平凡的位置。在
一般而言,您可以使用- x,加口(只蜘蛛的网址匹配串)和- S
(忽略网页上的连结,其中一子出现在响应体)限制
范围扫描任何你喜欢的方式 - 包括限制只在一个特定的
协议和端口:

$。/ skipfish,我其他参数... ...

另一个有用的作用域选项是- D - 允许你指定其他主机
或域的考虑,为测试的范围。默认情况下出现的所有主机
在命令行的网址添加到列表 - 但是你可以使用- D来扩大
这些规则,例如:

$。/ skipfish三维test2.example.com - o输出,迪尔

...或者一个域通配符匹配,使用:

$。/ skipfish三维。example.com - o输出,迪尔

在某些情况下,你不想实际抓取第三方域,但您
信任域的所有者,没有必要担心跨域内容
列入从该位置。为了抑制警告,可以使用- B选项,
例如:

$。/ skipfish - B规范。谷歌- analytics.com - B规范。googleapis.com其他参数... ...

默认情况下,尽量少skipfish发送HTTP头,以减少金额
数据交换了线路,一些网站审查用户代理字符串或头
不支持的命令,拒绝客户,但是。在这种情况下,可以使用- b
即或- B ffox模仿两个流行的浏览器之一。

当涉及到自定义您的HTTP请求,您还可以使用- H选项
插入任何额外的,非标头,或- F定义自定义
主机之间和IP的映射(绕过解析器)。后者的功能
特别适用于在尚未推出的或旧的服务。

有些网站可能会太大扫描在一个合理的时间表。如果网站
功能明确,例如tarpits - ,10万用户几乎相同
作为一个社会网络的一部分配置文件 - 这些具体地点可
排除与- x或- S。在其他情况下,您可能需要采取其他
设置:三维限制抓取深度指定的子目录数目; - ç
限制每个目录儿童人数;和- r限制总数
请求发送扫描。

一个有趣的选项可供反复论证:磷。通过指定
一个介于1和100%的比例,就可以告诉抓取跟进
不到100%的各个环节,并尝试不到100%的字典
项。本 - 自然 - 限制了扫描完整性,但与大多数
时,它在其他环境平衡,非确定性的方式。它是
非常有用当您设置时间限制,但定期评估
您的基础设施。另一个相关的选项是- Q表,确定了初步
随机种子到一个指定的值的抓取工具。这可以用来准确
重现以前的扫描结果进行比较。随机性是依靠最
大量的- P模式,而且还赚了其他扫描管理的情侣
决定在其他地方。

一些特别复杂(或破损)服务可能涉及到一个很高的数字
相同或几乎相同的页面。虽然这些事件是由
默认变灰在报告中,他们仍然使用了一些屏幕产业,并采取
一段时间来处理JavaScript的水平上。在这种极端情况下,您可以使用
- Q选项制止重复节点共报告前,
报告写的。这可能会给你一个全面的了解如何减少
该网站是有组织的,但并没有对测试覆盖率的影响。

在某些快速评估,你可能也没有支付任何利息
特别注意该网站所需的功能 - 希望
探索非机密只挂钩。在这种情况下,您可以指定- p来抑制
所有HTML解析。这限制了覆盖面和带走的能力
扫描仪,以了解的HTML寻找新的关键字,但加快了试验
显着。另一个同样沉重的选择,降低风险
一个扫描氧,抑制一切形式的解析和持久的影响
提交的步骤。

默认情况下,skipfish大声抱怨的所有MIME或字符集
对可渲染的文件不匹配,以及分类,其中许多为“中等
风险“,这是因为,如果任何用户控制的内容返回,
情况可能会导致跨站点脚本在某些浏览器的攻击。论
一些设计不当和维护的网站,这可能会导致太多的噪音;
如果是这样,您可以使用- J为标记的问题,这些“低风险”,除非该扫描仪可
明确地看到自己的用户输入的是呼应结果页面回来。
这可能会错过许多微妙的攻击媒介,但。

有些网站可以处理有关SSL敏感的用户数据服务 - 和有关获取
是正确的。 Skipfish可以选择有助于搞清楚问题的混合你
内容方案 - 使用- m选项来启用此。扫描仪会抱怨
有关情况,如http://加载脚本在https:/ /页 - 但
将无视非例如图像的风险情形。

同样,某些呆板的网站可能会关心的案件是在缓存
受限制的HTTP/1.1的水平,但并没有明确HTTP/1.0的缓存指令
刊载于指定在命令电子行导致skipfish记录所有这些
案件小心。

{zh1},在涉及一些评估自足无网站广泛
用户的内容,审计人员可能会关心任何外部的电子邮件或HTTP链接
可见,即使他们没有立即安全的影响。使用- U选项有
这些记录。

字典管理是一个特殊的话题, - 如上所述 - 是覆盖
更详细的字典/自述十一届。请阅读该文件之前
此案。有关的一些选择包括:W到指定自定义
词表,- l来抑制自动学习,- V来抑制字典更新,接枝
限制关键字猜测罐大小,- R的下降旧字典项,并,辎
抑制美元的较高的关键字。$扩展起毛。

Skipfish还具有形式自动完成机制,以{zd0}限度地
扫描范围。该值应非恶意的,因为他们并不意味着
实施安全检查 - 而是让过去输入验证逻辑。您
可以定义额外的规则,或重写的,现有的T选项(- T的
form_field_name = field_value,例如: - T的登录= test123 - T的密码= test321 -
虽然注意到- C和- A是一个更好的测井方法)。

也有少数的性能相关的选项。使用- g设置
{zd0}连接数保持在全球,所有的目标(这是
明智的做法保持在50多本,以免大量的TCP / IP堆栈
您的系统或附近的NAT /防火墙设备)和米设置每个IP
限制(实验一下:2-4期通常是本地主机,本地优秀4-8
网络外部的目标,30真的落后或非+ 10-20,保持活动
主机)。您还可以使用- w来设置的I / O超时(即skipfish将等待
不仅如此为个人读或写长),而- t设置总的要求
超时,占很慢或真快网站。

{zh1},- f控制连续HTTP错误你的{zd0}数量
愿意看到前中止扫描和- s设置{zd0}长度
响应获取和解析(较长的反应将被截断)。

--------------------------------
5。但严重的是,如何运行呢?
--------------------------------

一个标准,认证扫描精心设计和独立的网站
(警告对所有的外部链接,电子邮件,混合内容,和缓存头
问题):

$。/ skipfish蒙福尔- C“类AuthCookie =值”的X / logout.aspx邻output_dir \

五连接抓取,但没有蛮力,假装MSIE关怀
错配少讲模棱两可MIME或字符集:

$。/ skipfish米5 LVJ钨/开发/空邻output_dir - b,即

蛮力(没有HTML链接提取),在example.com信任链接
和时间5秒后:

$。/ skipfish - B规范。example.com氧邻output_dir - T的5

对于所有命令名单行选项,请尝试。/ skipfish - H标准。

-------------------------------------------------- -
6。如何解释和解决这些问题的报道吗?
-------------------------------------------------- -

对大部分问题都应该报告skipfish言自明的,假设你
有良好的喘息的网络安全基础知识。如果您需要一个快速
重温了更为复杂的题目,例如MIME的嗅探,一些你
可享受作为一个起点,我们全面的浏览器安全手册:

如果您仍需要帮助,有几个组织提出一个
相当大的努力,把记录和解释许多共同的网页
安全威胁,并就如何解决这些问题的市民。我鼓励
你指的是OWASP的出版和网络应用安全的材料
财团,除其他:

*
*
*

虽然我很高兴来诊断与扫描仪本身的问题很遗憾我
不能提供任何第三方网站内wokings援助
申请。

---------------------------------------
7。已知限制/功能心愿
---------------------------------------

下面是功能列表目前skipfish失踪。如果你想
通过促进这些领域中一个代码的工具,请让我知道:

*缓冲区溢出检查:经过仔细考虑,我怀疑有
    没有可靠的办法为远程缓冲区溢出测试。就像实际
    故障条件下,我们正在寻找,适当的缓冲区大小检查,也可
    结果在未捕获的异常,500信息,等我会愿意证明
    错了,虽然。

*xx成熟的JavaScript跨站脚本检测:一些初步的检查
    目前在代码中,但没有适当的脚本引擎评价
    表达式和内置的DOM访问

*可变长度编码字符消费/注塑缺陷:这些
    问题似乎就在很大程度上解决浏览器的水平这一点,
    低得多,他们在撰写本文时优先考虑。

*安全检查和链接的第三方,插件提取为基础的内容
    (闪光,爪哇,PDF格式等)。

*密码蛮力和数字文件名强力探头。

*搜索引擎集成(虚拟主机,开始路径)。

* ViewState的解码。

* NTLM和摘要式身份验证。

*代理支持:有点不兼容的性能控制功能
    目前受雇于skipfish,但长远而言,应作为
    {zh1}的救命稻草。

*扫描恢复选项。

*独立安装(请安装)的支持。

*配置文件支持。

-------------------------------------
8。 Oy公司!出了可怕的错误!
-------------------------------------

没有网络抓取很好,不会出现网络架构之一
天放火。如果你遇到什么似乎不良行为(例如,
永远的扫描,并生成需要太多的要求,xx虚假的节点
在扫描输出,或直接崩溃),请首先查看网页:

如果你不能找到一个令人满意的答案,重新编译扫描仪:

$使清洁调试

...并重新运行这样说:

$。/ skipfish [... ...以前选项] 2“logfile.txt的

然后,您可以检查logfile.txt的想法得到了什么差错,如果它看起来
像扫描仪问题,请从日志擦洗任何敏感信息
文件并将其发送给作者。

如果扫描坠毁,请重新编译它如上所述,然后键入:

$的ulimit - ç无限
$。/ skipfish [... ...以前选项] 2“logfile.txt的
$ gdb的 - 批前回来。/ skipfish核心

...并确保发送提交的{zh1}一个命令的输出也。

-----------------------
9。信贷和反馈
-----------------------

Skipfish作出的贡献可能的感谢,并宝贵的反馈意见
由,谷歌的信息安全工程团队。

如果您有任何错误报告,问题,建议,或关切
申请时,提交人可以达到。



郑重声明:资讯 【什么是skipfish_『信息安全』杂谈。低调讨论不是技术的技术,屠龙之术 ...】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——