在互联网的早期,安全是事后才想到的。然后随着黑客开始利用组织松懈的安全态势,事情逐渐开始发生变化。起初,像ElectronicFrontierFoundation这样的非营利组织开始推动网络用户在任何地方使用HTTPS。作为回应,证书颁发机构开始向任何需要SSL证书的站点管理员提供免费的SSL证书变体。因此,现在至少有79.6%的活跃网站使用SSL。这仅仅是个开始。在接下来的几年里,开发人员和Web应用程序管理员逐渐开始加强他们的应用程序以抵御各种攻击。他们推出了更复杂的密码要求。他们开始将双因素身份验证作为默认设置。他们甚至开始将面向公众的服务置于高性能Web应用程序防火墙之后。但是尽管取得了所有进展,漏洞仍然存在,这意味着Web应用程序开发人员和管理员必须学习如何在他们的系统上进行渗透测试,以查看是否有任何已知漏洞可以穿透他们的防御层。为此,他们必须了解渗透测试过程的各个阶段,以避免留下任何安全漏洞。以下是Web应用程序渗透测试中涉及的四个主要步骤。第1步:观察和侦察Web应用程序渗透测试过程中的第一个重要步骤涉及采用与攻击者相同的策略:尽可能多地了解目标。要做的第一件事是从Google等公共网站收集有关目标Web应用程序的信息。使用搜索修饰符,可以收集与应用程序相关的子域和页面的完整列表。这为黑客必须应对的潜在攻击提供了一个很好的地图。接下来要做的是使用像Nmap这样的网络扫描器来收集特定于Web应用程序本身的数据。这个想法是为了弄清楚有多少关于软件和服务器的信息对外界是可见的。然后,使用BurpSuite等安全测试软件进行全面扫描应该会揭示从服务器软件版本到应用程序环境的所有内容。第2步:漏洞研究和利用Web应用程序渗透测试过程的下一个主要步骤是使用收集的数据开始缩小可以尝试利用的漏洞列表。换句话说,如果您发现攻击者可以告诉您正在使用特定版本的Apache和PHP,您应该开始寻找这些版本中的已知漏洞,以便尝试利用它们。幸运的是,一些优秀的开源渗透测试工具可以自动完成一些工作。您可以根据要检查的漏洞类型从这些选项中进行选择。流行的选择包括:W3afMetasploitSQLMapHydraHydra这个想法是试图找到每一个潜在的可利用漏洞并对它找到的漏洞进行分类。如果可能,最好模拟使用这些漏洞的攻击,以查看恶意行为者可以在多大程度上利用它们。第3步:内容和报告该过程的下一步是创建一份报告,详细说明前两步中发现的所有内容。这个想法是创建一个中央知识库,整个开发团队都可以将其用作解决问题的路线图。这就是您在攻击模拟期间收集的数据将派上用场的地方。报告应根据漏洞的严重程度对漏洞进行分类。您可以使用各种公开可用的示例渗透测试报告来开发适合您需要的格式。这样,就可以更轻松地确定关闭所有安全漏洞的工作的优先级。如果您正在处理一个已经在运行的应用程序,那么这是一个绝对关键的步骤。请记住,您发现的错误可能已经在黑客的雷达上,因此越早修补关键错误越好。第4步:修补和重复最后一步是审查渗透测试报告并开始解决其中发现的漏洞。对于现有应用程序,最好从应用尽可能多的权宜之计开始。这些可能包括更改Web应用程序层防火墙中的站点访问规则或使应用程序中特别易受攻击的部分脱机。然后,继续为报告的漏洞确定最佳修复方案。从最严重的问题开始,简单地检查每个已修复的问题,同时仔细记录修复的内容,以及它们如何影响应用程序的其他部分。这将帮助您了解下一轮测试的重点,您必须在补救工作完成后开始。创建一个硬目标通过重复上述过程直到没有发现漏洞,Web应用程序开发人员和管理员可以合理地保证他们不是坐等攻击的鸭子。当然,这只是针对已知漏洞,所以这个过程并不能使攻击变得不可能,只是不太可能。在不断变化的网络安全环境中,这通常是人们所能期待的最好结果。请记住,就在不久之前,SSL和复杂的密码还是Web应用程序安全的最终目标,因此始终保持警惕才是真正安全的代价。
