=Start=
缘由:
备考CISSP,学习、整理在看《CISSP官方学习指南(第7版)》时的一些知识点,方便以后快速复习。
正文:
参考解答:
第21章 恶意代码与应用攻击
本章中覆盖的CISSP考试大纲包含:
3.安全工程
•E. 评估和缓解安全架构、设计和解决方案组件中的漏洞
•F. 评估和缓解基于Web系统(例如,XML、OWASP)的漏洞
8.软件开发安全
•B. 在开发环境中实施安全控制
软件环境中的安全
安全弱点和源代码级别的漏洞(例如,缓冲区溢出、特权扩大、输入/输出验证)
在前面的章节中,你已经学习了很多能帮助安全从业者开发针对恶意个体进行保护的常规安全原则、策略处理机制。本章将深入探讨这个领域的管理员在日常工作中所面对的一些具体威胁。
这些内容不仅对于CISSP考试很关键,而且还是计算机安全专业人员为了有效开展工作而必须理解的一些最基本信息。本章首先介绍恶意代码对象带来的威胁,这些恶意代码对象包括病毒、蠕虫、逻辑炸弹和特洛伊木马。接着,我们将研究其他一些安全性应用,黑客会利用它们试图获取对系统的未授权访问或者阻止合法用户获得这样的访问。
21.1 恶意代码
恶意代码对象包括广泛的代码形式的计算机安全威胁,这些威胁利用各种网络、操作系统、软件和物理安全漏洞对计算机系统散播恶意载荷。某些恶意代码对象(例如,计算机病毒和特洛伊木马)依靠用户对计算机的不当使用在系统之间成功地传播。其他一些恶意代码对象(例如,蠕虫)则依靠自身的力量在脆弱的系统间快速传播。
所有计算机安全从业人员都必须熟悉由各种恶意代码带来的风险,这样才能够采取适当的对策来保护所关注的系统,以及在系统受到破坏时做出适当的响应。
21.1.1 恶意代码的来源
相当有经验(尽管误入歧途)的软件开发人员 => 脚本小子 => 有组织的犯罪团伙
21.1.2 病毒
计算机病毒可能是最早的令安全管理员苦恼的恶意代码形式。实际上,病毒如今相当普遍,病毒大爆发会引起大众媒体的关注,并且在一般的计算机用户中引起轻度恐慌。与生物病毒一样,计算机病毒具有两个主要的功能:传播和破坏。
1.病毒传播技术
根据定义,病毒必须包含能够使其在系统之间进行传播的技术,有时会借助于无疑心的计算机用户通过交换磁盘、共享网络资源、发送电子邮件或其他手段试图共享数据的活动。一旦病毒到达新的系统,它们会使用某种传播技术来感染新的受害者以及扩展其触及范围。
4种常见的传播技术:主引导记录感染、文件感染、宏感染和文件注入。
- 主引导记录病毒——主引导记录病毒(Master Boot Record,MBR)是已知的最早的病毒感染形式。这些病毒攻击MBR一一可启动介质(例如,硬盘、软盘或VD)上计算机用于在启动过程中加载操作系统的部分。由于MBR非常小(通常只有512宇节),因此它不能包含实现病毒传播和破坏功能所需的所有代码。为了避开空间的限制,MBR病毒将主要的代码存储在存储介质的其他部分。在系统读取受感染的MBR时,病毒会引导系统读取并且执行在另一个地方存储的代码,从而将全部的病毒加载到内存中,并且可能触发病毒有效载荷的传播。大多数毒在系统之间通过用户不经意地共享被感染的介质进行传播。如果在启动过程中被感染的介质在驱动器中,那么目标系统就会读取被感染的MBR、将病毒加载到内存中、感染目标系统硬盘的MBR,并且还会感染其他计算机。
- 文件程序感染病毒——许多病毒感染不同类型的可执行文件,并且在操作系统试图执行这些文件时被触发。对于基于Windows的系统来说,可执行文件以扩展名.exe和.com为后缀。文件程序感染病毒的传播程序可能只是对可执行程序进行了少许改动,从而植入了病毒需要复制并毁坏系统的技术。在某些情况下,病毒可能实际上用被感染的版本替换了整个文件。标准的文件程序感染病毒没有使用障眼法技术,例如隐形或加密(参见本章稍后的”病毒技术”部分),通过比较感染前后的文件特性(如大小和修改日期)或散列值,常常可以很容易地检查出这种病毒。本章后面的”反病毒机制”部分会介绍与这些技术相关的技术细节。文件程序感染病毒的一个变种是同伴病毒。这种病毒是自包含的可执行文件,利用与合法的操作系统文件类似但又稍有不同的文件名来躲避检查。同伴病毒依靠基于Wmdows的操作系统在执行程序文件时关联在命令上的默认文件扩展名(.com、.exe和.bat,并且按照这个顺序)哇行操作。例如,如果在硬盘上有一个名为game.exe,那么同伴病毒可能会使用名字game.com。如果你随后打开一个命令行工具并简单地键入”game”,那么操作系统将执行这个病毒文件game.com,而不是实际要执行的文件game.exe。对于在命令行工具下执行文件时要避免快捷方式并且使用具体的文件名来说,远的确是一个很好的理由。
- 宏病毒——许多常用的软件应用为了协助重复任务的自动执行而实现了某些脚本功能。这些功能常常使用简单却有效的编程语言,例如VisualBasicforApplications(VBA)。虽然宏的确为计算机用户提供了巨大的提高生产率的机会,但是它们也将系统暴露给了另一种感染手段一一宏病毒。宏病毒最早出现在20世纪90年代中期,它采用拙劣的技术感染流行的MαosoWord环境中生成的文档。虽然宏病毒相对简单,但是由于反病毒机构没有预见到,反病毒软件没有提供对它们的任何防护,因此这些病毒得到了快速传播。宏病毒很快就变得越来越普遍,供应商匆忙地修改他们的反病毒平台,使之能够对应用文档进行宏病毒扫描。
- 服务注入病毒——最近爆发的恶意代码使用另一种技术感染系统和逃脱检测将自己注入到操作系统的可信运行进程中,如svchost.exe、winlogin.exe和explorer.exe。通过成功地破坏这些受信进程,恶意代码能够绕过主机上运行的任何防病毒软件的检测。保护系统免受服务注入的最好技术之一是确保允许浏览Web内容的所有软件(如浏览器、媒体播放器、帮助应用程序)接收当前的安全补丁。
2.容易受到病毒攻击的平台
如同大多数宏病毒感染那些运行流行的Microft Office应用程序套件的系统一样,大多数计算机病毒被设计成破坏在世界上最流行的操作系统Microsoft Windows上运行的活动。据估计,今天世界上只有不到百分之一的病毒被设计为影响其他操作系统,例如Unix和MacOS。
首先,实际上己经没有单一的”Unix”操作系统。相反,一系列很相似的操作系统以类似的方式实现了与Unix相同的功能,并且由大量的开发人员独立设计。大规模企业开发的软件在与无数免费的由公众随意开发的Linux操作系统一直在进行竞争。Unix版本的严格编号以及它们在完全不同的内核(操作系统的核心代码)上进行开发的事实,使得难以编写病毒,从而对Unix系统产生大范围的影响。也就是说,Macintosh和Unix用户不应该安于现状。只有几个病毒对他们的系统带来威胁,这并不意味着其中的病毒不能对他们的系统随时产生影响。任何人都有责任确保计算机系统的安全性,并应该实施适当的反病毒机制以确保其资源的持续安全。
3.反病毒机制
4.病毒技术
当病毒检测和消除技术得到提高以便战胜恶意开发人员设计的新威胁时,新类型的病毒被设计用于挫败使用这些技术的系统。接下来我们将分析病毒的4种具体类型,它们使用卑鄙的技术企图逃避检测,这4种类型是:复合病毒、隐形病毒、多态病毒和加密病毒。
- 复合病毒——复合病毒使用多种传播技术试图渗透只防御其中一种方法的系统。例如,在1993年发现的Marzia病毒通过为每个文件添加2048个字节的恶意代码来感染关键的COM和EXE文件,最明显的就是系统文件command.com。这个特征说明它是一种文件程序感染病毒。此外,在Marzia病毒感染系统两个小时后,它会向系统的主引导记录写入恶意代码,这说明它也是一种引导扇区病毒。
- 隐形病毒——隐形病毒通过对操作系统的实际篡改来欺骗反病毒软件包认为所有事情都工作正常,从而将自己隐藏起来。例如,隐形的引导扇区病毒可能利用恶意代码覆盖系统的主引导记录,随后还通过修改操作系统的文件访问功能来覆盖自身痕迹。当反病毒软件包请求MBR的副本时,被修改的操作系统代码提供它所期望看到的版本:也就是没有任何病毒特征的未被感染的MBR版本。然而,系统启动时会读取被感染的MBR,井且将病毒加载到内存中。
- 多态病毒——在系统间传输时,多态病毒实际上会修改自己的代码。这种病毒的传播和破坏技术保持完全相同,但是每次感染新的系统时病毒的特征略有不同。多态病毒制造者的希望就是,通过连续改变特征使得特征型反病毒软件包失效。然而,反病毒软件供应商识破了许多多态病毒技术的代码,因此目前使用的反病毒软件版本都能够检测出已知的多态病毒。剩下的唯一担心是,为了阻止多态病毒的攻击而生成必要的特征文件,这会花费供应商较长的时间,因此可能导致多态病毒在更长时间范围内在互联网上肆无忌惮地运行。
- 加密病毒——加密病毒使用密码术(参看第6章的内容)来躲避检测。在加密病毒的外部表现中,它们实际上很像多态病毒,每个被感染的系统都有不同特征的病毒。然而,加密病毒不是通过改变代码来生成这些修改过的特征,而是修改在磁盘上的存储方式。加密病毒使用一个很短的、被称为病毒解密程序的代码段,这个代码段包含必要的密码学信息,用于对存储在磁盘上其他地方的主病毒代码进行加载和解密。每个感染过程都使用不同的密钥,这使得主代码在每个系统上都呈现出完全不同的样子。不过,病毒解密程序往往包含指示特征,因此加密病毒很容易被最新的反病毒软件包识破。
5.骗局
如果缺少对病毒骗局(hoax)导致的损害和资源浪费的讨论,那么对病毒的研究就不算完整。几乎每个电子邮件用户都曾经收到过朋友转发来的邮件信息或者有关Internet存在最新病毒威胁的警告。这个传闻中的”病毒”总是那些目前尚未发作但是最具破坏性的病毒,没有任何反病毒软件包能够检测和/或删除它们。有关这种骗局的一个著名示例是欢乐时光(GoodTimes)病毒警告,它最早在1994年出现在互联网上,直到今天依然在传播。
21.1.3 逻辑炸弹
你曾经在第20章”软件开发安全”中学过,逻辑炸弹是感染系统并且在达到一个或多个满足的逻辑条件(例如,时间、程序启动、Web站点登录等)前保持休眠状态的恶意代码对象。大多数逻辑炸弹被软件开发人员编入用户定制的应用程序中,这些开发人员的目的是在被突然解雇时破坏公司的工作。第20章己经介绍了几个这类逻辑炸弹的例子。
然而,必须记住的是,像所有恶意代码对象一样,逻辑炸弹具有许多形式和大小。事实上,许多病毒和特洛伊木马都包含一个逻辑炸弹组件。著名的米开朗其罗病毒在1991年被发现时曾导致介质混乱,它就是由其包含的逻辑炸弹触发启动的。这个病毒通过共享被感染的软盘来感染系统的主引导记录,并且随后将自己隐藏起来,直到3月6日(即著名的意大利艺术家米开朗其罗的生日)这一天启动,从而重新格式化被感染系统的硬盘井且破坏硬盘包含的所有数据。
21.1.4 特洛伊木马
系统管理员经常警告计算机用户,不要从互联网上下载并安装软件,除非能够绝对保证来源可靠。事实上,许多公司严格地禁止安装任何非IT部门预筛选的软件,这样的策略能够最小化组织的网络被特洛伊木马破坏的风险。特洛伊木马是一种软件,这种软件程序表面上友善,但是实质上承载恶意有效载荷,具有对系统或网络的潜在破坏能力。
不同的特洛伊木马在功能上区别很大。一些木马将破坏系统上存储的所有数据,试图在尽可能短的时间段内产生大规模的破坏。一些木马则可能是无害的。
21.1.5 蠕虫
蠕虫给网络安全带来了空前的风险。它们包含的破坏潜力与其他恶意代码对象相同,并且还具有额外的手段,也就是不需要任何人为干预就可以传播自己。
互联网蠕虫是互联网上发生的首例主要的计算机安全事件。从那时起,成百上千个新的蠕虫(带有成千上万个变种)开始在互联网上散播它们的破坏力量。
21.1.6 间谍软件与广告软件
在正常使用计算机时,我们还会遇到其他两种不希望的软件干预类型。间谍软件会监控你的动作,并且向暗中监视你活动的远程系统传送重要的细节。例如,间谍软件可能等待你登入某个银行站点,随后将你的用户名和密码传送给间谍软件的创作者。此外,间谍软件也可能等待你在某个电子商务站点输入信用卡号,然后将卡号传送给在黑市进行贩卖交易的骗子。
广告软件在形式上与间谍软件极为相似,只是具有不同的目的。广告软件使用多种技术在被感染的计算机上显示广告。最简单的广告软件形式会在你连接Web时在屏幕上显示弹出式广告。更恶毒的广告软件版本可能会监控你的购物行为并将你重定向至竞争者的Web站点。
21.1.7 对策
针对恶意代码的主要防护手段是使用反病毒过滤软件。这些软件包主要是特征型系统,它们被设计用于检测在系统中运行的已知病毒。如下所示,至少在三个关键区域考虑实现反病毒过滤是非常明智的。
- 客户端系统:网络中的每个工作站都应当通过更新的反病毒软件在本地文件系统中查找恶意代码。
- 服务器系统:服务器应当具有类似的防护。因为公用服务器上的一个病毒会迅速在整个网络内传播,所以保护服务器系统比保护客户端系统更为重要。
- 内容过滤器:目前的大多数病毒都通过互联网传播。继续在网络上根据恶意代码的特征,对入站和出站电子邮件以及Web流量进行内容过滤,是非常明智的做法。
21.2 密码攻击
攻击者用于获得对系统的非法访问的最简单技术之一是:获悉己授权系统用户的用户名和密码。
一旦作为正常用户获得访问权限,那么攻击者就会在系统中具有立足之地。此时,攻击者可以使用其他技术(包括rootkit软件包)自动获取增强级别的系统访问权限(参看本章稍后的”权限提升和rootkit”部分)。攻击者还可能将受到危害的系统作为跳板,从而攻击相同网络中其他更加诱人的目标。
21.2.1 密码猜测攻击
在这种最基本的密码攻击类型中,攻击者只是试图猜测用户的密码。无论进行了多少次安全性教育,用户还是常常使用极为脆弱的密码。如果攻击者能够获得授权系统用户的列表,那么他们常常能够快速找出正确的用户名(在大多数网络中,用户名包含用户名字的第一个字母,后面紧跟着他们的姓氏部分)。利用这些信息,攻击者就能够开始对用户的密码进行某些猜测。最常用的用户密码形式是用户姓氏、名字或用户名。
21.2.2 字典攻击
前面曾经提到过,许多Unix系统在所有系统用户可访问的/etc/passwd文件中存储用户密码的加密版本。为了提供某些安全性级别,这个文件并不包含实际的用户密码:但包含了通过单向加密函数获得的加密值(参看第7章对加密函数的讨论)。当用户试图登入系统时,访问验证程序使用相同的加密函数加密用户输入的密码,然后与/etc/passwd文件中存储的实际密码进行比较。如果这两个值匹配,那么用户就被准许访问系统。
密码攻击者使用自动化工具(例如,John the Ripper)运行自动的字典攻击,字典攻击利用了这种机制的一个简单漏洞。攻击者采用一个包含成千上万词汇的大型字典文件,然后针对这些词汇运行加密函数,以获得加密的等值效果。接着,John the Ripper程序在密码文件中查找与加密宇典相匹配的加密值。查找到某个匹配时,John the Ripper程序会报告用户名和密码(明文形式),攻击者便获得了对系统的访问权限。
21.2.3 社会工程学攻击
社会工程学是攻击者用于获得系统访问权限的最有效工具之一。
虽然用户变得越来越精明,但对于密码(通常针对网络)的安全性来说,社会工程学仍然是个严重的威胁。攻击者常常可以通过与计算机用户、办公室中的饶舌者和行政管理人员的”闲谈”获得敏感的个人信息。在进行密码猜测攻击时,这些信息可以提供极好的攻击素材。此外,攻击者有时可以获得敏感的网络拓扑图或配置数据,在计划对组织进行其他类型的电子攻击时,这些信息也非常有用。
21.2.4 对策
所有安全措施的基石是教育。安全人员应该经常提醒用户选择安全密码进行保密的重要性。用户应该在他们首次加入组织时接受培训,并且应当定期接受最新的培训,即使这种培训只是来自管理员提醒他们相关威胁的电子邮件。
为用户提供建立安全密码所需要的知识,告诉他们攻击者在猜测密码时所使用的技术,并且为用户提供一些有关如何建立强密码的建议。最有效的密码技术之一是使用某种记忆手段,如设想一个容易记忆的句子并利用每个词的首字母建立密码。例如,将句子”My son Richard likes to eat 4 pies”变为密码MsRlte4P,这是一个极难破解的密码。你可能也希望考虑为用户提供一个安全工具,允许存储这些强密码。PasswordSafe和LastPass是两个常见的例子。这些工具允许用户为他们使用的每个服务创建独特的、强大的密码,而不承担他们所有的负担。
提示:
防止基于密码的攻击的最好方法之一是采用其他认证技术作为密码技术的补充。这种方法为多因素认证,已在第13章讨论。
由过分热心的管理员导致的一种最常见错误是建立一系列强密码,并且将它们分发给用户(用户随后会被禁止改变为他们分发的密码)。乍一看,这是一个听起来十分安全的策略。然而,用户在收到像lmfOA8flt这样的密码时,他们将要做的第一件事是将密码写在便签上并将其粘贴在计算机键盘的下面。这下可好,安全保护彻底破产了!
如果网络包括使用 /etc/passwd 文件的Unix操作系统,那么请考虑使用其他的访问验证机制来增强安全性。在很多版本的Unix和Linux上都可用的一种流行技术是使用影子密码文件 /etc/shadow 。这个文件包含每个用户的实际加密密码,但是除了管理员外,任何人都不能访问这个文件。可公共访问的文件 /etc/passwd 只是包含用户名的列表,它并不包含发起字典攻击所需的必要数据。
21.3 应用程序攻击
在第20章中,学习了在开发操作系统和应用程序时使用可靠的软件工程过程的重要性。在下面几节,你将会简要学习一些特殊的技术,攻击者可以使用这些技术来利用由于编码过程疏忽大意而留下的漏洞。
21.3.1 缓冲区溢出
缓冲区溢出漏洞存在于当开发人员不正确地验证用户的输入,以确保以适当的大小输入时。输入太大,可以”溢出”一个数据结构,影响存储在计算机内存中的其他数据。
21.3.2 检验时间到使用时间
检验时间到使用时间Time-Of-Check-To-Time-Of-Use,TOCTTOU或TOC/TOU)的问题是一个时间型漏洞,当程序检查访问许可权限的时间大大早于资源请求的时间时,就会出现这种问题。例如,如果操作系统针对用户登录建立了一个综合的访问许可权限列表,并且在整个登录会话期间查询这个列表,那么就存在TOCTTOU漏洞。如果系统管理员取消了某个特殊的权限,那么这个限制只有在用户下次登录时才会起作用。如果在用户登录时正好发生取消访问许可权限的操作,那么用户是否能够访问资源就是不确定的。用户只需保留会话打开数天之久,新的限制就永远不会被应用。
21.3.3 后门
后门是没有被记录到文档中的命令序列,它们允许软件开发人员绕过正常的访问限制。在开发和调试过程中,后门常常被用于加快工作流程并避免强制开发人员不断地对系统进行身份认证。有时候,开发人员在系统达到生产要求之后仍在系统中留下这些后门,从而既可以在出现意外故障时使用,也可以在系统处理他们没有访问权限的敏感数据时进行”偷看”。除了开发商的后门外,许多类型的恶意代码感染系统井创建后门,允许恶意代码的开发者远程访问受感染的系统。
无论怎样,后门不被记录到文档中的性质使其成为系统安全的严重威胁,尤其在后门未被记录到文档中却又被遗忘时更是如此。如果开发人员离开了公司,那么他们可以利用后门访问系统、检索机密信息或参与行业破坏活动。
21.3.4 权限提升和rootkit
一旦攻击者在一个系统上站稳脚跟,他们通常会迅速进入第二个目标将他们的访问权限从正常的用户账户扩展到更全面的管理访问权限。他们通过权限提升攻击来实现。
攻击者权限提升攻击的最常见方法之一是通过使用rootkit。rootkit可以从互联网上免费获得,并且能够利用各种操作系统的已知漏洞。攻击者经常通过使用密码攻击或社会工程学攻击获得标准的系统用户账号,然后使用rootkit将他们的访问权限提高到root(或系统管理员)级别。这种从标准到管理特权访问的提升被称为权限提升攻击。
系统管理员可以采用一种简单的预防措施来保护他们的系统不会遭受大量的rootkit攻击,这其实并不新鲜。系统管理员必须关注针对其环境所使用操作系统而发布的新的补丁程序,而且要始终坚持应用这些修正措施。这是一种加强网络以应对几乎所有rootkit攻击和许多其他潜在漏洞的简单方法。
21.4 Web应用的安全性
21.4.1 跨站脚本(XSS)攻击
当Web应用程序包含反射式输入类型时,就容易出现跨站脚本(XSS)攻击。
21.4.2 SQL注入攻击
从组织的角度看,SQL注入攻击甚至比XSS攻击更加危险。与XSS攻击一样,SQL注入攻击也使用了Web应用程序不期望的输入。不过,SQL注入攻击并不试图使用这样的输入来欺骗用户,而是用于获得对内在数据库的未授权访问。
可以通过下列三种技术使Web应用程序不遭受SQL注入攻击的危害:
- 执行输入验证。与前面讨论的跨站脚本攻击的防御方法一样,输入验证操作能够限制用户在表单中输入的数据类型。具体到上面的SQL注入攻击示例,从输入中去除单引号字符就能够成功地防御SQL注入攻击。
- 限制用户特权。Web服务器使用的数据库账户应当具有尽可能最小的权限集。如果Web应用程序只需要检索数据,那么数据库账户就应当仅具有检索能力。在具体的示例中,如果账户只具有SELECT权限,那么DELETE命令就会失败。
- 使用存储过程。Web应用程序的开发应该利用数据库存储过程来限制应用字执行任意代码的能力。使用存储过程,SQL语句句驻留在数据库服务器上并且仅仅可由数据库管理员修改。调用存储过程的Web应用程序可以传递参数,但不改变SQL语句的基本结构。
21.5 侦察攻击
恶意代码往往依靠欺骗用户打开或访问恶意软件,其他攻击则直接攻击目标机器。执行侦查可以让攻击者找到弱点,利用他们的攻击代码直接攻击。为了达到这个目标,攻击工具的开发人员开发了许多执行网络侦察的自动化工具。我们将会讨论三种自动侦察技术:探测、端口扫描和漏洞扫描,然后阐述这些技术如何得到更实用的密集型垃圾搜寻技术的辅助。
21.5.1 IP探测
IP探测(也被称为IP扫描或ping扫描)通常是针对目标网络而实施的第一种网络侦察类型。通过这种技术,自动化工具只是试图ping某个范围内的所有地址。对ping请求进行响应的系统被攻击者记录下来以便进一步分析。没有产生响应的地址被认为不能加以利用并被忽略。
21.5.2 端口扫描
在完成IP探测攻击之后,攻击者就会获得一个指定网络中工作系统的列表。攻击者的下一个任务是选择一个或更多个系统作为其他攻击的目标。通常,攻击者己经确定了攻击目标的类型,其中Web服务器、文件服务器或其他执行关键操作的服务器是主要目标。
为了缩小搜索范围,攻击者会使用端口扫描软件来探测网络中的所有工作系统并确定每台计算机上运行的公共服务。例如,如果攻击者将Web服务器作为攻击目标,那么他们就运行端口扫描软件来定位使用80端口(80端口是HTTP服务的默认端口)提供服务的系统。
21.5.3 漏洞扫描
第三种技术是漏洞扫描。一旦攻击者确定了成为攻击目标的系统,他们就需要找到这个系统上可以利用的特定漏洞来获得希望的访问许可权限。从互联网上可以获得的多种工具都能协助完成这个任务。
21.5.4 垃圾搜寻
每个组织都会产生垃圾,通常每天的日常工作会产生大量的垃圾。你曾经花时间对自己的垃圾进行过分类吗?查看过是否将敏感资料投入了垃圾箱吗?试着这样做一次,结果会让你大吃一惊。当你将每天分析的工作文件到处乱扔时,试着从攻击者的角度看待这个问题。能够从这些文件中收集到什么样的信息,可以帮助发动一次攻击吗?那些文件里存在有关网络配置或己安装软件版本的敏感数据吗?特殊部门员工的生日列表能够被用于社会工程学攻击吗?一本策略手册中可能包含生成新账户的详细规范吗?随便丢弃的软盘或其他存储介质可能存有重要数据吗?
不要低估琐碎的公司文挡对于社会工程学攻击的价值。著名的社会工程师 Kevin Mitnick 曾经被允许使用公司的简报作为攻击的关键组件。他很快注意到包含新员工列表的部分,并且意识到这些人是最合适的受害者:这些新员工在接到来自”高层”对机密信息的电话请求时都会十分热情。
垃圾搜寻是本书提到的最古老的攻击方法之一,直到今天还在被使用。针对这种攻击的最佳防御措施相当简单,就是使攻击者的行动变得更困难。为主要部门购买碎纸机并鼓励员工使用这种计算机。将垃圾保存在一个安全的地方,直到收拾垃圾的人到来。这些小细节的培养需要经历漫长的过程。
21.6 伪装攻击
为了获得对没有访问资格的资源的访问权限,最简单的方法之一就是假冒具有适当访问许可权限的人。在现实生活中,十几岁的青少年经常借用自己兄长或姐姐的驾驶证开车,在计算机的安全领域中也会发生相同的事情。攻击者借用合法用户和系统的身份得到第三方的信任。在本节中,我们将介绍两种常见的伪装攻击:IP欺骗和会话劫持。
21.6.1 IP欺骗
在IP欺骗攻击中,怀有恶意的人只是重新配置他们的系统,使其具有可信任系统的IP地址,然后试图获得访问其他外部资源的权限。在许多没有安装阻止这种通信类型发生的适当过滤器的系统中,你会原奇地发现IP欺骗非常有效。系统管理员应该在每个网络的边缘配置过滤程序,从而确保数据包至少符合下列标准:
• 具有内部源IP地址的包不能从外部进入网络。
• 具有外部源IP地址的包不能从内部离开网络。
• 具有私有IP地址的包不能从任何一个方向通过路由器(除非被允许作为内部配置的一部分)。
这三条简单的过滤规则能阻止绝大多数的IP欺骗攻击井大大提高网络的安全性。
21.6.2 会话劫持
会话劫持攻击指的是怀有恶意的人中途拦截己授权用户与资源之间通信数据的一部分,然后使用劫持技术接管这个会话并伪装成己授权用户的身份。
21.7 本章小结
- 应用程序开发人员有很多担心!随着黑客使用的工具和技术变得越来越复杂,由于复杂性和多个脆弱点,应用层越来越多地成为他们攻击的焦点。
- 恶意代码,包括病毒、蠕虫、木马和逻辑炸弹,利用应用程序和操作系统中的漏洞或使用社会工程学感染操作系统,并获得它们的资源和机密信息。
- 应用程序自身也可能包含许多漏洞。缓冲区溢出攻击利用缺少适当输入验证的代码来影响系统内存中的内容。后门为以前的开发者和恶意代码的作者提供绕过正常安全机制的能力。rootkit为攻击者提供了一种简单的方法来执行权限提升攻击。
- 许多应用程序正在转向Web,从而制造新级别的暴露和漏洞。跨站脚本攻击允许黑客欺骗用户向不安全的站点提供敏感信息。SQL注入攻击允许绕过应用程序控制直接访问和操纵底层数据库。
- 探测工具为攻击者提供了自动化工具,他们可以使用它们来确定后面要攻击的带有脆弱性的系统。IP探测、端口扫描和漏洞扫描都是使用自动化的方法来检测组织的安全控制中的薄弱点。伪装攻击使用隐形技术来模拟用户和系统。
21.8 考试要点
- 理解病毒使用的传播技术。病毒使用4种主要的传播技术来渗透系统并传播恶意有效载荷,这4种技术是文件感染、服务注入、引导扇区感染和宏感染,从而渗透系统和扩散它们的病毒载体。需要理解这些技术以有效地保护网络上的系统免受恶意代码侵犯。
- 知道反病毒软件包如何检测已知病毒。大多数反病毒程序使用特征型检测算法寻找已知病毒的指示模式。为了维持对新产生病毒的防护,定期更新病毒定义文件是必不可少的。
- 解释攻击者使用的损坏密码安全的攻击技术。密码是目前最常见的访问控制机制,也是必不可少的,所以需要知道如何保护以防止攻击者破坏它们的安全性。知道如何进行密码破解、字典攻击和社会工程学攻击也可以打败密码的安全性。
- 熟悉各种类型的应用程序攻击,攻击者使用这些攻击来攻击编写拙劣的软件。应用程序攻击是现代计算的最大威胁之一。攻击者还利用后门、检查时间到使用时间漏洞以及rootkit来获得对系统的非法访问。安全专家必须对每种攻击和相关控制措施有清晰的理解。
- 理解常见Web应用程序的漏洞及对策。由于许多应用程序转移到Web上,开发人员和安全专业人员必须了解存在于当今环境中的新的攻击类型,以及如何防护它们。两个最常见的例子是跨站脚本(XSS)攻击和SQL注入攻击。
- 知道攻击者准备攻击网络时使用的网络侦察技术。在发起攻击之前,攻击者使用IP扫描来找出网络中运行的主机。这些主机随后会遭到端口扫描和其他漏洞探测,从而使攻击者能够定位在目标网络中可能被攻击的脆弱之处。应该在理解这些攻击后帮助网络抵御这些攻击,限制攻击者可能收集的信息量。
参考链接:
=END=
《 “CISSP官方学习指南第7版#第21章” 》 有 3 条评论
针对跨平台后门 CrossRAT 的分析
https://objective-see.com/blog/blog_0x28.html
winspy – 一款可以创建 Windows 反向连接后门的工具
https://github.com/TunisianEagles/winspy
virii – 远古计算机病毒源代码的收集
https://github.com/guitmz/virii