扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
安全是当今 IT 相关头条新闻的一个重要话题。经常出现的系统漏洞和安全补丁以及病毒和蠕虫是每个使用计算机的人都耳熟能详的名词。因为几乎每台计算机系统都连接到另外的计算机或者连接到 Internet,因此确保这些计算机的安全,对于减少入侵、数据窃取或丢失、误用甚至对第三方的责任而言是至关重要的。
确保安全即使对于没有连接到网络的独立的计算机也是很重要的。必须自可信赖的来源安装应用程序,比如经过验证的并检查过病毒的光盘。对应用程序数据也必须同样小心。例如,对于可以执行强大的宏语言或者引入非法数据的软件程序包(office 套件等等),其软件缺陷可能会被利用来执行任意的代码。因此,应用程序数据在拷贝到计算机之前必须经过完整性检查。可以通过将数据放置在一个安全的地方来控制对系统的访问(当然,不考虑来自已授权人员的攻击)。
当系统连接到网络并向其他计算机提供服务(有意地或无意地)时,事情会变得更为棘手。在那种情况下,数据可能不只是来自系统管理员,因为客户机程序要使用所提供的服务,而系统漏洞可能会让入侵者控制计算机。
这就是为什么安全是从开始计划直到拆除系统的整个系统生命周期中最基本的问题。但是,安全的确切含义是什么?
通常,数据安全和系统安全可以分开来考虑。 数据安全 通常被认为是确保以下方面的所有努力:
机密性(Confidentiality)。
完整性(Integrity)。
可用性(Availability)。
综合起来,这些被称作是存储在计算机上的数据的“CIA”。对 /etc/passwd 等配置数据的保护可以归类为数据安全。系统安全 指的是计算机平台本身。美国 National Information Systems Security Glossary(参阅 参考资料 以获得链接)对系统安全的定义如下:
系统安全。对信息系统的保护,防止未授权的访问及对信息(不论是存储中的、正在处理的还是正在传输的)的修改,并防止对授权用户服务的拒绝或对未授权用户服务的允许,包括那些检测、记录和反击此类威胁的措施。
重要的是要认识到系统安全强调的是一个反复的过程,这个过程包括应用安全补丁、经常审计、控制,同时最起码要有一个安全的系统配置。就此而言,不可能保证绝对的安全,也不可能提供百分之百安全的服务。目标更应该是在安全性、系统可用性和维护这个安全层级所需要的努力这三者之间找到一个折衷点。这个折衷取决于安全对于存储在计算机中的数据来说的重要性以及这些数据预期的使用情形(阅读 Bruce Schneier 的 Secrets and Lies,John Wiley &Sons,2000;参阅 参考资料 以获得链接)。
完整性
具备 完整性 的数据是指合法的而且没有经过偶然的或恶意的修改。当进行数据存储或交换时应该考虑其完整性。目标接收到的数据必须是源数据的原样拷贝。这就是说,一方面,物理传输和存储媒介必须是可靠的,以使得数据可以正确地传输而不发生位错误。另一方面,数据必须不能被未经授权的实体不加检测地访问而修改。完整性的范围是从用户 —— 最终的权威 —— 将数据委托给系统后开始的。因此用户错误不在完整性范围之内。
对网络连接而言,要尤其注意确保完整性,不管网络是否安全(例如,通过加密传输)。在传输过程中,可以访问传输媒介的第三方可能会重新路由或者修改数据。涉及网络的物理环境和互联的计算机的完整性的方面并不特定于 Linux,而是对所有计算机安装来说都是如此;因而这也超出了本文的范围。无论如何,除了其他方法之外,在物理层上采取的保护数据的措施包括,限制对计算机的访问、保持对传输媒介(比如电缆和连接器)的保护,以及避免停电和静电释放(阅读“Building the Ideal Web Hosting Facility: A Physical Security Perspective”,参阅 参考资料 以获得链接)。
本系列文章将集中关注加密和签名等在操作系统和应用程序环境中采取的措施,以积极地确保完整性。本文还将关注审计机制,以识别完整性的缺失并确定应对此负责的当事人。
机密性
当受保护的数据只能被授权的人或系统读取或者修改时,要保持其 机密性。这是一个与完整性截然不同的概念:当数据在网络上传输时,它可能是被毫无修改地正确传输,因此确保了其完整性,但是如果被第三方中途截取的话就再也不是机密的了。当未被授权的人可以访问数据传输并从中获取有价值的信息时,只有完整性是不够的。数据的机密性引出了三个更深入的问题:
谁希望访问数据?(认证)
哪些数据可以被访问?(授权)
如何保护数据不受未授权的访问?
Linux 有若干方法可以确保试图访问数据的实体是其所宣称的那一个。通过 Pluggable Authentication Modules(PAM),您可以实现一些认证策略,从存储在本地机器上一个集中目录(NIS、Kerberos、LDAP 等等)中简单的用户名/口令组合,到硬件标识或生物特征扫描不等。文件访问的授权可以使用传统的(粗糙的)UNIX 文件权限来解决:用户、组或全体级别的读、写和执行权限。较新的细粒度的(fine-grained)方法 —— 访问控制列表(Access Control Lists)—— 让您可以为具体的用户授予或拒绝具体的权限。
标准 Linux 安全概念是在软件中实现的,依赖于内核不接受没有被授权的用户对资源的使用。不过,内核缺陷(特权提升/自动调整、未经检查的参数,等等)可能会使用户可以访问先前不能访问的内存区域、磁盘空间、网络或者其他资源。通过安装击键记录器(keyloggers)、取走硬盘驱动器并在其他机器中读取、嗅探网络传输等等,对硬件物理上的访问可以让用户绕过软件检查。这样,必须采取更进一步的努力来保护机密的数据,比如文件系统、单个文件、网络传输的加密,和/或应用程序级别的加密。此外,物理上的措施也需要考虑,比如安全区域、数据的安全删除,以及机密信息的会计程序,不过本文并不涉及这些。
可用性如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
去集群 更超群——大容量网络演进之路
2019 IBM 中国论坛
H3C 2019 Navigate 领航者峰会
助推数据中心网络现代化转型 打造灵活可靠基础架构平台