论坛风格切换
正版合作和侵权请联系 sd173@foxmail.com
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 2070阅读
  • 0回复

[教程资料]保护Windows系统注册表安全的几招常用方法 [复制链接]

上一主题 下一主题
离线小爱
 

发帖
7049
今日发帖
最后登录
2024-09-24
只看楼主 倒序阅读 使用道具 楼主  发表于: 2012-01-04 13:33:46
对于Windows系统来说,注册表和系统的安全稳定运行休戚相关。正因如此,它也成了系统的软肋,任何不当操作或者恶意破坏都会造成灾难性的后果。其实,为了减少因为上述安全风险,注册表有一些内建的安全限制(比如注册表默认限制某些区域只能被特定用户看到,例如HKLMSAM和HKLMSECURITY就只能被LocalSystem用户看到)。但仅仅有这些安全措施还远远不能保证注册表的安全,我们还应该进行更加严格的安全控制。下面和大家分享一些经验。
说明:下面的所有操作是在Windows Server 2008上进行的,其中绝大多少适用于其他Windows系统,只有极少的部分是就要Server 2008的。
1、设置对注册表工具(Regedit.exe)的运行限制
保护注册表不受未经授权访问的做好办法之一是让恶意用户根本无法访问注册表。对于服务器来说,这意味着要严格控制服务器的物理安全,只允许管理员本地登录。对于其他系统,或者无法防止用户本地登录到服务器的情况下,则可以针对Regedit.exe和Reg.exe配置访问权限,使其更安全。另外,我们也可以尝试从系统中删除注册表编辑器以及Reg命令,但这会导致其他问题,造成管理员系统管理的麻烦,尤其是当管理员需要从远程访问注册表的时候,这样的做法有些自断后路。
我们可以采取一个比较折中的方法,就是修改注册表编辑器的访问权限,以限制其它非授权用户对其进行访问。访问%SystemRoot%文件夹,找到注册表编辑器程序Regedit.exe,右键单击该工具选择“属性”。在属性对话框中打开“安全”选项卡,可以看到如图所示的界面。在该界面中我们根据需要添加或者删除用户或者组,然后设置其必要的访问权限。这里的权限设置和对文件(文件夹)的权限设置是一样的,我们可以选择一个对象,然后允许或者拒绝特定的权限。除了Regedit.exe的设置外,我们还需要对命令行下的注册表访问工具Reg.exe进权限设置。打开%SystemRoot%System32文件夹,用鼠标右键单击该程序,选择“属性”。同样在属性对话框中打开“安全”选项卡,默认情况下该命令可以被一般用户管理员使用,我们可以根据需要在该界面中进行用户授权和权限设置。大家不要通过组统一授权,因为这样该组中的所有用户都具有相应的权限。我们可以删除组,只为具体的用户授权,这样攻击者通过添加到组实施对注册表的控制就行不通了。
需要说明的是,Windows系统中还有一个名为Regedit32的注册表工具,其实这个工具只是一个到Regedit.exe的链接。如果我们设置了Regedit.exe的权限后,并不需要对Retdit32.exe也进行类似的权限设置。
2、设置对注册表键的访问权限
对于注册表的权限控制,我们还可以具体到对注册表键的访问控制。对于注册表键的权限设置,我们除了可以直接进行权限的编辑外,还可以使用安全模板进配置。使用恰当的安全模板不仅可以锁定对注册表的访问,而且不要担心错误的设置会导致系统无法启动或应用程序无法运行。
不过,通常情况下我们只是针对特定的注册表键进行权限控制,这时候只能通过直接进行权限的编辑。具体方法是:运行注册表编辑器,找到要设置的键,用鼠标右键单击选择“权限”,或者也可以首先选中该键然后从注册表编辑器的“编辑”菜单中选择“权限”也可,随后会打开“SAM的权限”对话框。和文件权限的设置一样,我们可安装需要添加或删除组和用户,选中某个对象,设置拒绝或者允许某个权限。
需要说明的是,很多权限是从更高级别的键继承的,无法直接进行修改。要编辑其权限,需要单击“高级”按钮打开如图所示的“SAM的高级安全设置”对话框。在此有4个选项卡:其中“权限”选项卡上的“继承于”一栏显示了这个权限是从哪里继承来的,一般来说这些权限都是从目标键的根键继承下来的。我们在单击“确定”应该更改前,要考虑清楚是否应该选择“包括可以从该对象的父项继承的权限”复选框。如果选择,那么所选键以及其下级是所有子键的权限都好发生变化。“审核”选项卡下可对所选键配置审核。“所有者”选项卡下显示所选键的当前所有者,并且可以分配所有权。默认情况下,只有所选键会受到影响,但如果希望针对当前键的所有子键都有效,需要勾选“替换子容器和对象的所有者”选项。“有效权限”选项卡下,可用于判断当前设置会对特定用户或组应用怎样的权限,这个功能非常有用,而且在“权限”选项卡下对权限的修改在单击“确定”或“应用”之前会不会被应用。
3、安全设置控制对注册表的远程访问
Windows的注册表不仅可本地访问,还可远程访问。因此,攻击者或者未经授权的用户可能会像管理员一样尝试远程访问系统的注册表,这无疑会带来极大的安全风险。通常情况下,对于个人系统我们不会远程访问注册表,那么就可以禁止注册表的远程访问。
“开始”菜单中的“运行”,输入services.msc打开服务管理器,找到“Remote Registry”服务项,双击该项“停止”服务,并设置启动类型为“禁止”即可。不过,上述设置后,就完全禁止了远程对注册表的访问。但有的时候,我们需要允许可远程访问注册表的某些键,该怎么办呢?其实,我们还可通过修改注册表键值的方法来控制对注册表的远程访问。这个注册表键是“HKLMSYSTEMCurrentControlSetControlSecurePipeServersWinreg”。在开启了“Remote Registry”服务的Windows系统中就有该注册表键,Windows使用该键的权限设置判断哪些用户可以远程访问注册表,而默认情况下,通过验证的用户都可以。事实上,通过验证的用户对该键具有查询数值、枚举子键、通知和读取的控制权限。因此,我们需要排除某些敏感的注册表目录,以防止被远程恶意访问。在“HKLMSYSTEMCurrentControlSetControlSecurePipeServersWinreg”键先有个“AllowedPaths”键,其右侧有个字符串注册表键值“Machine”,双击该键值可以看到可远程访问的注册表键值路径,在此我们可以根据需要添加或者删除注册表路径,以实现对远程访问注册表路径的控制。
联系我whywhata@qq.com