备更多的知识。服务器管理员知道他们必须拒绝执行来自系统非受信区域的代码。通过建立命名规范将数据文件与系统中的可执行文件隔离,您可以就可执行文件的可靠性为管理员提供指南—日志子目录并不可信,因此必须禁止用户创建或更改这些子目录,防止他们欺骗安全命名规则。
在客户端环境中,更容易诱骗管理员用户执行某些代码。对于此类天真的管理员来说,具备用户写入权限的目录必须禁止管理员具有执行特权,以防止用户在其中安装可执行文件并诱骗管理员用户运行这些文件而导致系统遭到破坏。例如,如果您的应用程序或服务需要存储以用户权限写入的日志信息,那您应该创建日志子目录以存储这些数据。管理员不应有该子目录的执行权限。可以在前面显式拒绝任何人执行文件,例如添加 D;OI;WP;;;WD。这样可以防止在允许用户写入或更改文件的目录中发生跨用户攻击。
在很多情况下可能需要用户能够共享数据(尽管我们不希望用户在共享区域共享和执行代码)。例如,家庭用户(或者他的照片查看应用程序)可能会创建类似 C:\Photos 这样的目录。该用户希望能够允许多个用户在此目录中写入文件并使其能够编辑该目录中的各种照片。 Windows Vista 中系统驱动器根目录的默认 ACL 支持这种应用。另一种常见的共享情况是用户希望在某个文件夹中放置数据供其它用户读取。只允许数据创建者删除或修改这些数据,但其他用户可以复制数据和编辑副本。这是一种共享读取方案,Windows Server 2008 的系统驱动器默认使用此方案。
现在考虑另外一种情形:您选择锁定系统驱动器,或具体而言,针对共享使用 ACL 设置文件夹。您需要选择适合这两种情况的 ACL,而不是常见方案。我们希望管理员能够管理对象,同时还希望防止因在这些文件夹中执行代码而出现安全问题(请注意:此处的 ACE 甚至会阻止所有者从这些文件夹执行代码)。
以下是共享读取 ACE:
D:P(D;OI;WP;;;WD)(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;FA;;;CO)(A;CI;0x1200af;;;AU)(A;OI;GR;;;AU)
以下是协作性 ACE:
D:P(D;OI;WP;;;WD)(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;FA;;;CO)(A;OICI;SDGRGW;;;AU)
请注意:两个ACL 都以拒绝所有人执行 ACE、对象继承(应用到文件)开始,从而防止用户系统和跨用户攻击。然后为管理员,系统(系统实际上不需要)和 CO 提供完全控制权限 (File All)。
Windows 将许多状态信息存储在 Windows 注册表中。注册表数据以“配置单元”格式存储,数据存储在项和子项当中,可以将二者视为容器(子项不视为对象)。
用户特定数据存储在 Hive Key Users (HKEY_USERS) 的相应用户中。如您所料,这种数据大多可由用户写入。在任何会话内,HKey_Current_User (HKCU) 都将指向 HKEY_USERS 的适当部分。
系统和机器信息存储在 HKEY_LOCAL_MACHINE (HKLM) 配置单元中。HKLM 中包含的是各种系统服务的信息,其中大多数现在均使用本地服务或网络服务组9 7 3 1 2 3 4 5 6 7 4 8 :
本文来源:不详 作者:佚名