在过去的几年里,我一直在从计算机安全研究中收集统计数据。 我决定分享一下。 在这里,您可以找到样品渗透测试报告 – 报告。 在与渗透测试人员的大量访谈中,我听到了这样一个问题:"这些年来,Web 应用程序的安全性是否有所提高? 在我看来- 是的, 但只有在它有点被迫自下而上的监管。 渗透测试有助于提高安全性吗? -绝对是的!
我们在谈论什么数据?
在过去的两年里,我已成功地进行了100多个渗透测试,安全审核,分析和重新测试。 这些是针对不同客户的不同应用程序。 绝大多数是网络应用程序。 当应用程序首次测试时,它几乎总是发现一个错误,将威胁归类为严重或高。 对于新手,使用此类漏洞可完全控制应用程序(通常也是服务器),或允许访问敏感数据。
易感性分类的统计数据看起来像这样:


我认为,对已经持续多年的应用程序中的这么多安全错误的检测表明,在软件开发的早期阶段,安全时间太少。 我正在考虑教育程序员,研究软件架构构建和风险建模的安全性。 如果没有这些漏洞,这些漏洞仍将在软件开发的最后阶段(因此维修成本高)或更糟,仅在这些不太合乎道德的黑客;)的生产环境中捕获。
最常见的漏洞,由于类型的
让我们看看更多的统计数据。 这一次,最常见的漏洞类型。


对于不同的颜色,我试图标记给定漏洞的典型风险分类(当然,简单地说,在实践中,这取决于许多因素)。 反过来,它看起来像这样:酒红色 – 关键,红色 – 高,橙色 – 中等,绿色低。
首先,这里可以看到,XSSy 是最常发现的最受批评的漏洞类型。 令我吃惊的是,它已经知道了大约30年。 此外,它可能是最可识别的安全错误类别。 因此,它的发生应该已经很少见了。
反过来,存在与授权相关的漏洞,这是验证用户有权执行特定操作的有效过程。 这个问题在具有丰富 API 的应用程序中尤为明显。
如果您查看最常见的错误的统计数据 – 首先是披露不应公开的信息。 请注意,应用黑客攻击的第一阶段是侦察。 任何看似微不足道的冗余信息最终都可能证明对有效攻击至关重要。
然后列出非一般错误消息。 和以前一样,他们经常会泄露太多的敏感数据,例如有关所使用的技术的数据。
排在第三位的是问题,我认为这个问题将在未来几年的统计中推进到第一位。 这是一种技术债务,与已知漏洞相关的组件的使用。 在我看来,今天的应用程序是由许多小块和依赖链组成的。 这导致它几乎每天都会出现一个小组件已经过时。 征服它的版本通常涉及重建应用程序的一部分(至少我从开发人员;)获得这样的信息),这个过程不幸消耗了大量的资源。
OWASP 前 10 名与前 12 名彭斯特
OWASP 前 10 名列表中检测到的最常见漏洞列表如下:

很难在 OWASPa 列表中映射我的"发现"1 到 1。 我们不会在这里找到"破碎身份验证"的反映。 这仅仅是因为帐户粗野大多超出了我的测试范围(在这一点上的其他错误不在我的顶部列表中)。 也徒劳地寻找指向XXE的链接。 根据我的观察,这个类的错误发生频率越来越低。 我认为这与默认情况下负责处理 XMLy 的框架不再允许使用外部实体有关。 然而,上述摘要表明,OWASP前10名名单不仅仅是一个枯燥的理论,而且体现在实践中。 因此,值得使用,以及 开放网络应用安全项目提供的所有知识。