漏洞和渗透测试简介
在本章
了解黑客和恶意用户的目标
检查安全测试过程是如何产生的
认识到什么会危害你的计算机系统
>>开始使用进程进行安全测试
这本书是关于测试你的计算机和网络的安全漏洞,并在坏人有机会利用它们之前堵塞你发现的漏洞。
理顺术语
每个人都听说过黑客和恶意用户。许多人甚至遭受了他们犯罪行为的后果。这些人是谁,为什么你需要知道他们?接下来的几节将详细介绍这些攻击者。
在这本书中,我使用了以下术语:
- 黑客(或外部攻击者)尝试以未经授权的用户身份侵入计算机、敏感信息,甚至整个网络,以获取非法收益(通常来自外部)。黑客几乎会攻击任何他们认为可以攻破的系统。有些人更喜欢著名的、保护良好的系统,但侵入任何人的系统都会增加攻击者在黑客圈中的地位。
恶意用户(外部或内部攻击者)尝试从外部(即客户或业务合作伙伴)或内部(作为授权和受信任的用户)侵入计算机和敏感信息。恶意用户会选择那些他们认为可以为不义之财或报复而妥协的系统,因为他们可能拥有对某个系统的访问或了解,从而获得优势。
一般来说,恶意攻击者包括黑客和恶意用户。为了简单起见,我将两者都称为黑客并指定黑客或恶意用户只有当我需要区分和深入研究他们独特的工具、技术和思维方式时。
- 道德黑客(或好人)入侵系统以发现漏洞,以防止未经授权的访问、滥用和误用。信息安全研究人员、顾问和内部员工都属于这一类。
黑客
黑客有两层含义:
- 传统上,黑客喜欢修补软件或电子系统。黑客喜欢探索和学习计算机系统是如何运行的。他们喜欢发现新的工作方式——无论是机械的还是电子的。
近年来,黑客有了新的含义:为了个人利益恶意闯入系统的人。严格来说,这些罪犯是饼干(黑客)。黑客怀着恶意侵入或破解系统。他们所追求的利益可能是名声、知识产权、利润,甚至是报复。他们修改、删除和窃取关键信息,并使整个网络脱机,经常使大公司和政府机构屈服。
警告
甚至不要让我开始流行文化和媒体是如何劫持这个词的黑客,从生活黑客所谓的选举干预。营销人员、政客和媒体战略家都知道,普通人不理解这个术语黑客行为,所以他们中的许多人使用它,无论他们想要实现他们的目标。不要分心。
的好人(欧洲)黑客不喜欢被归为坏人一类(黑帽)黑客的攻击。(如果你好奇的话,我可以告诉你白色的帽子而且黑帽来自老西部电视节目,好人戴白色牛仔帽,坏人戴黑色牛仔帽。)Gray-hat黑客两者都有一点。不管是哪种情况,大多数人对这个词有负面的含义黑客。
许多恶意黑客声称他们不会造成损害,而是为了社会的更大利益而帮助他人。是的,不管。恶意黑客是电子恶棍,他们应该为自己的行为承担后果。
小心不要把犯罪黑客和安全研究人员混为一谈。研究人员不仅光明正大地进行黑客攻击,开发出我们在工作中使用的令人惊叹的工具,而且(通常)还采取负责任的步骤公开他们的发现并发布他们的代码。
恶意用户
恶意用户“黑客”指的是流氓雇员、承包商、实习生或其他滥用其受信任特权的用户,这是安全领域和有关信息泄露的头条新闻中常用的术语。问题并不一定是用户入侵了内部系统,而是用户滥用了他们被授予的计算机访问权限。用户通过关键的数据库系统来收集敏感信息,将机密客户信息发送给竞争对手或其他地方的云,或者从服务器上删除他们可能一开始就不需要访问的敏感文件。
有时,意图不是恶意的无辜(或无知)内部人员仍然会通过移动、删除或损坏敏感信息而引起安全问题。在商业世界里,即使是无辜的胖手指在键盘上也会产生可怕的后果。想想所有影响全球企业的勒索软件感染。一个粗心的用户只需点击一下,你的整个网络就会受到影响。
恶意用户通常是IT和信息安全专业人员最大的敌人,因为他们确切地知道去哪里获取信息,不需要精通计算机就能泄露敏感信息。这些用户拥有所需的访问权限,管理层也信任他们——通常是毫无疑问的。
爱德华·斯诺登(Edward Snowden)——前国家安全局(National Security Agency)雇员出卖了自己的雇主——怎么样?那个问题很复杂。(我在第二章讨论了黑客的动机。)不管你怎么看斯诺登,他滥用职权,违反了保密协议的条款。同样的情况也适用于其他一些人,不管出于什么原因,他们都因为自己的名声而被推上了神坛。
认识到恶意攻击者如何产生道德黑客
你需要防范黑客的诡计;你必须变得和那些试图攻击你的系统的人一样聪明。真正的安全评估专业人员拥有黑客的技能、心态和工具,但值得信赖。他或她根据黑客的想法和工作方式对系统进行安全测试。
还记得
道德黑客(也称为漏洞和渗透测试)涉及与犯罪黑客使用的相同的工具、技巧和技术,只有一个主要区别:它是在专业环境下在目标的许可下进行的。此测试的目的是从恶意攻击者的角度发现漏洞,以更好地保护系统。漏洞和渗透测试是整体信息风险管理计划的一部分,允许持续的安全改进。这种安全测试还可以确保供应商关于其产品安全性的声明是合法的。
安全测试认证
如果您执行漏洞和渗透测试,并希望在证书中添加另一个认证,则可以考虑通过ec理事会赞助的认证计划成为认证道德黑客(C|EH)。看到www.eccouncil.org获取更多信息。与认证信息系统安全专业人员(CISSP)一样,C|EH认证是由美国国家标准协会(ANSI 17024)认可的业内知名的、受尊重的认证。
其他选择包括SANS全球信息保障认证(GIAC)计划、IACRB认证渗透测试员(CPT)和进攻性安全认证专业人员(OSCP)计划,这是一种实际操作的安全测试认证。我喜欢这种方法,因为通常情况下,执行这类工作的人没有适当的工具和技术实践经验来做好它。看到www.giac.org而且www.offensive-security.com获取更多信息。
漏洞和渗透测试与审计
许多人将通过漏洞和渗透测试进行的安全测试与安全审计混淆,但是大在目标上存在差异。安全审计涉及将公司的安全策略(或合规性要求)与实际发生的情况进行比较。安全审计的目的是验证安全控制是否存在,通常使用基于风险的方法。审计通常涉及审查业务流程,在某些情况下不是很技术化。事实上,安全审计可以像安全检查表一样基本,只是用于满足特定的遵从性需求。
还记得
并不是所有的审计都是高水平的,但我所见过的许多审计——特别是那些涉及遵守支付卡行业数据安全标准(PCI DSS)和健康保险可携带性和责任法案(HIPAA)的审计——都非常简单。通常,这些审计是由没有技术计算机、网络或应用程序经验的人员执行的——或者,更糟糕的是,他们完全在IT行业之外工作!
相反,基于道德黑客的安全评估则关注那些可以被利用的漏洞。此测试方法验证安全控制不存在或无效。这种正式的漏洞和渗透测试既可以是高度技术性的,也可以是非技术性的,尽管它涉及到正式方法的使用,但它往往没有正式审计那么结构化。如果您的组织需要审计(例如SSAE 16 SOC 1/2/3审计和ISO 27001认证),您可以考虑将我在本书中概述的漏洞和渗透测试技术集成到您的IT/安全审计程序中。审计、漏洞和渗透测试相互补充得很好。
政策考虑
如果您选择将漏洞和渗透测试作为业务信息风险管理计划的重要组成部分,那么您确实需要有一个文档化的安全测试策略。这样的策略概述了谁在进行测试,所执行的测试的一般类型,以及测试发生的频率。执行安全测试的具体过程可以概括我在本书中介绍的方法。您还可以考虑创建一个安全标准文档,概述使用的特定安全测试工具和执行测试的特定人员。您可以建立标准的测试日期,例如外部系统每季度测试一次,内部系统每年测试两次——任何对您的业务有效的方法。
遵从性和监管问题
您自己的内部策略可能规定了管理层如何看待安全测试,但是您还需要考虑影响您的业务的州、联邦和国际法律和法规。特别是,数字千年版权法案(DMCA)让合法研究人员不寒而栗。看到www.eff.org/issues/dmca为DMCA所提供的一切
美国的许多联邦法律和法规——如HIPAA和相关的经济和临床健康卫生信息技术(HITECH)法案、Gramm-Leach-Bliley法案(GLBA)、北美电力可靠性公司(NERC)关键基础设施保护(CIP)要求和PCI DSS——都需要强有力的安全控制和一致的安全评估。相关的国际法律,如加拿大的《个人信息保护和电子文件法》(PIPEDA)、欧盟的《通用数据保护条例》(GDPR)和日本的《个人信息保护法》(JPIPA),也没有什么不同。将安全测试纳入这些遵从性要求是满足州和联邦法规并加强整体信息安全和隐私计划的好方法。
了解入侵自己系统的必要性
要想抓住小偷,你必须像小偷一样思考。这句格言是漏洞和渗透测试的基础。了解你的敌人很重要。平均法则不利于安全。随着黑客数量的增加和知识的扩展,以及系统漏洞和其他未知因素的增加,所有的计算机系统和应用程序最终都会以某种方式被黑客攻击或受到损害。保护您的系统不受坏人的侵害——不仅仅是解决一般的安全最佳实践——是至关重要的。当你知道黑客的伎俩时,你会发现你的系统是多么脆弱。
黑客攻击的目标是薄弱的安全措施和未披露的漏洞。越来越多的研究,如年度Verizon数据泄露调查报告(www.verizonenterprise.com/verizon-insights-lab/dbir),显示长期以来,已知的漏洞也成为了攻击目标。防火墙、加密和其他花哨的(昂贵的)安全技术常常给人一种错误的安全感。这些安全系统往往侧重于高级漏洞,如访问控制和保护传输中的信息,而不影响坏人的工作方式。攻击您自己的系统以发现漏洞——尤其是那些让许多人陷入麻烦的容易摘到的果实——有助于使系统更加安全。漏洞和渗透测试是一种经过验证的方法,可以极大地加强系统免受攻击。如果您不识别弱点,那么漏洞被利用只是时间问题。
当黑客扩展他们的知识时,你也应该这样做。您必须像他们一样思考和工作,以保护您的系统免受他们的侵害。作为一名有道德的黑客,你必须知道不道德的黑客所进行的活动,以及如何阻止他们的努力。知道要寻找什么以及如何使用这些信息可以帮助您挫败黑客的努力。
提示
你不需要保护你的系统一切。你不能。对一切的唯一保护就是拔掉你的电脑系统的插头,把它们锁起来,这样就没有人能碰它们——甚至你自己也不能碰。但这样做并不是最好的安全方法,当然对业务也没有好处!重要的是保护您的系统免受已知漏洞和常见攻击——20%的问题产生了80%的风险,这恰好是大多数组织中最容易被忽视的弱点。
预测系统和业务流程中可能存在的所有漏洞是不可能的。你当然不能为所有类型的攻击做准备——尤其是那些未知的攻击。但是,您尝试的组合越多,测试整个系统而不是单个单元的频率越高,就越有可能发现影响整个信息系统的漏洞。
不过,不要把安全性测试做得太过分;强化您的系统免受不可能(或甚至少可能的)攻击没有什么意义。
安全测试的总体目标是:
- 优先考虑你的系统,这样你就可以把精力集中在重要的事情上。
- 以非破坏性的方式测试您的系统。
- 列举漏洞,并在必要时向管理层证明业务风险的存在。
- 应用结果来解决漏洞并更好地保护您的系统。
了解您的系统面临的危险
要知道你的系统正受到来自世界各地的黑客和办公室里的恶意用户的攻击;了解针对您的系统的特定潜在攻击是另一回事。本节讨论了一些众所周知的攻击,但绝不是全面的列表。
许多安全漏洞本身并不严重,但同时利用多个漏洞可能会对系统或网络环境造成损害。默认的Windows操作系统(OS)配置、弱SQL Server管理员密码或运行在无线网络上的服务器本身可能不是主要的安全问题。但同时利用所有这三个漏洞的人可能会启用未经授权的远程访问并泄露敏感信息(以及其他内容)。
复杂性是安全的敌人。
近年来,由于虚拟化、云计算甚至社交媒体的发展,漏洞和攻击急剧增长。仅这三件事就给您的环境增加了不可估量的复杂性。
非技术攻击
涉及操纵人(终端用户甚至你自己)的漏洞是任何计算机或网络基础设施中最大的漏洞。人类天生信任他人,这可能会导致社会工程漏洞。社会工程利用人类信任的本性来获取信息(通常是通过电子邮件网络钓鱼-出于恶意目的。请参阅第6章,了解更多关于社会工程的信息,以及如何保护您的系统不受其影响。
其他常见的针对信息系统的有效攻击是物理攻击。黑客侵入建筑物、机房或其他包含关键信息或财产的区域,窃取计算机、服务器和其他有价值的设备。物理攻击还包括垃圾站潜水-在垃圾桶和垃圾桶里翻找知识产权、密码、网络图和其他信息。
网络基础设施攻击
对网络基础设施的攻击很容易实现,因为世界上任何地方都可以通过Internet连接到许多网络。网络基础设施攻击的例子包括:
- 通过附加在防火墙后面的不安全无线接入点连接到网络。
- 利用网络协议中的弱点,如文件传输协议(FTP)和安全套接字层(SSL)。
- 网络中充斥着过多的请求,为合法的请求创建拒绝服务(DoS)。
- 在一个网段上安装一个网络分析器,并捕获通过该网段的每个数据包,以明文显示机密信息。
操作系统攻击
侵入操作系统是坏人的首选方法。操作系统攻击占了攻击的很大一部分,因为每台计算机都有一个操作系统。它们容易受到许多众所周知的漏洞攻击,包括多年后仍未修补的漏洞。
偶尔,一些开箱即用的更安全的操作系统(例如老式的Novell NetWare、OpenBSD和IBM Series i)会受到攻击,并出现漏洞。但是黑客更倾向于攻击Windows、Linux和Mac OS,因为它们的应用更广泛。
下面是一些攻击操作系统的例子:
- 利用缺失的补丁
- 攻击内置认证系统
- 破坏文件系统安全性
- 破解密码和弱加密实现
应用程序和其他专门的攻击
应用程序经常受到黑客的攻击。Web应用程序和移动应用程序可能是最流行的攻击手段,但它们经常被击败。例如,以下是经常出现在商业网络上的应用程序攻击和相关利用的示例:
- Web应用程序无处不在。多亏了所谓的的影子,在不同业务领域的人们运行和管理他们自己的技术,web应用程序在内部网络的每个角落,在云中。不幸的是,许多IT和安全专业人员都没有意识到影子IT的存在及其带来的风险。
- 由于移动应用在商业环境中很受欢迎,它们面临着越来越多的攻击。在应用商店中也会发现一些流氓应用,它们会给你的环境带来挑战。
- 包含敏感信息的不安全文件分散在工作站和服务器共享中,也分散在云上的OneDrive和谷歌Drive等地方。数据库系统还包含许多恶意用户可以利用的漏洞。
遵循安全评估原则
安全专家必须像恶意黑客那样对计算机系统、物理控制和人员进行同样的攻击。(我在前一节介绍了这些攻击。)然而,安全专业人员的意图是突出任何相关的弱点。本书的第2部分到第5部分详细介绍了如何应对这些攻击,以及针对针对您的业务的攻击可以实施的具体对策。
为了确保安全测试能够充分且专业地执行,每个安全专业人员都需要遵循一些基本原则。下面几节将介绍重要的原则。
警告
如果你不注意这些原则,不好的事情就会发生。我曾见过IT部门在计划和执行安全测试时忽略或忘记它们。结果并不乐观;相信我。
工作伦理
这个词道德在这种情况下,意味着以高度的职业道德和价值观工作。无论你是针对自己的系统进行安全测试,还是为雇佣你的人进行安全测试,你所做的一切都必须是光明正大的,以支持公司的目标,没有隐藏的议程——只是专业。道德还意味着报告你的所有发现,不管它们是否会引起政治反弹。别笑;在许多情况下,我看到人们忽略安全漏洞发现,因为他们不想破坏现状或与难以相处的高管或供应商打交道。
诚信是终极宗旨。这也是让(和保持)人们站在你这一边支持你的安全程序的最好方法。禁止滥用信息和权力;坏人就是这么做的,所以让他们因为糟糕的选择而交罚款或进监狱吧。请记住,你可以是道德的,但不值得信赖,反之亦然,沿着爱德华·斯诺登的路线。这些复杂性是安全程序整体挑战的一部分。我不羡慕你这么复杂。
尊重隐私
尊重地对待你收集的信息。您在测试过程中获得的所有信息——从web应用程序缺陷到清晰的文本电子邮件密码,再到个人身份信息(PII)等等——都必须保密。窥探公司机密信息或员工的私人生活不会有什么好处。
提示
让其他人参与到你的过程中来。采用同行评审或类似的监督系统,可以帮助建立对安全评估项目的信任和支持。
不会导致系统崩溃
我所见过的人们在尝试测试自己的系统时所犯的最大错误之一是无意中使他们试图保持运行的系统崩溃。考虑到今天系统的弹性,系统崩溃不像以前那样经常发生,但糟糕的计划和时间安排可能会产生负面后果。
尽管您不太可能这样做,但您可以在测试时在系统上创建DoS条件。过快地运行太多的测试会导致系统锁定、数据损坏、重新启动以及类似的问题,尤其是在测试旧的服务器和web应用程序时。(我应该知道;我做到了!)不要认为网络或特定的主机可以处理网络工具和漏洞扫描器所能提供的攻击。
你甚至可以通过使用漏洞扫描器,或者在没有意识到你的行为的后果的情况下,通过社交工程让某人更改密码,意外地创建一个帐户或系统锁定。行事要谨慎,要有常识。不管怎样,无论是你还是别人,这些弱点仍然存在,最好是你先发现它们!
提示
许多漏洞扫描程序可以控制同时在每个系统上执行多少个测试。当您需要在正常工作时间在生产系统上运行测试时,这些设置特别方便。不要害怕放慢扫描的速度。完成测试将花费更长的时间,但如果存在不稳定的系统,减少测试可能会为您省去很多麻烦。
使用漏洞和渗透测试过程
与实际的任何IT或安全项目一样,您需要计划安全测试。有人说,没有计划的行动是失败的根源。脆弱性和渗透测试中的战略和战术问题需要事先确定和商定。为了确保您的努力取得成功,请花时间计划任何数量的测试,从针对少数服务器的简单操作系统密码破解测试到复杂web环境的渗透测试。
警告
如果你选择雇佣一个“改过自新”的黑客在测试期间与你一起工作,或者获得一个独立的观点,要小心。我将在第19章介绍与雇佣安全资源相关的利与弊以及该做和不该做的事情。
制定计划
获得安全测试的批准至关重要。确保你所做的事情是已知的和可见的——至少对决策者是这样。获得项目的赞助是第一步。这就是定义测试目标的方法。赞助可能来自你的经理、高管、客户,甚至你自己(如果你是老板的话)。你需要有人支持你,在你的计划上签字。否则,如果有人(包括云服务和托管提供商等第三方)声称从未授权您执行测试,您的测试可能会意外取消。更糟的是,你可能会被解雇或被指控从事犯罪活动。
当您在自己的系统上执行这些测试时,授权可以像内部备忘录或来自老板的电子邮件一样简单。如果您是为客户进行测试,请签署一份合同,说明客户的支持和授权。尽快获得这项赞助的书面批准,以确保没有浪费你的时间或精力。如果有人——比如你的互联网服务提供商(ISP)、云服务提供商或相关供应商——质疑你在做什么或当局是否打电话来,这份文件就是你的“免费出狱”卡。别笑,这不是第一次发生了。
一个失误就可能导致系统崩溃,这并不是每个人都想看到的。您需要一个详细的计划,但不需要大量的测试过程,这会使计划过于复杂。定义良好的范围包括以下信息:
- 具体测试系统:在选择要测试的系统时,从最关键的系统和进程开始,或者从您怀疑最脆弱的系统和进程开始。您可以测试服务器操作系统密码,测试面向互联网的web应用程序,或者在深入到所有系统之前尝试通过电子邮件网络钓鱼进行社交工程。
风险:为您的安全测试过程制定应急计划,以防出现差错。假设您正在评估防火墙或web应用程序,并将其删除。这种情况会导致系统不可用,从而降低系统性能或员工的工作效率。更糟糕的是,它可能会导致数据完整性的损失、数据本身的损失,甚至造成不良宣传。它肯定会惹恼一两个人,让你看起来很糟糕。所有这些都会产生商业风险。
小心处理社会工程和DoS攻击。确定它们如何影响您测试的人员和系统。
执行测试的日期和总体时间表:确定何时执行测试是您必须长时间认真思考的问题。决定是在正常工作时间执行测试,还是在深夜或凌晨执行测试,这样生产系统就不会受到影响。让其他人参与进来,确保他们认可你的时间安排。
您可能会被推回并遭受dos相关的后果,但最好的方法是无限攻击,在这种攻击中,任何类型的测试都可能在一天中的任何时间进行。坏人不会在有限的范围内侵入您的系统,那么您为什么要这么做呢?这种方法的一些例外情况是执行全面DoS攻击、社会工程和物理安全测试。
-
你是否打算被发现:
您的目标之一可能是在不被检测到的情况下执行测试。您可能在远程系统或远程办公室上执行测试,并且不希望用户知道您在做什么。否则,用户或IT人员可能会了解您,并表现出最佳行为,而不是正常行为。
是否启用安全控制:一个重要但经常被忽视的问题是,是否启用防火墙、入侵防御系统(ips)和web应用程序防火墙(waf)等安全控制,以便它们阻止扫描和利用企图。启用这些控件可以让您了解事情的真实情况。但我发现多禁用这些控制(或将您的IP地址列入白名单)更有价值,以便您可以拉开帷幕,找到最大数量的漏洞。
许多人希望启用安全控制。毕竟,这种方法可以让他们看起来更好,因为许多安全检查可能会被阻止。然而,对我来说,这种深度防御的方法很好,但它会造成一种严重的虚假安全感,并不能描绘出组织整体安全态势的全貌。
测试前的系统知识:您不需要对正在测试的系统有广泛的了解—只需基本的了解即可,这可以保护您和被测试的系统。如果您正在测试自己的内部系统,那么理解您正在测试的系统应该不难。如果你正在测试客户的系统,你可能需要深入挖掘。事实上,只有一两个客户要求我做完全盲目的评估。
大多数IT经理和其他负责安全的人都害怕盲目评估,这可能会花费更多的时间,成本更高,而且效率更低。根据组织或客户的需求来确定您执行的测试类型。
- 发现重大漏洞时应采取的行动:不要在发现一两个安全漏洞后就停止;继续前进,看看你还能发现什么。我并不是说你应该一直测试直到时间的尽头或者直到你的所有系统崩溃;没人有时间做那个!相反,简单地追求你正在走的路,直到你再也无法破解它(双关)。如果您还没有发现任何漏洞,那么说明您还不够努力。漏洞就在那里。如果您发现了一些大问题,您需要尽快与关键参与者(开发人员、数据库管理员、IT经理等)共享该信息,以便在漏洞被利用之前将其堵塞。
- 具体交付成果:可交付成果包括漏洞扫描报告和您自己的概要报告,概述了要解决的重要漏洞,以及要实现的建议和对策。
选择工具
在任何项目中,如果没有正确的安全测试工具,就很难有效地完成任务。尽管如此,仅仅因为您使用了正确的工具,并不意味着您会发现所有正确的漏洞。重要的经验。
提示
了解你的工具的局限性。许多漏洞扫描器会产生误报和误报(错误地识别漏洞)。其他人则跳过漏洞。在某些情况下,例如测试web应用程序,您必须运行多个漏洞扫描器来找到所有的漏洞。
许多工具专注于特定的测试,没有工具可以测试所有的东西。就像你不会用螺丝刀钉钉子一样,不要使用端口扫描器来发现特定的网络漏洞。您需要一组特定的工具来完成这项任务。您拥有的工具越多(更好),您的安全测试工作就越容易。
确保你在完成任务时使用了以下工具:
- 要破解密码,你需要破解工具,如Ophcrack和主动密码审计器。
- 对于web应用程序的深入分析,web漏洞扫描器(如Netsparker或acuetix web漏洞扫描器)比网络分析器(如Wireshark或Omnipeek)更适合。
许多安全和黑客工具的能力被误解了。这种误解对其他优秀和合法的工具产生了负面影响;甚至世界各地的政府机构都在讨论将其定为非法。造成这种误解的部分原因是一些安全测试工具的复杂性。无论使用哪种工具,在开始使用之前都要熟悉它们。这样,您就准备好以它们预期的方式使用这些工具。以下是一些方法:
- 阅读自述和/或在线帮助文件和FAQs(常见问题)。
- 研究用户指南。
- 在实验室或测试环境中使用这些工具。
- 在YouTube上观看教程视频(如果你能忍受大多数教程的拙劣制作)。
- 考虑从安全工具供应商或其他第三方培训提供商那里获得正式的课堂培训(如果有的话)。
在安全测试工具中寻找以下特征:
- 足够的文档。
- 关于发现的漏洞的详细报告,包括它们可能如何被利用和修复。
- 一般行业认可。
- 更新的可用性和技术支持的响应性。
- 可以呈现给管理人员或非技术类型的高级报告(在今天的审计和遵从驱动的世界中尤其重要)。
当您执行测试和编写最终报告时,这些特性可以为您节省大量的时间和精力。
安全测试工具示例
在为任务选择正确的安全工具时,询问周围的人。通过谷歌、LinkedIn和YouTube向你的同事和其他人寻求建议。有成百上千的工具可用于安全测试。以下是一些我最喜欢的商业、免费和开源安全工具:
- Acunetix Web漏洞扫描器
- 该隐与亚伯
- CommView for WiFi
- Elcomsoft系统恢复
- Metasploit
- Nessus
- NetScanTools职业
- Netsparker
- Nexpose
- Omnipeek
- SoftPerfect网络扫描器
在第2部分到第5部分中,我将讨论这些工具以及与特定测试相关的许多其他工具。附录包含了这些工具的更全面的列表,供您参考。
执行计划
好的安全测试需要持久性。时间和耐心很重要。另外,在执行测试时要小心。你网络上的罪犯或看似善良的员工在你身后看着你,可能会看到发生了什么,并利用这些信息来对付你或你的企业。
在开始之前确保系统中没有黑客是不实际的。只要确保一切都尽可能安静和私密,尤其是当你传输和存储测试结果的时候。如果可能的话,加密任何包含敏感测试信息的电子邮件和文件,或者通过基于云的文件共享服务共享它们。
你在执行侦察任务。尽可能多地利用关于您的组织和系统的信息,就像恶意黑客所做的那样。从开阔的视野开始,缩小你的关注点。遵循以下步骤:
在因特网上搜索您所在组织的名称、计算机和网络系统名称以及IP地址。
谷歌是一个很好的开始。
缩小您的范围,针对您正在测试的特定系统。
无论您是在评估物理安全结构还是web应用程序,一次随意的评估都可以找到大量关于系统的信息。
- 通过执行扫描和其他详细的测试来发现系统上的漏洞,进一步缩小您的关注范围。
- 执行攻击并利用您发现的任何漏洞(如果您选择这样做的话)。
请参阅第4章和第5章,以获得有关此过程的信息和技巧。
评估结果
评估您的结果,看看您发现了什么,假设这些漏洞在此之前还没有明显地表现出来。重要的知识。您在评估结果和关联所发现的特定漏洞方面的技能将随着实践而提高。您最终会比任何人都更了解您的系统,这将使评估过程更加简单。
提示
向管理层或客户提交一份正式的报告,概述你的结果和任何你需要分享的建议。让这些人知道你的努力和他们的钱花得值。第17章描述了安全评估报告流程。
继续
当您完成安全测试时,您(或您的客户)仍然需要实现您的建议,以确保系统是安全的。否则,所有花在测试上的时间、金钱和精力都将付诸东流。遗憾的是,我经常看到这种情况。
还记得
新的安全漏洞不断出现。信息系统不断变化并变得更加复杂。新的安全漏洞和利用被发现。漏洞扫描器变得更好。安全测试提供系统安全状态的快照。在任何时候,一切都可能改变,特别是在你升级软件、添加计算机系统或应用补丁之后。这种情况强调了经常更新工具的必要性——如果可能的话,在每次使用之前。计划定期和持续地进行测试(例如一个月一次,一个季度一次,或一年两次)。第19章将介绍如何管理后续的安全更改。