所有的Windows(也包括Windows Vista)在发布时都会增加一些新特权,以减少新风险或为新功能提供保护。在Windows 里,可以用index或字符串常量表示特权。第5章“创建安全又能复原的服务”描述了Windows Vista里所有的特权,下面列出了新增的用index和字符串常量表示的Windows Vista特权。
SE_TRUSTED_CREDMAN_ACCESS_NAME (“SeTrustedCredManAccessPrivilege”)
SE_TRUSTED_CREDMAN_ACCESS_PRIVILEGE (31L)
    Credential Manager在Backup/Restore期间使用这个特权。用户账号不应该有这个特权,因为它只分派给Winlogon。如果这个特权分配给其他实体,可能会危及用户保存的凭证(密码)。
SE_RELABEL_NAME (“SeRelabelPrivilege”)
SE_RELABEL_PRIVILEGE (32L)
    默认情况下不提供给账号,这个特权允许用户任意设置完整性级别,有可能违反No-Write up完整性规则。
SE_INC_WORKING_SET_NAME (“SeIncreaseWorkingSetPrivilege”)
SE_INC_WORKING_SET_ PRIVILEGE (33L)
    默认情况下提供给所有的用户,这个特权允许负责人增加进程的工作区。
SE_TIME_ZONE_NAME (“SeTimeZonePrivilege”)
SE_TIME_ZONE_ PRIVILEGE (34L)
    默认情况下提供给所有的用户,这个特权允许用户设置计算机的时区,但不包括系统时间。
SE_CREATE_SYMBOLIC_LINK_NAME (“SeCreateSymbolicLinkPrivilege”)
SE_CREATE_SYMBOLIC_LINK_ PRIVILEGE (35L)
    这个特权确定用户是否能创建符号连接(symbolic link)。在过去,符号连接成为众多Mac OS X、Linux、Unix安全bug的源头[(CVE-2005-2714)、(CVE-2006-1247)和(CVE-2006-4124)]。Mklink命令需要这个特权,默认情况下它只提供给管理员。
 
本文节选自电子工业出版社2009年1月出版的《在Windows Vista上编写安全的代码》一书