学习信息安全,我们首先需要理解CIA三元组。我们后面所有的工作其实都是围绕实现这三个要求而展开的。那我们是通过哪些手段和措施来做到这些的呢?这些保护机制你初看起了可能有点抽象,其实这些机制都是高度概括总结出来的,需要我们花点时间琢磨琢磨。我从OSG教材中,特意挑了点出来,大家可以抽空多看看。
1.1.5保护机
理解和启用机密性、完整性和可用性概念的另一方面是保护机制的概念, 保护机制是安全控制的常见特性。并非所有的安全控制都必须具有这些机制, 但是许多控制通过使用这些机制提供对机密性、完整性和可用性的保护。这些机制包括: 使用多层次或多级别的访问、利用抽象、数据隐藏以及使用加密。
1 . 分层
分层只是简单地使用连续的多重控制, 也被称为深层防御。没有一种特定的控制方法能保护并对抗所有可能存在的威胁。使用多层次的解决方案允许引入多种不同的控制方法来应对随时出现的各种威胁。当分层设计安全解决方案时, 大多数的威胁都会被消除、缓解或阻挡。
使用连续分层法而不是并行分层法, 这一概念非常重要。通过连续方式执行安全限制意味着使用线性的方式依次执行。只有通过一系列配置, 才能由每个安全控制对攻击进行扫描、评估或缓解。单个安全控制方法的失败不会使整个解决方案失效。如果安全控制是以并行方式执行的, 某个威胁就可能穿过单个检查点, 从而无法消除该威胁特殊的恶意活动。
连续配置方法虽然范围很窄, 但是层次很深; 并行配置方法虽然范围很宽, 但是层次很浅。并行系统在分布式计算应用程序中非常有用, 但是在安全领域内, 并行机制往往不是一种有用的概念。
考虑一下通往建筑物的物理入口。并行安排出入口的方法被用于购物商场, 商场周边的许多地方都设置了出入口。连续设置出入口的方式很可能用于银行或机场。这种场合只提供单一的入口,并且此入口实际上是为了获得进入建筑物活动区域而必须按顺序通过的几个关口或检查点。
分层还包括网络由多个独立实体组成的概念, 每个实体都有自己独特的安全控制方法与脆弱性。在有效的安全解决方案中, 所有构成单个安全防线的网络系统之间存在协同作用, 从而共同筑起一道安全防线。使用独立的安全系统会导致生成分层的安全解决方案。
2. 抽象
抽象是为提高效率而使用的。相似的元素被放入组、类别或角色(被整体性授予安全控制、限制或权限)中。因此, 当为客体分类或为主体分配角色时, 就需要使用抽象的概念。抽象的概念还包括客体和主体类型的定义或客体本身的定义(也就是用于为实体类别定义模板的数据结构) 。抽象用于定义客体可以包含的数据类型、可以在这个客体上执行的或由该客体执行的功能类型以及这个客体具有的功能。抽象使你能够为按类型或功能分类的客体组分配安全控制方法, 并抽象简化了安全措施。
3. 数据隐藏
顾名思义, 数据隐藏通过将数据置于主体不可访问或无法看到的存储空间, 从而防止主体发现或访问数据。不让未授权的访问者访问数据库是数据隐藏的一种形式, 同样, 限制分类级别较低的主体访问级别较高的数据也属于这种情况, 阻止应用程序直接访问硬件也是数据隐藏的一种形式。在安全控制和程序设计中, 数据隐藏通常是一个关键要素。
4. 加密
加密是对计划外的接收者隐藏通信数据的含义或意图的一门艺术和学科。加密可以具有很多形式, 并且能够被应用于所有的电子通信类型, 包括文本、音频和视频文件以及应用程序本身。加密技术是安全控制中一个非常重要的要素, 尤其系统之间的数据传输更是如此。加密的强度各种各样,每种强度的设计都针对一种特定的用途或目的。
8.1.3用于确保机密性、完整性和可用性的技术
为了保证数据的机密性、完整性和可用性, 必须确保对数据进行访问的所有组件都是安全的和工作状态良好的。软件设计人员使用不同的技术来确保所设计的程序只完成要求它做的事情, 而不会多做其他事情。假如某个程序对正在被另一个程序使用的内存区域进行数据读写操作, 那么第一个程序实际上违反了全部的三个安全宗旨: 机密'性、完整性以及可用性。如果受影响的程序正在处理敏感的或秘密的数据, 那么数据的机密性将不再得到保证。如果数据通过不可预测的方式被重写或更改(多个读取者和写入者不经意间访问同一共享数据时出现的常见问题), 那么就不能保证完整性。此外, 如果数据的更改导致数据损坏或完全丢失, 那么数据在今后也变得不可用。虽然接下来要讨论的概念全部与软件程序有关, 但这些概念也都适用于所有的安全领域。例如, 物理限制措施能够保证对硬件的所有物理访问都是受控的。
1 . 限制
软件设计人员使用进程限制来约束程序的操作。简单来讲, 进程限制允许进程只能在确定的内存地址和资源中读取和写入数据。这就是常说的沙箱。操作系统或其他一些安全组件不允许非法的读/写请求。如果进程试图执行的动作超出了为其授予的权限, 那么动作会被拒绝, 并且系统将采取进一步的行动, 例如记录违法行为的日志。必须符合更高安全性评级的系统通常记录所有违规行为以及通过某些具体方式做出的响应。一般情况下, 违规的进程会被终止。限制可以在操作系统中进行(如通过进程隔离和保护), 也可通过限制应用程序或服务(例如, www.sandboxie.com 的Sandboxie)的使用来进行, 或通过虚拟化或虚拟机(如VMware 或Oracle 的VirtualBox)解决方案来进行。
2. 界限
在系统上运行的每一个进程都被分配了一个授权级别。授权级别告知操作系统进程可以执行哪些操作。在比较简单的系统中, 可能只存在两个授权级别: 用户和内核。授权级别告知操作系统该如何为进程设定界限。进程的界限由对进程可以访问的内存和资源所设置的限制组成。进程在界限所划定的区域之内。在大多数系统中, 这些界限为每个进程划分其使用的内存逻辑区域。操作系统负责实施这些逻辑界限并且不准许其他进程访问。更安全的系统要求从物理上限制进程。物理界限要求每个被限制的进程所运行的内存区域与其他受限进程的内存区域, 通过物理方式隔开而不仅仅使用相同内存空间中的逻辑界限。对内存实施物理界限可能非常昂贵, 但是也比逻辑界限更为安全。
3. 隔离
当通过实施访问界限对进程进行限制时, 进程就运行在隔离状态中。进程隔离能够确保任何行为只影响与隔离进程有关的内存和资源。隔离用来保护操作环境、操作系统的内核和其他独立的应用程序。隔离是稳定操作系统的重要组成部分之一。隔离能防止某个应用程序访问只属于另一个应用程序的内存或资源, 无论是好意的还是恶意的。操作系统可以提供中间服务, 如剪切、粘贴和资源共享(如键盘、网络接口和存储设备访问) 。
上述三个概念(限制、界限和隔离)使安全程序和操作系统的设计工作变得更为困难, 但能使实现更安全的系统成为可能。
原文始发于微信公众号(CISSP Learning):【闲谈】CISSP里面的安全保护机制
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论