等保2.0测评深入理解—Linux操作系统(五)

admin 2023年10月12日13:11:20评论102 views字数 4002阅读13分20秒阅读模式

知识宝库在此藏,一键关注获宝藏


续上文……

c)应及时删除或停用多余的、过期的账户,避免共享账户的存在

一、确定是否存在多余、过期账户

结合/etc/passwd、/etc/shadow文件中的账户,与管理员确认账户使用情况,是否存在多余无用账户。

这里通过 lastlog 命令来查看用户最后一次登录时间,可以通过这种方式大致判断一下,再找管理人员确认。
等保2.0测评深入理解—Linux操作系统(五)

二、确认是否存在共享账户

确认管理人员与账户之间的对应关系,确认是否存在多人共用统一账户的情况存在。

d)应授予管理用户所需的最小权限,实现管理用户的权限分离

具有最少4个账户(包括一个超管权限账户root),然后对应到人

● 三权分立原则

至少建立系统管理员、安全管理员、审计管理员三种权限帐号。
个人认为,不使用root超级管理员账户,该账户的管理权限应掌握在安全管理员手中,仅上线前用于环境部署工作。
我们也可以参考能力验证给出的权限表
等保2.0测评深入理解—Linux操作系统(五)
等保2.0测评深入理解—Linux操作系统(五)

1. 系统管理员

用于管理整个系统,可在 /etc/sudoer 中授予各式各样的权限,但无审计管理的权限,不可中断审计进程及修改审计配置等,且不可威胁到root用户。可授予新增操作员、修改对应文件、服务等的一些操作管理。
例如仅可修改普通用户口令,不可修改root账户口令
等保2.0测评深入理解—Linux操作系统(五)

2. 安全管理员

负责各类安全策略的制定与落实。包括不限于服务器口令安全策略、备份安全策略、审计安全策略、账户安全策略、防病毒策略、运维安全策略等等。例如:

 各类设备应划分系统管理员、安全管理员和审计管理员,此外数据库服务器应创建数据库管理员账号;
应为每个用户创建账号并分配权限, 禁止出现共享账号。及时停用离职人员账号,避免出现多余账户;
用户账户权限分配遵从“最小化”和“必须使用”原则,离岗人员的权限需收回;
各类设备应仅允许审计管理员能够查询审计日志,管理日志策略、日志文件和日志进程;
配置超时登录机制,登录用户无操作自动退出系统。其中, 关键资产阈值 15分钟, 重要资产阈值 30 分钟, 一般资产阈值 60 分钟。

3. 审计管理员

负责对系统审计日志方面的管理。
例如具有sudo systemctl audit(rsyslog)等进程的管理权限。
对于auidt,syslog轮替规则、审计规则具有配置权限等。

4.操作员

普通权限账户,用于正常的工作,无其他用途。


e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则

所有账号均由管理员负责创建并分配权限,并提供相应的访问控制策略(可以是纸质的,也可以该账户用于何用途备注说明完整的),且无越权情况发生。
在去年能力验证中,这条条款引入了一个Linux系统自带的访问控制策略umask,控制用户创建文件时的默认访问控制规则。

等保2.0测评深入理解—Linux操作系统(五)

Linux系统中,umask是一个用来设置文件和目录默认权限的命令或配置项。它表示用户创建新文件和目录时,系统应该自动应用的权限掩码。
umask的值是一个三位的八进制数,它通过减去默认权限掩码值来计算出新文件和目录的权限。默认情况下,umask的值通常设置为022,表示新建的文件不应该让其他用户具有写权限(022 = 0666 - 022 = 0644),新建的目录不应该让其他用户具有写和执行权限(022 = 0777 - 022 = 0755
例如,当umask设置为022时,用户创建新文件时,新文件的默认权限为644(即所有者具有读写权限,其他用户只有读权限)。当用户创建新目录时,新目录的默认权限为755(即所有者具有读写执行权限,其他用户只有读和执行权限)
使用umask命令可以查看当前的umask值。可以通过修改shell的启动文件(如.bashrc、.bash_profile等)或修改/etc/profile/etc/profile.d下的配置文件来永久更改umask值。也可以使用chmod命令临时更改umask值,在命令行中执行命令:`umask 0022` (例如),表示临时将umask值设置为022
查看 /etc/profile 确认目前系统的umask值

等保2.0测评深入理解—Linux操作系统(五)

当 UID>199并且用户的组名等于用户名,则 umask=002,其余 umask=022

等保2.0测评深入理解—Linux操作系统(五)

查完上述值后,还需确认是否存在越权访问情形,个人认为应该就是查看 /etc/sudoer 配置中是否存在越权行为,也就是该账号拥有了本不属于他的权限(甚至与root 账户权限无异),现实情况中很多运维为了方便,各种普通运维账户都赋予了这种权限。

——下期Linux延展知识更新sudo相关内容。

等保2.0测评深入理解—Linux操作系统(五)

所以这些地方都是不符合的点。

f)访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级

依据能力验证官方给出的结果记录描述,该条对于操作系统自主访问控制基本默认符合。
主体为用户级,客体为文件、目录级别。

等保2.0测评深入理解—Linux操作系统(五)

g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问

首先敏感标记的目的就是实现强制访问控制,而目前我们所接触到的操作系统基本均是传统的基于权限的访问控制(如文件权限、用户组权限等)是自主访问控制(Discretionary Access Control,DAC),其中资源的所有者可以自行决定资源的访问权限。而强制访问控制则超越了个体的控制权,依赖于更为严格的访问策略和安全模型。它是一种基于系统级别的强制性访问控制,不受用户或进程的自主决策的影响,确保系统中的资源只能被授权用户或进程访问,而不依赖于用户或进程的标签或权限。

这条应该是作为做等保人员比较难测评的一条条款了,其实做了这么久,咱自己也不太明白真实符合的情况是什么样的,因为客户基本不可能会去自己配置。初级书中叫我们去查看 /etc/selinux/config 这个文件,这里可以使用 sestatus 命令查看,确认状态为 enabled,再确认具体的工作模式

等保2.0测评深入理解—Linux操作系统(五)

等保2.0测评深入理解—Linux操作系统(五)

然后使用对应 ls -Z /etc/passwd 命令去查看对应文件

等保2.0测评深入理解—Linux操作系统(五)

具体的配置笔者也没实验过,因为真实环境中也不会有客户真实去配置这些内容,研究起来还挺费劲的。。。以下内容可供参考去尝试配置研究:
在 SELinux 中,角色和用户的映射关系是通过定义策略规则来实现的。下面是详细解释:
1. 角色(Role):角色在 SELinux 中用于标识用户的特定角色或功能。角色是一种逻辑概念,它定义了用户在系统中的权限范围和行为。例如,系统管理员角色(sysadm_r)允许用户执行管理系统的特权操作,而用户角色(user_r)则限制用户只能执行一般用户任务。
2. 用户(User):用户在 SELinux 中是与操作系统的用户账号相对应的。SELinux 将用户和角色分开管理,通过定义用户与角色的映射关系来确定用户的权限。例如,用户 alice 可以被授予系统管理员角色(sysadm_r),从而获得管理员权限。
3. 定义角色和用户的映射关系:在 SELinux 策略中,使用类似于 `role_transition` 的规则来定义角色和用户之间的映射关系。例如,以下是一个定义用户 alice 切换到系统管理员角色的策略规则示例:
role_transition staff_u sysadm_r:sysadm_t sysadm_r:sysadm_exec_t
这个规则表示当用户 alice 在 staff_u 用户角色下登录时,将切换到系统管理员角色(sysadm_r),并使用系统管理员执行类型(sysadm_exec_t)来执行操作。这样,alice 就可以在切换角色后拥有系统管理员的特权权限。
需要指出的是,SELinux 的角色和用户的映射关系可以在 `/etc/selinux/targeted/contexts/users/` 目录中的相应文件中找到。这些文件定义了用户和角色之间的默认映射关系,但也可以通过自定义策略规则进行修改和调整。

等保2.0测评深入理解—Linux操作系统(五)

——————————————————————————————

例如,要在 SELinux 中控制访问 `index.html` 文件,并仅允许 `www` 账户访问,:
1. 确保文件的安全标签设置为正确的类型。执行命令 `ls -Z /var/www/html/index.html`,确保文件的安全标签已设置为 `httpd_sys_content_t` 类型。如果不是,请执行以下命令进行设置:`chcon -t httpd_sys_content_t /var/www/html/index.html`。
2. 创建一个新的 `httpd_mycontent_t` 类型,用于表示仅允许 `www` 账户访问的文件。执行以下命令进行创建:`semanage fcontext -a -t httpd_mycontent_t "/var/www/html/index.html"`
3. 使用 `restorecon` 命令将上述更改应用到文件上,执行命令:`restorecon -v /var/www/html/index.html`

4. 创建一个 SELinux 策略模块文件 `mycontent.te`,并添加以下内容:

等保2.0测评深入理解—Linux操作系统(五)
5. 使用 `checkmodule`、`semodule_package` 和 `semodule` 命令编译和加载上述策略模块文件,执行以下命令:
等保2.0测评深入理解—Linux操作系统(五)
6. 设置 `httpd_can_network_connect` 为开启状态,以允许 Web 服务器访问网络资源。执行命令:`setsebool -P httpd_can_network_connect on`。
通过以上步骤的配置,`index.html` 文件将设置为只允许 `www` 账户访问。其他账户或进程将无法访问该文件。
需要注意的是,以上步骤假设你的 Web 服务器进程使用的是 `httpd_t` 类型,且已启用 `httpd_can_network_connect` 布尔型策略。如果你的实际情况有所变化,你需要根据实际情况进行相应自定义配置和调整。

原文始发于微信公众号(等保不好做啊):等保2.0测评深入理解—Linux操作系统(五)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月12日13:11:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   等保2.0测评深入理解—Linux操作系统(五)https://cn-sec.com/archives/2105673.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息