确保渗透测试计划成功的十大秘诀(上)

为什么你要进行渗透测试?无论是借助内部团队、外部专家还是结合两者,你是单单满足监管要求或审计要求?还是希望增强企业安全?

为此,我们请教了渗透测试方面的几位专家,他们将指导你如何改进计划,以便付出的时间、金钱和努力取得最大成效。如果你求助于外部专家,他们给出的建议会让你明白对顾问应该有怎样的期望和要求。下面这10个秘诀表明你需要明白渗透测试的目的和重点,制定高效的测试策略,有效地利用你的人员,以及最有效地利用渗透测试的结果,以便补救问题、改进流程以及不断改善企业的安全状况。

第一个秘诀:确定目的

渗透测试(其实所有信息安全活动)的目的是保护企业。说白了就是,你充当攻击者的角色,查找安全漏洞,并且钻漏洞的空子,从而查明企业面临的风险,并且根据测试结果,给出相应建议,以增强安全。攻击者在试图窃取你的数据——他们采用的技术只是达到目的的手段。渗透测试也是如此:目的倒不是说你利用很酷的技术活来钻漏洞的空子,而是发现企业在哪个环节面临最大的风险。

InGuardians公司的创始人兼高级安全顾问Ed Skoudis说:“要是你无法从我公司的角度来进行表述,那你无法给我带来价值。不要告诉我你钻了某个漏洞的空子,获得了某个硬件设备的外壳程序,却不告诉我这对我公司来说意味着什么。”

如果明白了这个道理,那么从更加战术性的角度来看,渗透测试是个好方法,可以确定你的安全政策、控制措施和技术的实际效果有多好。贵公司把许多钱投入到安全产品上,给系统打补丁,以及确保端点安全等方面。作为渗透测试人员,你是在模仿攻击者,试图绕过或突破安全控制。

Core Security公司的创始人兼安全咨询服务主管Alberto Solino说:“你是想对公司好好评估一番,看看钱有没有花在刀口上。”

目的不应该是仅仅为渗透测试弄一份复选框,罗列相关内容,以满足合规要求,比如支付卡行业的数据安全标准(PCI DSS)。渗透测试的目的应该不仅仅是查找漏洞(漏洞扫描应该是渗透测试计划的一部分,但代替不了渗透测试)。除非渗透测试是发现、利用和纠正安全漏洞的一项可持续计划的一部分,否则就算你投入了财力和精力,换来的充其量还是表示通过的那个勾号;最糟糕的情况是,通不过目光敏锐的评估人员的审计。

第二个秘诀:关注数据

无论你在进行内部测试,聘请外部顾问,还是结合两者,企业用于渗透测试的预算和资源都很有限。你做不到针对包括成百上千个设备的IT基础设施进行渗透测试,不过渗透测试人员常常会被要求试着攻击一大段IP地址上的众多设备。结果进行的很可能是最草率的测试方法,几乎没有什么作用。你别指望能在合理的时间段里,以合理的成本,对数量非常多的设备进行漏洞扫描、补救漏洞。

Verizon安全解决方案公司的全球产品经理Omar Khawaja说:“在许多情况下,客户有成千上万个IP地址,希望我们对这么多地址进行渗透测试。我们可以运行漏洞测试,看看什么部分最脆弱,可是这对贵企业来说可能不是最重要的。”

退一步问一问:“我要保护的是什么?”哪些关键数据面临风险:是信用卡数据、病人信息、客户的个人身份信息、商业计划还是知识产权?这些信息在什么地方?你甚至知道含有敏感数据的每个数据库、每个文件存储库和每个日志存储区吗?你也许不知道,但攻击者很可能找得到。

所以,第一个关键的步骤是缩小渗透测试的范围,重点关注数据发现:确定哪些敏感数据面临风险,它们在哪里。接下来的任务是,扮演攻击者的角色,搞清楚如何找出漏洞。

Core Security公司的Solino说:“目的是模仿真正的攻击者在一定时间段内会对客户搞什么破坏,而不是找出所有可能存在的问题。”

第三个秘诀:与业务负责人交流

要与业务部门的人合作。他们知道什么面临危险,知道哪些数据很关键、哪些应用程序在创建和联系这些数据。他们至少知道数据放在哪些比较明显的地方。他们还会告诉你哪些应用程序必须保持正常运行。

只有这样,你才会基本上了解与某些应用程序有关的威胁级别,以及风险等式中很重要的数据和资产具有的价值。

这个过程的一个重要方面是,与懂得应用程序业务逻辑的人合作。知道应用程序本该做什么、本该如何运行,可以帮你找到应用程序的漏洞,并钻空子。

InGuardians公司的Skoudis说:“先确定范围,包括关键的信息资产和业务交易处理。然后与渗透测试团队和管理人员开头脑风暴会。”

Skoudis还建议要求管理人员提出最坏情况的场景,“要是有人闯入了企业,可能发生的最糟糕事情是什么?”这种演练有助于查明“真正的宝贵数据”在哪里,从而确定项目范围。

第四个秘诀:根据风险高低,进行测试

进行哪种类型的测试,应取决于数据/应用程序的价值。对于低风险资产,定期的漏洞扫描无异于经济高效地利用资源。中等风险的资产可能需要结合漏洞扫描和手动的漏洞检查。至于高风险资产,应进行渗透测试,寻找可利用的漏洞。

比如说,一所大型大学的安全主管说,他们已开始进行渗透测试,以满足PCI DSS的要求。一旦这项计划落实到位,就成了用于测试潜在攻击者潜入大学系统的能力的典范。该大学将数据分为公共数据、内部数据、敏感数据和高度敏感数据这几类。

他说:“对于高度敏感的信息,我们进行了渗透测试,遵守几乎与PCI一样的准则。我们在此基础上深入了一步,根据一些具体的标准和一些主观判断,看看要对系统进行哪种级别的渗透测试——如果需要渗透测试的话。”

比如说,对于风险比较低的信息,该大学将测试随机抽选的系统及/或应用程序,具体要看时间和预算的紧张程度。由于校园网络上有几千个设备,即便对它们都进行低级扫描也是行不通的。

这名安全主管说:“你可以测试有明确所有者和系统管理员的业务系统。但是如果你有3000台Wii连接到网络上,你不应该扫描那些设备、弄清楚它们分别属于谁。”

第五个秘诀:了解攻击者的概况

你的渗透测试人员在想法和行为上都要与真正的攻击者无异。但攻击者不属于好人这一类。要了解潜在攻击者的概况。

外部攻击者对贵公司可能所知甚少,可能就知道一些IP地址。但他们可能是前任员工,或者效力于贵公司的合作伙伴或服务提供商,所以对你网络的内部情况相当了解。内部攻击者可能是拥有访问和授权特权的系统管理员或数据库管理员,知道关键数据在什么地方。

了解攻击者概况时要考虑的一个因素是动机。攻击者觊觎的是可以变成现金的信用卡号码和个人身份信息?还是可以卖给竞争对手或获得商业优势的知识产权?攻击者想破坏你的Web应用程序,可能出于政治目的或竞争目的。他可能是怒气冲冲的前任员工,想“对贵公司进行报复”。

应该与业务负责人合作,帮助了解这些概况,打探哪些类型的潜在攻击者是他们感到最担心的。

概况可以缩小渗透测试的关注范围;测试内容会不一样,具体取决于每一种攻击者概况。

Core Security公司的Solino说:“我们基本了解了某个攻击者会对目标搞什么破坏,对此我们分得很清楚。针对每一种概况,我们获得渗透测试的结果,然后再了解另一种概况。”

确保渗透测试计划成功的十大秘诀(下)