基础背景
随着网络安全的不断重视,作为开发人员和 Web 应用程序管理员,也逐渐加强他们应用程序的安全保护方案以抵御各种攻击。从推出了更复杂的密码要求,到添加双因素身份验证作为默认措施,甚至开始将面向公众的服务置于高性能Web 应用程序防火墙之后。
尽管这些方案能够提高一定的安全性,但是各种漏洞仍然会存在,这意味着开发人员和管理员必须了解如何对其系统进行渗透测试,以查看是否有任何已知的漏洞利用可以穿透他们的多层安全防御。通过了解渗透测试过程的各个阶段,以避免遗漏任何安全措施。
下面是 Web 应用程序渗透测试所涉及的观察侦查、漏洞研究与攻击、漏洞报告、修复漏洞的4个主要步骤。
观察侦查
Web 应用程序渗透测试过程中的第一个重要步骤涉及采取与攻击者相同的策略:尽可能了解目标。要做的第一件事是从各种情报网站收集有关目标网络应用程序的信息。使用搜索修饰符,可以收集与应用关联的子域和页面的完整列表。这提供了黑客必须处理的潜在攻击面的相当不错的方向。
接下来要做的是使用像 Nmap 这样的网络扫描器来收集特定于Web 应用程序本身的数据。这样可以弄清楚有多少关于软件和服务器的信息对外界是可见的。借助使用 Burp Suite 等安全测试软件进行全面扫描,应该可以揭示从服务器软件版本到应用程序环境的所有内容。
漏洞研究与攻击
Web 应用程序渗透测试过程的下一个主要步骤是使用收集的数据开始缩小要尝试和利用的漏洞列表。换句话说,如果发现攻击者可以知道你正在使用特定的 Apache 和 PHP 版本,例如,应该开始在这些版本中寻找已知漏洞以尝试利用。一些优秀的开源渗透测试工具可以自动完成一些工作。可以根据要检查的漏洞类型从中进行选择。
这个想法是尝试找到每个潜在的可利用漏洞,并对发现的内容进行分类。如果可能,最好模拟使用这些漏洞的攻击,看看恶意行为者可以利用它们达到多远。
漏洞报告
该过程的下一步是创建一份报告,详细说明在前两个步骤中发现的所有内容。这个想法是创建一个中央知识库,整个开发团队都可以将其用作解决问题的路线图。这就是攻击模拟期间收集的数据将派上用场的地方。
报告应根据漏洞的严重程度对漏洞进行分类。有多种公开可用的示例渗透测试报告,可以使用它们来开发适合你需要的格式。这样,就可以更轻松地确定关闭所有安全漏洞的工作的优先级。如果正在处理一个已经运行的应用程序,这是绝对关键的一步。你发现的漏洞可能已经在黑客的手上,因此修补严重漏洞的速度越快越好。
修复漏洞
最后一步也是最关键的一步,通过查看渗透测试报告并开始解决它发现的漏洞。对于已经上线的应用程序,最好立即采取尽可能多的应急响应方案。这些方案可以更改 Web 应用程序防火墙中的站点访问规则或使应用程序中特别易受攻击的部分脱机。
继续针对渗透测试报告中的漏洞的最佳修复方案。从最严重的漏洞问题开始,只需检查每个已修复的问题,同时仔细注意修复的内容以及它们可能影响应用程序的那些其他部分。这将有助于了解下一轮渗透测试的重点,同时必须在完成修复工作后开始下一轮的渗透测试。
小结
通过重复上述过程直到没有发现漏洞,Web 应用程序开发人员和管理员可以合理地确信他们不是等待攻击的。当然,这只能解决已知的漏洞,因此该过程不会使攻击变得不可能——只是不太可能。在瞬息万变的网络安全环境中,这通常是任何人都希望得到的最好结果。只有持续保持对程序的预警和响应始终是真正安全的关键点。
结束
原文始发于微信公众号(安全架构):web应用漏洞防御和挖掘思考
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论