数据安全

完整性

具备完整性的数据是指合法的而且没有经过偶然的或恶意的修改。当进行数据存储或交换时应该考虑其完整性。目标接收到的数据必须是源数据的原样拷贝。这就是说,一方面,物理传输和存储媒介必须是可靠的,以使得数据可以 正确地传输而不发生位错误。另一方面,数据必须不能被未经授权的实体不加检测地访问而修改。完整性的范围是从用户 —— 最终的权威 —— 将数据委托给系统后开始的。因此用户错误不在完整性范围之内。

对网络连接而言,要尤其注意确保完整性,不管网络是否安全(例如,通过加密传输)。在传输过程中,可以访问 传输媒介的第三方可能会重新路由或者修改数据。涉及网络的物理环境和互联的计算机的完整性的方面并不特定于 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 )、取走硬盘驱动器并在其他 机器中读取、嗅探网络传输等等,对硬件物理上的访问可以让用户绕过软件检查。这样,必须采取 更进一步的努力来保护机密的数据,比如文件系统、单个文件、网络传输的加密,和 / 或应用程序级别 的加密。此外,物理上的措施也需要考虑,比如安全区域、数据的安全删除,以及机密信息的 会计程序,不过本文并不涉及这些。

可用性

即使完整性和机密性都得到了保证,如果数据不能被访问,那么它是没有用处的,即不可用的。可用性 措施确保数据永远不会丢失,而且当被请求时,可以以预定义的性能级别被访问。可用性可能会受到不同方式的威胁:

  • 破坏性攻击 —— 称为拒绝服务(Denial-of-Service , DoS)攻击 —— 这类攻击的目标是可用性。它们通过消耗所有可用的网络、CPU 、存储或操作系统资源(比如文件句柄),使得一台计算机或一个服务不可用或不能用。

  • 目标是数据本身的攻击,试图删除或覆盖数据。

  • 数据的意外破坏。在大部分情况下,不可能避免对数据的意外破坏,因为拥有适当权限的用户被认为是最终的权威。您只能通过在适当的位置使用一个备份 / 转储基础设施来预先做好准备。

  • 最后,但不是最不重要的,缺陷、配置错误、物理环境、硬件失败、停电、不必要的系统重新引导等等,也都可能影响可用性。这个列表中的软件相关话题更应该归入 系统安全,稍后将更深入讨论。如上所述,硬件相关的话题在本文中不做讨论,但是,如果您对这些话题感兴趣,请参阅 参考资料部分以获得更多读物的链接。

解决上面列表中的前两个问题的特定 Linux 措施包括,网络数据包的防御(firewalling ) / 过滤(filtering ),对文件系统完整性的保护,以及计划可根据需要进行添加的额外的资源(例如,使用 Tivoli®Intelligent Orchestrator;参阅 参考资料以获得链接)。