信息安全简介


Basics of Information Security

我们掌握的信息越多,就越能适应周围的世界。在商业界,信息可能是一个公司最为重要的财产之一。信息如此重要,对它的保护自然也就非常重要。

信息安全(information security)有时也叫计算机安全(computer security),但值得注意的是,计算机不一定是指我们通常所指的台式机或者笔记本,计算机是任何带有处理器和一些内存的设备。如简单的不需联网的计算器,或者可以联网的智能手机。

信息安全的定义:

保护信息和信息系统免受未经授权的访问、使用、披露、干扰、修改或破坏。

简单的说,我们想保护我们的数据,对于想要窃取我们信息的人 say no. 还有一种定义为,信息安全维护信息的保密性(confidentiality)、完整性(integrity)和可用性(availability),这就是我们稍后要讲的 CIA 模型。

在一般意义上,安全意味着保护我们的资产。这可能意味着保护它们免受攻击者入侵我们的网络、自然灾害、不利的环境条件、电力故障、盗窃或破坏,或其他不良状态的影响。

但这个世界上没有绝对的安全:“唯一真正安全的系统是关闭电源,铸在混凝土块中,密封在有武装警卫看守的铅制房间里,即使这样也不敢保证百分之百安全”。即使这样保证了安全,但也没有什么意义了,因为它无法使用,没有带来生产力。通常,安全性的提升意味着生产力(productivity)的下降。

此外,在保障资产、系统或环境的安全时,我们还必须考虑安全水平与被保障物品的价值之间的关系。越安全的保障措施通常代价也更高,物品的价值值不值得我们这样做?通常遵循的准则为,我们实施安全措施的成本不应该超过它所保护的东西的价值


Unsecure Systems

我们现在考虑这样一个问题,什么时候我们才算是安全的?

  • 我们的系统有适当的补丁?
  • 我们设置了一个自己都记不住的密码?
  • 完全断网,与外界隔绝?

一般来说,即使在这些情况下我们都不能说自己是安全的。更别提对着干了,比如,下面是一些最常用的密码,看看你的是否在其中。
在这里插入图片描述


Evolution of Security

在互联网的青葱岁月,只有在学术和政府环境中才会将单个计算机连接在一起。最初,学术界的安全模式是 “广泛开放的”,而政府的安全模式是 “闭关锁国”。这很容易理解,在学术界,目标是公开分享信息,所以安全控制仅限于记账,对计算机时间的使用收取费用。

当企业在 20 世纪 90 年代初至中期开始广泛采用互联网作为销售渠道和商业工具时,就需要一种新的安全模式了。闭关锁国显然不可以使用了,不然还谈什么买卖交易。而开放式的模式也不合适,因为需要保护每个客户的隐私。因此,电子商务需要一种混合的方法,以受控的方式提供对数据的有限访问,这是比早期安全模式所使用的更复杂的方法。

随着科技的发展,信息会通过多种渠道与众多消费者共享,如下图所示:

在这里插入图片描述

现在,现代安全产品的设计是为了平衡互联网上的业务需求,同时保护其免受各种潜在的威胁。安全的基本假设如下:

  • 我们想要保护自己的资产
  • 我们的资产存在安全隐患
  • 我们想要尽可能减轻受威胁的程度

这也可以用 3 Ds 来描述:defence, detection, deterrence.

  • Defence: 防御性措施降低了有价值的资产被成功破坏的可能性,从而降低了风险,并节省了事后可能要弥补的费用。
  • Detection: 在对安全事件做出应对之前,总得先检测到有问题发生。
  • Deterrence: 也可以帮助减少安全问题发生的可能性,减少损失。

Build a Security Program

构建一个安全的系统,我们需要综合考虑下面这些元素:

在这里插入图片描述

为了确保我们的安全控制措施能够有效地控制环境中的风险,我们需要预测可能发生什么样的事件,或者说找出所有可能造成安全隐患的地方。我们可以从以下几方面入手,来帮助我们进行甄别:

  • Threat vectors
  • Threat sources and targets
  • Types of attacks

Threat vectors 用来描述一个安全隐患的根源以及它是如何发展,对特定对象(target)造成威胁的。Threat vectors 的一个例子是,从组织外部发给内部员工的电子邮件,包含一个非常吸引人的主题词和一个可执行的附件,而这个附件恰好是一个木马程序,如果打开就会威胁到收件人的计算机(target)。

通常,我们会用一个表格来表述 Threat vectors,包含安全隐患相应的源头(sources)以及最终的目标(targets):

Sources Threats Targets
Employee Theft Intellectual property
Contractor Loss Trade secret
Internet attacker Malfunction Operating systems
Weather Physical hazard Productivity
Accident Outage Privacy

任何联网的计算机都会受到攻击。它将不断被攻击者和恶意程序探测,以利用某些漏洞来进行攻击。大致来说,攻击类型可分为以下三类:

  • Virus:病毒是一种自我复制的程序,它利用其他主机文件或程序进行复制。 大多数病毒感染文件,因此每次执行主机文件时,病毒也会被执行。
  • Worm:计算机蠕虫使用自己的程序代码进行复制,尽管它有时也可能依赖于其他相关代码的存在来进行复制。 与计算机病毒不同,它不需要附加到现有的程序。 蠕虫几乎总是对网络造成一些伤害,即使只是消耗带宽,而病毒几乎总是损坏或修改目标计算机上的文件
  • Trojan:木马程序,或称特洛伊木马,通过冒充合法程序,被毫无戒心的用户激活而工作。它能够在计算机管理员未发觉的情况下开放系统权限、泄漏用户信息、甚至窃取整个计算机管理使用权限。

我们还可用另外一种分类方式:主动攻击(active attacks)和被动攻击(passive attacks)。被动攻击试图从系统中学习或利用信息,但不影响系统资源。 主动攻击试图改变系统资源或影响其运行。一个直观的例子如下图所示:

在这里插入图片描述

窃听监听都具有被动攻击的本性。目标是获得正在传输的信息而不是对信息进行篡改。被动攻击包括嗅探信息收集等攻击方法。

主动攻击则涉及对数据流的一些修改或创建一个虚假的数据流,可细分为四类:伪装(masquerade)、重放(replay)、篡改信息(modification of messages)和拒绝服务(denial of service)。

  • 伪装:一个实体假装成另外一个实体。伪装攻击通常包括其他形式的主动攻击之一。例如,认证序列可以在有效的认证序列发生后被捕获和重放,从而使一个只有很少特权的授权实体通过冒充拥有这些特权的实体获得额外的特权。
  • 重放:涉及到被动地捕获一个数据单元并随后重新传输,以产生未经授权的效果。
  • 篡改信息:指合法信息的某些部分被改变,或信息被延迟或重新排序,以产生未经授权的效果。
  • 拒绝服务:拒绝服务阻止或抑制了通信设施的正常使用或管理,这种攻击可能有一个特定的目标。例如,一个实体可能会抑制所有指向特定目的地的信息。另一种拒绝服务的形式是破坏整个网络,利用合理的服务请求来占用过多的服务资源,从而使合法的用户得不到服务响应。这种攻击行为使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停正提供正常的网络服务。

主动攻击和被动攻击具有相反的特性。被动攻击难以检测出来,然而有阻止其成功的方法。而主动攻击难以绝对地阻止,因为要做到这些,就要对所有通信设施、通路在任何时间进行完全的保护。因此,我们的目标是检测主动攻击,并从它们造成的任何干扰或延误中恢复。


Computer Security Model: CIA triad

Confidentiality:

  • Data Confidentiality: 确保私人或机密信息不被提供给未经授权的个人
  • Privacy: 确保个人控制或影响与他们有关的哪些信息可能被收集和储存,以及这些信息可能由谁和向谁披露

Integrity:

  • Data integrity: 保证信息(包括存储的和传输的数据包)和程序仅以指定和授权的方式进行更改
  • System integrity: 保证一个系统以不受影响的方式执行其预定功能,不受故意或无意的未经授权的系统操作

Availability: 保证系统正常工作,不拒绝向已授权用户提供服务

这三个概念构成了人们常说的 CIA三要素。这三个概念体现了数据和信息及计算服务的基本安全目标。

尽管 CIA 的体系架构已经非常成熟,但有些人还是觉得需要额外的考量,这就有了另外两个 A:CIA (AA):

在这里插入图片描述

Authenticity: 真实和能够被验证和信任的属性;对传输、信息或信息发起人的有效性的置信程度。这意味着验证用户是否是他们所表明的身份,以及到达系统的每个输入是否来自受信任的来源。

Accountability: 真正安全的系统还不是一个可实现的目标,我们必须能够追踪到安全漏洞的责任方。系统必须保持其活动的记录,以允许之后来追踪安全漏洞或帮助解决交易纠纷。


The OSI security architecture

为了有效地评估一个组织的安全需求,并评估和选择各种安全产品和策略,负责安全事务的管理者需要用一些系统的方法来定义安全要求,并确定满足这些要求的方法。在集中的数据处理环境中,这已经很困难了;随着局域网和广域网的使用,问题就更复杂了。

OSI 安全体系结构对管理者来说是有用的,它是组织提供安全任务的一种方式。此外,由于该架构是作为国际标准开发的,计算机和通信供应商已经为他们的产品和服务开发了与这种服务和机制的结构化定义有关的安全功能。OSI 安全架构主要关注于 3 方面的内容:

  • Security attack: 损害一个组织所拥有的信息安全的任何行为
  • Security mechanism: 旨在检测、防止安全攻击或从安全攻击中恢复的程序机制(或包含这种程序的设备)
  • Security service: 利用一种或多种安全机制来提供服务,旨在对抗安全攻击,加强了一个组织的数据处理系统和信息传输的安全性

Fundamentals of Security Design

尽管经过多年的研究和开发,但迄今为止还不可能开发出一套能系统地排除安全缺陷和防止所有未授权行为的安全设计和实施技术。在没有这种万无一失的技术的情况下,有一套广泛认同的设计原则,可以指导安全机制的设计,是非常有用的。

在这里插入图片描述

  • Economy of mechanism:极简原则,设计追求简单小巧。相对简单、小的设计更容易进行彻底的测试和验证。有了复杂的设计,对手就有更多的机会发现可以利用的细微弱点,而这些弱点可能很难提前发现。机制越复杂,它就越有可能拥有可利用的缺陷。
  • Fail-safe defaults:默认情况下拒绝所有操作,除非在授权许可允许的情况下。
  • Complete mediation:意味着每次访问都必须根据访问控制机制进行检查。系统不应该依赖从缓存中检索的访问决定
  • Open design:安全机制的设计应该是公开的,而不是私密的。例如,尽管加密密钥必须是保密的,但加密算法应该是公开的,可供公众监督。
  • Separation of privilege:权限分离,即需要多种权限属性来实现对受限资源的访问。一个很好的例子是多因素验证,用户要通过两种以上的认证机制之后,才能得到授权,使用计算机资源。例如,用户要输入 PIN 码,插入银行卡,最后再经指纹比对,通过这三种认证方式,才能获得授权。
  • Least privilege:计算环境中的特定抽象层的每个模块如进程、用户或者计算机程序只能访问当下所必需的信息或者资源。系统安全策略可以识别和定义用户或进程的各种角色。每个角色只被分配那些执行其功能所需的最小权限。每个权限规定了对特定资源的许可访问。
  • Least common mechanism:设计应尽量减少不同用户共享的功能。
  • Psychological acceptability:安全机制不应过度干扰用户的工作,同时满足授权访问者的需求。如果安全机制阻碍了资源的可用性,那么用户可以选择关闭这些机制。
  • Isolation:公共访问系统应与重要资源(数据、流程等)隔绝,以防止泄露或篡改;个人用户的进程和文件应该相互隔绝;安全机制应该是隔绝的,即防止对这些机制的访问。
  • Encapsulation:封装可以被看作是一种基于面向对象功能的特殊形式的隔绝。通过将程序和数据对象的集合封装在它自己的中来提供保护,这样,数据对象的内部结构只能被受保护的子系统的程序所访问,并且程序只能在指定的域入口点被调用。
  • Modularity:安全方面的模块化是指将安全功能开发为独立的、受保护的模块,以及使用模块化架构进行机制设计和实施。

Attack Surfaces & Attack Trees

攻击面是一个系统中漏洞、路径或方法(有时称为攻击媒介)的总和,黑客可以使用这些攻击媒介未经授权访问网络或敏感数据,或发起网络攻击。一些攻击面的例子:

  • 在向外的网络和其他服务器上打开端口,并在这些端口上监听代码;
  • 防火墙内部提供的服务
  • 处理传入数据、电子邮件、XML、办公文件和行业特定定制数据交换格式的代码
  • 有机会接触敏感信息的员工容易遭受社会工程攻击

社会工程会操纵人们分享他们本不该分享的信息,下载本不该下载的软件,访问本不该访问的网站,向犯罪分子汇款,或者犯下其他损害个人或组织资产或安全的错误。

由于社会工程利用的是人性弱点,而不是技术或数字系统漏洞,因此有时被称为"人性黑客攻击"。

[IBM](https://www.ibm.com/cn-zh/topics/attack-surface)

攻击面的分类:

  • Network attack surface:这一类指的是企业网络、广域网或互联网上的漏洞。这类漏洞包括网络协议漏洞,如用于拒绝服务攻击、破坏通信链路和各种形式的入侵者攻击。
  • Software attack surface:这指的是应用程序、实用程序或操作系统代码中的漏洞。这个类别的一个特别重点是网络服务器软件
  • Human attack surface:这一类是指由人员造成的漏洞,如社会工程、人为错误和受信任的内部人员(商业竞争手段,收买企业内部人员泄露机密)。

攻击面分析/管理(ASM)是一种有用的技术,用于评估系统所受威胁的规模和严重程度。对漏洞点的系统分析使开发者和安全分析员意识到哪里需要安全机制。一旦定义了攻击面,设计者就可以找到使攻击面变小的方法,从而使潜在的攻击变得更为困难。攻击面还为资产的漏洞和构成的安全风险对资产进行评分,并确定其优先级以进行威胁响应或补救。


攻击树是一个分支、分层的数据结构,它为我们提供了一种正式而条理清晰的方法来描述系统所面临的安全威胁和系统可能受到的多种攻击。 作为攻击目标的安全事件被表示为树的根节点,而攻击者可以达到该目标的方法被迭代的、渐进的表示为树的叶节点。每个叶节点的子节点定义了一个子目标,每个子目标可能有自己的一组进一步的子目标,以此类推。除叶子节点以外的每个节点都是一个 AND 节点或 OR 节点。为了实现 AND 节点所代表的目标,该节点的所有子节点所代表的子目标都必须实现;而对于 OR 节点,至少有一个子目标必须实现。

下图是一个互联网银行认证应用的攻击树分析的例子:

在这里插入图片描述

根节点是攻击者的目标,即破坏用户账户。阴影框是叶子节点,代表构成攻击的事件。除叶子节点以外的其他节点都是 OR 节点。我们可能注意到叶节点中开头的一些描述字符,它们代表不同类型的攻击:

  • User terminal and user (UT/U):这些攻击的目标是用户设备,包括智能卡或其他密码生成器,以及用户的行动
  • Communications channel:对通信链路进行攻击
  • Internet banking server (IBS):这些类型的攻击是针对承载网上银行应用程序的服务器的离线攻击

从上图中我们可以确定五种总体攻击策略(即第一层叶子节点),每种策略都利用了我们上述提到的攻击类型。

  1. User credential compromise:这种策略可以用来对付攻击面的许多元素。有程序性的攻击,如监视用户的行动以观察 PIN 码或其他凭证,或偷窃用户的令牌(token)或手写笔记。对手还可以使用各种令牌攻击工具破坏令牌信息,如黑进智能卡或使用暴力方法猜测 PIN 码。另一个可能的策略是嵌入恶意软件来破坏用户的登录和密码。对手还可能试图通过通信渠道获取凭证信息(嗅探,sniffing)

个人身份识别码(Personal identification number)简称 Pin,又译为用户个人识别号码,常被称为 PIN 码(PIN number)。 个人身份识别码是一串数字构成的通行码,用来认证使用者身份,授权他进入系统。常用于 ATM 卡与信用卡系统中。

(百度百科)

  1. Injection of commands:在这种类型的攻击中,攻击者能够截获 UT 和 IBS 之间的通信。可以使用各种方案来冒充有效用户,从而获得对银行系统的访问权限
  2. User credential guessing:通过发送随机的用户名和密码,对一些银行认证方案进行暴力攻击可能是可行的。攻击机制是基于分布式僵尸个人电脑或者基于用户名或密码的自动计算程序
  3. Security policy violation:例如,违反银行的安全政策,结合薄弱的访问控制和记录机制,员工可能会造成内部安全事件,暴露客户的账户信息
  4. Use of known authenticated session:这种类型的攻击“劝说”或强迫用户用预设的会话 ID 连接到 IBS。一旦用户验证了服务器,攻击者就可以利用已知的会话 ID 向 IBS 发送数据包,瞒天过海

A Model For Network Security

一个通用的网络安全模型如下图所示:

在这里插入图片描述

一条信息要通过某种互联网服务从一方传输到另一方。作为该交易的委托人(principals),双方必须合作才能进行信息交换。通过定义一条从源到目的地的互联网路线,并通过两个委托人合作使用的通信协议(如 TCP/IP),建立一个逻辑上的信息通道。

当需要或希望保护信息传输不受可能的保密性、完整性等威胁时,就要考虑安全方面的事儿了。所有提供安全的技术都有两个部分:

  • 对要发送的信息进行与安全有关的转换。这方面的例子包括对信息进行加密,从而使信息无法被对方读取,以及根据信息的内容添加代码,可用于验证发件人的身份。
  • 一些由两个委托人共享的保密信息,当然,攻击者最好不会知道。一个例子是一个加密密钥,传输时用于加密,收端用于解密。

一个第三方可能也是必要的。它可以负责我们刚刚所说的分发两个委托人共享的保密信息,且使它们不被攻击者窃取;或者可能需要一个第三方来仲裁两个委托人之间关于信息传输真实性的争议。

该模型告诉我们,在设计一个安全服务时,会有 4 个基本任务需要考虑:

  1. 设计一个用于执行安全相关转换的算法(如加密算法);
  2. 生成与算法一起使用的秘密信息;
  3. 制定分配和分享秘密信息的方法;
  4. 指定两个委托人使用的协议,该协议利用安全算法和秘密信息来实现特定的安全服务。

References

Cryptography and Network Security: Principles and Practice, 7th Edition, ISBN 978-0-13-444428-4, by William Stallings, published by Pearson Education.

猜你喜欢

转载自blog.csdn.net/myDarling_/article/details/128226445