Windows系统安全技术.ppt
Windows系统安全技术,祝晓光zhuxiaoguang,提纲,系统安全模型服务安全性降低风险,Windows系统安全模型,操作系统安全定义,信息安全的五类服务,作为安全的操作系统时必须提供的有些操作系统所提供的服务是不健全的、默认关闭的,信息安全评估标准,ITSEC和TCSECTCSEC描述的系统安全级别D------------ACCCommonCritical标准BS77992000标准体系ISO17799标准,TCSEC定义的内容,没有安全性可言,例如MSDOS,不区分用户,基本的访问控制,有自主的访问安全性,区分用户,标记安全保护,如SystemV等,结构化内容保护,支持硬件保护,安全域,数据隐藏与分层、屏蔽,校验级保护,提供低级别手段,C2级安全标准的要求,自主的访问控制对象再利用必须由系统控制用户标识和认证审计活动能够审计所有安全相关事件和个人活动只有管理员才有权限访问,CCCommonCritical标准,CC的基本功能标准化叙述技术实现基础叙述CC的概念维护文件安全目标评估目标,Windows系统的安全架构,WindowsNT系统内置支持用户认证、访问控制、管理、审核。,Windows系统的安全组件,访问控制的判断(Discretionaccesscontrol)允许对象所有者可以控制谁被允许访问该对象以及访问的方式。对象重用(Objectreuse)当资源(内存、磁盘等)被某应用访问时,Windows禁止所有的系统应用访问该资源,这也就是为什么无法恢复已经被删除的文件的原因。强制登陆(Mandatorylogon)要求所有的用户必须登陆,通过认证后才可以访问资源审核(Auditing)在控制用户访问资源的同时,也可以对这些访问作了相应的记录。对象的访问控制(Controlofaccesstoobject)不允许直接访问系统的某些资源。必须是该资源允许被访问,然后是用户或应用通过第一次认证后再访问。,Windows安全子系统的组件,安全标识符(SecurityIdentifiers)就是我们经常说的SID,每次当我们创建一个用户或一个组的时候,系统会分配给改用户或组一个唯一SID,当你重新安装系统后,也会得到一个唯一的SID。SID永远都是唯一的,由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。例S-1-5-21-1763234323-3212657521-1234321321-500访问令牌(Accesstokens)用户通过验证后,登陆进程会给用户一个访问令牌,该令牌相当于用户访问系统资源的票证,当用户试图访问系统资源时,将访问令牌提供给Windows系统,然后WindowsNT检查用户试图访问对象上的访问控制列表。如果用户被允许访问该对象,系统将会分配给用户适当的访问权限。访问令牌是用户在通过验证的时候有登陆进程所提供的,所以改变用户的权限需要注销后重新登陆,重新获取访问令牌。,Windows安全子系统的组件,安全描述符(Securitydescriptors)Windows系统中的任何对象的属性都有安全描述符这部分。它保存对象的安全配置。访问控制列表(Accesscontrollists)访问控制列表有两种任意访问控制列表(DiscretionaryACL)、系统访问控制列表(SystemACL)。任意访问控制列表包含了用户和组的列表,以及相应的权限,允许或拒绝。每一个用户或组在任意访问控制列表中都有特殊的权限。而系统访问控制列表是为审核服务的,包含了对象被访问的时间。访问控制项(Accesscontrolentries)访问控制项(ACE)包含了用户或组的SID以及对象的权限。访问控制项有两种允许访问和拒绝访问。拒绝访问的级别高于允许访问。,Windows安全子系统,安全子系统包括以下部分WinlogonGraphicalIdentificationandAuthenticationDLLGINALocalSecurityAuthorityLSASecuritySupportProviderInterfaceSSPIAuthenticationPackagesSecuritysupportprovidersNetlogonServiceSecurityAccountManagerSAM,Windows安全子系统,Winlogon,加载GINA,监视认证顺序,加载认证包,支持额外的验证机制,为认证建立安全通道,提供登陆接口,提供真正的用户校验,管理用户和用户证书的数据库,Windows安全子系统,WinlogonandGinaWinlogon调用GINADLL,并监视安全认证序列。而GINADLL提供一个交互式的界面为用户登陆提供认证请求。GINADLL被设计成一个独立的模块,当然我们也可以用一个更加强有力的认证方式(指纹、视网膜)替换内置的GINADLL。Winlogon在注册表中查找\HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon,如果存在GinaDLL键,Winlogon将使用这个DLL,如果不存在该键,Winlogon将使用默认值MSGINA.DLL,Windows安全子系统,本地安全认证(LocalSecurityAuthority)本地安全认证(LSA)是一个被保护的子系统,它负责以下任务调用所有的认证包,检查在注册表\HKLM\SYSTEM\CurrentControlSet\Control\LSA下AuthenticationPAckages下的值,并调用该DLL进行认证(MSV_1.DLL)。在4.0版里,WindowsNT会寻找\HKLM\SYSTEM\CurrentControlSet\Control\LSA下所有存在的SecurityPackages值并调用。重新找回本地组的SIDs和用户的权限。创建用户的访问令牌。管理本地安装的服务所使用的服务账号。储存和映射用户权限。管理审核的策略和设置。管理信任关系。,Windows安全子系统,安全支持提供者的接口(SecuritySupportProvideInterface)微软的SecuritySupportProvideInterface很简单地遵循RFC2743和RFC2744的定义,提供一些安全服务的API,为应用程序和服务提供请求安全的认证连接的方法。认证包(AuthenticationPackage)认证包可以为真实用户提供认证。通过GINADLL的可信认证后,认证包返回用户的SIDs给LSA,然后将其放在用户的访问令牌中。,Windows安全子系统,安全支持提供者(SecuritySupportProvider)安全支持提供者是以驱动的形式安装的,能够实现一些附加的安全机制,默认情况下,WindowsNT安装了以下三种Msnsspc.dll微软网络挑战/反应认证模块Msapsspc.dll分布式密码认证挑战/反应模块,该模块也可以在微软网络中使用Schannel.dll该认证模块使用某些证书颁发机构提供的证书来进行验证,常见的证书机构比如Verisign。这种认证方式经常在使用SSL(SecureSocketsLayer)和PCT(PrivateCommunicationTechnology)协议通信的时候用到。,Windows安全子系统,网络登陆(Netlogon)网络登陆服务必须在通过认证后建立一个安全的通道。要实现这个目标,必须通过安全通道与域中的域控制器建立连接,然后,再通过安全的通道传递用户的口令,在域的域控制器上响应请求后,重新取回用户的SIDs和用户权限。安全账号管理者(SecurityAccountManager)安全账号管理者,也就是我们经常所说的SAM,它是用来保存用户账号和口令的数据库。保存了注册表中\HKLM\Security\Sam中的一部分内容。不同的域有不同的Sam,在域复制的过程中,Sam包将会被拷贝。,Windows的密码系统,WindowsNT及Win2000中对用户帐户的安全管理使用了安全帐号管理器securityaccountmanager的机制,安全帐号管理器对帐号的管理是通过安全标识进行的,安全标识在帐号创建时就同时创建,一旦帐号被删除,安全标识也同时被删除。安全标识是唯一的,即使是相同的用户名,在每次创建时获得的安全标识都时完全不同的。因此,一旦某个帐号被删除,它的安全标识就不再存在了,即使用相同的用户名重建帐号,也会被赋予不同的安全标识,不会保留原来的权限。,服务安全性,IIS服务安全配置,禁用或删除所有的示例应用程序示例只是示例;在默认情况下,并不安装它们,且从不在生产服务器上安装。请注意一些示例安装,它们只可从http//localhost或127.0.0.1访问;但是,它们仍应被删除。下面列出一些示例的默认位置。示例虚拟目录位置IIS示例\IISSamplesc\inetpub\iissamplesIIS文档\IISHelpc\winnt\help\iishelp数据访问\MSADCc\programfiles\commonfiles\system\msadc,IIS服务安全配置,启用或删除不需要的COM组件某些COM组件不是多数应用程序所必需的,应加以删除。特别是,应考虑禁用文件系统对象组件,但要注意这将也会删除Dictionary对象。切记某些程序可能需要您禁用的组件。如SiteServer3.0使用FileSystemObject。以下命令将禁用FileSystemObjectregsvr32scrrun.dll/u删除IISADMPWD虚拟目录该目录可用于重置WindowsNT和Windows2000密码。它主要用于Intranet情况下,并不作为IIS5的一部分安装,但是IIS4服务器升级到IIS5时,它并不删除。如果您不使用Intranet或如果将服务器连接到Web上,则应将其删除。,IIS服务安全配置,删除无用的脚本映射IIS被预先配置为支持常用的文件名扩展如.asp和.shtm文件。IIS接收到这些类型的文件请求时,该调用由DLL处理。如果您不使用其中的某些扩展或功能,则应删除该映射,步骤如下打开Internet服务管理器。右键单击Web服务器,然后从上下文菜单中选择“属性”。主目录|配置|删除无用的.htr.ida.idq.printer.idc.stm.shtml等,IIS服务安全配置,禁用父路径“父路径”选项允许在对诸如MapPath函数调用中使用“..”。禁用该选项的步骤如下右键单击该Web站点的根,然后从上下文菜单中选择“属性”。单击“主目录”选项卡。单击“配置”。单击“应用程序选项”选项卡。取消选择“启用父路径”复选框。禁用-内容位置中的IP地址IIS4里的“内容-位置”标头可暴露通常在网络地址转换NAT防火墙或代理服务器后面隐藏或屏蔽的内部IP地址。,IIS服务安全配置,设置适当的IIS日志文件ACL确保IIS日志文件systemroot\system32\LogFiles上的ACL是Administrators(完全控制)System(完全控制)EveryoneRWC这有助于防止恶意用户为隐藏他们的踪迹而删除文件。设置适当的虚拟目录的权限确保IIS虚拟目录如scripts等权限设置是否最小化,删除不需要目录。将IIS目录重新定向更改系统默认路径,自定义WEB主目录路径并作相应的权限设置。使用专门的安全工具微软的IIS安全设置工具IISLockTool;是针对IIS的漏洞设计的,可以有效设置IIS安全属性。,终端服务安全,输入法漏洞造成的威胁,netuserabc123/addnetlocalgroupadministratorsabc/add注册表DontDisplayLastUserName1,降低风险,安全修补程序,Windows系列ServicePackNTSP6A、2000SP4、XPSP2HotfixMicrosoft出品的hfnetchk程序检查补丁安装情况,服务和端口限制,限制对外开放的端口在TCP/IP的高级设置中选择只允许开放特定端口,或者可以考虑使用路由或防火墙来设置。禁用snmp服务或者更改默认的社区名称和权限禁用terminalserver服务将不必要的服务设置为手动AlerterClipBookComputerBrowser,Netbios的安全设置,Win2000取消绑定文件和共享绑定打开控制面板-网络-高级-高级设置选择网卡并将Microsoft网络的文件和打印共享的复选框取消,禁止了139端口。注册表修改HKEY_LOCAL_MACHINE\System\Controlset\Services\NetBT\ParametersNameSMBDeviceEnabledTypeREG_DWORDValue0禁止445端口。,Netbios的安全设置,禁止匿名连接列举帐户名需要对注册表做以下修改。注不正确地修改注册表会导致严重的系统错误,请慎重行事1.运行注册表编辑器(Regedt32.)。2.定位在注册表中的下列键上HKEY_LOCAL_MACHINE\Systemt\CurrentControl\LSA3.在编辑菜单栏中选取加一个键值ValueNameRestrictAnonymousDataTypeREG_DWORDValue1(Windows2000下为2)4.退出注册表编辑器并重启计算机,使改动生效。,Netbios的安全设置,Win2000的本地安全策略(或域安全策略中)中有RestrictAnonymous(匿名连接的额外限制)选项,提供三个值可选0None.Relyondefaultpermissions(无,取决于默认的权限)1DonotallowenumerationofSAMaccountsandshares(不允许枚举SAM帐号和共享)2Noaccesswithoutexplicitanonymouspermissions(没有显式匿名权限就不允许访问),Windows2000注册表,所有的配置和控制选项都存储在注册表中分为五个子树,分别是Hkey_local_machine、Hkey_users、Hkey_current_user、Hkey_classes_root、Hkey_current_configHkey_local_machine包含所有本机相关配置信息,注册表安全,注册表的默认权限,注册表的审计,对注册表的审计是必需的审计内容的选择注册表每秒被访问500-1500次任何对象都有可能访问注册表默认的注册表审计策略为空,禁止对注册表的远程访问,禁止和删除服务,通过services.msc禁止服务使用ResourceKit彻底删除服务Sc命令行工具Instsrv工具举例OS/2和Posix系统仅仅为了向后兼容Server服务仅仅为了接受netbios请求,SMB连接与验证过程,随机生成一把加密密钥key8或16字节,采用DES的变形算法,使用key对密码散列进行加密,SMB提供的服务,SMB会话服务TCP139和TCP445端口SMB数据报支持服务UDP138和UDP445端口SMB名称支持服务UDP137端口,开放SMB服务的危险,强化SMB会话安全,强制的显式权限许可限制匿名访问控制LANManager验证使用SMB的签名服务端和客户端都需要配置注册表或在本地安全策略中,针对Windows2000的入侵1,探测选择攻击对象,了解部分简单的对象信息;针对具体的攻击目标,随便选择了一组IP地址,进行测试,选择处于活动状态的主机,进行攻击尝试针对探测的安全建议对于网络安装防火墙,禁止这种探测行为对于主机安装个人防火墙软件,禁止外部主机的ping包,使对方无法获知主机当前正确的活动状态,针对Windows2000的入侵2,扫描使用的扫描软件NAT、流光、Xscan、SSS扫描远程主机开放端口扫描操作系统识别主机漏洞分析,扫描结果端口扫描,扫描结果操作系统识别,扫描结果漏洞扫描,针对Windows2000的入侵3,查看目标主机的信息,针对Windows2000的入侵4,IIS攻击尝试利用IIS中知名的Unicode和“Translatef”漏洞进行攻击,没有成功。目标主机可能已修复相应漏洞,或没有打开远程访问权限Administrator口令强行破解这里我们使用NAT(NetBIOSAuditingTool)进行强行破解构造一个可能的用户帐户表,以及简单的密码字典,然后用NAT进行破解,Administrator口令破解情况,针对Windows2000的入侵5,巩固权力现在我们得到了Administrator的帐户,接下去我们需要巩固权力装载后门一般的主机为防范病毒,均会安装反病毒软件,如NortonAnti-Virus、金山毒霸等,并且大部分人也能及时更新病毒库,而多数木马程序在这类软件的病毒库中均被视为Trojan木马病毒。所以,这为我们增加了难度。除非一些很新的程序或自己编写的程序才能够很好地隐藏起来我们使用NetCat作为后门程序进行演示,安装后门程序1,利用刚刚获取的Administrator口令,通过Netuse映射对方驱动器,安装后门程序2,将netcat主程序nc.复制到目标主机的系统目录下,可将程序名称改为容易迷惑对方的名字利用at命令远程启动NetCat,安装后门程序3,针对Windows2000的入侵6,清除痕迹我们留下了痕迹了吗del*.evtechoxxx*.evt看看它的日志文件无安全日志记录,通过入侵来看Win2000的防范,安装防火墙软件,对安全规则库定期进行更新及时更新操作系统厂商发布的SP补丁程序停止主机上不必要的服务,各种服务打开的端口往往成为黑客攻击的入口使用安全的密码如果没有文件和打印机共享要求,最好禁止135、139和445端口上的空会话经常利用netsession、netstat查看本机连接情况,谢谢,