第14章 控制和监控访问

14.1 比较访问控制模型

14.1.1 比较权限、权力和特权

•权限

指授予对客体的访问权限,并确定你可对其执行的操作。

如果你具有文件的读取权限,则可打开并阅读它。

你可授予用户创建、读取、编辑或删除文件的权限。

•权利

权利主要是指对某个客体采取行动的能力。

例如,用户可能有权修改计算机上的系统时间或恢复备份数据。

•特权

特权是权利和权限的组合。

例如,计算机管理员将拥有完全特权,授予管理员对计算机的完全权限。

管理员将能执行任何操作并访问计算机上的任何数据。

14.1.2 理解授权机制

访问控制模型使用许多不同类型的授权机制或方法来控制谁可访问特定客体。

常见机制和概念的简要介绍:

•隐式拒绝

访问控制的基本原则是隐式拒绝,大多数授权机制使用它。

隐式拒绝原则确保拒绝访问客体,除非已明确授予主体访问权限。

•访问控制矩阵

访问控制矩阵是包含主体、客体和分配的权限的表格。

当主体尝试操作时,系统检查访问控制矩阵以确定主体是否具有执行操作的适当权限。

•能力表(Capability Table)

能力表是识别分配给主体的权限的另一种方式。

能力表主要关注主体(如用户、组或角色),ACL主要关注客体。

能力表包括主体可访问的所有客体的列表,并包括分配给这些客体的主体角色的特定权限。

文件的ACL将列出授权访问该文件的所有用户和组以及授予每个用户和组的特定访问权限。

•约束接口

应用程序使用受约束或受限制的接口来限制用户可执行或查看的内容

拥有完全特权的用户可访问应用程序的所有功能。

特权受限的用户的访问也受限。

应用程序使用不同的方法约束接口。

(1)在用户无权使用某功能时隐藏该功能。

(2)应用程序显示菜单项但会显示为变暗或禁用。普通用户可看到菜单项但无法使用它。

•依赖内容的控制

依赖内容的访问控制根据客体内的内容限制对数据的访同。

数据库视图就是依赖内容的控制。视图从一个或多个表中检索特定列,从而创建虚拟表。

例如,数据库中的客户表可包括客户姓名、电子邮件地址、电话号码和信用卡数据。

基于客户的视图可能只显示客户姓名和电子邮件地址,但不会显示其他任何内容。

授予对视图的访问权限的用尸可查看客户姓名和电子邮件地址,但无法访问基础表中的数据。

•依赖上下文的控制

依赖于上下文的访问控制在授予用户访问权限之前需要特定的活动。

例如,考虑在线销售数字产品的交易的数据流。

用户将产品添加到购物车并开始结账流程。

结账流程中的第一页显示购物车中的产品,

下一页收集信用卡数据,

最后一页确认购买并提供下载数字产品的说明。

如果用户未首先完成购买过程,系统将拒绝访问下载页面。

也可使用日期和时间控件作为依赖于上下文的控制。

例如,可根据当前日期和时间限制对计算机和应用程序的访问。

如果用户尝试在允许的时间之外访问资源,系统将拒绝他们。

•知其所需

这个原则确保主体只能访问他们的工作任务和工作职能必须知道的内容。

主体可获得访问分类或受限数据的许可,但未获得数据授权,除非他们确实需要它来执行工作。

•最小特权

最小特权原则确保主体仅被授予执行其工作任务和工作职能所需的权限。

与知所必须唯一的区别是最小特权还包括对系统采取行动的权利

•职责和责任分离

职责分离原则确保将敏感职能分为两个或多个员工执行的任务。

通过创建一个检查和制衡系统来防止欺诈和错误

14.1.3 使用安全策略定义需求

安全策略是定义组织安全要求的文档。

它确定了需要保护的资产、保护它们的安全解决方案以及应该达到的程度。

有些组织将安全策略创建为单个文档,而其他组织创建多个安全策略,每个策略都集中在一个单独的区域。

策略是访问控制的一个重要元素,因为它们可帮助组织内的人员了解哪些安全要求很重要。

高级领导批准安全策略,并在此过程中提供组织安全需求的广泛概述。

但安全策略通常不会详细介绍如何满足安全需求或如何实施策略。

例如,它可能表明需要实施和执行职责分离和最小特权原则,但不说明如何做。

组织内的专业人员使用安全策略作为实施安全要求的指南。

14.1.4 实施纵深防御

组织使用纵深防御策略实施访问控制。

这使用多个层级的访问控制来提供分层安全性。

纵深防御的概念突出了几个重点:

组织的安全策略是管理访问控制之一,它通过定义安全要求为资产提供了一层防御。

人员是防御的关键组成部分。

但他们需要适当的培训和教育来实现,遵守和支持组织安全策略中定义的安全元素。

管理、技术和物理访问控制的组合提供了更强大的防御。

如果仅使用管理、技术或物理控制中的一种,攻击者可能发现可利用的弱点。

14.1.5 总结访问控制模型

五种访问控制模型:

•自主访问控制(Discretionary Access Control, DAC)

自主访问控制模型的一个关键特征是每个客体都有一个所有者,所有者可授予或拒绝其他任何主体的访问。

例如,如果你创建了一个文件,则你是文件的所有者并可授予任何其他用户访问该文件的权限。

在微软Windows的NTFS文件系统使用DAC模型。

•基于角色的访问控制(Role Based Access Control, RBAC)

基于角色的访问控制模型的一个关键特征是角色或组的使用

用户账户不是直接向用户分配权限,而是放置在角色中,管理员为角色分配权限。

这些角色通常由职责功能标识。如果用户账户处于某角色中,则用户具有该角色的所有权限。

微软Windows操作系统使用组实现此模型。

•基于规则的访问控制

基于规则的访问控制模型的一个关键特征是它采用适用于所有主体的全局规则

例如,防火墙使用的规则允许或阻止所有用户的流量。

基于规则的访问控制模型中的规则有时被称为“限制”或“过滤器”

•基于属性的访问控制(Attribute Based Access Control, ABAC)

基于属性的访问控制模型的一个关键特征是它使用可包含多个属性的规则

这使得它比基于规则的访问控制模型更灵活,该模型将规则平等地应用于所有主体

许多软件定义网络使用ABAC模型。

此外,ABAC允许管理员使用简单语言在策略中创建规则,例如“允许管理员使用移动设备访问WAN“。

•强制访问控制(Mandatory Access Control, MAC)

强制访问控制模型的一个关键特征是使用应用于主体和客体的标签

例如,如果用户具有绝密标签,则可以被授予对绝密文档的访问权。

在此示例中,主体和客体都具有匹配的标签。

当在表格中记录时,MAC模型有时类似于格子,因此它被称为基于格子(Lattice) 的模型

14.1.6 自主访问控制(Discretionary Access Control, DAC)

采用自主访问控制的系统允许客体的所有者、创建者或数据托管员控制和定义对该客体的访问。

所有客体都拥有所有者,访问控制权基于所有者的自由裁量权或决定权。

例如,如果用户创建新的电子表格文件,则该用户既是文件的创建者,又是文件的所有者。

作为所有者,用户可以修改文件的权限以授予或拒绝其他用户的访问权限。

数据所有者还可将日常任务委派给数据托管员处理数据,从而使数据托管员能够修改权限。

基于身份的访问控制是DAC的子集,因为系统根据用户的身份识别用户并将资源所有权分配给身份。

使用客体访问控制列表(ACL)实现DAC模型。每个ACL定义授予或拒绝主体的访问类型。

它不提供集中控制的管理系统,因为所有者可以随意更改其客体的ACL。

客体的访问很容易改变,与强制访问控制的静态特性相比时更是如此。

微软Windows系统使用DAC模型来管理文件。

每个文件和文件夹都有一个ACL, 用于标识授予任何用户或组的权限,并且所有者可修改权限。

在DAC环境中,管理员可在外出时(如休假期间)轻松暂停用户权限。

同样,当用户离开组织时,很容易禁用账户。

14.1.7 非自主访问控制

自主访问控制和非自主访问控制之间的主要区别:

非自主访问控制:管理员集中管理非自主访问控制,并可进行影响整体环境的更改。

自主访问控制:允许所有者进行自己的更改,并且他们的更改不会影响环境的其他部分

在非DAC模型中,访问不关注用户身份。

相反,采用管理整个环境的静态规则集管理访问。

非DAC系统集中控制,易于管理(虽然不够灵活)。

1.基于角色的访问控制(Role Based Access Control, RBAC)

采用基于角色或基于任务的访问控制的系统,定义主体基于主体角色或分配任务访问客体的能力。

基于角色的访问控制(RBAC)通常使用组来实现。

例如,银行可能有信贷员、柜员和经理。管理员可创建一个名为“信贷员”的组,

将每个信贷员的用户账户放入该组,然后为该组分配适当的权限。

如果组织雇用新的信贷员,管理员只需要将新的信贷员的账户添加到“信贷员”组中,

新员工将自动拥有与该组中其他信贷员相同的权限。

管理员将对柜员和经理采取类似的步骤。

RBAC有助于阻止特权蠕变,强制执行最小特权原则。

管理员只需要从组中删除用户的账户即可轻松撤消不需要的权限。

只要管理员从组中删除用户,用户就不再具有该组的权限。

例如,如果一个信贷员转移到另一部门,管理员可简单地从信贷员组中删除信贷员的账户。

这会立即从用户的账户中删除所有信贷员组的权限。

管理员按职务描述或工作职能识别角色(和组)。

许多情况下,这遵循组织架构图中记录的组织层次结构。

处于管理岗位的用户将比临时工作中的用户拥有更多的资源访问权限。

RBAC在频繁更改人员的动态环境中非常有用,因为管理员只需要将新用户添加到适当的角色即可轻松授予多个权限。

值得注意的是,用户可属于多个角色或组。

例如,使用相同的银行业务情景,经理可能属于经理角色、信贷员角色和柜员角色。

这允许管理员访问其员工可访问的所有相同资源。

微软操作系统使用组实现RBAC。

某些组(例如本地Administrators组)是预定义的。

但管理员可创建其他组以匹配组织中使用的工作职能或角色。

DAC和RBAC都可以使用组将用户组织成可管理的单元,但它们的部署和使用方式不同。

在DAC模型中,客体有所有者,所有者确定谁有权访问。

在RBAC模型中,管理员确定主体权限并为角色或组分配适当的权限。

在严格的RBAC模型中,管理员不直接为用户分配权限,而只是通过向角色或组添加用户账户来授予权限。

基于任务的访问控制(Task Based Access Control, TBAC)

TBAC与RBAC类似,但不是分配给一个或多个角色,而是为每个用户分配一组任务

这些项目都与为用户账户关联的人员分配的工作任务相关。

在TBAC下,重点是通过分配的任务而不是用户身份来控制访问。

2. 基于规则的访问控制

基于规则的访问控制模型使用一组规则、限制或过滤器来确定系统上可以和不可以发生的操作。

它包括授予主体对客体的访问权限,或授予主体执行操作的权限。

基于规则的访问控制模型的一个显著特征是它们具有适用于所有主体的全局规则

基于规则的访问控制模型的一个常见示例是防火墙

防火墙包括ACL中的一组规则或过滤器,由管理员定义。

防火墙会检查通过它的所有流量,只允许符合其中某条规则的流量通过。

防火墙包括拒绝所有其他流量的最终规则(称为隐式拒绝规则)。

其他时候,隐式拒绝规则被暗示为最终规则,但未在ACL中明确说明。

3. 基于属性的访问控制(Attribute Based Access Control, ABAC)

传统的基于规则的访问控制模型包括适用于所有主体(例如用户)的全局规则。

基于规则的访问控制的高级实现是基于属性的访问控制(ABAC)模型。

ABAC模型使用包含规则的多个属性的策略。许多软件定义网络应用程序使用ABAC模型。

属性几乎可以是用户、网络和网络上的设备的任何特征。

例如,创建了一个软件定义广域网(SD-WAN)解决方案,实施允许或阻止流量的策略。

管理员使用简单语言语句创建ABAC策略,例如“允许管理员使用平板电脑或智能手机访问WAN”。

基于规则的访问控制适用于所有用户,但ABAC更加具体。

4. 强制访问控制(Mandatory Access Control, MAC)

强制访问控制(MAC)模型依赖于分类标签的使用。每个分类标签代表一个安全域或安全领域。

安全域是共享共同安全策略的主体和客体的集合。

私营组织经常使用机密(或专有)、私有、敏感和公开等标签。

虽然政府使用法律规定的标签,但私营组织可以自由使用他们选择的任何标签。

MAC模型通常被称为基于格子的模型

标记为“机密”“私有““敏感”和“公开”的水平线标记分类级别的上限。

例如,公开和敏感之间的区域包括标记为敏感(上边界)的客体。

具有敏感标签的用户可以访问敏感数据。

MAC模型还允许标签识别更多定义的安全域。

这些都包括机密数据,但在单独的隔离区进行维护,以增加保护层。

具有机密标签的用户还需要附加标签才能访问这些隔离区中的数据。

例如,要访问扁豆(Lentil)数据,用户需要同时拥有机密标签和扁豆标签。

具有敏感标签的用户可被授予对具有敏感标签的任何数据的访问权限。

组织内的人员识别标签并定义其含义以及获取标签的要求。

然后,管理员将标签分配给主体和客体。

在标签就位后,系统根据分配的标签确定访问权限。

使用MAC模型进行划分强制要求了解原则。

具有机密标签的用户不会自动被授予对机密部分内的隔离专区的访问权限。

但是,如果他们的工作要求他们可以访问某些数据,

MAC模型是禁止的而不是宽容的,它使用隐式拒绝原则。

如果未特别授予用户访问数据的权限,则系统会拒绝用户访问相关数据。

MAC模型比DAC模型更安全,但它不具有灵活性或可扩展性

安全分类表示敏感度的层次结构。

MAC模型中的分类使用以下三种类型的环境之一。

•分层环境

分层环境将有序结构中的各种分类标签分别从低安全性到中等安全性,再到高安全性,例如机密、秘密和绝密。

结构中的每个级别或分类标签都是相关的。

一个级别的许可允许主体访问该级别中的客体以及较低级别的所有客体,但禁止访问更高级别的所有客体。

例如,拥有绝密许可的人可以访问绝密数据和秘密数据。

•分区环境

在分区环境中,一个安全域与另一个安全域之间没有关系。

每个域代表一个单独的隔离区间。要访问客体,主体必须具有其安全域的特定许可。

•混合环境

混合环境结合了分层和分区概念,因此每个层次级别可能包含与安全域的其余部分隔离的众多子部分。

主体必须具有正确的许可并且需要知道特定隔离区间内的数据以获得对隔离客体的访问。

混合MAC环境提供对访问的精细控制,但随着它的发展,会越来越难以管理。

图14.3 是混合环境的示例。

14.2 了解访问控制攻击

访问控制的目标之一是防止对客体的未授权访问。

除了控制访问外,IT安全方法还旨在防止未经授权的、泄露和未经授权的更改,并提供一致的资源可用性。

14.2.1 风险要素

术语:

风险(risk),威胁利用漏洞导致诸如资产损害等损失的可能性。

威胁(threat),可能导致不良后果的潜在事件。

包括犯罪分子或其他攻击者的潜在攻击,还包括洪水或地震等自然灾害以及员工的意外行为。

漏洞(vulnerability),任何类型的弱点。

弱点(weakness),可能是由于硬件或软件的缺陷或限制,或者缺少安全控制,例如计算机上没有反病毒软件。

风险管理试图通过实施控制或对策来减少或消除漏洞,或减少潜在威胁的影响。

消除风险是不可能或不可取的。

相反,组织专注于降低可能对组织造成最大伤害的风险。

安全专业人员在风险管理过程早期完成的关键任务如下:

• 识别资产

• 识别威胁

• 识别漏洞

14.2.2 识别资产

资产评估是指确定资产的实际价值,目标是确定资产的优先级。

风险管理侧重于具有最高价值的资产,并确定控制措施以降低这些资产的风险。

资产的价值不仅是购买价格,还包含销售收入和客户商誉损失

例如,托管电子商务网站的服务器每天产生10000美元的销售额。这比硬件和软件的成本更有价值。

如果此服务器故障导致网站不可用,则会导致直接销售收入损失和客户商誉损失。

了解资产价值也有助于成本效益分析,该分析旨在确定不同类型的安全控制成本效益。

例如,如果一项资产价值数十万美元,那么有效的安全控制就要花费100美元是有道理的。

相比之下,花几百美元来防止盗窃10美元的鼠标不是合理的支出。

相反,组织通常会接受低价值资产相关的风险。

在访问控制攻击的背景下,评估数据的价值非常重要。

例如,如果攻击者危害数据库服务器并下载包含隐私数据和信用卡信息的客户数据,则会对公司造成重大损失。

这并不总是很容易量化,但对Equifax的攻击提供了一些观点。

14.2.3 识别威胁

在确定资产并确定其优先级后,组织会尝试识别对有价值系统的任何可能威胁。

威胁建模是指识别、理解和分类潜在威胁的过程。目标是确定这些系统的潜在威胁列表并分析威胁

威胁建模并不一定是单一事件。

相反,组织通常在系统的设计过程中尽早开始威胁建模,并在整个生命周期中继续进行

例如,微软使用其安全开发生命周期流程来考虑并在产品开发的每个阶段实施安全性。

这支持“设计安全,默认安全,部署和通信安全”(也称为SD3+C)的座右铭。

微软在此过程中有两个主要目标:

• 减少与安全相关的设计和编码缺陷的数量

• 降低任何剩余缺陷的严重程度

1. 高级持续性威胁(Advanced PersistentThreats, APT)

APT是一群攻击者,他们一起工作,具有高度的积极性、技能和耐心。

他们拥有先进的知识和各种技能来检测和利用漏洞。

它们是持久的,专注于利用一个或多个特定目标,而不仅仅是临时目标。

国家(或政府)通常为APT提供资金。然而,一些有组织的犯罪分子也资助和运营APT。

如果组织将攻击者识别为潜在威胁(而不是自然威胁),则威胁建模会尝试识别攻击者的目标

一些攻击者可能想要禁用系统,而其他攻击者可能想要窃取数据,而每个目标都代表一个单独的威胁。

一旦组织识别出这些威胁,就会根据相关资产的优先级对它们进行分类

2. 威胁建模方法

威胁的可能性几乎是无限的,因此很难使用结构化方法来识别相关威胁。

相反,许多组织使用以下三种方法中的一种或多种来识别威胁:

专注于资产

此方法使用资产评估结果并尝试识别对有价值资产的威胁。

人员评估特定资产以确定其易受攻击的可能性。

如果资产承载了数据,则人员会评估访问控制以识别可绕过身份验证或授权机制的威胁。

专注于攻击者

一些组织根据攻击者的目标识别潜在的攻击者并识别他们所代表的威胁。

例如,政府通常能识别潜在的攻击者并识别攻击者想要实现的目标。

然后,他们可利用这些知识来识别和保护相关资产。

然而,由于其他国家赞助了如此多的APT, 这种方法变得越来越困难。

专注于软件

大多数组织都存在网络,许多组织创建自己的网站

花哨的网站吸引了更多流量,但它们也需要更复杂的编码并带来额外的威胁

14.2.4 识别漏洞

在识别有价值的资产和潜在威胁后,组织将执行漏洞分析。

换句话说,它试图发现这些系统中针对潜在威胁的弱点。

在访问控制方面,漏洞分析试图确定不同访问控制机制的优缺点,以及利用弱点的潜在威胁。

漏洞分析是一个持续的过程,可包括技术和管理步骤。

在大型组织中,有全职漏洞分析人员,定期执行漏洞扫描,查找各种漏洞,并报告结果

在较小组织中,网络管理员可定期执行漏洞扫描,如每周一次或每月一次。

14.2.5 常见的访问控制攻击

访问控制攻击试图绕过或规避访问控制方法。

访问控制从识别和授权开始,访问控制攻击通常试图窃取用户凭据。

在攻击者窃取了用户的凭据后,他们可通过用户身份登录并访问用户的资源来发起在线模拟攻击。

在其他情况下,访问控制攻击可绕过身份验证机制,仅窃取数据。

与访问控制直接相关的一些常见攻击:

1. 访问聚合攻击

访问聚合是指收集多条非敏感信息并将它们组合(即聚合)以获得敏感信息。

换句话说,个人或团体可能收集有关系统的多个事实,然后使用这些事实来发动攻击。

侦察攻击是一种访问聚合攻击,它结合了多种工具来识别系统的多个元素,

例如IP地址、开放的端口、运行的服务、操作系统等。

攻击者还对数据库使用聚合攻击。

结合纵深防御、知其所需和最小特权原则有助于防止访问聚合攻击。

2. 密码攻击

密码是最弱的身份验证形式,并且存在许多密码攻击。

如果攻击者成功进行密码攻击,则攻击者可获得账户权限并访问授权资源。

如果攻击者发现root或管理员密码,则攻击者可访问任何其他账户及其资源。

如果攻击者在高安全性环境中发现特权账户的密码,则环境的安全性永远不会再次完全受信。

攻击者可能已创建其他账户或后门来访问系统。组织可以选择重建整个系统而不是接受风险。

强密码有助于防止密码攻击。

密码不应以明文形式存储

相反,它们通常使用强散列函数(如SHA-3)进行散列,并存储密码的散列。

当用户进行身份验证时,系统会对提供的密码进行散列处理,并且通常以加密格式将散列值发送到身份验证服务器。

验证服务器解密接收的散列,然后将其与存储的用户散列进行比较。

如果散列匹配,则用户的身份验证通过。

散列密码时使用强散列函数很重要。

当组织使用弱散列函数时,许多密码攻击都会成功,例如MD5。

更改默认密码也很重要。

虽然IT专业人员了解这一点,但这种知识并未很好地扩展到嵌入式系统。

嵌入式系统是具有专用功能的任何设备,并且包括执行该功能的计算系统。

例如,一个操作网络并从客户的水表收集数据的嵌入式系统。

如果未更改默认密码,则任何知道密码的人都可以登录并导致问题。

3. 字典攻击

字典攻击是尝试通过使用预定义数据库中的每个可能密码或公共或预期密码列表来发现密码。

换句话说,攻击者从字典中常见的单词数据库开始。

字典攻击数据库还包括通常用作密码但在字典中找不到的字符组合。

例如,你可能会在许多密码破解字典中看到之前提到的已发布的Ashley Madison账户数拟库中找到的密码列表。

此外,字典攻击通常会扫描一个一次性构造的密码。

一次性构造的密码是以前使用过的密码,但是以前的密码有一个字符不同。

例如,password1 是password的一次性构造密码,还有Password、1password和passXword。

4. 暴力攻击

暴力攻击是通过系统地尝试所有可能的字母、数字和符号组合来尝试发现用户账户的密码。

攻击者通常不会手动输入这些内容,而是让程序自动尝试所有组合

混合攻击会尝试字典攻击,然后使用一次性构造的密码执行暴力攻击。

与简单密码相比,更长、更复杂的密码而要更多时间,而且破解成本也更高。

随着可能性的增加,执行彻底攻击的成本也会增加。

换句话说,密码越长、包含的字符类型越多,应对暴力攻击的能力就越强。

密码和用户名通常存储在安全系统上的账户数据库文件中。

但系统和应用程序通常散列密码,并且只存储散列值而不是存储明文密码。

当用户使用散列密码进行身份验证时,会经历以下三个步骤。

(1) 用户输入用户名和密码等凭据。

(2) 用户的系统对密码进行散列操作并将散列发送到验证系统。

(3) 验证系统将此散列与存储在密码数据库文件中的散列进行比较。如果匹配,则表示用户输入了正确的密码。

这提供了两个重要的保护。

•密码不会以明文形式在网络上传输,明文传输容易受到嗅探攻击。

•密码数据库不以明文形式存储密码,明文存储使得攻击者在访问密码数据库时更容易发现密码。

但是,密码攻击工具会查找密码,该密码会创建与存储在账户数据库文件中的条目相同的散列值。

如果他们成功,他们可以使用密码登录该账户。

例如,假设密码IPassed具有1A5C7G十六进制的存储散列值(尽管实际散列值会更长)。

暴力密码工具将采取以下步骤:

(1) 猜测密码。

(2) 计算密码的散列值。

(3) 将计算的散列值与离线数据库中存储的散列值进行比较。

(4) 重复步骤(1)到(3) ,直到猜到的密码与存储的密码具有相同的散列值。

这也称为比较分析

当密码破解工具找到匹配的散列值时,它表示猜测的密码很可能是原始密码。

攻击者现在可使用此密码来模拟用户。

如果两个单独的密码产生相同的散列,则会导致散列碰撞

理想情况下,碰撞是不可能的,但一些散列函数(如MD5)是会有碰撞的。

攻击者创建不同的密码,使密码生成与账户数据库中的散列密码相同的散列。

这是不推荐使用MD5散列密码的原因之一。

许多攻击者正在使用GPU进行暴力攻击

通常,GPU比台式计算机中的大多数CPU具有更高的处理能力。

通过互联网快速搜索,可了解如何以低于10000美元的价格创建多GPU计算机,

并在购买部件后的几个小时内就能安装完成。

Mandylion研究实验室创建了一个Excel电子表格,显示了破解密码的速度。

随着CPU和GPU变得越来越好,系统可以尝试猜测密码的数量也不断增加。

我们假设系统每秒可以尝试3500亿个密码,下面显示了破解不同密码组合所需的时间:

• 8个字符(6个小写字母,1个大写字母,1个数字):不到一秒钟

• 10个字符(8个小写字母,1个大写字母,1个数字): 1.29小时

• 12个字符(10个小写字母,1个大写字母,1个数字):大约36天

• 15个字符(13个小写字母,1个大写字母,1个数字):大约1753年

随着处理器越来越好、越来越便宜,攻击者可更轻松地将更多处理器以集群方式添加到一个系统中。

这允许系统每秒尝试更多密码,减少了破解更长密码所需的时间。

5. 生日攻击

生日攻击的重点是寻找碰撞。生日攻击名称来自一个被称为生日悖论的统计现象。

生日悖论指出,如果一个房间里有23个人,那么其中任何两个人有相同生日的可能性为50%。

这不是指同一年,而是相同的月份和日期,例如3月30日。

遇到闰年,一年有366天。

在一个房间里有367人,100%的机会任意两个人的生日在一天。

当房间里的人数减少到23人时,仍有50%的概率任意两个人生日是同一天。

这类似于查找具有相同散列的任何两个密码。

如果散列函数只能创建366个不同的散列值,那么只有23个散列值样本的攻击者有50%的机会发现具有相同散列值的两个密码。

散列算法可创建超过366个不同的散列,但重点是生日攻击方法不需要查看和匹配所有可能的散列。

从另一个角度看,想象一下你是房间里的一个人,你想找到和你在同一天出生的人。

在这个例子中,你需要253个人才能达到50%概率有另一个人和你同一天生日。

类似地,某些工具可能提供另一个密码,该密码会创建给定散列的相同散列值。

例如,如果你知道管理员账户密码的散列是1A5C7G,则某些工具可识别将要创建与1A5C7G相同散列的密码。

它不一定是相同的密码,但如果它可创建相同的散列,就会像真实密码一样有效。

你可通过使用具有足够长度比特的散列算法,并使用使冲突不可行,

从而降低生日攻击成功的概率。

SHA-3(安全散列算法版本3的简称)可使用多达512位,并被认为可安全地抵御生日攻击和冲突,至少目前是这样。

计算能力在不断提高,因此在某些时候SHA-3将被另一个散列算法取代,使用更长的散列或采用更强的密码学方法。

6. 彩虹表攻击

通过猜测密码,对密码执行散列操作,然后将其与有效密码散列进行比较,需要很长时间才能找到密码。

但彩虹表通过使用预先计算的散列值的大型数据库来缩短此时间。

攻击者猜测密码(使用字典或暴力方法),执行散列操作,然后将猜测的密码和猜测密码的散列值放入彩虹表中。

然后,密码破解者可将彩虹表中的每个散列与被盗密码数据库文件中的散列进行比较。

传统的密码破解工具必须猜测密码并在比较之前对其进行散列,这需要时间。

然而,当使用彩虹表时,密码破解者不会花费任何时间猜测和计算散列值。

它只是比较散列值直至找到匹配项。这可显著缩短破解密码所需的时间。

许多系统通常使用密码来降低彩虹表攻击的有效性。

是在对其进行散列之前添加到密码的一组随机位。加盐使彩虹表攻击变得更困难。

两种常用的加盐密码算法:Bcrypt和PBKDF2(基于密码的密钥派生函数2)。

但是,如果有足够的时间,攻击者仍可使用暴力攻击破解加盐密码。

胡椒添加到加盐密码会增加安全性,使其更难破解。

盐是存储在包含散列密码的同一数据库中的随机数,因此如果攻击者获取数据库,也会拥有密码的盐。

胡椒是存储在别处的大常数,例如服务器上的配置值或存储在应用程序代码中的常量。

虽然加盐密码的做法是专门为阻止彩虹表攻击而引入的,但它也削弱了离线字典和暴力攻击的有效性。

这些脱机攻击必须计算猜测密码的散列值,如果存储的密码包含盐,则攻击会失败,除非他们也发现了盐。

同样,使用存储在数据库外部的胡椒来保存加盐的散列密码使得所有这些攻击更困难。

7. 嗅探器攻击(也称为窥探攻击或窃听攻击)

嗅探捕获通过网络发送的数据包,目的是分析数据包。

嗅探器(也称为数据包分析器或协议分析器)是一种软件应用程序,用于捕获通过网络传输的流量。

管理员使用嗅探器来分析网络流量并解决问题。

当然,攻击者也可使用嗅探器。

当攻击者使用嗅探器捕获通过网络传输的信息时,会发生嗅探攻击。

它们可捕获和读取通过网络以明文形式发送的任何数据,包括密码。

以下技术可防止成功的嗅探攻击:

加密通过网络发送的所有敏感数据(包括密码)。

攻击者无法使用嗅探器轻松读取加密数据。

例如,Kerberos会加密票据以防止攻击,攻击者无法使用嗅探器轻松读取这些票据的内容。

• 在无法加密或加密不可行时使用一次性密码

一次性密码阻止了嗅探攻击的成功,因为它们只使用一次。

即使攻击者捕获了一次性密码也无法使用它。

• 通过物理安全保护网络设备。

控制对路由器和交换机的物理访问可防止攻击者在这些设备上安装嗅探器。

监控网络以获取嗅探器的签名。

入侵检测系统可监控网络中的嗅探器,并在检测到网络嗅探器时发出警报。

8. 欺骗攻击

欺骗(也称为伪装)假装成某种东西,或某个人。

有各种欺骗攻击。

例如,攻击者可使用其他人的凭据进入建筑物或访问IT系统。

某些应用程序欺骗合法登录屏幕

一次攻击提供一个与操作系统登录屏幕完全相同的界面

当用户输入凭据时,虚假应用程序捕获了用户的凭据,攻击者稍后使用这些凭据。

一些网络钓鱼攻击模仿虚假网站

IP欺骗攻击:攻击者用虚假的IP地址替换有效的源IP地址以隐藏其身份或模拟受信任的系统。

•电子邮件欺骗

垃圾邮件发送者通常在“发件人”字段中使用假冒的电子邮件地址,以使电子邮件看起来来自其他发件人。

网络钓鱼攻击经常这样做诱使用户认为电子邮件来自可信发件人。

“回复”字段可以是不同的电子邮件地址,并且在用户回复电子邮件之前,电子邮件程序通常不会显示此信息。

到这个时候,经常忽视它。

•电话号码欺骗

来电显示服务允许用户识别任何来电者的电话号码。

电话号码欺骗允许呼叫者用另一个号码替换该号码,这是VoIP系统上的常用技术。

技术攻击者最近一直在使用的是用一个电话号码替换实际的主叫号码,该电话号码包含与被叫号码相同的区号。

这使它看起来像是本地电话。

9. 社会工程攻击

有时,获取某人密码的最简单方法是直接索要,这是社会工程师常用的方法。

当攻击者试图通过使用欺骗手段(例如虚假奉承或模仿)或使用纵火行为来获取某人的信任时,社会工程就会发生。

攻击者试图诱骗人们泄露他们通常不会泄露的信息或执行他们通常不会执行的操作。

社会工程师的目标通常是访问IT基础架构或物理设施

例如,熟练的社会工程师可以说服未受过培训的服务台员工,

声称他们与高层管理人员联系并远程工作但忘记了他们的密码。

如果被欺骗成功,员工可重置密码并向攻击者提供新密码。

此外,社会工程师会诱使普通用户泄露自己的密码,从而为攻击者提供访问账户的权限。

教育员工采用普遍的社会工程防御策略培训会降低此类攻击的有效性。

社会工程攻击可通过电话、面对面和通过电子邮件发生。

攻击者经常冒充技术维修人员(如电话维修人员)来获取物理访问权限。

如果他们可访问网络基础设施,则可安装嗅探器来捕获敏感数据。

提供访问权限之前验证访客身份可缓解此类攻击。

肩窥:社会工程师只是试图越过受害者肩膀查看计算机屏幕上的信息或在受害者输入时观察键盘操作。

放置在显示器上的屏幕过滤器可限制攻击者的视图。

此外密码屏蔽(显示替代字符,如星号而不是实际密码字符)通常用于减轻肩窥的危害。

10. 网络钓鱼

网络钓鱼是一种社会工程,它试图欺骗用户放弃敏感信息,打开附件或点击链接。

它经常试图通过伪装成合法公司来获取用户名或个人身份信息(PII), 如用户名、密码或信用卡详细信息。

攻击者不加选择地将网络钓鱼电子邮件作为垃圾邮件发送,不管收件人是谁,但希望有些用户会做出回应。

网络钓鱼电子邮件有时会告知用户虚假问题,并声称如果用户没有采取行动,公司将锁定用户的账户。

例如,电子邮件可能声称公司检测到该账户存在可疑活动,除非用户验证用户名和密码信息,否则公司将锁定该账户。

简单的网络钓鱼攻击会通知用户出现问题,并要求收件人使用其用户名,密码和其他详细信息回复电子邮件。

发件人电子邮件地址通常是看起来合法的假冒地址,这个地址是由攻击者控制的账户。

复杂的攻击包括指向看似合法的虚假网站的链接。

例如,如果网络钓鱼电子邮件描述了PayPal账户的问题,会提供一个看起来像PayPal的虚假网站。

如果用户输入凭据,则网站会捕获这些凭据并将其传递给攻击者。

其他时候发送网络钓鱼电子邮件的目的是在用户系统上安装恶意软件

该消息可能包含受感染的文件附件,并诱导用户打开它。

还可能包含指向网站的链接,在用户不知情的清况下自行下载并安装恶意软件。

一些恶意网站试图欺骗用户下载和安装软件

例如,近年来勒索软件在攻击者中非常受欢迎。

勒索软件:是一种恶意软件,可控制用户的系统或数据,并阻止用户访问,直到用户支付费用或赎金为止。

攻击者通过恶意附件传递它,并诱导用户下载和安装。

在制作网络钓鱼电子邮件时,攻击者经常使用社交媒体来识别人与人之间的友谊或关系。

举个例子,假设你在社交网站上有一个非常活跃的好姐妹,你与她有联系。

攻击者注意到此关系,然后使用欺骗性电子邮件地址向你发邮件,该地址看起来像你姐妹的。

这些邮件通常只有一行内容,例如“看看这个“或“我认为你可能会喜欢这个“。

点击该链接会将你带到一个恶意网站,并尝试进行偷渡式下载。

通过遵循一些简单规则,可以避免与网络钓鱼相关的一些常见风险:

• 怀疑意外的电子邮件或来自未知发件人的电子邮件。

• 切勿打开意外的电子邮件附件。

• 切勿通过电子邮件分享敏感信息。

• 怀疑电子邮件中的任何链接。

网络钓鱼攻击有多种变种,包括鱼叉式网络钓鱼、网络钓鲸和语音网络钓鱼。

11. 鱼叉式网络钓鱼

鱼叉式网络钓鱼是一种针对特定用户群体的网络钓鱼形式,例如特定组织内的员工。

它似乎源自组织内的同事或来自外部的协作者。

例如,攻击者利用Adobe PDF文件中的零日漏洞,允许他们嵌入恶意代码。

如果用户打开该文件,则会将恶意软件安装到用户的系统上。

攻击者将PDF文件命名为“合同指南”,并在电子邮件中说明它提供了有关合同授予流程的最新信息。

然后他们将电子邮件发送到知名政府承包商(如洛克希德·马丁公司)的邮箱。

如果任何承包商打开该文件,就会在其系统上安装恶意软件,使攻击者可远程访问被感染的系统。

12. 网络钓鲸

网络钓鲸是网络钓鱼的一种变体,针对高级管理人员,如首席执行官(CEO)和公司总裁。

一场著名的捕鲸攻击针对约20000名企业高管,他们通过电子邮件确认每位收件人的姓名,并说明他们已被传唤出席陪审团。

邮件包含一个链接,以获取有关传票的更多信息。

如果他们点击了该链接,则网站上的消息会提示他们需要安装浏览器插件才能读取该文件。

批准安装该插件的高级管理人员安装了恶意软件,该软件记录了他们的击键,从而捕获了他们访问的不同网站的登录凭据。

它还使攻击者可远程访问受害者的系统,允许攻击者安装其他恶意软件,或读取系统上的所有数据。

13. 语音网络钓鱼

虽然攻击者主要通过电子邮件发起网络钓鱼攻击,但他们还使用其他手段欺骗用户,例如即时消息(IM)和VoIP

语音网络钓鱼是使用电话系统或VoIP的网络钓鱼的变种。

常见攻击使用对用户的自动呼叫,声称用户的信用卡账户存在问题。

诱导用户验证或确认卡背面的信用卡号、有效期和安全码等信息。

语音网络钓鱼攻击通常使用来电显示号码欺骗方式冒充有效的银行或金融机构

14. 智能卡攻击

智能卡提供比密码更好的身份验证,尤其是当它们与其他身份验证因素(如PIN)结合使用时

但智能卡也容易受到攻击。

侧信道攻击是一种被动的非侵入性攻击,旨在观察设备的操作。

攻击成功后,攻击者可了解卡中包含的有价值信息,例如加密密钥。

智能卡包括微处理器,但它没有内部电源,当用户将卡插入读卡器时,读卡器为卡提供电源。

读卡器有一个电磁线圈,可激活卡上的电子元件。这为智能卡提供了足够的电力将数据传输到读卡器。

侧信道攻击分析发送给读卡器的信息。

有时,可使用电源监控攻击或差分功耗分析攻击来测量芯片的功耗,以提取信息。

在定时攻击中,可监视处理时序,以根据不同计算需要的时间来获取信息。

故障分析攻击试图制造故障,例如通过向卡提供很少的电力来收集有价值的信息。

14.2.6 保护方法综述

以下列表总结了许多防止访问控制攻击的安全预防措施。

•控制对系统的物理访问。

如果攻击者对计算机具有不受限制的物理访问权限,则攻击者就拥有了该计算机。

如果攻击者可获得对身份验证服务器的物理访问权限,他们就可在很短时间内窃取密码文件。

一旦攻击者拥有密码文件,他们就可脱机破解密码。

如果攻击者成功下载了密码文件,则应将所有密码视为己泄露。

•控制对文件的电子访间。

严密控制和监控所有重要数据的电子访问,包括包含密码的文件。

最终用户和非账户管理员不需要访问密码数据库文件以执行日常工作任务。

安全专业人员应立即调查任何未经授权的密码数据库文件访问。

•创建强密码策略。

密码策略以编程方式强制使用强密码,并确保用户定期更改其密码。

攻击者需要更多时间来破解更复杂和更长的密码。

如果有足够的时间,攻击者可在离线暴力攻击中发现任何密码,所以需要定期修改密码才能保证安全。

更安全或更敏感的环境需要更强的密码,并要求用户更频繁地更改密码。

许多组织为特权账户(如管理员账户)实施单独的密码策略,

以确保它们具有更强的密码,并且管理员比常规用户更频繁地更改密码。

•散列和加盐密码。

使用Bcrypt和PBKDF2等协议加密密码,并考虑使用外部胡椒来进一步保护密码。

结合强密码策略,使用彩虹表或其他方法很难破解加盐和加胡椒的密码。

•使用密码屏蔽。

确保应用程序永远不会在任何屏幕上以明文形式显示密码。

而是通过显示替代字符(如*)来屏蔽密码的显示。

这减少了肩窥的危害,但用户应该知道攻击者可能通过观察用户的键盘键入来收集密码。

•部署多因素身份验证。

部署多因素身份验证,例如使用生物识别或令牌设备。

当组织使用多因素身份验证时,如果攻击者只有密码,则无法访问网络。

很多在线服务(如Google)提供多因素身份验证作为额外的保护措施。

•使用账户锁定控制。

账户锁定控制有助于防止在线密码攻击

在输入错误密码达到预定义次数后,他们会锁定账户。

账户锁定控制通常使用削弱级别来忽略某些用户错误,但在达到阈值后执行锁定操作。

例如,在锁定账户前,允许用户输入错误密码多达五次是很常见的。

对于不支持账户锁定控制的系统和服务,可使用广泛的日志记录和入侵检测系统保护服务器。(例如大多数FTP服务器)

•使用上次登录通知。

许多系统显示消息,包括上次成功登录的时间、日期和位置(例如计算机名称或IP地址)。

如果用户注意此消息,他们可能注意到其他人是否登录了他们的账户。

例如,如果用户上周五登录到某个账户,但上次登录通知表明有人在星期六访问了该账户,则表明存在问题。

怀疑其他人登录其账户的用户可更改其密码或将问题报告给系统管理员。

如果这件事发生在一个组织账户上,则用户应按照组织的安全事件报告流程进行上报。

•用户安全培训。

经过适当培训的用户可更好地了解安全性以及使用更强密码的好处。

告知用户他们不应该共享或记下他们的密码。

管理员可能会记下最敏感账户的长而复杂的密码,例如管理员或root账户,并将这些密码存储在保险库或保险箱中。

向用户提供有关如何创建强密码的提示,例如密码短语以及如何防止肩窥。

此外,让用户知道对所有在线账户使用相同密码的危险,例如银行账户和游戏账户。

当用户对所有这些账户使用相同的密码时,对游戏系统的成功攻击可使攻击者访问用户的银行账户。

用户还应该了解常见的社会工程应对策略。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值