上一主题: SEOS 类

下一主题: SUDO 类

SPECIALPGM 类

SPECIALPGM 类为指定的程序提供特殊的安全权限。

SPECIALPGM 类中的每个记录都具有下面两种功能之一:

注意:在 SPECIALPGM 类中定义程序时,我们建议您也在 FILE 类中定义该程序。 FILE 资源通过防止某些人未经授权修改(替换或损坏)可执行文件来保护可执行文件,如果在 CA Access Control 未运行时修改了程序,则 PROGRAM 资源会确保该程序不运行。

注意:您无法在 SPECIALPGM 类中为传入网络截获事件定义记录。 这是因为传入网络截获事件在此上下文中没有进程名称。 要跳过为截获事件写入审核记录的过程,对于 TCP 类中的相应记录,请将 AUDIT 属性设置为 NONE。

使用 PGMTYPE 属性可以注册系统服务、后台进程或其他特殊程序。

使用 SEOSUID 和 NATIVEUID 属性可以将逻辑用户分配给程序。

SPECIALPGM 类记录的关键字是特殊程序的路径,或者特殊程序的范围或模式的路径。

注意:可以在 specialpgm 类表中写入的规则的最大数目是 512。

以下定义说明了此类记录所具有的属性。 大部分属性均可修改,还可使用 selang 或管理界面控制这些属性。 不可修改的属性标记为信息性”

COMMENT

定义希望包含在记录中的其他信息。 CA Access Control 不使用此信息进行授权。

范围:255 个字符。

CREATE_TIME

(信息性)显示创建记录的日期和时间。

NATIVEUID

指出调用程序或进程的用户。 使用 * 可以指定所有的 CA Access Control 用户。

在 chres、editres 或 newres 命令中使用 nativeuid 参数可以修改该属性。

注意:为了与 CA Access Control 的早期版本向后兼容,可以使用 UNIXUID 属性代替 NATIVEUID 属性。

OWNER

定义拥有记录的用户或组。

PGMTYPE

确定在授予访问权限时 CA Access Control 回避的访问检查的类型。

backup

回避 READ、CHDIR 和 UTIME 访问。

注意:有两种方法可以运行成功的备份。 如果 backup 程序由非超级用户执行,您就必须将该用户定义为 OPERATOR。 如果 backup 程序由超级用户执行,则只要在 SPECIALPGM 类中将 backup 程序注册为 pgmtype(备份)即可。

changeid

(仅适用于 UNIX)跳过 PAM 启用的 surrogate 身份更改工具,如 su。

例如:er specialpgm /bin/su pgmtype(changeid)

dcm

对于除 STOP 事件外的所有事件回避所有安全检查。

fullbypass

完全跳过所有的 CA Access Control 授权和数据库检查。 CA Access Control 会忽略具有该属性的进程,且不会在 CA Access Control 审核、跟踪或调试日志中显示任何进程事件的记录。

kill

(仅适用于 Windows)跳过进程的程序终止。

例如,如果此进程尝试打开带有访问掩码 KILL 的 CA Access Control 服务(进程)句柄,以下规则可跳过至 services.exe:

nr specialpgm c:\Windows\system32\services.exe pgmtype(kill)

在 Windows Server 2008 上,services.exe 进程(用于管理服务的启动和停止)可打开访问类型为 KILL 的 CA Access Control 服务(进程)句柄,管理进程的终止和启动。 在安装到 Windows Server 2008 期间,CA Access Control 将运行搜索进程以查找 services.exe 并为其创建跳过规则。 若不应用此跳过,services.exe 尝试打开 CA Access Control 服务的句柄时您将收到 DENIED CA Access Control 审核事件。

mail

(仅适用于 UNIX)跳过对 setuid 和 setgid 事件的数据库检查。 邮件回避允许您跟踪邮件访问尝试。

none

删除之前设置的所有 PGMTYPE。

pbf

对文件处理事件回避数据库检查。

pbn

对网络相关事件回避数据库检查。

propagate

(仅适用于 UNIX)将其本身的安全权限传播到由带有此 PGMTYPE 的程序调用的所有程序。 如果您不指定此参数,SPECIALPGM 权限仅可影响父程序。

注意:安全权限传播仅与 PBF、PBN、DCM、FULLBYPASS 以及 SURROGATE 权限一起使用。

registry

(仅适用于 Windows)跳过对控制 Windows 注册表的程序的数据库检查。

stop

对 STOP 功能回避数据库检查。

surrogate

对内核中的身份更改事件回避数据库检查。 如果使用替换回避,就无法跟踪。

xdm

(仅适用于 UNIX)跳过有限网络范围 (6000-6010) 的网络事件 (如 TCP、HOST 和 CONNECT 类)。

在 chres、editres 或 newres 命令中使用 pgmtype 参数可以修改该属性。

SEOSUID

定义得到授权运行此特殊程序的代理逻辑用户。 该逻辑用户必须在带有 USER 记录的数据库中定义。

在 chres、editres 或 newres 命令中使用 seosuid 参数可以修改该属性。

UPDATE_TIME

(信息性)显示上次修改记录的日期和时间。

UPDATE_WHO

(通知)显示执行更新的管理员。

示例:保护 UNIX 文件

为保护驻留在 /DATABASE/data/* 中的文件,数据库管理员会使用名为 firmdb_filemgr 的文件服务器后台进程。 该文件服务器驻留在 /opt/dbfirm/bin/firmdb_filemgr 上。 该后台进程通常以 root 用户身份运行,从而使数据可以由任何 root 用户 shell 攻击进行访问。

在下面的示例中,逻辑用户被定义为这些文件的唯一访问者;禁止其他用户访问这些文件:

  1. 使用以下命令在 CA Access Control 中定义“敏感”文件:
    newres file /DATABASE/data/* defaccess(NONE)owner(nobody)
    
  2. 定义访问文件的逻辑用户:
    newusr firmDB_mgr
    
  3. 只允许逻辑用户 firmDB_mgr 访问文件。
    authorize file /DATABASE/data/* uid(firmDB_mgr) access(ALL)
    
  4. 最后,让 firmdb_filemgr 以逻辑用户 firmDB_mgr 的身份运行
    newres SPECIALPGM /opt/dbfirm/bin/firmdb_filemgr unixuid(root) \
    seosuid(firmDB_mgr)
    

因此,当后台程序访问文件时,CA Access Control 会认为逻辑用户是文件的访问者,而 root 用户不是文件的访问者。 尝试以超级用户身份访问文件的黑客是不会成功的。

示例:保护 Windows 文件

为保护位于 C:\DATABASE\data 中的文件,数据库管理员会使用名为 firmdb_filemgr.exe 的文件服务器服务。 该文件服务器位于 C:\Program Files\dbfirm\bin\firmdb_filemgr.exe 上。 该服务通常用系统帐户运行,从而使得任何系统黑客都可以访问该数据。

在下面的示例中,逻辑用户被定义为这些文件的唯一访问者;禁止其他用户访问这些文件:

  1. 使用以下命令在 CA Access Control 中定义“敏感”文件:
    newres file C:\DATABASE\data\* defaccess(NONE)owner(nobody)
    
  2. 定义访问文件的逻辑用户:
    newusr firmDB_mgr
    
  3. 只允许逻辑用户 firmDB_mgr 访问文件:
    authorize file C:\DATABASE\data\* uid(firmDB_mgr) access(ALL)
    
  4. 最后,让 firmdb_filemgr 以逻辑用户 firmDB_mgr 身份运行:
    newres SPECIALPGM ("C:\Program Files\dbfirm\bin\firmdb_filemgr.exe") \
    nativeuid(system) seosuid(firmDB_mgr)
    

因此,当服务访问文件时,CA Access Control 会认为逻辑用户是文件的访问者,而系统帐户不是文件的访问者。 尝试以系统帐号访问文件的黑客是不会成功的。