扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
网络扫描已经成为测试路径的一部分,用于捕捉软件开发生命周期中的其它漏洞。并且自从网络安全已经成为支付卡行业数据安全标准(Payment Card Industry Data Security Standard ,PCI DSS)等行业要求的一部分,漏洞扫描不再是毫无实用之处,现在成为一种默认的指令。
本文将讨论使用扫描工具和报告扫描结果的最佳方法,包括扫描的要素、扫描的内容,以及扫描结果的说明。
一个成功的扫描程序应当包含三个要素:定义扫描的范围和目的,选择合适的扫描工具并得出一份可读可用的报告。即使这个网址充满漏洞,你最不想要的是一份几百页无法理解的报告,没有人能读懂或领会。扫描报告的正确表述极为重要,这样开发者就可以在网址进入系统暴露在毫无防御措施的环境中之前采取 正确的行动。
网址扫描的必要性
首先,定义扫描的范围和目的。是否应该遵从政府规划或诸如外设组件互连标准(PCI)之类的行业指导,还是确定特殊问题的起因?是否应该对事件或攻击做出回应,还是作为软件开发生命周期的一部分,企业要例行公事地在生存周期内加固站点?
如果扫描是为了遵从法规,那么它的功能仅仅集中在调整要求上。比如,PCI6.5版要求测试开放网应用程序安全项目(OWASP)列出的十大漏洞。这是一个非常卓越的起始点,它几乎涵盖了网络黑客攻击的绝大部分。
但是,如果测试是公司软件开发生命周期的一个常规部分,运行主要扫描程序不失为一个好主意。理想状态下,企业的扫描要围绕IT安全策略。一些策略可能会采用用于高风险交易网址的双因素鉴定技术或OWASP没有列出但应该测试的密码策略。
切记:虽然法规遵从受到审计员和调整者的欢迎,但是安全远不止需要核对漏洞列表。
选择一个网址扫描工具
接下来,选择合适的工具。最理想的选择是这样一种工具:易于使用和启动、与网络相兼容、不会降低网络性能(配置较差的扫描工具就会降低网络性能)以及得出可用的报告。扫描工具应该同时能够模拟真正的攻击情景,而不仅仅扫描开发者自己所想象出来的攻击情景。
毕竟,当今网络黑客越来越复杂,从蛮力攻击登录界面到跨站脚本攻击(XSS),现今已经发展为异步JavaScript和XML(Ajax)攻击与Web2.0技术。
市场上一些比较好的工具有:WatchFire Corp公司的AppScan,Hewlett-Packard Co.'s SPI Dynamics group的WebInspect 7.0,Acunetix Ltd.公司的Web Vulnerability Scanner Enterprise,以及Cenzic Inc公司的Hailstorm Enterprise Application Risk Controller (ARC)。每一种工具拥有不同的优点和弱点。一些在检测JavaScript中的漏洞方面比较突出,一些在防止SQL和XSS插入攻击方面比较突出,而另一些在Ajax exploits方面比较突出。
由于大多数使用Ajax 和 Web 2.0的网址都是由多种编程语言编写而成的。如果费用在预算之中的话,使用两种扫描工具并比较其结果不失为一个好方法。除了商业扫描工具,也有一些免费的扫描工具,比如Nikto、N-Stalker Web Application Scanner和 Burp Suite。这些工具也可以和商业工具结合使用。比起颇受争议的商业工具而言,尽管没有商业产品的所有功能,但它们更为实用,而且不仅仅只有测试功能。
扫描测试应当在软件测试阶段进行,即开发之后,生产之前。这样在正式应用之前就有时间来鉴定和解决安全漏洞。测试应当在隔离的网段上进行,来阻止扫描工具“攻击”网址以外某个公司的网络。
当然,扫描工具应当在独立环境下运行——不与压力测试、性能测试或者其它测试同时运行,同时不能在高峰时段运行,可以在午夜或者是周末进行。测试者应当可以扫描到未经认可的工作站和服务器,并且通过合适的改变控制程序来记录其在IT部门的运行情况。如果一个扫描工具减慢了网速,那么至少网络团队人员会知道原因,并且不会对一个假想的攻击产生恐惧。
此外,不能单单依赖扫描工具。被发现的漏洞都应改经过首动测试。这就意味着测试者应该试图使用基于漏洞的搜索进入网址,但这个漏洞与存储在扫描工具中的版本不同。像Metasploit之类的工具箱提供了测试者可以使用的存储搜索。
当新的功能添加到网页上时,仅仅需要重新设定扫描指令。如果你正在配置一个新的带有新代码的网络应用程序,应当对其进行扫描。但是如果市场需要改变标志或网页的颜色,或是在主页中重新安排图形,则无须扫描。这些改变几乎不会将新的漏洞带入网址。
网络扫描报告所包含的内容
最后,在测试过所有网址,并发现漏洞之后,测试者需要得出一份可读的报告。扫描工具得出了报告,但是测试者应当考虑将其翻译为用户习惯的模式。当使用一种以上扫描工具时,不同的扫描工具会产生不同的报告格式;或者使用手动测试的自动扫描时,根本没有报告,因此,得出一份格式统一的单一报告的唯一方法是采用一种用户习惯的模式。
报告应当以执行指令总结开头,该总结包括,没能检测到的五个最为严重的漏洞的表格。并且应当将这些漏洞按严重等级降序排列,同时指定一个风险水平,比如高、中或低。这些等级可以为程序开发者提供行动计划,决定优先修补哪个漏洞,如果风险很低,程序开发者就可以决定先暂不处理,待下一次发布时再进行修补。
另一种实现报告具有可读性的方法是采用一系列彩色图标来代表风险等级。在高风险漏洞旁边的红色骷髅图可以引起人们的注意,即使是那些缺乏技术知识的经理也会留意到。
执行指令总结之后,应当有序地列出所有的漏洞,并附有简单介绍,可能带来的威胁,以及摘录小部分令人厌恶的编码。尽量保持所有漏洞描述在一页纸上。如果开发者需要考虑更多的数据或编码,可以在另一份报告中提供。
网络扫描程序成功的关键在于一处扫描到下一处扫描的连贯性。确保扫描范围、扫描工具和报告与你的行业和IT需求一致。改变参数带来的不连贯的后果,会使开发者忙于修补漏洞。此外,这对您的网络安全有害而无益。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。