跳转到路径导航栏
跳转到正文内容

信息网络安全保护工作知识手册第六部分

http://www.sina.com.cn  2006年05月24日 19:21  新浪科技

  第六部分:Windows操作系统安全

  一、设置安全强壮密码的原则

  操作系统的密码(口令)十分重要,它是抵抗攻击的第一道防线,我们必须把密码安全作为安全策略的第一步。如果攻击者未能窃取到系统密码,那么他就不能很好地和系统进行交互信息,对系统所能采取的入侵的方法也就不多了。因此,必须设置安全强壮的密码。所有安全强壮的密码至少要有下列四方面内容的三种:

  ·大写字母

  ·小写字母

  ·数字

  ·非字母数字的字符,如标点符号等

  安全的密码还要符合下列的规则

  ·不使用普通的名字或昵称

  ·不使用普通的个人信息,如生日日期

  ·密码里不含有重复的字母或数字

  ·至少使用八个字符 另外,应该还要求用户42天必须修改一次密码。

  以下举例说明强壮密码的重要性:假设密码设置为6位(包括任意五个字母和一位数字或符号),则其可能性将近有163亿种。不过这只是是理论估算,实际上密码比这有规律得多。例如,英文常用词条约5000条,从5000个词中任取一个字母与一个字符合成口令,仅有688万种可能性,在一台赛扬600(CPU主频)的计算机上每秒可运算10万次,则破解时间仅需1分钟!即使采用穷举方法,也只需9个小时;因此6位密码十分不可靠。而对于8位密码(包括七个字母和一位数字或符号)来说,若完全破解,则需要将近三年的时间。因此,密码不要用全部数字,不要用自己的中英文名,不要用字典上的词,一定要数字和字母交替夹杂,并最好加入@#$%!&*?之类的字符。

  二、如何强制使用安全强壮的密码

  WindowsNT/2000系统在默认配置下允许任何字符或字符串作为密码,包括空格,这是相当不安全的,下面我们通过修改注册表使得用户设定的密码中必须同时包含字母和数字,从而增强系统的安全性。具体设置如下:

  首先在“开始”“运行”菜单中输入regedit.exe程序,如下图:

  然后进入主键:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies

  新建Network子键(项),

  在右侧窗口中新建(右键选择“新建”)一个名为AlphanumPwds的双字节(操作系统的不同,出来的菜单可能有不同,Dword同样表示双字节)值,(右键选择”新建”)

  数值为1即可。

  (注:后面将会有大量操作注册表的描述,过程如上图大致类似,就不再采用图示。)注册表各项解释如下:名称:指某个值的标示名,比如上图的AlphanumPwds。

  类型: 指该名称的数据类型,共有三种:REG_SZ字符串型,它的数据可以是字符串;REG_BINARY二进制数据类型,它的数据就只能是0和1的组合; REG_DWORD是双字节数据类型,它的数据可以是十六进制数据。

  数据: 表示该值的内容。

  我们还可以在密码策略中进行相关的设置。

  在”控制面板” “管理工具” “本地安全策略” “帐户策略”中的”密码策略”,双击想要更改的项目,比如修改密码长度最小值:点确定就可以了。按照上面的步骤作如下设置: 密码复杂性要求 启用 密码长度最小值 8位强制密码历史 5次强制密码历史 42天

  注:后两项会因操作系统的不同,设置名称等会不尽相同,但意义都一样。

  最后,请重新启动计算机生效。

  三、如何设置安全的帐号策略

  对于WindowsNT系统而言,帐号策略的设置是通过域用户管理器来实施的,从用户

  管理器的菜单中选择用户权限,可以设置密码使用时间,长度以及连续登录失败后的锁

  定机制等。具体方法是:

  在上面的本地安全策略编辑器里,打开”帐户策略”,配置如下图所示:

  四、系统文件权限的分类

  当要给文件设置权限的时候,要首先保证该分区格式为NTFS(WindowsNT的文件系

  统),当然你也可以使用文件分配表(FAT)格式,但是FAT文件系统没有对文件的

  访问权限加以任何限制,FAT只在那些相对来讲对安全要求较低的情况下使用。在NTFS

  文件系统中,可以使用权限对单个文件进行保护,并且可以把该权限应用到本地访问

  和网络访问中。在NTFS文件系统上,可以对文件设置文件权限,对目录设置目录权限,

  用于指定可以访问的组和用户以及允许的访问等级时。

  如果实施了NTFS的文件系统格式,可通过系统的资源管理器直接来管理文件的安

  全,设置目录或文件的权限。以regedit.exe文件为例,右键选择“属性”,

  在“安全”标签里面选择不同组的名称,就可以更改配置他们对该文件的操作权限。

  基于文件级的权限可以分配下面几种:读取(用户可以读取该文件的内容),写入

  (用户可以写入数据到该文件中),读取及执行(用户可以执行该程序),修改

  (用户可以修改该文件内容,包括删除),完全控制(以上所有权限都有)。因此,适

  当地为不同权限的帐号分配相应的访问权限(在”允许”,”拒绝”栏分别打勾,)对于文件系统的安全是致关重要的。

  五、如何保护注册表的安全

  Windows NT/2000中的注册表(Registry)是一系列的数据库文件,主要存储在

  系统安装目录\System32\Config下,有些注册表文件建立和存储在内存中,这些文件

  的备份也存储在系统安装目录\Repair下。由于所有配置和控制系统数据最终都存在于

  注册表中,而且Registry的缺省权限设置是对“所有人”“完全控制”(FullControl)

  和“创建”(Create),这种设置可能会被恶意用户删除或者替换掉注册表(Registry)

  文件。所以,如果注册表权限没有设置好的话,整个WindowsNT

  /2000的系统就不安全,因此我们必须控制注册表的访问权。

  对于注册表(Registry),建议应严格限制只能在本地进行注册,不能被远程访问,

  限制对注册表(Registry)编辑工具的访问。具体可以利用文件管理器设置只允

  许网络管理员使用注册表编辑工具regedit.exe或regedt32.exe,其他任何用户不得使用;

  还可使用第三方工具软件,比如EnterpriseAdministrator(MissionCriticalSoftware)

  来锁住注册表(Registry)。或者把对注册表缺省的所有用户都能“完全控制”的权利改成

  只能“读取”.在“开始”“运行”里面输入regedt32如下图:假设我们将HKEY_CURRENT_

  USER支更改成一般用户只能读,在菜单中选择“安全”“权限”如下图:选择组用户users

  (在win2000系统中默认uers是一般用户,如果在上面列表中没有定义users组权限,可以

  选择”添加”按纽,将该组进

  行权限设置)同时,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secure

  PipeServers\

  winreg这个键应该只允许Administrators组成员访问。修改方法参照上图。为了能识别用户,

  防止匿名登陆,应该在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA下

  新建一个DWORD(双字节)类型的RestrictAnonymous项,并设置其值为1(具体操作请参考上

  面的图示)。

  实际上,如果把用户操作注册表的这种权利设置成“只读”,将会给一些应用软件带来许

  多潜在的功能性问题,比如Dlexpert(下载专家,一个下载软件),在下载的时候会将当前下

  载地址等信息写入到注册表里面,如果在设置了注册表权限的机器上运行该程序,会出现下

  载地址无法保存的现象,解决办法就是使用regedt32软件将用户权限更改回去,在这里,我们

  建议在重要服务器上不要安装和运行其他非系统的软件。

  六、消除默认安装目录风险

  WindowsNT/2000默认安装路径是在系统主分区的\WINNT目录下,在安装时可以修改它的

  安装路径,如C:\WINNT可以改为C:\WINDOW或D:\WINNT等;改变默认安装目录对合法用户不

  会造成任何影响,但对于那些企图通过类似WEB服务器的漏洞或者缺陷来远程访问文件的攻击

  者来说就大大地增加了难度。

  七、取消默认系统帐号风险

  对于在WindowsNT/2000默认系统帐号,如administrator,guest等都必须改名,对于

  其它一些帐号,比如IUSR_机器名是在安装IIS后产生的,对其也必须改名。因为改变Admini

  strator帐户的名字,可以防止黑客对缺省命名的帐户进行攻击,这个措施可以解决一系列

  的安全漏洞,一旦帐号被他人窃取或攻破,整个网络系统便无任何安全性可言了。

  所以应为系统管理员和备份操作员创建特殊帐户,系统管理员在进行特殊任务时必须用

  这个特殊帐户注册,然后注销。所有具有Administrator和备份特权的帐户绝对不能浏览Web。

  所有的帐户只能具有User或者PowerUser组的权限,对于Guest帐户,默认是无口令的,所以

  最好能停止使用Guest帐户。

  注:停用Guest帐户,可能会给win9x用户通过网上邻居访问服务器带来“无权限访问”

  的错误。解决方法是在服务器中添加win9x机器上的用户名或者启用guest帐号。

  八、删除默认共享风险

  WindowsNT/2000出于管理的目的自动地建立了一些默认共享,包括C$,D$磁盘共享以

  及ADMIN$目录共享等。尽管它们仅仅是针对管理而配置的,但仍成为一个没必要的风险,成

  为攻击者的目标。

  我们打开注册表(见第二章第一节第二知识点图示,以下同)。在主键HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\meters

  目录下,创建一个叫AutoShareServer的键值,类型为DWORD(双字节)并且值为0,来禁

  止这些共享;再创建一个键值名为AutoShareWks的双字节值,修改键值为0。

  最后,请重新启动计算机生效。

  同样可以通过控制面板里面的管理工具来暂时取消共享。选择“计算机管理”程序,

  选择“共享文件夹”,在相应的共享文件夹上按右键,选择“停止”共享即可。不过在系统

  重新启动后,IPC$和printer$会再次共享。

  九、如何加强系统打印驱动的安全

  WindowsNT/2000的打印机驱动是以完全控制权限运行在操作系统级别。缺省情况下,

  任何人都可以在WindowsNT/2000中安装打印机驱动,这种默认权限使系统很易遭受木马攻击。

  攻击者可以建立假的打印机驱动而实际上进行了其它的活动,例如,开启后门等。因此,要

  严格限制用户拥有安装的权限,只允许管理员组和打印机操作员可以安装打印驱动,具体可以

  打开注册表,在主键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\

  Providers\LanManPrintServices中增加类型为DWORD(双字节)的AddPrintDrivers项,

  并设置其值为1。

  最后,请重新启动计算机生效。

  十、如何加强共享系统对象的安全

  我们应该严格限制打印机、串口等共享对象,使其只能被管理员使用,由于这种限制可

  以影响许多程序,比如在一局域网中的服务器上的共享打印机,设置了权限控制后,一般用

  户就无法进行网络打印了。所以在应用这种限制时要考虑是否该服务器对外提供了这些服务。

  如果没有提供可以使用下面的方法来进行权限设置:请首先打开注册表。然后在主键HKEY_LOCAL_MACHINE\System\currentControlSet\Control\SessionManager中增加

  (或者修改)一个类型为DWORD(双字节)的名称为ProtectionMode的项,并将其值设成1。

  最后,请重新启动计算机生效。

  十一、如何手动查找并清除木马程序

  第一种方法是查看系统注册表。先打开注册表。进入注册表后,可以通过查看以下主键:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run或RunServersHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

  或RunServers下面是否有类似Netspy.exe,空格.exe等可疑文件名,并手动删除键值和相

  应的程序。

  第二种方法使用一些第三方软件,比如The Cleaner,它可以在HYPERLINKantivirus.pchome.net/cleaner/7066.html

  antivirus.pchome.net/cleaner/7066.html下载到。

  十二、加强对域和帐号数据库的管理

  所谓“域”是指网络服务器和其他计算机的逻辑分组,凡是在共享域范围内的用户都

  使用公共的安全机制和用户帐号信息。每个用户有一个帐号,每次登录的是整个域,而不是某

  一个服务器。即使在物理上相隔较远,但在逻辑上可以在一个域上,这样便于管理。在网络

  环境下,使用域的管理就显得更为有效;在使用”域”的划分时,我们应该注意到“域”是建

  立在一个子网范围内,其根本基础是相互之间的信任度很高。

  这里我们应该注意到在WindowsNT/2000中,关于域的所用安全机制信息息或用户帐号

  信都存放在帐号数据库中(称为安全帐号管理器(SAM)数据库)。安全帐号管理器(SAM)数据

  库在磁盘上的具体位置就保存在系统安装目录下的system32\config\中的SAM文件,在这个目

  录下还包括一个SECURITY文件,也是安全数据库的内容。安全帐号管理器(SAM)数据库中包

  含所有组、帐户的信息,包括密码HASH结果、帐户的SID等。所以在对WindowsNT/2000进行维

  护时应该特别小心安全帐号管理器(SAM)数据库的完整性,严格限制Administrator组和备

  份组帐户的成员资格。加强对这些帐户的跟踪,尤其是Administrator帐户的登录(Logon)

  失败和注销(Logoff)失败。对SAM进行的任何权限改变和对其本身的修改都要进行审计,切

  记要改变缺省权限设置来预防这个漏洞,一般来讲只有管理员才允许具有对以上两个文件的编

  辑权限。下面的过程演示了怎么样启用SAM访问审核。首先启动一个cmd命令窗口,在“开始”

  “运行”输入:会出来一个黑底的命令窗口。以下命令均是在该窗口中进行操作1. 确认启动

  schedule,如未启动,使用以下命令启动该服务netstart schedule2.使用At 命令添加任

  务:at <时间> /interactive“regedt32.exe”比如当前时间16:49,那么我们可以设置程

  序在16:51分启动:at 14:51/interactive“regedt32.exe”3. 那么到14:51分,

  Regedt32.exe会以系统帐号启动。4.选择HKEY_LOCAL_MACHINE 窗口;5. 选择 SAM 并从

  “安全“菜单选择“权限“,如下图;再选择”高级”出来窗口如图示:6. 单击“添加“,

  然后“显示用户“;7. 添加如下帐号:2. SYSTEM3. DomainAdmins4.Administrator5.

  BackupOperators随着操作系统版本不一样,可能用户组名、帐号服务器上并不存在。其他

  拥有以下权限的帐号:6. Takeownership offiles or other ts(取得文件或其他对象的

  所有权)7. Back up filesanddirectories(备份文件和目录)8. Manage auditing

  andsecuritylog(管理审核和安全日志)9. Restore files and directories(还原文件

  和目录)10.Addworkstations to domain(域中添加工作站)

  11. Replace a processleveltoken(替换进程级记号)单击“确定“;

  12. 为下面设置“成功“和“失败“的审核:13. QueryValue(查询数值)

  14.Set Value(设置数值)15. Write DAC(写入DAC)16. ReadControl(读取控制)

  17.单击”确定“。单击“是“。18. 停止schedule服务,在”开始” “运行”里输入:

  netstopschedule

  十三、修改共享目录默认控制权限对于WindowsNT/2000系统来说,默认情况下当新增一个

  共享目录时,操作系统会自动将EveryOne这个用户组添加到权限模块当中,由于这个组的

  默认权限是完全控制,结果使得任何人都可以对共享目录进行读写。因此,在新建共享目

  录之后,要立刻删除EveryOne组或者将该组的权限调整为读取。相关编辑界面见下图所示:

  十四、禁止不必要的服务WindowsNT/2000系统中有许多用不着的服务自动处于激活状

  态,它们中可能存在的安全漏洞使攻击者甚至不需要账户就能控制机器.为了系统的安全,

  应把该关的功能服务及时关闭,从而大大减少安全风险。具体操作可以在“控制面板”的

  “管理工具”里面“服务”菜单中,选取不必要的服务进行禁止,见下图:

  相关需要禁止的服务如下:Alerter:通知所选用户和计算机有关系统管理级警报。

  ApplicationManagement:提供软件安装服务,诸如分派,发行以及删除。ClipBook:

  支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面。COM+EventSystem:提供

  事件的自动发布到订阅 COM组件。ComputerBrowser:维护网络上计算机的最新列表以及

  提供这个列表给请求的程序。Distributed LinkTrackingClient:当文件在网络域的

  NTFS 卷中移动时发送通知。DistributedTransactionCoordinator:并列事务,是分

  布于两个以上的数据库,消息队列,文件系统,或其它事务保护资源管理器。

  FaxService:帮助您发送和接收传真。FTPpublishing service: 通过 Internet

  信息服务的管理单元提供FTP连接和管理。IndexingService:本地和远程计算机上文

  件的索引内容和属性;通过灵活查询语言提供文件快速访问。Messenger:发送和接收

  系统管理员或者”警报器”服务传递的消息。NetLogon:支持网络上计算机

  pass-through 帐户登录身份验证事件。”Network DDE : 提供动态数据交换(DDE)

  的网络传输和安全特性。Network DDE DSDM : 管理网络 DDE 的共享动态数据交换

  NetworkMonitor :网络监视器NetMeeting Remote Desktop Sharing:允许有权限

  的用户使用NetMeeting 远程访问Windows 桌面。Plug and Play(在配置好所有硬

  件后应该禁止掉):管理设备安装以及配置,并且通知程序关于设备更改的情况。

  Remote Procedure Call(RPC): 提供终结点映射程序(endpoint mapper) 以及

  其它 RPC 服务。RemoteRegistryService:允许远程注册表操作。

  Removable Storage:管理可移动媒体、驱动程序和库。RoutingandRemoteAccess:

  在局域网以及广域网环境中为企业提供路由服务。RunAsService:在不同凭据下启用

  启动过程。Server: 提供RPC 支持、文件、打印以及命名管道共享。SmartCard:对

  插入在计算机智能卡阅读器中的智能卡进行管理和访问控制。SmartCardHelper:提供

  对连接到计算机上旧式智能卡的支持。Task Schedule: 允许程序在指定时间运行。

  TCP/IPNetbiosHelper:允许对“TCP/IP 上 NetBIOS (NetBT)”服务以及

  NetBIOS名称解析的支持。TelephoneService:供 TAPI 的支持,以便程序控制本地

  计算机,服务器以及 LAN 上的电话设备和基于IP 的语音连接。

  WindowsManagementInstrumentation:提供系统管理信息。必要时需禁止的服务

  如下:SNMPservice:简单网络管理协议SNMPtrap:简单网络协议陷阱跟踪UPS:

  USP电源管理。

  十五、如何防范NetBIOS漏洞攻击NetBIOS(NetworkBasicInputOutputSystem,

  网络基本输入输出系统),是一种应用程序接口(API),系统可以利用WINS(管

  理计算机netbios名和IP影射关系)服务、广播及Lmhost文件等多种模式将NetBIOS

  名解析为相应IP地址,从而实现信息通讯。在局域网内部使用NetBIOS协议可以非常

  方便地实现消息通信,但是如果在互联网上,NetBIOS就相当于一个后门程序,很多

  攻击者都是通过NetBIOS漏洞发起攻击。对于WindowsNT系统,可以取消NetBIOS与

  TCP/IP协议的绑定,具体方法是:首先打开“控制面板”,然后双击“网络”图标,

  并在“NetBIOS接口”中选择“WINS客户(TCP/IP)”为“禁用”,最后重新启动

  计算机即可。对于Windows2000系统而言,它没有限制TCP/IP绑定在NetBIOS上,

  我们可以通过以下方式来设置:首先选择“开始”→“设置”→“控制面板”→

  “网络和拨号连接”→“本地连接”菜单中,双击“Internet协议(TCP/IP)”,:

  接着在打开的对话框中单击“高级”按钮,并选择“选项”菜单,如下图:

  随后点击“属性”按钮,将弹出“TCP/IP筛选”对话框,选择“启用TCP/IP筛选”,见下图:

  最后在以上“TCP端口”对话框中添加除了139之外要用到的服务端口即可。十六、如何解决SNMP缓冲区溢出漏洞SNMP(SimpleNetworkManagementProtocol,简单网络管理协议)是所有基于TCP/IP网络上管理不同网络设备的基本协议,比如防火墙、计算机和路由器。所有的Windows系统(除了WindowsME)都提供了SNMP功能,但是在所有版本的系统中都不是默认安装和执行的。现在已经发现,如果攻击者发送怀有恶意信息给SNMP的信息接收处理模块,就会引起服务停止(拒绝服务)或缓冲器溢出;或者说通过向运行SNMP服务的系统发送一个畸形的管理请求,此时就存在一个缓冲区溢出漏洞,或者造成拒绝服务影响。一旦缓冲区溢出,可以在本地运行任意的代码,可以让攻击者进行任意的操作。因为SNMP的程序一般需要系统权限来运行,因此缓冲器溢出攻击可能会造成系统权限被夺取,而形成严重的安全漏洞。具体解决方法如下:由于许多基于Windows安全设备和程序都是使用SNMP服务进行管理的,所以我们建议如果不需要使用SNMP服务就应该停止它。如果要防止从外界进行的攻击破坏,请在防火墙或者路由器上设置禁止从外界进行SNMP(UDP161和UDP162端口)操作。另外,微软已经为此发布了一个安全公告(MS02-006)以及相应补丁程序:www.microsoft.com/technet/security/bulletin/MS02-006.asp,请用户及时下载安装补丁程序。

  十七、如何加固IIS服务器的安全

  Windows系统近几年的攻击都偏重在IIS上,曾在2001到2002年大肆流行的Nimda,CodeRed病毒等都是通过利用IIS的一些漏洞入侵并且开始传播的。由于NT/2000系统上使用IIS作为WWW服务程序居多,再加上IIS的脆弱性以及与操作系统相关性,整个NT/2000系统的安全性也受到了很大的影响。通过IIS的漏洞入侵来获得整个操作系统的管理员权限对于一台未经安全配置的机器来说是轻而易举的事情,所以,配置和管理好你的IIS在整个系统配置里面显得举足轻重了。

  IIS的配置可以分为以下几方面: (以下操作均是使用Internet服务管理器操作,你可以在控制面板的管理工具里面找到该快捷方式,运行界面如下:)

  a)删除目录映射。

  默认安装的IIS默认的根目录是C:\inetpub,我们建议你更改到其他分区的目录里面,比如:D:\inetpub目录。

  默认在IIS里面有Scripts,IISAdmin,IISSamples,MSADC,IISHelp,Printers这些目录映射,建议你完全删除掉安装IIS默认映射的目录,包括在服务器上真实的路径(%systemroot%是一个环境变量,在具体每台服务器上可能不一样,默认值由安装时候选择目录决定):

  Scripts对应c:\inetpub\scripts目录

  IISAdmin对应%systemroot%\System32\inetsrv\iisadmin目录

  IISSamples对应c:\inetpub\iissamples目录。

  MSADC对应c:\program files\common files\system\msadc目录。

  IISHelp对应%systemroot%\help\iishelp目录。

  Printers对应%systemroot%web\printers目录。

  还有一些IIS管理员页面目录:

  IISADMPWD 对应%systemroot%\system32\inetsrv\iisadmpwd目录

  IISADMIN 对应 %systemroot%\system32\inetsrv\iisadmin目录

  b)删除可执行文件扩展名(应用程序)映射。

  在应用程序配置里面 (上图“配置按钮”),默认有以下程序映射:

  如果不使用SSI(server side include, 服务器端嵌入脚本),建议删除“.shtm” “.stm” 和 “.shtml”这些映射.像:“.cer” “.cdx” “htr” “idc” “printer”等,如无特别需要,建议只保留“.asp”和“.asa”的映射。

  c)Frontpage扩展服务

  从控制面板里面打开“添加或删除程序”选择“添加/删除windows组件”,

  选择“Internet信息服务(IIS)”,点“详细信息”,请确认FrontPage 2000服务器扩展没有被勾上。如果有,则取消掉,点确定就可以了。

  提示: 微软公司提供了一个叫iislockd的程序,它可以用来帮助你更安全的配置IIS。除了上面的Frontpage扩展没有提供外,其他两点均能很好的支持。

  下载地址:download.microsoft.com/download/iis50/Utility/2.1/

  NT45XP/EN-US/iislockd.exe

  十八、如何安全配置MSSQL数据库

  微软的SQL Server是一种广泛使用的数据库,很多单位、企业内部信息化平台等都是基于SQL Server上的,但是数据库的安全性还没有被人们意识到。多数管理员认为只要把网络和操作系统的安全搞好了,那么所有的应用程序也就安全了。数据库系统中存在的安全漏洞和不当的配置通常会造成严重的后果,而且都难以发现。数据库应用程序通常同操作系统的最高管理员密切相关。

  这里,我们主要谈论有关SQL Server2000数据库的安全配置以及一些相关的安全和使用上的问题。 在进行SQL Server 2000数据库的安全配置之前,首先你必须对操作系统进行安全配置,保证你的操作系统处于安全状态。然后对你要使用的操作数据库软件(程序)进行必要的安全审核,比如对ASP、PHP等脚本,这是很多基于数据库的WEB应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似 , ‘ ; @ / 等字符,防止破坏者构造恶意的SQL语句。接着,安装SQL Server2000后请打上补丁sp1以及最新的sp2。下载地址是:

  www.microsoft.com/sql/downloads/2000/sp1.asp

  www.microsoft.com/sql/downloads/2000/sp2.asp

  在做完上面三步基础之后,我们再来讨论SQL Server的安全配置。

  在此之前我想对如何使用SQL语句操作作一个简单的图示。

  执行SQL语句有两种方式,一种是基于文本工具isql,类似dos操作界面的方法,另外一种就是使用SQL查询器来查询,它是一个可视化的界面。

  SQL查询器可以在“开始”“程序”“Microsoft SQL Server” 找到它的快捷方式,程序具体位置是

  C:\Program Files\Microsoft SQL Server\80\Tools\Binn\isqlw.exe

  这里简单介绍一下使用isql查询方式(基于命令行的)

  找到isql程序,它在C:\Program Files\Microsoft SQL Server\80\Tools\Binn目录下面(版本的不同或者安装路径不同可能在其他目录中)。

  开启一个cmd命令窗口,

  输入:cd “Program Files\Microsoft SQL Server\80\Tools\Binn”

  接着输入:isql –S 服务器IP -U sa –P sa用户的密码

  系统会出来一个前面是标示命令行数的数值,后面跟一个>符号表示需要用户在后面输入SQL 语句命令,如上图 1> use master 表示第一行,use master是用户的输入。最后一行go表示开始处理SQL语句命令,如无特别说明,以下命令均是在该终端下执行的。详细SQL命令请参考其他有关手册。

  1、使用安全的密码策略

  我们把密码策略摆在所有安全配置的第一步,对于sa用户应该注意此帐号的密码设置,尽量避免不要让sa帐号的密码写于应用程序或者脚本中。默认安装sa用户密码为空,应在安装后尽快修改它,并且养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号

  比如使用下面的SQL语句:

  Use master

  Select name from syslogins where password is null

  给用户密码修改命令的语句是:

  sp_password ‘原密码’,‘新密码’,‘用户帐号名’。

  比如:

  该命令就是把用户名为“netconf”的密码由原来的“netconf”改成“netconf1”。

  2、使用安全的帐号策略。

  由于SQL Server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,首先要选择一个非常强壮的密码。 其次,最好不要在数据库应用中使用sa帐号,只有当没有其它方法登录到 SQL Server时才使用 sa。建议数据库管理员新建立一个拥有与sa一样权限的超级用户来管理数据库。安全的帐号策略还包括不要让管理员权限的帐号泛滥。

  SQL Server的认证模式有Windows身份认证和混合身份认证两种。如果数据库管理员不希望操作系统管理员来通过操作系统登陆来接触数据库的话,可以在帐号管理中把系统帐号“BUILTIN\Administrators”删除。不过这样做的结果是一旦sa帐号忘记密码的话,就没有办法来恢复了。

  很多主机使用数据库应用只是用来做查询、修改等简单功能的,请根据实际需要分配帐号,并赋予仅仅能够满足应用要求和需要的权限。比如,只要查询功能的,那么就使用一个简单的public帐号能够select就可以了。

  3、管理扩展存储过程。

  对存储过程进行大手术,并且对帐号调用扩展存储过程的权限要慎重。其实在多数应用中根本用不到多少系统的存储过程,而SQL Server的这么多系统存储过程只是用来适应广大用户需求的,所以请删除不必要的存储过程,因为有些系统的存储过程能很容易地被人利用起来提升权限或进行破坏。

  如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句:

  use master

  EXEC sp_dropextendedproc 'xp_cmdshell'

  xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也可以恢复过来。

  EXEC sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'

  如果你不需要请丢弃OLE(对象链接与嵌套,Object Linking and Embedding)自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下:

  EXEC Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty

  Sp_OAMethod Sp_OASetProperty Sp_OAStop

  去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下:

  Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues

  Xp_regread Xp_regremovemultistring Xp_regwrite

  还有一些其他的扩展存储过程,你也最好检查检查。

  在处理存储过程的时候,请确认一下,避免造成对数据库或应用程序的伤害。

  7、对网络连接进行IP限制

  SQL Server 2000数据库系统本身没有提供网络连接的安全解决办法,但是Windows 2000提供了这样的安全机制。使用操作系统自己的IPSec可以实现IP数据包的安全性。请对IP连接进行限制,只保证自己的IP能够访问,也拒绝其他IP进行的端口连接,把来自网络上的安全威胁进行有效的控制。

  十九、如何使用IPSec来控制端口访问

  在windows 2000中提供了一种叫IPsec的安全工具,它能通过自定义规则来允许或者拒绝其他用户通过TCP/IP协议来访问服务器某个端口。

  在网络属性里面,选择网卡的“本地连接”“tcp/ip属性”选择“高级”,

  选择属性,勾选“启用TCP/IP筛选(所有示配器)”

  这样,其他用户通过这块网卡就只能访问到服务器的21,80,1433端口了。

  二十、系统日志放在何处

  Windows NT/2000的日志文件通常有应用程序日志,安全日志、系统日志、DNS服务器日志、FTP日志、WWW日志等等。当非法用户探测系统信息的时候,就会在安全日志里迅速地记下机器被探测时所用的用户名、时间等等,用FTP探测后,也会立刻在FTP日志中记下IP、时间、探测所用的用户名和密码等等,由此可见日志审计的重要性。以下即是对各种服务日志文件的默认位置和文件内容描述:

  关于日志文件默认位置:

  应用程序日志、安全日志、系统日志、DNS等服务日志的默认位置在系统安装目录下的system32\config下。

  关于日志文件保存目录详细描述:

  安全日志文件:系统安装目录\system32\config\SecEvent.EVT

  系统日志文件:系统安装目录\system32\config\SysEvent.EVT

  应用程序日志文件:系统安装目录\system32\config\AppEvent.EVT

  FTP日志默认位置:系统安装目录\system32\logfiles\msftpsvc1\日志文件

  WWW日志默认位置:系统安装目录\system32\logfiles\w3svc1\日志文件

  定时(Scheduler)服务日志默认位置:系统安装目录\schedlgu.txt

  安全日志文件,系统日志文件,应用程序日志文件,这三个日志记录都是有系统的一个称为: Event Log服务生成的,Event Log 的作用是记录程序和 Windows 发送的事件消息。事件日志包含对诊断问题有所帮助的信息。停止和启动该服务就可以停止或者开始记录上述三个日志文件。

  FTP日志和WWW日志均是在Internet信息服务里面配置和控制。

  在控制面板,管理工具里面打开Internet信息服务,如下图:

  其中“dumplogin”是机器名,分别右键“默认FTP站点”“默认Web站点”,选择“属性”,以FTP的为例:

  勾选“启用日志记录”就可以记录FTP站点的信息了,日志文件格式建议选择“W3C扩充日志文件格式”。

  选择“属性”,

  “新日志时间间隔”意思是每隔多长时间系统日志单独写成新的一个文件,比如:选择“每天”,那么每天在日志文件目录下就会多一个新的文件,该文件内容主要是记录当天的访问记录。

  还可以选择按大小来拆分,选择:“当文件大小达到”一定大小的时候,才会生成一个新的文件,系统默认是每天单独记录在一个文件里。

  在“扩充的属性”里面,允许用户选择记录哪些内容以及格式等。

  比如需要记录事件发生的日期,时间,以及客户IP地址,用户名等等,那么就勾选相应的栏目。最后点“应用”就可以记录了 。

  对于WWW服务来说,操作和FTP站点完全一样。

  二十一、如何保护日志文件

  既然系统日志文件能够记录所有的访问信息,为了防止他人修改系统的日志文件,隐藏自己的行踪,我们必须限制对日志文件的访问,禁止一般权限的用户去查看日志文件。具体方法是:

  我们可以利用文件系统对目录和文件级的权限保护(如前所述),来设置只有管理员才可以对以上提到的系统日志文件有操作权限。另外,我们还要小心保护好具有超级权限的密码和用户,因为黑客一旦知道了这些具有超级权限的帐号后,他们就可以修改日志文件来隐藏其踪迹了。

  我们建议管理员应该养成定时、定期备份日志的习惯。

  对于FTP,WWW日志,只要拷贝文件到其他目录就行了。 (注:当天的日志必须要停止掉相应的服务才能备份)。

  对于事件日志,需要打开事件查看器,然后再选择想要备份的日志:

  选择“另存日志文件”,在对话框中选择路径和文件名,然后“保存”即可。

  注:由于事件日志不是按日期来分开,所以当文件大小达到设置大小的时候可能会重写文件,所以应该经常注意文件是否到达定额。文件最大设置大小和到达设置大小会如何处理在后面会有详细介绍。

  二十二、如何进行系统日志审核

  审核是WindowsNT/2000中本地安全策略的一部分,它是一个维护系统安全性的工具,允许你跟踪用户的活动和WindowsNT/2000系统的活动,这些活动称为事件。

  根据监控审核结果,管理员就可以将计算机资源的非法使用消除或减到最小;通过审核,我们可以记录下列信息:哪些用户企图登录到系统中,或从系统中注销、登录或注销的日期和时间是否成功等;哪些用户对指定的文件、文件夹或打印机进行哪种类型的访问;系统的安全选项进行了哪些更改;用户帐户进行了哪些更改,是否增加或删除了用户等等。通过查看这些信息,我们就能够及时发现系统存在的安全隐患,通过了解指定资源的使用情况来指定资源使用计划。具体配置过程如下(以Windows 2000为例):

  审核策略的设置

  为运行Windows 2000的计算机设置审核策略,需要运行管理工具中的本地安全策略工具进行设置。具体设置步骤如下:

  首先进入“控制面板”,打开“管理工具”程序组,选择“本地安全策略”;在“本地安全策略”窗口的控制台目录树中,单击“本地策略”;然后选择“审核策略”, 选中要审核的事件,在操作菜单中选择“安全性”(也可以右键),或是双击所选择的审核事件;在策略设置窗口中,选择 “成功”复选框或“失败”复选框,或是将二者全部选中见下图所示:

  审核策略设置完成后,需要重新启动计算机才能生效。

  对文件和文件夹访问的审核

  对文件和文件夹访问的审核,首先要求审核的对象必须位于NTFS分区之上,其次必须为对象访问事件设置审核策略。符合以上条件,就可以对特定的文件或文件夹进行审核,并且对哪些用户或组指定哪些类型的访问进行审核。设置的步骤如下:

  在“审核”页面上,点击“添加”按钮,选择想对文件或文件夹访问进行审核的用户,单击“确定”; 在“审核项目”对话框中,为想要审核的事件选择“成功”或是“失败”复选框,选择完成后确定,见下图:

  以C:\WINNT目录为例,右键该目录,选择属性,选择“安全”标签,

  再选择高级,

  添加所要设置的用户名或者用户组,

  确定后,就会出来如下所示:

  默认情况下,对父文件夹所做的审核更改将应用于其所包含子文件夹和文件。如果不想将父文件夹所进行的审核更改应用到当前所选择的文件或文件夹,请清空 “允许将来自父系的可继承审核项目传播给该对象” 复选框即可,相关界面见下图所示:

  对打印机访问的审核

  对打印机访问进行审核,要求必须为对象访问事件设置审核策略。满足这个条件就能够对特定的打印机进行审核,并能够审核指定的访问类型以及审核拥有访问权限的用户。审核步骤如下:首先选取打印机的属性窗口,选择“安全”页面,点击“高级”按钮;然后在“审核”页面,点击“添加”按钮,选择想对打印机访问进行审核的用户或组(过程和上图基本类似);最后还要在“项目审核”窗口中,在“应用到”下拉列表中选择审核应用的目标,在“访问”列表中为审核的事件选择“成功”或“失败”检查框。设置完成后,请点击“确定”。相关界面见下图:

  二十三、系统日志审核的查看和维护

  在WindowsNT/2000中设置了审核策略和审核事件后,审核所产生的结果都被记录到安全日志中,安全日志记录了审核策略监控的事件成功或失败执行的信息。使用事件查看器可以查看安全日志的内容或是在日志中查找指定事件的详细信息。操作过程如下(以Windows2000为例):

  安全日志文件、系统日志文件、应用程序日志文件均可以通过“事件察看器”来查看。打开“控制面板”里“管理工具”“事件查看器”:

  左边分别是“应用程序日志”,“安全日志”,“系统日志”三部分,分别选择想要查询的日志,在右边就会有事件列表出来,栏目字段解释:

  “类型”: 有三个级别,一般信息( ),警告信息( ),错误信息( )

  日期和时间: 记录时间发生的日期和时间

  来源: 这类事件是由什么程序,系统什么软件运行产生的

  分类: 区分事件类型

  事件: 一般来说是有系统进程号来唯一标示的。

  用户: 是由什么用户运行产生的,其中N/A表示是由程序本身产生的。

  计算机: 表示日志发生在那台计算机上,一般是计算机名。

  双击某一个事件,会得到该事件的详细信息。如下图。

  其中,描述栏里面就是对应事件的详细描述,如果该事件和数据有关,比如内存段访问错误,那么在数据段里就会有相关的数据

  FTP和WWW服务的日志是文本文件,直接通过记事本就可以进行查看。比如某FTP服务器日志:

  每一行的意思:

  04:11:03:事件发生的时间,日期由文件名(如果是设置每天记录)决定。

  192.168.7.201: 访问方IP

  [1]: 为FTP标示每个连接的ID号。

  USER anonymous: 表示访问用户是anonymous

  331: 状态码

  注:日志记录的各个字段的意义并不是固定的,取决与配置FTP日志文件格式选择的字段。

  以某个WWW服务器日志记录为例:

  2002-11-20 06:54:41:事件发生日期

  192.168.7.167: 访问者的IP

  192.168.7.110: 服务器的IP

  80: 访问的端口号

  GET / :用户请求的内容

  403:服务器返回给用户的状态码(403表示权限不够)

  Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1): 表示用户使用的客户端软件标志。

  二十四、日志审核文件属性的编辑

  对于WindowsNT/2000系统而言,随着审核事件的不断增加,安全日志文件的大小也不断增加。日志文件的大小可以从64KB到4GB,默认情况下是512KB。如果要对审核事件的默认属性进行编辑,可以实行如下操作(以Windows2000为例):

  首先在事件查看器的控制树选中“安全日志”项,接着点击“操作”菜单的“属性”项,

  进入安全日志的属性窗口,然后在“常规”标签页面上,可以对日志文件的大小进行设置;对于日志文件达到最大尺寸时,用户根据需要可以有以下三种选择:改写事件、改写设定天数的事件和不改写事件。

  二十五、系统安全小结

  操作系统安全的防护工作永无止境,按照以上推荐的方法进行安装和配置,遵守安全设置规则只是防护系统安全的开始。为Windows NT/2000系统提供安全的运行环境需要不断地努力,因此我们建议你至少应该做到以下几条:

  a.经常访问微软升级程序站点,了解补丁的最新发布情况;

  b.订阅微软安全公告,及时了解最新发现的Windows NT/2000系统漏洞;2002年微软部分安全公告链接网址如下:

  www.jstvu.edu.cn/shadu/xitongld.htm

  c.安装重要升级通告服务,这样才能尽快获取最新的重要升级程序;

  定期运行安全扫描工具或经常阅读网上相关的漏洞分析资料,确保系统没有遗漏任何补丁程序;微软提供了一个叫Microsoft Baseline Security Analyzer的工具,可以定期检测系统漏洞,IIS漏洞,弱帐号等等。您可以在以下地址找到。

  download.microsoft.com/download/win2000platform/Install/1.0/NT5XP/EN-US/mbsasetup.msi

  具体使用请查看安装后的文档。

Powered By Google ‘我的2008’,中国有我一份力!

新浪简介About Sina广告服务联系我们招聘信息网站律师SINA English会员注册产品答疑┊Copyright © 1996-2008 SINA Corporation, All Rights Reserved

新浪公司 版权所有