文章目录
- Basics of Information Security
- Unsecure Systems
- Evolution of Security
- Build a Security Program
- Computer Security Model: CIA triad
- The OSI security architecture
- Fundamentals of Security Design
- References
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:安全方面的模块化是指将安全功能开发为独立的、受保护的模块,以及使用模块化架构进行机制设计和实施。
References
Cryptography and Network Security: Principles and Practice, 7th Edition, ISBN 978-0-13-444428-4, by William Stallings, published by Pearson Education.