三、加强Windows系统安全

  在目前这个病毒泛滥,"黑客横行"的网络时代,我们必须有备无患,加强计算机系统的安全。而注册表作为Windows操作系统的核心部分,往往成为病毒和黑客利用的工具。如果使用者缺乏注册表的相关知识,将无法找到病毒的"发源地",而无法将之清除。另一方面,注册表也起着积极的作用。通过注册表,我们可以进一步加强Windows系统的安全,防止各种非授权的使用,以防止病毒和黑客的入侵。

  1.保护个人信息

  如果你是和别人合用一台计算机,或者你有比较私人的内容需要保护,那么你可以通过注册表来加强对这些私人信息的保护。

  (1)清除本机访问信息

  一般情况下,Windows为了方便使用者,总是将使用者最近访问过的文档、运行过的程序等信息保存下来,我们需要去除掉Windows提供的这种方便。

  下表中的值项,位于注册表项HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Policies\Explorer中。

  (2)清除操作信息

  在我们使用Windows操作系统的过程中,很多操作内容都被存放到了注册表中。例如通过"开始"菜单的"运行"项运行过的程序名称、访问过"网上邻居"中的计算机、访问过计算机上的文件夹等。通过注册表,我们可以手工清除这些信息。

  (3)加密个人文件夹

  上面讨论的都是清除用户适用计算机时留下的信息。下面我们利用注册表知识,来加密我们的存放了个人信息的文件夹。

  我们知道,如果想隐藏你的文件夹,通过将文件夹的属性设置为"隐藏"是没有用的。用户只需要在资源管理器的"工具"→"文件夹选项"→"查看"对话框中,选择"显示所有的文件和文件夹"项,就可以看到所有隐藏属性的文件夹和文件。有一个小技巧,可以有效的保护你的文件夹。这个技巧就是,用类标识符作为文件夹名的文件扩展名。例如我们想保护文件夹C:\mydata

  首先在注册表项HKEY_CLASSES_ROOT中找到某个文件类型的CLSID,如MIDI文件的CLSID{00022603-0000-0000-C000-000000000046}。将文件夹mydata的名称加上{00022603-0000-0000-C000-000000000046}这个文件扩展名,即将C:\mydata的名称修改为"C:\mydata.{00022603-0000-0000-C000-000000000046}"。这时C:\mydata的图标就从文件夹的图标变成了MIDI文件的图标。

  在资源管理器中双击该图标,系统会报告该MIDI文件内容错误,无法播放(系统将文件夹当作MIDI文件处理了),因此用户无法进入C:\mydata,也就无法查看该文件夹下的内容。这样做的好处是,我们可以成功的将我们的私人文件夹伪装成一个普通的MIDI文件。

  惟一能够查看文件夹内容的方法是:DOS窗口中,使用CD命令进入到该文件夹。

  你可能会说,用户只要将该文件夹的文件扩展名去除,不就可以将保护的文件夹恢复出来了吗?不用担心,用户做不到这一步。即使用户在资源管理器的"工具"→"文件夹选项"→"查看"对话框中,去除对"隐藏已知文件类型的扩展名"选项的选择,使所有的文件都显示出扩展名。在资源管理器中,C:\mydata也不会出现扩展名。这样,用户就无法去除或者更改C:\mydata. {00022603-0000-0000-C000-000000000046}CLSID部分。

  如果想在资源管理器中正常地查看该文件夹里的内容,可以在DOS窗口中,将该文件夹重新改名为正确的名称。

  该方法结合下面的限制运行程序的方法(限制运行DOS窗口),可以很有效的保护你的文件夹。

  2.限制用户运行的程序(适用范围:Windows 9x/Me/NT/2000/XP)

  (1)禁止用户通过"运行"来运行应用程序

  通过"开始"菜单的"运行",用户可以输入命令来启动某个程序。对于那些不是EXE为扩展名的程序,也可以直接运行。如果不希望用户随意执行程序,可以将"开始"菜单中的"运行"项去除。

  进入到注册表项HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Policies\Explorer中,新建一个双字节值项NoRun,修改其值为1

  提示:除了"运行"外,可以在DOS窗口中手工输入命令来启动某个程序。

  (2)禁止用户运行命令解释器和批处理文件(适用于Windows NT/2000/XP)

  通过修改注册表,可以禁止用户使用命令解释器(CMD.exe)和运行批处理文件(BAT文件)

  进入到注册表项HKEY_CURRENT_USER\Software\Policies\ Microsoft\Windows\System\中,新建一个双字节值项DisableCMD,修改其值为2。则命令解释器和批处理文件都不能够被运行。如果只是禁止命令解释器的运行,而运行批处理文件的运行,则修改DisableCMD的值为1

  (3)禁止运行指定的程序

  为了安全性起见,我们可能希望有些带有危险性的程序不让用户去运行。这可以通过注册表来实现。例如我们想禁止用户运行记事本(notepad.exe)和计算器(cal.Exe)

  首先在注册表项HKEY_CURRENT_USER\Software\Microsoft \Windows\CurrentVersion\Policies\Explorer中,新建一个双字节值项DisallowRun,修改其值为1,以允许我们定义禁止允许的程序,然后新建一个注册表项HKEY_CURRENT_USER\Software\Microsoft\ Windows\Current Version\Policies\Explorer\DisallowRun,在其下新建两个字符串值项。第一个值项的名称为1,值为notepad.exe,第二个值项为2,值为calc.exe。如果想禁止更多的程序,可以依次建立名称为34等顺序往下排列的值项。修改注册表后立即生效。这时想通过"开始"菜单运行记事本和计算器程序,系统会提示不能进行此操作。

  注意:用户在Windows NT/2000/XP的命令解释器(CMD.exe)窗口中,仍然可以通过输入"notepad.exe"运行记事本。这是因为DisallowRun禁止的只是通过资源管理器Explorer运行的程序,记事本不是通过Explorer启动的,所以就无法禁止了。如果不希望用户可以通过命令解释器运行程序,应该在DisallowRun中将命令解释器(CMD.exe)禁止。另外,此方式还有一个不安全之处,就是如果用户将记事本程序"notepad.exe"更改名称,如改成"note.exe",用户就可以运行它了。

  (4)只允许运行指定的程序

  为了限制用户运行程序,我们可以指定用户只能运行某些必须的程序。这种方式可以避免用户运行自己携带来的程序,有效地防范病毒地传播。这可以通过注册表来实现。

  首先在注册表项HKEY_CURRENT_USER\Software\Microsoft \Windows\Current Version\Policies\Explorer下新建一个双字节值项RestrictRun ,修改其值为1,以允许我们指定可以运行的程序。

  然后新建一个注册表项HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun,在其下新建两个字符串值项。第一个值项的名称为1,值为notepad.exe,第二个值项为2,值为calc.exe。如果想允许更多的程序,可以依次建立名称为34等顺序往下排列的值项。修改注册表后立即生效。这时想通过"开始"菜单和资源管理器运行其他的程序,系统会提示不能进行此操作。

  提示:如果你没有允许注册表编辑器运行,你会发现你将无法恢复此方法所做的修改,因为无法用注册表编辑器来修改注册表了。在这种情况下,你可以将注册表编辑器程序的名称改变为你允许运行的某个程序的名称,这样你就可以运行起来注册表编辑器了。

  注意:由于此方法的限制性非常大,所以请小心使用,尤其是避免没有允许任何程序运行这种情况。如果出现了这种情况,你将无法将此方法做的设定改变回来,因为你无法修改注册表。惟一的方法就是恢复修改前的注册表备份。

(5)禁止使用注册表编辑器

  注册表是复杂和危险的,所以我们往往希望用户不要尝试着去修改注册表。通过修改注册表,我们可以禁止用户运行系统提供的两个注册表编辑器,Regedit.exeRegedt32.exe

  在注册表项HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Policies\System\下新建一个双字节值项DisableRegistryTools,修改其值为1。这样,用户就不能启动注册表编辑器了。

  注意:使用此功能要小心,最好作个注册表备份,或者准备一个其他的注册表修改工具。因为你在禁止了注册表编辑器后,就不能再使用该注册表编辑器将值项改回了。

  (6)禁止用户更改口令(适用于Windows NT/200/XP)

  用户在"Windows安全窗口"(同时按下Ctrl+Alt+delete),可以单击"更改密码"来更改用户口令。通过修改注册表,可以禁止用户更改口令。

  在注册表项HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Policies\System下新建一个双字节值项DisableChangePassword,修改其值为1。这样,"Windows安全窗口"中的"更改密码"按钮变成了灰色不可选状态,用户无法更改口令。

  (7)禁止用户锁定计算机(适用于Windows NT/2000/XP)

  用户在"Windows安全窗口"中,可以单击"锁定计算机"来锁定计算机。通过修改注册表,可以禁止用户锁定计算机。

  在注册表HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Policies\System中新建一个双字节值项DisableLockWorkstation,修改其值为1。这样,"Windows安全窗口"中的"锁定计算机"按钮变成了灰色不可选状态,用户无法锁定计算机。

  (8)禁止用户使用任务管理器(适用于Windows NT/2000/XP)

  用户可以使用"Windows任务管理器"(Taskmgr.exe)来启动和结束本地进程、查看和管理其他计算机上的进程、改变进程的优先级。通过修改注册表,可以禁止用户使用任务管理器。

  在注册表项HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Policies\System\下新建一个双字节值项DisableTaskMgr,修改其值为1。这样,用户就无法启动任务管理器了。

  3.限制用户可以查看的资源(适用范围:Windows 9x/Me/NT/2000/XP)

  (1)隐藏指定的磁盘驱动器

  如果我们不希望使用者查看某个驱动器的内容,可以在"我的电脑"和资源管理器中将该驱动器的图标隐藏起来。

  在注册表项HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer中新建一个双字节值项NoDrives

  该值项共使用了从最低位(0)到第25位,共26个字位,分别代表驱动器A到驱动器Z。如果第0位为1,表示不显示驱动器A的图标,第3位为1,表示不显示驱动器D的图标,依此类推。例如我们想"我的电脑"中不显示任何驱动器的图标,可以修改"NoDrives"的值为"03ffffff"(0位到31位全部为1)。修改后重启桌面使改动生效。

  修改后,不只是"我的电脑",还包括"网上邻居"、资源管理器,任何标准的"打开""保存"文件的对话框,都不会出现指定驱动器的图标。虽然这些驱动器的图标不能出现,但是用户仍然可以访问这些驱动器。例如可以在资源管理器的地址栏中输入驱动器号,或者在DOS窗口中使用命令查看隐藏了的驱动器。

  (2)禁止用户查看指定磁盘驱动器的内容

  如果有一个驱动器中存放了重要的数据,我们不希望使用者查看该驱动器的内容,可以使用此方法来禁止查看该驱动器的内容。

  在注册表项HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer中新建一个双字节值项NoViewOnDrive。该值项共使用了从最低位(0)到第25位,共26个字位,分别代表驱动器A到驱动器Z。如果第0位为1,表示禁止使用驱动器A,第3位为1,表示禁止使用驱动器D,依此类推。例如我们想禁止用户使用软盘驱动器AB,以及驱动器D,可以修改"NoViewOnDrive"的值为"0000000b"(013位的值为1)。修改后需要重启桌面使改动生效。

  这时再进入到"我的电脑",双击驱动器D,系统会弹出一个消息框,告诉用户不能进行此操作。不只是"我的电脑",还包括"网上邻居"、资源管理器,任何标准的"打开""保存"文件的对话框,都不能对已经禁止的驱动器进行操作,虽然在"我的电脑"和资源管理器中,驱动器D的图标仍然存在。

  提示:该方法只是禁止用户在"我的电脑"和资源管理器中访问受限制的驱动器,应用程序仍然可以访问被禁止的驱动器。

  (3)登录时不显示上次使用者的用户名(适用于Windows NT/2000/XP)

  默认情况下,在用户注册登录时,在用户名栏中显示着上次使用者的用户名。通过修改注册表,我们可以禁止系统显示上次使用者的用户名,以加强安全性。

  在注册表项HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Winlogon\中新建一个双字节值项DontDisplayLastUserName,修改其值为1。重新启动机器后,在用户注册画面中,不会显示上次使用者的用户名。