39
社区成员




操作系统的安全性的基本原则是CIA三元组——机密性(C)、完整性(I)、可用性(A)。一个完整的信息安全保障体系应该充分考虑到CIA三元组的基本原则。
机密性(Confidentiality): 这意味着只有授权的用户、系统或实体能够访问敏感信息。机密性的目标是确保信息不会泄漏给未经授权的人员或系统,从而保护用户隐私和敏感业务信息。
完整性(Integrity): 完整性关注的是信息的准确性和完整性,确保数据在存储、传输和处理过程中没有被篡改或损坏。这有助于防止未经授权的修改、损坏或篡改数据的行为。
可用性(Availability): 可用性确保系统和数据在需要时可用。它关注的是防止服务中断,确保及时访问信息。可用性的目标是防止因各种原因(如硬件故障、网络问题、恶意攻击等)导致系统不可用。
这三个原则通常被称为信息安全的三大支柱,它们相互关联,共同构成了一个综合的安全框架。
Linux系统的安全性建立在几个基本原则之上,这些原则有助于确保系统的稳定性和安全性:
1. 最小权限原则:
- 给予用户和进程最小必要的权限来执行任务。不要赋予超过所需权限的访问权限,以降低潜在的安全风险。2. 防御性层次原则:
- 通过建立多层次的防御措施来提高安全性。包括使用防火墙、加密数据、使用网络安全工具等多重防线。3. 安全审计和监控:
- 启用日志记录和监控功能,及时检测异常活动和潜在威胁,以便采取相应的安全措施。4. 定期更新和漏洞修补:
- 及时应用安全更新和补丁,以修复系统中已知的漏洞,减少被攻击的风险。5. 安全认证和身份验证:
- 使用强密码策略、多因素认证等措施,确保只有授权用户能够访问系统资源。6. 加密和数据安全:
- 对重要数据和通信进行加密,保护数据在传输和存储过程中的安全性。7. 系统审计和安全意识培训:
- 对系统进行定期审计,评估安全性并纠正发现的问题。同时,为用户提供安全意识培训,教育他们如何识别和应对潜在的安全威胁。8. 遵循最佳实践和安全策略:
- 遵循最佳实践,例如使用安全的配置文件、关闭不必要的服务、定期备份数据等,制定并实施安全策略。9. 安全更新和社区支持:
- 及时关注安全社区的警报和建议,确保系统能够及时应对最新的威胁和漏洞。这些基本原则在Linux系统安全性方面发挥着关键作用。实践这些原则需要系统管理员和用户密切合作,共同确保系统安全并保护其免受潜在的威胁。
操作系统安全的设计目标是确保计算机系统在正常运行和面对各种威胁时能够保护系统资源、用户数据以及用户隐私。
1. 数据层面:
数据加密:对敏感数据进行加密,确保即使在数据传输或存储中被非法获取,也难以解密。实施严格的访问控制策略,确保只有经授权的用户可以访问敏感数据。 记录数据访问和修改的事件,进行实时监控,以检测潜在的安全威胁。
数据备份和恢复: 实施定期的数据备份策略,以便在数据丢失或损坏时能够迅速进行恢复。制定并测试灾难恢复计划,确保在重大数据丢失事件中能够及时、有效地恢复系统。
2. 应用层面:
访问控制和身份验证:实施强密码策略,推广双因素认证,提高用户身份验证的安全性。采用最小权限原则,确保每个用户和应用程序仅具备执行其任务所需的最低权限。
应用层防御: 在应用层实施防火墙和入侵检测系统,阻止和检测针对应用程序的攻击。使用安全的通信协议,如HTTPS,以保护应用程序中传输的数据的机密性和完整性。
3. 操作系统层面:
访问控制和权限管理: 使用访问控制列表(ACL)或权限位等机制,限制用户和进程的权限,确保最小化特权原则。
更新和漏洞管理: 及时应用安全更新和补丁,修复已知漏洞,减少系统受到已知攻击向量的风险。 定期进行漏洞扫描和安全评估,以发现和修复潜在的安全漏洞。
1、Linux系统的用户账号
在Linux系统中,用户账号是用于识别和管理系统中不同用户的一种机制。每个用户账号都有一个唯一的用户名(User Name)和用户标识号(User ID,UID),以及属于一个或多个用户组。超级用户(root):超级用户是系统上最高权限的用户,拥有对系统的完全控制权。root 用户可以执行所有操作,包括修改系统配置、安装软件、管理用户等。root 用户的UID通常为0。
程序用户:这类用户的最大特点是安装系统后默认就会存在,且默认不能登录系统,它们主要是方便系统管理,满足系统进程文件属主的要求。
普通用户:普通用户是一般系统用户,其权限受到限制,只能对自己的文件和一些其他非系统关键文件进行操作。每个普通用户都有一个唯一的UID。
2、Linux文件系统的权限
每个用户组有三个基本权限:读取权限(r)写入权限(w)执行权限(x)
3、Linux的日志文件
Linux日志文件是记录系统和应用程序活动、错误、事件等信息的文件。这些文件对于系统管理、故障排除、性能监控和安全审计至关重要。Linux系统中的日志文件通常位于
/var/log
目录下。
4、Linux纵深防御体系
Linux纵深防御体系(Linux Defense in Depth)是一种综合性的安全策略,旨在通过在不同层面上实施多层次的安全措施,增强Linux系统的整体安全性。这种策略的核心思想是,不依赖于单一的安全控制层,而是通过多个独立但互相补充的安全层来构建强固的安全体系,以应对各种威胁和攻击。
Linux纵深防御体系中的一些关键层面:
操作系统层面:使用强密码策略、双因素认证等手段提高用户身份验证的强度。使用ACL、权限位等机制,限制用户和进程的权限,采用最小权限原则。及时应用操作系统和应用程序的安全更新和补丁,修复已知漏洞。
网络层面:实施网络防火墙以限制网络流量,允许只有必要的网络通信。部署入侵检测系统(IDS)和入侵防御系统(IPS)来检测和防范网络攻击。确保网络服务的安全配置,禁用不必要的服务,配置安全选项。
应用层面:在应用程序开发中采用安全编码实践,防范常见的安全漏洞。对用户输入进行有效验证,防止恶意输入导致的安全漏洞。使用Web应用防火墙(WAF)等工具,保护应用程序免受攻击。
数据层面:采用加密算法,确保数据在传输和存储时的机密性和完整性。使用合适的访问控制机制,确保只有授权用户能够访问敏感数据。
1、Linux系统访问控制概述
Linux系统访问控制是通过多种安全机制和策略来管理和限制用户、进程和资源的访问权限。这综合性的访问控制系统确保了系统的安全性和可控性。
自主访问控制(DAC)、强制访问控制(MAC)和基于角色的访问控制(RBAC)的区别:
DAC的特点是用户对自己创建的资源有完全控制权,包括文件的访问权限、修改和删除权利;MAC的特点是用户或进程不能通过自身的标识来决定对资源的访问权限,而是受到系统规定的严格访问控制策略的制约;在RBAC的特点是用户被分配到一个或多个角色,每个角色有特定的权限,而不是直接将权限赋予用户,从而简化了权限管理。
在DAC中,所有权归资源的所有者,资源的访问控制由主体自身决定。
在MAC中,系统定义了安全策略,不由主体决定,而是通过系统规定的策略来控制访问。
在RBAC中,访问控制通过将权限分配给角色,再将角色分配给用户来实现,使权限管理更为灵活。
2、Linux Capabilities
Linux Capabilities 是 Linux 操作系统中的一种安全机制,允许细分进程权限,使得进程可以具备特定的系统权限而无需拥有完整的 root 权限。这种权限模型比传统的全权 root 权限更加安全,因为它允许限制程序对系统的访问权限,从而减少了潜在的安全风险。
Linux Capabilities 将传统的 root 权限分解为一组小的权限单元,每个单元称为 capability。这些 capabilities 可以被赋予给程序,允许程序在不拥有完整 root 权限的情况下执行特定的系统级操作。
一些常见的 Linux Capabilities 包括:
1. CAP_NET_ADMIN:允许配置网络设备、设置 ARP 缓存等网络管理任务。
2. CAP_SYS_ADMIN:允许进行系统级配置修改,如挂载文件系统、更改主机名等。
3. CAP_SYS_PTRACE:允许跟踪进程、观察和改变其他进程的行为。
4. CAP_DAC_OVERRIDE:允许绕过文件权限检查。通过将这些权限分配给特定的程序或进程,管理员可以以更加精细和安全的方式管理系统权限,避免将完整的 root 权限赋予所有进程,从而减少了潜在的攻击面。
要查看进程的 capabilities,可以使用命令 `getcap`。要授予或撤销一个程序的 capabilities,可以使用 `setcap` 命令。需要注意的是,capabilities 是一种高级权限机制,需要小心使用以确保系统安全。
3、AppArmor
AppArmor 是一个 Linux 内核安全模块,用于实施操作系统上的访问控制安全策略。它旨在限制程序的行为,通过定义程序对文件、网络等资源的访问权限来提高系统的安全性。
AppArmor 的核心思想是基于应用程序的安全策略来控制其访问权限,而不是仅仅依赖于用户权限(比如用户是否是 root 用户)。它允许管理员定义应用程序的行为模式,以确保其只能访问其需要的资源,从而减少恶意程序或者受到攻击的程序对系统的危害。
AppArmor 使用名为“profiles”的安全策略文件,这些文件描述了每个应用程序或服务的权限和行为规则。这些规则可以限制程序可以访问的文件、目录、网络资源以及执行的系统调用等。管理员可以创建、管理和分配这些 profiles,以适应特定应用程序的安全需求。
AppArmor 提供了相对简单的配置和管理界面,允许管理员轻松创建和调整应用程序的安全策略,而无需深入了解内核级别的细节。它的工作方式是通过 Linux 内核中的安全模块来实现规则的执行。
使用 AppArmor 有助于降低系统遭受特定类型的攻击的风险,因为即使应用程序受到入侵或被恶意利用,其行为也会受到规则的限制。
需要注意的是,AppArmor 是 Linux 发行版中的一个特性,不是 Linux 内核默认的安全模块。一些 Linux 发行版可能默认包含或支持 AppArmor,但也有一些发行版使用其他类似的安全模块,如 SELinux。选择使用哪种安全模块通常取决于管理员的偏好和特定的安全需求。
可信计算的定义:可信计算是一种计算机安全的理念,旨在确保计算环境的可信赖性和安全性。它强调在计算过程中建立可信赖的基础,并防止恶意软件、恶意攻击和未经授权的访问。
机密计算的定义:机密计算是一种通过在计算过程中对数据进行加密和保护,以确保数据在计算过程中的机密性的计算范例。在机密计算中,数据在计算机内存中保持加密状态,即使在运行过程中也不会暴露给不相关的实体。
secGear 从逻辑上分为三层:
Base Layer:机密计算 SDK 统一层,屏蔽 TEE 及 SDK 差异,实现不同架构共源码。
Middleware Layer:通用组件层,机密计算软件货架,无需从头造轮子,帮助用户快速构建机密计算解决方案。
Server Layer:机密计算服务层,提供典型场景机密计算解决方案。