Skip to content

Latest commit

 

History

History
335 lines (185 loc) · 42.5 KB

File metadata and controls

335 lines (185 loc) · 42.5 KB

十二、客户教育和总结

如果你已经做到了,谢谢你!你已经做到了�� 您已经和我一起学习了如何处理 web 渗透测试,以提高客户安全态势所需的重点和细节来处理它。Web 渗透测试是一种野兽,值得专门化和掌握。正如我们在本书中所看到的,有各种各样令人困惑的漏洞类型,而且它们易于利用这一事实使它们非常容易利用。企业在整个企业中都有重要的关注点,但在某种程度上,它们的 web 应用必然是最脆弱的方面。他们如何才能最好地保护那些让他们无法控制的用户参与最多的工具?

许多 web 应用开发人员及其雇主都购买了提供安全操作的工具。良好的意图往往会遇到现实世界压力和约束的严酷现实,而工具一经购买,其正确的操作、维护和保养就会半途而废。业务速度——业务适应和交付新功能的速度�� 迫使 IT 组织和应用团队快速行动;在安全实践不充分的情况下,常常会出现错误的选择:安全还是高效。企业不可避免地选择后者,因为这是支付账单的方式。安全成为错误权衡的受害者。在我们能够说服团队加入安全性,而不是将其栓上之前,我们将继续以惊人的速度阅读有关失败的文章。

有些人愤世嫉俗地认为,这正是我们继续经营的原因。如果用户和他们的雇主从不点击可疑链接,总是修补和维护他们的系统,只与经过验证的合作伙伴、客户和供应商开展有效的业务,我们将看到更少的行动。我们都知道这是白日梦。互联网是很多东西,但整洁、有序和安全并不是其中的一部分。作为渗透测试人员,我们特别适合帮助推动更全面的安全战略。我们既可以确定当前状态,又可以为更安全的目的提供建议和指导。做这件事并不容易�� 它迫使我们参与许多我们都可能宁愿忘记的技能,但口头和书面沟通技能是产生影响的结果和建议的关键。

最终报告当然是我们大多数人关注的内容,但向客户提供的可预测且信息丰富的状态报告决定了流程的成败。我将尽我所能为您提供一些资源,帮助您制定最佳实践和撰写报告。我们将讨论如何使用状态报告和可交付成果来讲述正确的故事并帮助客户找到安宁。我们还将介绍一些其他方面,例如提供建议、传递坏消息,甚至是何时重复这些评估或如何推动笔试计划以实现勤奋、持续改进。在本章中,我们将介绍以下主题:

  • 权衡验证配置的方法,并在不考虑业务需求的情况下保持其相关性。
  • 提供有关如何审核代码版本和配置运行状况的指导。
  • 讨论分段、基于角色的访问控制和更改管理。
  • 讨论任何良好的 web 渗透测试的演示和后续步骤。我们还将讨论与 Kali Linux 有关的竞争格局和补充工具
  • 将一些有竞争力的产品与 Kali Linux 进行比较,这实际上可能有助于评估 web 应用的安全性。

结束


世界上所有最好的作品都不会对客户有任何意义,除非它被转化为全面、可操作和有洞察力的指导。许多技术职业由于无法沟通工作而过早结束或发育不良。除了许可和意图,我们与黑帽黑客的另一个区别是我们与客户的沟通。我们必须成为老师和教练�� 对于我们的许多客户来说,这将是一个可怕和痛苦的过程,但我们需要提供他们可以用来改进的指导。

清理呢?嗯,web 应用笔测试(在大多数情况下)没有对环境的永久性更改。在我们使用的大多数漏洞利用中,浏览器的简单缓存擦除或 web 前端上字段的清除将使应用返回其正常操作状态。

每个家长每周至少对孩子说几次“不是你说什么而是你怎么说”这句话。孩子们需要调整自己的直觉以适应人群,而父母是调音师。同样,我们必须了解我们的受众。大部分内容和详细程度不仅取决于工作说明书SOW中概述的范围),还取决于客户自己团队的能力。高谈阔论会疏远和冒犯他们的员工,并使你进行后续测试或重复业务的机会微乎其微。一些客户也会很有防御性或不值得信任,我们必须记住,他们自己的职业生涯可能取决于这些发现。正是出于这些原因,我们希望确保最终报告中的任何内容都不会令人惊讶。我们希望我们的客户和利益相关者对调查结果做好充分准备,并准备毫无畏惧地接受建设性的批评。我们可以通过在整个过程中以几种不同的方式传递好消息和坏消息来做到这一点。

最好建议 Pen 测试人员提供一种经过测量且头脑冷静的方法。有些人可能会在不存在问题的地方发现问题,以增加价值。其他人可能会试图提高紧迫感,向顾客灌输恐惧,让自己显得不可理喻。我鼓励您关注实际问题,表现出冷静和一贯的态度,并在向目标客户报告时,努力实现质量与数量的对比。最后,这种有测量力的、有意义的互动将帮助客户,同时也会给你的能力注入信心和获得信任。

不断接触,避免意外

我们应该与客户一起计划和承诺的第一件事是状态报告和标记会议的节奏。即使是在黑盒测试中,我们通常也可以提供进度报告,其中包含一组先进的发现,以帮助他们了解我们的进度。这可以根据 SOW 中包含的里程碑,根据目标环境对计划的任何轮次或调整来表示。无论怎样做,报告都应该包括重要的结果或印象,包括好的和坏的。特别是在黑盒测试中,整个利益相关者社区(我们和他们)都应该为一些可变性做好准备,因为测试的每个前阶段通常会决定下一阶段的范围。

一般来说,你应该考虑计划和非计划的沟通,理想的是,工艺模板和建立渠道来传递每一个。就像医生的后续电话一样,我们希望客户知道,您和您的团队将在设定的时间接触,并披露任何有价值的发现,包括对目标环境的关键和补充。一旦他们知道会发生什么,这将有助于为他们揭开流程的神秘面纱,并鼓励他们参与和审查。

组织内运行的白盒测试可能没有相同的明确定义的合同文档,但这并不意味着通信应该中断。即使是在整个软件开发生命周期SDLC)中对应用执行的内部测试也可能会发现关键漏洞、主动攻击或破坏以及不当行为。管理层为内部测试人员提供一个可信和客观的过程来提出这些问题,这一点至关重要。培养这一渠道可以保持一种开放的文化,并产生一个更安全、更健壮的应用。

建立定期更新

定期更新对于帮助我们与客户建立融洽关系和形成积极、建设性的叙述至关重要。我们的重点应该是帮助他们保护他们的 web 应用,等到流程结束时,可能会让客户的利益相关者处于守势。我们需要接受他们将在最终报告中看到的内容,期待它立即提供指导和价值。如果领导层已经准备好了定期报告,将其纳入主要调查结果,他们将有时间克服可能具有的防御性本能,并期待着下一步的报告。这些报告不需要非常详细,而是应该突出关键发现、SOW 的状态、总结我们为关键发现生成的任何特别报告,并提供前瞻性。该过程的大致概述可能包括以下部分:

  • 突出的调查结果
  • 测试的状态更新/进度
  • 表扬(客户做对了什么)
  • 建议(让他们了解问题)
  • 计划和预算状态
  • 前进的道路/期待什么

您自己的团队的模板会有所不同,甚至可能会根据客户的需求进行定制,但以易于理解的形式向他们展示这些信息有助于他们看到测试的价值,开始规划补救措施,并有助于避免任何意外�� 最终审查和汇报中的所有内容都应该是审查。

白盒测试报告通常会包括在正式的可交付成果中,就像任何其他验证和确认测试工件一样。如果这些可交付成果不是既定的标准,则应创建一个标准,以确保测试原则的一致应用。在所有形式的 pen 测试和报告中,一致性对于帮助培训赞助组织及其开发人员如何对结果进行优先排序和响应至关重要。

什么时候按下红色大按钮

即使定期向客户报告,有时发现或结果也需要立即披露,并在获得批准前停止工作。应立即披露可能导致数据外泄、发现主动攻击甚至人力资源相关事件(发现内奸、内部威胁、不适当内容等)的关键缺陷。在制定接洽规则的过程中,您或客户可以根据目标环境的重要性或角色添加附加条件,这也会立即发出通知。

保密协议保密协议)要求您对测试完全保密,但正是这些关键的实时通知要求您尽最大努力。引发披露和测试停止的问题通常非常关键,保密性是最重要的。虽然可以通过电子邮件和安全文件共享提供计划中的通信,但根据客户的业务,可能需要与他们建立更安全的流程。我建议在最终批准之前建立这一程序,以帮助各方安全地传递此类新闻,无论是通过当面会议、加密电子邮件或消息传递,还是保税快递。

责任是我们的下一个考虑。及时、完整地向担保客户披露信息非常重要,因为这些信息往往会对其业务、员工或客户造成威胁或损害。在可怕的情况下,您的客户可能也在寻找理由来表达他们的恐惧或让其他人承担责任。立即、完整和深思熟虑的披露确保我们不承担法律责任。他们可能会大发雷霆,但冷静和始终如一的举止有助于缓和这些局面。我们需要清楚地传达事实和陈述意见之间的差异,在这些情况下,我们需要更多地关注已知的东西,而不是我们自己的观点。一旦客户冷却或吸收了信息,他们可以提示我们进行解释和专家意见。

用行动计划编织乐观情绪

编写用于评估 web 应用的顶点渗透测试报告是这项工作最重要的阶段。你可能会想,*但是迈克,你刚刚告诉我们应该没有惊喜,还能剩下什么?*虽然你在这方面是正确的,但没有重大影响的发现应该是新闻;在本报告中,您的团队的建议最终可以被捕获。这些建议是您对风险和优先事项的评估,不仅在这里受欢迎,而且是预期的。你的专业知识是你被聘为这场演出的原因,这是理所当然的�� 这一洞察将帮助他们进入更成熟、更严格的安全实践。

关于最终报告内容应该是什么样子的良好指导可以通过查看一些公开可用的 pen 测试报告库来收集。而在等网站上列出的大多数报告 https://github.com/juliocesarfort/public-pentesting-reports 并非仅针对 web 应用,本节和一般流程具有指导意义,可以帮助您准备自己团队的模板。一些特定于 web 应用的测试报告是由动态应用安全测试DAST)供应商Veracodewww.Veracode.com(见以下截图)和CST等咨询公司提供的自动化测试报告 http://www.cstl.com/CST/Penetration-Test/CST-Web-Application-Testing-Report.pdf

web 应用笔测试报告示例

报告中的部分可能是来自扫描仪的自动输出的捆绑,例如ArachniBurp SuiteOWASP ZAP;或者,它们可能是来自多个测试人员及其协作的输出的合并。ApacheOpenOffice 和 MicrosoftOffice 等工具仍然是将输入整合在一起的标准

典型的轮廓可能如下所示:

  • 封面

  • 执行摘要

  • 目录

  • 简介

    • 测试背景
    • 方法学
    • 测试团队
  • 亮点、评分和风险总结

    • 风险登记簿
    • 指导/行动计划
  • 详细调查结果

  • 附录

    • 定义
    • 漏洞参考
    • 工具和资源
    • 侦察、扫描和枚举数据
    • 使用的代码
    • 链接文件

执行摘要

执行摘要应能很好地提供高水平、可量化的评估(总分和主要指标),同时为管理层提供高水平、有效的摘要,以便向所有非技术人员传达测试结果和前进方向。

导言

关于测试方法的信息可以帮助客户确定调查结果,并将加强您的团队的测试符合 SOW 和合同阶段更明确的参与规则。这是一个总结和概述任何偏差或范围扩展的机会,有助于确保他们了解实际执行的内容。

这也是讨论团队(如果适用)的好地方,并确保客户知道谁对测试和报告做出了贡献,谁受合同条款的约束。

亮点、评分和风险回顾

与常见测试框架或排名列表(如有助于指导我们工作的 OWASP Top 10)相比,我们讨论的几个工具在评估漏洞严重性方面做得相当好。其中一些工件,如下面屏幕截图中显示的样本 Arachni 报告输出,可以帮助提供漏洞的客观排名并指导进一步的测试。然而,这些排名无法提供的是目标环境的背景。例如,某些高评级风险可能会对特定目标产生有限的影响,这是由于该技术的闲置使用或该技术仅部署在低权限功能或子门户中。虽然这些现成的工件可能很吸引人,但是应该做更多的工作来确保客户理解它们对他们的环境的重要性。

示例 Arachni 输出–0�� 良好开端

更多关于风险的信息

介绍风险和风险管理本身就是一个主题。我在美国国防部发展计划中以及在我们向负责系统工程的副助理国防部长办公室《国防采办计划的风险、问题和机遇管理指南》(中规定的项目中,帮助实施了风险管理工作 http://bbp.dau.mil/docs/RIO-Guide-Jun2015.pdf 。这远远不是唯一可以接受的方法�� 现有的方法很多,您可以研究一种类似于典型客户共识所使用的 RM 方法。国防部使用的一般流程如以下截图所示,以及我们作为内部或外部测试人员有机会影响的部分周期:

美国国防部风险管理流程

如果说有什么区别的话,我知道风险管理值得许多大学现在给予它的关注。在管理风险(以及相关的问题或机遇)时,对潜在影响和可能性的每个等级都有一个明确的定义是有益的。尽管如此,IT 和应用中的大多数风险方法都特别关注两个主要标准:

  • 潜在影响:一些组织会根据损害、缓解成本、受影响成本的百分比或其他可量化影响来衡量这一点。这是大多数没有 RM 经验的人关注的问题。这是发生事件时的痛苦,比如:被闪电击中可能非常有害,通常是致命的�� 哎哟
  • 发生概率:许多人忽视了疼痛,没有适当的关注和意识过程,实际感受到疼痛的概率就是疼痛发生的概率。这可以用其他事件的百分比或频率(每次发生的机会)来衡量(每个x连接、每个帐户,等等)。

了解客户眼中的 RM 不仅仅是表示关心的好方法,而且对于理解如何构建报告框架至关重要。如果你能用他们理解的语言和语境来帮助他们陈述研究结果,他们将更有可能提出建设性的批评,并认为这些意见是有帮助的。

指导——挣钱养家

当我们攻击一个目标并在一个特别具有挑战性的环境中旋转时,专业的渗透测试可能会更有趣,但我们不会因此而获得报酬。我们得到的报酬是提供指导和可采取行动的情报。客户之所以雇佣我们,是因为他们或迫使他们雇佣我们的人意识到,如果没有独立的验证,他们不可能指望安全。我们提供的指导应该是实事求是的,最好是总结印象,然后制定行动计划。一些客户可能会决定如何呈现,但如果没有,你将需要考虑如何最好地呈现这些发现。

针对具有大量漏洞的新客户进行更全面的测试可能会受益于一个分时间段的行动计划,该计划建议按照最大需求处理应用的各个领域。在这些情况下,让他们参考补救方案和预期的工作水平是有帮助的。客户会有很大的不同,但一般来说,您会希望避免推荐与人员配备相关的问题,除非这些问题被视为具有建设性或有助于证明员工准备得更好。但是,有些客户可能会要求员工参与评估,因此您的里程数可能会有所不同。

较轻的或定期的测试可能只是呈现从最高感知严重性到最低感知严重性的结果,而不考虑它们之间的相互依赖性。如果这是之前测试的后续测试,或者结果将被考虑到另一个计划工作中,这可能更容易被接受。白盒测试结果通常会直接与更大的验证和确认方法或文件匹配,因此,只有当 pen 测试所针对的总体规范要求修改或清晰时,才有可能在这种情况下提供指导。

详细调查结果

根据报告的范围,本节可能存在,也可能不存在,但对于黑匣子或红队测试几乎是给定的。您需要确保解释选择的向量、收集的结果以及与给定评分的相关性。对于希望重复测试和验证补救措施的客户,可能需要截图和代码片段,因此您需要确保捕获大量日志、截图,并对任何脚本和配置进行编目。为此,有一些工具可以提供帮助,并直接构建到 Kali 的发行版形象中,或者只需很少的努力就可以让您启动并运行。

沿着 Evernote 或附带的 Keepnote 的思路开发一个好的 Notes 应用将大大有助于您记录其他工具遗漏的任何内容。我发现这些工具的选择和它们所支持的工作流程与部署它们的人一样千差万别,所以我不打算判断您是否决定做其他事情。最终重要的是,报告可以以客户可以使用的格式以电子方式打印和交付。出于这些原因,大多数测试人员仍然会发现 ApacheOpenOffice(https://www.openoffice.org/download/other.html )对于 Kali,或 Mac 或 Windows PC 上的 Microsoft Office 套件最适合组装最终报告,而且,可以使用 Adobe 或用户最喜欢的 office 套件完成 PDF 打印。

Dradis 框架

协作和文档工具,如基于 Ruby 的Dradis****框架显示在以下屏幕截图(中 https://dradisframework.com/ce/ )。Dradis 可以极大地帮助我们将测试中使用的所有工具集结合在一起,并提供类似 Evernote 的文档界面。使用这样的工具可以使我们保持组织性,这既可以确保全面报道,又有助于编制专业报告。

Community Edition 免费使用,功能强大,但 professional Edition(在撰写本文时定价为 79 美元/月)包含一些奇妙的功能,可帮助一次管理多个项目,利用模板和自动工具导入以及技术支持(这里可以看到免费版和高级版的比较:https://dradisframework.com/pro/editions.html 。Dradis 在此提供 OSCP、OWASP、PTE 和 HIPAA 的模板、方法和示例报告,其中一些功能仅在 Pro 版本中可用: https://dradisframework.com/academy/industry/compliance/

带有 OWASP 模板的 Dradis 框架

Dradis 是一个极好的替代品,但远不是唯一可用的工具,即使在 Kali 内部也是如此!

MagicTree

与 Dradis 相同的是一个名为MagicTree的 Java 应用 http://www.gremwell.com/magictreedoc )来自格雷姆威尔。MagicTree 实际上是一个很好的工具,用于集中交付您在前几章中从中央数据采集应用了解到的许多测试。作为一种工具,MagicTree 有很多很棒的特性,但我发现当传递通常在外部运行的命令时,它可能有点挑剔。它还需要导出以查看生成的工件的外观,因此,除非您能够直观地掌握 X-Path 变量插入和收集的原始数据的外观,否则您将需要使用试错法来确定在 MagicTree 中对您最有效的方法。与 Dradis 不同,MagicTree 不是开源的,但完全免费提供:

格雷姆威尔的 MagicTree

其他文件和组织工具

其他利基甚至手动文档方法当然也存在,我鼓励您考虑使用其中的一些方法来帮助完善您的报告和文档过程。例如,我一直喜欢与Maltego合作,我发现这对于帮助组织和展示我在报告中提供的开源智能OSIT)是必不可少的。Maltego 案例文件是展示融合 OSIT 和社会工程结果的绝佳方式,甚至提供了捕获可能密码和类似密码的字段。在下面的屏幕截图中,我们可以看到我突出显示了公司内的一个人,并看到他们如何与其他实体(地点、主机、其他人等)相互关联。就像一部犯罪电影的纱线图显示黑手党士兵如何向老板报告一样,这可以帮助我们的客户快速想象黑客可以多么容易和准确地绘制组织地图。

Maltego Casefile 组织 SET 和 OSINT 输出。

用于报告的图形

很可能您将使用 Kali 作为虚拟机,但如果您有机会进行裸体安装,您可能需要查看屏幕截图工具,以帮助您收集笔测试中征服的视觉证据。

Kali Linux 内置的选项有限,包括recordmydesktopcutycapt。我更喜欢像截图快门这样的工具。屏幕截图或类似的工具,如Scrot是非常基本的,但 Shutter 为您提供了一些选项和更高级的管理界面。如果我需要使用我利用的图片,GIMP(https://www.gimp.org)是一个功能齐全的编辑器,可安装大多数平台,包括 Kali。同样,这是你自己的背景和风格发挥作用的地方,所以一定要制定你自己的路线!

请记住,这些技能在打造流氓蜜罐和水冷器攻击时也会有回报,允许您伪造真实但恶意的门户,帮助您危害目标用户并进一步进行测试�� 谈论双重用途!

带来最佳实践


参与网络安全,特别是攻击性网络安全,其中一个最好的部分是我们从培训和过去的工作中获得经验和诀窍。所有的血、汗和眼泪都不是白的;这些伤疤其实会派上用场的。我们测试的赞助商处境艰难。在目标环境中工作时,他们通常不会看到跨垂直、体系结构类型和规模的环境。在许多情况下,他们的员工不会接受当前的应用安全培训,以帮助他们跟上趋势和即将到来的威胁。

因此,现在,有趣的是,我们需要保持我们的认证,不断更新我们的知识库,并找到方法从早期的合作中吸取经验教训。通过 SAN、ISSA、OWASP 和其他方式召开的会议非常值得参加�� 大多数公司提供培训并接触许多新工具和技术。保持在线状态应该不言而喻:Twitter、LinkedIn 和大量博客可能是英特尔零日漏洞的重要来源,也是让我们的客户感到恐惧并证明我们存在的最紧迫的消息。

那么,我们如何提供他们寻求的帮助呢?我们在哪里插入让我们受聘的经历?让我们来看看如何让我们的报告和简介更有用的一些想法。

安全烘烤

一般来说,应用团队和 IT 组织都面临着一个不可能的权衡:安全还是高效。其中很多都源于过去的好日子,在开发和部署一个体系结构或应用很久之后,安全性就被栓接到了这个体系结构或应用上。随着应用变得越来越复杂,其重要性急剧上升,插接式安全方法不再能够解决这一问题。当应用不知道安全性,并且安全解决方案只是简单地分层时,这种断开连接会妨碍可见性,并迫使某人在进行调整之前手动识别问题。如以下截图所示(来源于https://blogs.msdn.microsoft.com/usisvde/2012/03/09/windows-azure-security-best-practices-part-3-identifying-your-security-frame/ ,即使是一个简单的 web 应用也有太多的强制执行点,无法将应用的安全性烘焙到体系结构中。本图中未显示的是同时需要在每个步骤中实际感知和关联事件,并将这些事件与从体系结构中的其他组件收集到的 intel 结合起来,以确定何时发生攻击。

微软表示,应用的实施要点

不同的框架和托管模式将具有不同的需求和优势,但客户应该了解需要在满足业务需求的同时制定哪些额外的措施来解决覆盖范围中的任何差距。根据您与客户的关系,可能有必要促使他们了解这一点,或者在他们的理解范围内帮助他们客观地看待自己的应用。

对 SDLC 进行珩磨

白盒测试可以而且应该在整个软件开发生命周期SDLC)中进行,在需求或设计阶段早期发现的问题可以比 SDLC 后期更便宜、更迅速地得到纠正,在某些程序中,修复成本可能会增加 100 倍。与前面讨论的 RM 流程紧密结合,OWASP(支持并记录了以下屏幕截图中的安全 SDLChttps://www.owasp.org/index.php/Secure_SDLC_Cheat_Sheet 且应为标准实践:)

来自 OWASP 的安全 SDLC

显然,这对我来说不仅仅是一份书面的政策;它要求专注于安全性的开发人员,或者更好的是渗透测试人员,在整个过程中都有工作人员提供帮助。安全 SDLC 可以列出白盒测试覆盖范围的范围,还应包括任何外部灰盒或黑盒测试,以确保应用的安全性。

最成熟的过程甚至可以包括连续测试,并且在集成到更大的开发环境中时始终在仪表盘上。我们还应该记住,我们作为潜在的外部顾问使用的工具可能不同于他们的开发团队或内部渗透测试人员使用的工具,这几乎总是一件好事。

一些公司,如 Veracode(http://www.veracode.com 提供关于他们如何在产品工作流程中最好地进行测试的详细信息。在下面的屏幕截图中所示的高级方法中,您可以看到他们试图对培训的所有不同方面——人员、开发阶段、角色、应用的组件等——进行争论。虽然这些模板确实提供了一些价值,特别是在您实践的早期,但它们绝不是详尽和强制性的;您可以制定和修改自己的内部流程,您的客户很可能也这样做,让我们保持警惕。这里的关键是使客户的流程与他们正在部署的工具相匹配。他们会发现,当按照开发人员的意图操作时,他们的工具集的效率要高得多。

Veracode 自己的测试生命周期

角色扮演-为团队提供支持

在参与客户环境测试和教育过程的同时,您还有机会指导和分享见解。开发、维护和操作应用的员工通常没有接受承担此类负担所需的培训。角色也可能是模糊的,我经常遇到这样的客户,他们尽管在一个环境中经营了多年,但仍然没有明确的权责分离。最后一点是我所遇到的系统效率低下和安全漏洞的最大指标。出于这些原因,您必须了解目前存在的层次结构,并在确定需要客户注意的其他领域或规程时帮助客户填补这些空白。

他们自己对事件的反应有助于理解。我从RACI 矩阵负责负责咨询告知-中获得了很多里程数 http://racichart.org 帮助客户了解某个事件或流程可能在何处崩溃。我们最关心的是对我们的发现进行补救,但我们可以将此技术部署到任何 IT 流程中,以帮助他们了解一般流程和角色。在下面的屏幕截图中,我们看到了一个事件响应流程,但业务连续性、灾难恢复、漏洞修复和许多其他方面都可以通过这种快速而肮脏的练习来表达:

红外光谱的 RACI 矩阵样本

还需要角色来确保在环境中定义和实施适当的管理、审核和用户访问。通过认真的基于角色的访问控制RBAC)和职责划分,可以缓解您将要揭示的许多发现,以确保环境受益于最低特权的概念。如果客户的环境尚未实现 RBAC,则在您的建议中应始终将其作为最佳实践提供。

挑选赢家

我们的每一项建议都需要引导我们避免模棱两可,否则我们根本不应该提出。这些建议可以来自我们的经验,但我们应该尽可能利用软件组件创建者、权威机构的建议以及提供同行评审指导的安全分析师提供的任何其他经验证的情报来支持这些建议。大量的安全研究团队可能令人困惑,但最受尊敬的团队拥有世界范围的广度和众所周知的业绩记录,有助于引导行业走向更好的政策和架构。下面列出了一些在违规期间监控和检查的最佳站点:

在向客户提供解决问题的选项时,我们应尽可能做到明确无误。尤其是架构的变化需要清晰简洁的理由和行动计划。您可能会发现,您的客户寻求的是更少的推荐和更多的知名度;你应该事先澄清你想要的回答。我还建议与团队其他成员一起对您的报告进行内部同行评审(如果适用),因为对最终产品的关注越多,最终结果越好。

计划和方案

我们的客户都将从一个所有人都能理解的标准流程中受益匪浅,该流程不仅可以帮助他们测试和检测漏洞,还可以让他们对响应进行优先级排序、处理和记录。较小的应用组将无法将资源专用于这项特定的工作,因此,在许多方面,他们需要寻找将几个必要但需要资源的过程合并到单个程序中的方法。OWASP 通过其名为压缩、轻量级应用安全流程CLASP的程序解决了这一问题 https://www.owasp.org/index.php/CLASP_Concepts )。OWASP 将其设想为一组活动驱动、基于角色的过程组件,其核心包含以结构化、可重复和可测量的方式将安全性构建到现有或新的启动软件开发生命周期中的形式化最佳实践

如下面的屏幕截图所示,该流程围绕着对公司 SDLC 各个方面的更深入的观点进行构建,并在其工作时集成风险管理、变更管理、资源规划和角色分配。

OWASP 的 CLASP 漏洞管理框架

OWASP 最近将重点放在一般指南的开发上,而不是规定性程序的开发上,注意到更详细、更严格的程序可能更难采用,并且忽略了已经安装好的流程。CISO 的应用安全指南https://www.owasp.org/index.php/Application_Security_Guide_For_CISOs )是这些努力的结晶,它为更安全的业务提供了跨人员、流程和技术的指导。除了这些指导方针之外,软件工程研究所的能力成熟度模型SEI CMM)http://cmmiinstitute.com构建到期安全模型BSIMMhttps://www.bsimm.com开放式软件保证成熟度模型SAMMhttp://www.opensamm.org )都与新指南兼容,使 CISO 及其应用、网络和安全团队可以自由实施这些最佳实践,并在他们认为合适时吸收这些想法。

更多关于变更管理的信息

变革管理CM)是 IT 中任何人都喜欢讨厌的流程之一,但它起着关键作用。CM 提供了一种结构,对操作或生产环境的所有更改都必须在其中进行。有了这个过程,所有利益相关者理论上都知道变化,并能够适当地进行权衡。我们都曾经历过这样的情况:这个过程要么过于宽松(而且遗漏了一些东西),要么过于僵化(人们试图避免它,要么进展停滞)。我认为我们都同意需要 CM,漏洞补救和违约响应也不例外。话虽如此,我们需要确保构型管理流程足够灵活,以便以安全的名义采取果断行动,同时确保所有受影响方都接受。

自动化和适应

主动安全策略是我们应该鼓励的,但还没有吸引到足够多的客户。对于较小的客户群体来说,这是一个问题。投资于自动化工具集和漏洞修复的组织比游戏领先一步,许多商业供应商提供的解决方案集可以自动集成到应用环境中,并通过智能提要提供持续分析。

开源工具在这方面也有帮助,但自动化工具的实际部署方式有几种:

  • 静态应用安全测试SAST)通常侧重于 SDLC 的早期阶段,并将重点放在代码和模块的使用上,更像是一种白盒测试工具。源代码分析是最流行的 SAST 方法,因为它与代码本身紧密相连,所以这些工具通常集成在开发环境中,有时由同一软件供应商提供。这些工具实际上是根据已知的漏洞和最佳实践检查代码,并标记有问题的代码片段。同样,IBM、HPE 和 Veracode 等重量级公司有助于尽早发现问题,这使得修复问题的成本更低、速度更快。在上可以找到一个很好的列表 https://www.owasp.org/index.php/Source_Code_Analysis_Tools
  • 动态应用安全测试DAST)主要关注 SDLC 的后期部分,在 SDLC 的后期部分有一个近乎代表性的应用,可以像我们使用 Arachni 进行黑盒测试一样进行探测和评估。这些工具与我们基于 Kali 的套件中的大部分工具非常相似,它们在应用的边缘工作,以扫描、枚举和操纵请求和响应来诊断问题。正因为如此,这些工具没有潜力捕捉到 SAST 那么多,但它们更好地模仿外部威胁。我们已经使用了其中的一些;Tenable 和 Rapid7 似乎是这里的市场领导者,但在中列出了一些额外的选项 https://www.owasp.org/index.php/Category:Vulnerability_Scanning_Tools
  • 交互式应用安全测试IAST是一个相对较新的领域,它使用应用本身中的代理来帮助识别实时使用中的漏洞。该工具传感代理的独特定位使其能够在一个套件中解决 SAST 和 DAST 的大部分工作。DAST 和 SAST 在使用时通常一起使用,以确保两种缺陷谱都被揭穿,而 IAST 已经完成了这项工作。许多已建立的 SAST/DAST 供应商正在进入这一市场,或快速迁移其解决方案以提供此类功能,同时试图将运行这些代理所隐含的性能影响降至最低。
  • 移动应用安全测试MAST类似于移动设备的 IAST,代理分布在部分或全部移动客户端之间,帮助提供遥测。
  • 运行时应用安全保护RASP)与 IAST 也很相似,只是代理实际上充当实时分布式实施点,帮助实时修复或修补被破坏的系统。这项技术是非常新的,陪审团仍然不确定它们是否总体上是一件好事,或者它们是否会造成错误的安全感。HPE、Whitehat Security、Veracode 和 IBM 等坚定的公司在这方面都有产品,但 Immunio 和 Contrast 等新公司也在这方面掀起了热潮。

我们的测试不应该认为这些工具是理所当然的,而应该补充它们,并在两个工具集都正确实现时验证它们的有效性。其中一些供应商甚至将业务扩展到环境中其他元素的自动化,像 Imperva 这样的公司现在吹嘘他们的Web 应用过滤WAF)产品与漏洞扫描器实时工作,以阻止跟踪中的威胁。

评估竞争对手


我们讨论的许多 DAST 工具都是可用的,并且可以挑战我们在 Kali(Arachni、Nikto、Burp、ZAP 等)中使用的工具,以便在我们首选的笔测试工具包中使用。我假设读这本书的每个人都习惯于根据他们最喜欢的工作方式做出自己的选择,因此除了所有的工具选项之外,我认为在回到 Kali 之前讨论一些您可能想要评估的备用操作系统和工具套件会很有帮助�� 毕竟,看到我们有多好总是很好的。

Backbox Linux

Backbox(https://backbox.org/linux (如下面的截图所示)是一些意大利人提供的基于 Ubuntu 的笔测试和安全发行版,可能比 Kali 更容易作为一个具有安全倾向的通用桌面使用。它包含许多相同的工具,所以这实际上取决于您是喜欢 Kali 的 Debian/XFCE 外观,还是喜欢 Backbox 更精致的 Ubuntu 布局。

Backbox Linux 主屏幕

武士网测试框架

众所周知的武士 WFT(如以下截图所示,http://samurai.inguardians.com )是一款基于 CD 的 Ubuntu Linux Live 版本,您的全部精力都集中在 web 应用笔测试的四个阶段(侦察、映射、发现和利用)。backburner 上还有其他功能,它们将整个过程编织到内置的 wiki 中,其行为非常类似于 Dradis 插件。

武士 WTF 菜单

软呢帽安全自旋

在笔测试领域,Linux 的 Ubuntu/Debian 分支受到了广泛关注,这可能是因为它们是最广泛使用的桌面 Linux 发行版。这并不意味着你不能使用一些经典的红帽/软呢帽!Fedora Security Lab 是 Fedora 的一个分支(定制分支),它融合了许多我们在 Kali 中喜爱和珍惜的工具,但在基于 RPM 的世界中重新编译和管理。如果红帽、Centos 或 Fedora 是你的东西,你可以很容易地在 Fedora Security Spin 上启动和运行(https://labs.fedoraproject.org/en/security/ ,如下图所示)。

Fedora 安全自旋/实验室

其他 Linux 笔测试发行版

如果前面的选项不能满足您的需要,那么还有很多其他选项可供选择。以下是一个小列表:

Windows 和 macOS 怎么样?

嗯,这本书是关于使用 Kali 进行 web 应用笔测试的,但是如果我没有提到 Windows 和 macOS 平台都能够运行我们讨论过的许多工具,或者运行类似的东西,那我就是失职了。Burp Suite、Metasploit、Arachni 等都有到这两个平台的端口,Nmap 和 Nikto 等标准工具也是如此。简言之,如果您无法忍受运行 Linux,或者在紧要关头需要一些东西,这些操作系统就可以了。不过,不要期望在 Defcon 或 Blackhat 会议上得到很多爱——因为�� 他们往往是纯粹主义者。

总结


Web 应用渗透测试是深入、复杂且不断变化的。另一方面,它对当今部署 web 应用的所有企业(即所有企业)来说也是必不可少的,并且具有很高的价值。正是由于这些原因,我们必须准备好帮助客户解决其应用的安全问题,避免成为头版新闻。请记住,我们不仅仅是在测试平台,而且我们经常是其他应用的客户,我希望我正在使用的 web 应用能够得到严格的测试,并且这些结果能够得到适当的处理。

在本章中,我们从测试本身后退了一步,并讨论了我们如何展示调查结果,使我们的客户更接近最崇高的目标安全。我们看到,不仅我们的报告和沟通能够提供帮助,而且建立了一个明确定义*的安全计划和流程。那么,现在发生了什么?*通过做好我们的工作,我们可以帮助抵御困扰当今社会的破坏和妥协。世界上没有人能够逃脱潜在的伤害,因此,在保护问题上,我们必须有所作为。

不用说,但是你在这本书中学习的工具和技术以及你持续的实践有两种截然不同的用途。我们需要确保使用我们的技能和资源来改善客户的环境,而不是造成损害或恶意入侵。许可和意图应清晰、理解并记录在案。

我真的很喜欢和你们一起阅读这本书�� 这是一次美妙的学习经历,因为我们已经从进行一般渗透测试到现在深入研究 web 应用规程。正如我们所看到的,这是一项有价值和崇高的事业,我希望这本书能帮助你提高甚至掌握可以使用的技能。如果有什么不同的话,我希望你们都有好奇心去学习和掌握更多的东西,并且继续前进,成为你们领域的倡导者。祝黑客们快乐,祝你们好运!