开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第19天,点击查看活动详情
在本文中,将了解web应用程序渗透测试过程中涉及的四个主要步骤,避免遗漏安全问题。
在互联网的早期,安全只是一个事后的想法。然而,随着黑客开始利用企业对于安全措施的松懈,情况逐渐开始发生变化。起初,像Electronic Frontier Foundation这样的非营利组织开始推动网络用户接受HTTPS Everywhere。作为回应,证书颁发机构开始向任何需要SSL证书的站点管理员提供免费的SSL证书变体。因此,至少79.6%的活跃网站现在使用SSL。
这仅仅是个开始。在接下来的几年里,开发人员和 Web 应用程序管理员逐渐开始加强他们的应用程序以抵御各种攻击。他们推出了更复杂的密码要求。他们开始添加双因素身份验证作为默认措施。他们甚至开始将面向公众的服务置于高性能Web 应用程序防火墙之后。
但是,尽管有了这些进步,漏洞仍然存在,这意味着web应用程序开发人员和管理员必须了解如何渗透测试他们的系统,看看是否有任何已知的漏洞可以穿透他们的多层防御。要做到这一点,他们必须了解渗透测试过程的各个阶段,以避免遗漏任何安全漏洞。下面是web应用渗透测试涉及的四个主要步骤。
第一步:观察和侦察
web应用程序渗透测试过程的第一个重要步骤包括采取与攻击者相同的策略:尽可能地了解目标。首先要做的是从公共网站获取目标web应用程序的信息。使用搜索修饰符,可以收集到与应用程序相关的子域名和页面的完整列表。这提供了黑客必须对付的潜在攻击面的相当不错的导航。
接下来要做的是使用像 Nmap 这样的网络扫描器来收集特定于 Web 应用程序本身的数据。这是为了搞清楚有多少关于软件和服务器的信息对外界是可见的。然后,使用 Burp Suite 等安全测试软件进行全面扫描,应该可以清晰了解从服务器软件版本到应用程序环境的所有信息。
第二步:漏洞研究与攻击
web应用程序渗透测试过程的下一个主要步骤是使用收集到的数据开始缩小要尝试和利用的漏洞列表。换句话说,如果发现攻击者可以看出你正在使用特定的Apache和PHP版本,那么你应该开始在这些版本中寻找已知的漏洞并加以利用。
幸运的是,一些优秀的开源渗透测试工具可以自动完成一些工作。你可以根据要检查的漏洞类型从中进行选择。热门选项包括:
这一步骤是尝试找到每个潜在的可利用漏洞,并对你发现的内容进行分类。如果可能,最好模拟使用这些漏洞的攻击,看看攻击者可以利用它们达到什么目的。
第 3 步:目录和报告
创建一份报告,详细说明在前两个步骤中发现的所有内容。这一步骤是创建一个中央知识库,整个开发团队都可以将其用作解决问题的路线图。这就是你在攻击模拟期间收集的数据将派上用场的地方。
报告应根据漏洞的严重程度对漏洞进行分类。有多种公开可用的示例渗透测试报告,你可以使用它们来开发适合你需要的格式。这样,就可以更轻松地确定关闭所有安全漏洞的工作的优先级。如果你正在处理一个已经运行的应用程序,这是绝对关键的一步。请记住,你发现的漏洞可能已经在黑客的雷达上,因此修补严重漏洞的速度越快越好。
第 4 步:修补并重复
最后一步是查看渗透测试报告并开始解决它发现的漏洞。对于已经上线的应用程序,最好立即采取尽可能多的权宜之计。这些可能包括更改 Web 应用程序防火墙中的站点访问规则或使应用程序中特别易受攻击的部分脱机。
然后,继续决定针对报告中漏洞的最佳修复方案。从最严重的问题开始,只需检查每个已修复的问题,同时仔细注意修复的内容以及它们可能影响应用程序的哪些其他部分。这将帮助你了解下一轮测试的重点,必须在完成修复工作后开始。
结论
通过重复上述过程,直到没有发现任何漏洞,web应用程序开发人员和管理员可以合理地确保他们不是坐以待毙的攻击对象。当然,这只是针对已知的漏洞,所以这个过程不会让攻击变得不可能,只是不太可能。在每时每刻都在变化的网络安全格局中,这往往是任何人所能期望的最好结果。