Windows 系统安全技术

58
Windows Windows 系系系系 系系系系 系系系 [email protected] om

description

Windows 系统安全技术. 祝晓光 [email protected]. 提纲. 系统安全模型 服务安全性 降低风险. Windows 系统安全模型. 操作系统安全定义. • 信息安全的五类服务,作为安全的操作系统时必须提供的 • 有些操作系统所提供的服务是不健全的、默认关闭的. 信息安全评估标准. ITSEC 和 TCSEC TCSEC 描述的系统安全级别 D-- ----------A CC(Common Critical) 标准 BS 7799:2000 标准体系 ISO 17799 标准. - PowerPoint PPT Presentation

Transcript of Windows 系统安全技术

Page 1: Windows 系统安全技术

WindowsWindows 系统安全技术系统安全技术祝晓光

[email protected]

Page 2: Windows 系统安全技术

提纲提纲系统安全模型服务安全性降低风险

Page 3: Windows 系统安全技术

WindowsWindows 系统安全模型系统安全模型

Page 4: Windows 系统安全技术

操作系统安全定义操作系统安全定义

• 信息安全的五类服务,作为安全的操作系统时必须提供的• 有些操作系统所提供的服务是不健全的、默认关闭的

Page 5: Windows 系统安全技术

信息安全评估标准信息安全评估标准ITSEC 和 TCSECTCSEC 描述的系统安全级别

D------------A

CC(Common Critical) 标准BS 7799:2000 标准体系ISO 17799 标准

Page 6: Windows 系统安全技术

TCSECTCSEC 定义的内容定义的内容

没有安全性可言,例如没有安全性可言,例如 MS DOSMS DOS

不区分用户,基本的访问控制不区分用户,基本的访问控制D 级

C1 级C2 级B1 级B2 级B3 级A 级

有自主的访问安全性,区分用户有自主的访问安全性,区分用户标记安全保护,如标记安全保护,如 System VSystem V 等等

结构化内容保护,支持硬件保护结构化内容保护,支持硬件保护安全域,数据隐藏与分层、屏蔽安全域,数据隐藏与分层、屏蔽

校验级保护,提供低级别手段校验级保护,提供低级别手段

Page 7: Windows 系统安全技术

C2C2 级安全标准的要求级安全标准的要求自主的访问控制对象再利用必须由系统控制用户标识和认证审计活动

能够审计所有安全相关事件和个人活动 只有管理员才有权限访问

Page 8: Windows 系统安全技术

CC(Common Critical)CC(Common Critical) 标准标准CC 的基本功能

标准化叙述 技术实现基础叙述

CC 的概念 维护文件 安全目标 评估目标

Page 9: Windows 系统安全技术

WindowsWindows 系统的安全架构系统的安全架构

Windows NT 系统内置支持用户认证、访问 控制、管理、审核。

Page 10: Windows 系统安全技术

WindowsWindows 系统的安全组件系统的安全组件 访问控制的判断( Discretion access control )

允许对象所有者可以控制谁被允许访问该对象以及访问的方式。 对象重用( Object reuse ) 当资源(内存、磁盘等)被某应用访问时, Windows 禁止所有的系统应用访问该资源,这也就是为什么无法恢复已经被删除的文件的原因。 强制登陆( Mandatory log on ) 要求所有的用户必须登陆,通过认证后才可以访问资源 审核( Auditing ) 在控制用户访问资源的同时,也可以对这些访问作了相应的记录。 对象的访问控制( Control of access to object ) 不允许直接访问系统的某些资源。必须是该资源允许被访问,然后是用户或应用通过第一次认证后再访问。

Page 11: Windows 系统安全技术

WindowsWindows 安全子系统的组件安全子系统的组件 安全标识符( Security Identifiers ) : 就是我们经常说的 SID ,每次当我们创建一个用户或一个组的时候,系统会分配给改用户或组一个唯一 SID ,当你重新安装系统后,也会得到一个唯一的 SID 。 SID 永远都是唯一的,由计算机名、当前时间、当前用户态线程的 CPU 耗费时间的总和三个参数决定以保证它的唯一性。 例: S-1-5-21-1763234323-3212657521-1234321321-500 访问令牌( Access tokens ) : 用户通过验证后,登陆进程会给用户一个访问令牌,该令牌相当于用户访问系统资源的票证,当用户试图访问系统资源时,将访问令牌提供给 Windows 系统,然后 Windows NT 检查用户试图访问对象上的访问控制列表。如果用户被允许访问该对象,系统将会分配给用户适当的访问权限。 访问令牌是用户在通过验证的时候有登陆进程所提供的,所以改变用户的权限需要注销后重新登陆,重新获取访问令牌。

Page 12: Windows 系统安全技术

WindowsWindows 安全子系统的组件安全子系统的组件 安全描述符( Security descriptors ): Windows 系统中的任何对象的属性都有安全描述符这部分。它保存对象的安全配置。 访问控制列表( Access control lists ): 访问控制列表有两种:任意访问控制列表( Discretionary A

CL )、系统访问控制列表( System ACL )。任意访问控制列表包含了用户和组的列表,以及相应的权限,允许或拒绝。每一个用户或组在任意访问控制列表中都有特殊的权限。而系统访问控制列表是为审核服务的,包含了对象被访问的时间。 访问控制项( Access control entries ) : 访问控制项( ACE )包含了用户或组的 SID 以及对象的权限。访问控制项有两种:允许访问和拒绝访问。拒绝访问的级别高于允许访问。

Page 13: Windows 系统安全技术

WindowsWindows 安全子系统安全子系统安全子系统包括以下部分:

Winlogon Graphical Identification and Authentication DLL (GINA) Local Security Authority(LSA) Security Support Provider Interface(SSPI) Authentication Packages Security support providers Netlogon Service Security Account Manager(SAM)

Page 14: Windows 系统安全技术

Windows Windows 安全子系统安全子系统Winlogon

GINA

LSA

Security Account Management Netlogon

Authentication Packages Security Support Provider

SSPI

加载 GINA ,监视认证顺序

加载认证包

支持额外的验证机制

为认证建立安全通道

提供登陆接口提供真正的用户校验

管理用户和用户证书的数据库

Page 15: Windows 系统安全技术

WindowsWindows 安全子系统安全子系统 Winlogon and Gina: Winlogon 调用 GINA DLL ,并监视安全认证序列。而 GI

NA DLL 提供一个交互式的界面为用户登陆提供认证请求。 GINA DLL 被设计成一个独立的模块,当然我们也可以用一个更加强有力的认证方式(指纹、视网膜)替换内置的 GINA DLL 。

Winlogon 在注册表中查找 \HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon ,如果存在 GinaDLL键, Winlogon 将使用这个 DLL ,如果不存在该键, Winlogon 将使用默认值MSGINA.DLL

Page 16: Windows 系统安全技术

WindowsWindows 安全子系统安全子系统本地安全认证( Local Security Authority ): 本地安全认证( LSA )是一个被保护的子系统,它负责以下任务:

调用所有的认证包,检查在注册表 \HKLM\SYSTEM\CurrentControlSet\Control\LSA 下 AuthenticationPAckages 下的值,并调用该 DLL 进行认证( MSV_1.DLL )。在 4.0版里, Windows NT 会寻找 \HKLM\SYSTEM\CurrentControlSet\Control\LSA 下所有存在的 SecurityPackages值并调用。

重新找回本地组的 SIDs 和用户的权限。 创建用户的访问令牌。 管理本地安装的服务所使用的服务账号。 储存和映射用户权限。 管理审核的策略和设置。 管理信任关系。

Page 17: Windows 系统安全技术

WindowsWindows 安全子系统安全子系统安全支持提供者的接口( Security Support Provide I

nterface ): 微软的 Security Support Provide Interface很简单地遵循RFC 2743 和 RFC 2744 的定义,提供一些安全服务的 API ,为应用程序和服务提供请求安全的认证连接的方法。

认证包( Authentication Package ):认证包可以为真实用户提供认证。通过 GINA DLL 的可信认证后,认证包返回用户的 SIDs 给 LSA ,然后将其放在用户的访问令牌中。

Page 18: Windows 系统安全技术

WindowsWindows 安全子系统安全子系统安全支持提供者( Security Support Provider ): 安全支持提供者是以驱动的形式安装的,能够实现一些附加的安全机制,默认情况下, Windows

NT 安装了以下三种: Msnsspc.dll :微软网络挑战 /反应认证模块 Msapsspc.dll :分布式密码认证挑战 /反应模块,该模块也可以在微软网络中使用 Schannel.dll :该认证模块使用某些证书颁发机构提供的证书来进行验证,常见的证书机构比如 Verisign 。这种认证方式经常在使用 SSL ( Secure Sockets Layer )和 PCT ( Private Commu

nication Technology )协议通信的时候用到。

Page 19: Windows 系统安全技术

WindowsWindows 安全子系统安全子系统网络登陆( Netlogon ): 网络登陆服务必须在通过认证后建立一个安全的通道。要实现这个目标,必须通过安全通道与域中的域控制器建立连接,然后,再通过安全的通道传递用户的口令,在域的域控制器上响应请求后,重新取回用户的 SI

Ds 和用户权限。安全账号管理者( Security Account Manager ): 安全账号管理者,也就是我们经常所说的 SA

M ,它是用来保存用户账号和口令的数据库。保存了注册表中 \HKLM\Security\Sam 中的一部分内容。不同的域有不同的 Sam ,在域复制的过程中, Sam 包将会被拷贝。

Page 20: Windows 系统安全技术

WindowsWindows 的密码系统的密码系统 Windows NT 及 Win2000 中对用户帐户的安全管理使用了安全帐号管理器 (security account manager) 的机制 , 安全帐号管理器对帐号的管理是通过安全标识进行的,安全标识在帐号创建时就同时创建,一旦帐号被删除,安全标识也同时被删除。安全标识是唯一的,即使是相同的用户名,在每次创建时获得的安全标识都时完全不同的。因此,一旦某个帐号被删除,它的安全标识就不再存在了,即使用相同的用户名重建帐号,也会被赋予不同的安全标识,不会保留原来的权限。

Page 21: Windows 系统安全技术

服务安全性服务安全性

Page 22: Windows 系统安全技术

IISIIS 服务安全配置服务安全配置 禁用或删除所有的示例应用程序 示例只是示例;在默认情况下,并不安装它们,且从不在生产服务器上安装。请注意一些示例安装,它们只可从 http://localhost 或 127.0.0.1 访问;但是,它们仍应被删除。下面 列出一些示例的默认位置。 示例 虚拟目录 位置

IIS 示例 \IISSamples c :\inetpub\iissamplesIIS 文档 \IISHelp c:\winnt\help\iishelp数据访问 \MSADC c:\program files\common files\system\msadc

Page 23: Windows 系统安全技术

IISIIS 服务安全配置服务安全配置 启用或删除不需要的 COM 组件 某些 COM 组件不是多数应用程序所必需的,应加以删除。特别是,应考虑禁用文件系统对象组件,但要注意这将也会删除 Dictionary 对象。切记某些程序可能需要您禁用的组件。如 Site Server 3.0 使用

File System Object 。以下命令将禁用 File System Object :

regsvr32 scrrun.dll /u 删除 IISADMPWD 虚拟目录 该目录可用于重置 Windows NT 和 Windows 20

00 密码。它主要用于 Intranet 情况下,并不作为 IIS 5 的一部分安装,但是 IIS 4 服务器升级到 IIS 5 时,它并不删除。如果您不使用 Intranet 或如果将服务器连接到 Web 上,则应将其删除。

Page 24: Windows 系统安全技术

IISIIS 服务安全配置服务安全配置删除无用的脚本映射 IIS 被预先配置为支持常用的文件名扩展如 .asp 和 .

shtm 文件。 IIS 接收到这些类型的文件请求时,该调用由 DLL 处理。如果您不使用其中的某些扩展或功能,则应删除该映射,步骤如下: 打开 Internet 服务管理器。 右键单击 Web 服务器,然后从上下文菜单中选择“属性”。 主目录 | 配置 | 删除无用的 .htr .ida .idq .printer .idc .stm .shtml 等

Page 25: Windows 系统安全技术

IISIIS 服务安全配置服务安全配置禁用父路径 “父路径”选项允许在对诸如 MapPath 函数调用中使用“ ..”。禁用该选项的步骤如下:

右键单击该 Web 站点的根,然后从上下文菜单中选择“属性”。 单击“主目录”选项卡。 单击“配置”。 单击“应用程序选项”选项卡。 取消选择“启用父路径”复选框。

禁用 -内容位置中的 IP 地址 IIS4 里的“内容 -位置”标头可暴露通常在网络地址转换 (NAT) 防火墙或代理服务器后面隐藏或屏蔽的内部 IP 地址。

Page 26: Windows 系统安全技术

IISIIS 服务安全配置服务安全配置 设置适当的 IIS 日志文件 ACL 确保 IIS 日志文件 (%systemroot%\system32\LogFiles) 上的 AC

L 是 Administrators (完全控制) System (完全控制) Everyone (RWC) 这有助于防止恶意用户为隐藏他们的踪迹而删除文件。

设置适当的 虚拟目录的权限 确保 IIS 虚拟目录如 scripts 等权限设置是否最小化,删除不需要目录。 将 IIS 目录重新定向 更改系统默认路径,自定义WEB 主目录路径并作相应的权限设置。 使用专门的安全工具 微软的 IIS 安全设置工具: IIS Lock Tool;是针对 IIS 的漏洞设计的,可以有效设置 IIS 安全属性。

Page 27: Windows 系统安全技术

终端服务安全终端服务安全输入法漏洞造成的威胁

net user abc 123 /addnet localgroup administrators abc /add注册表  DontDisplayLastUserName 1

Page 28: Windows 系统安全技术

降低风险降低风险

Page 29: Windows 系统安全技术

安全修补程序安全修补程序Windows 系列

Service PackNT(SP6A) 、 2000(SP4) 、 XP(SP2)

Hotfix

Microsoft出品的 hfnetchk 程序 检查补丁安装情况 http://hfnetchk.shavlik.com/default.asp

Page 30: Windows 系统安全技术

服务和端口限制服务和端口限制限制对外开放的端口 : 在 TCP/IP 的高级设置中选择只允许开放特定端口,或者可以考虑使用路由或防火墙来设置。 禁用 snmp 服务 或者更改默认的社区名称和权限禁用 terminal server 服务将不必要的服务设置为手动 Alerter     ClipBook   Computer Browser ……

Page 31: Windows 系统安全技术

NetbiosNetbios 的安全设置的安全设置Win2000 取消绑定文件和共享绑定

打开 控制面板-网络-高级-高级设置 选择网卡并将 Microsoft 网络的文件和打印共享的复选框取消,禁止了 139端口。 注册表修改 HKEY_LOCAL_MACHINE\System\Contr

olset\Services\NetBT\Parameters Name: SMBDeviceEnabled Type: REG_DWORD Value: 0禁止 445端口。

Page 32: Windows 系统安全技术

NetbiosNetbios 的安全设置的安全设置 禁止匿名连接列举帐户名需要对注册表做以下修改。

注:不正确地修改注册表会导致严重的系统错误,请慎重行事!   1.运行注册表编辑器( Regedt32.exe )。  2.定位在注册表中的下列键上:

HKEY_LOCAL_MACHINE\Systemt\CurrentControl\LSA   3.在编辑菜单栏中选取加一个键值:   Value Name:RestrictAnonymous   Data Type:REG_DWORD   Value:1 ( Windows2000 下为 2 )   4.退出注册表编辑器并重启计算机,使改动生效。

Page 33: Windows 系统安全技术

NetbiosNetbios 的安全设置的安全设置Win2000 的本地安全策略(或域安全策略中)中有 RestrictAnonymous (匿名连接的额外限制)选项,提供三个值可选

0 : None. Rely on default permissions (无,取决于默认的权限) 1 : Do not allow enumeration of SAM accounts and shares(不允许枚举 SAM帐号和共享) 2 : No access without explicit anonymous permissions(没有显式匿名权限就不允许访问)

Page 34: Windows 系统安全技术

Windows 2000Windows 2000 注册表注册表所有的配置和控制选项都存储在注册表中分为五个子树,分别是 Hkey_local_machine、 Hkey_users、 Hkey_current_user、 Hkey_classes_root、 Hkey_current_configHkey_local_machine包含所有本机相关配置信息

Page 35: Windows 系统安全技术

注册表安全注册表安全 查询数值 允许用户和组从注册表中读取数值查询数值 允许用户和组从注册表中读取数值 设置数值 允许用户和组从注册表中设置数值设置数值 允许用户和组从注册表中设置数值 创建子项 允许用户和组在给定的注册项中创建创建子项 允许用户和组在给定的注册项中创建子项子项 计数子项 允许用户和组识别某注册项的子项计数子项 允许用户和组识别某注册项的子项 通 知 允许用户和组从注册表中审计通知通 知 允许用户和组从注册表中审计通知事件事件 创建链接 允许用户和组在特定项中建立符号链创建链接 允许用户和组在特定项中建立符号链接接 删 除 允许用户和组在删除选定的注册项删 除 允许用户和组在删除选定的注册项 写入写入 DAC DAC 允许用户和组将允许用户和组将 DACDAC写入注册表项写入注册表项 写入所有者 写入所有者 允许用户和组获得注册表项的所有权允许用户和组获得注册表项的所有权 读取控制 允许用户和组具有访问选定注册表项的安全信读取控制 允许用户和组具有访问选定注册表项的安全信息息

权 限 解 释权 限 解 释

Page 36: Windows 系统安全技术

注册表的默认权限注册表的默认权限

Page 37: Windows 系统安全技术

注册表的审计注册表的审计对注册表的审计是必需的审计内容的选择

注册表每秒被访问 500-1500 次 任何对象都有可能访问注册表

默认的注册表审计策略为空

Page 38: Windows 系统安全技术

禁止对注册表的远程访问禁止对注册表的远程访问

Page 39: Windows 系统安全技术

禁止和删除服务禁止和删除服务通过 services.msc 禁止服务使用 Resource Kit彻底删除服务

Sc命令行工具 Instsrv工具

举例 OS/2 和 Posix 系统仅仅为了向后兼容 Server 服务仅仅为了接受 netbios请求

Page 40: Windows 系统安全技术

SMBSMB 连接与验证过程连接与验证过程

Client Server

1. 建立 TCP 连接2. 客户端类型、支持的服务方式列表等

3. 服务器认证方式、加密用的 key 等4. 用户名、加密后密码

5. 认证结果

随机生成一随机生成一把加密密钥把加密密钥key(8key(8 或或 11

66字节字节 ))

采用采用 DESDES 的变的变形算法,使用形算法,使用 kkeyey 对密码散列对密码散列进行加密进行加密

Page 41: Windows 系统安全技术

SMBSMB 提供的服务提供的服务SMB会话服务

TCP 139和TCP 445端口 SMB数据报支持服务

UDP 138和UDP 445端口SMB名称支持服务

UDP 137端口

Page 42: Windows 系统安全技术

开放开放 SMBSMB 服务的危险服务的危险

Page 43: Windows 系统安全技术

强化强化 SMBSMB 会话安全会话安全强制的显式权限许可:限制匿名访问控制 LAN Manager 验证使用 SMB 的签名

服务端和客户端都需要配置注册表 或在本地安全策略中

Page 44: Windows 系统安全技术

针对针对 Windows 2000Windows 2000 的入侵 的入侵 (1)(1)

探测 选择攻击对象,了解部分简单的对象信息;针对具体的攻击目标,随便选择了一组 IP地址,进行测试,选择处于活动状态的主机,进行攻击尝试

针对探测的安全建议 对于网络:安装防火墙,禁止这种探测行为 对于主机:安装个人防火墙软件,禁止外部主机的

ping 包,使对方无法获知主机当前正确的活动状态

Page 45: Windows 系统安全技术

针对针对 Windows 2000Windows 2000 的入侵 的入侵 (2)(2)

扫描 使用的扫描软件 NAT 、流光、 Xscan 、 SSS

扫描远程主机 开放端口扫描 操作系统识别 主机漏洞分析

Page 46: Windows 系统安全技术

扫描结果:端口扫描扫描结果:端口扫描

Page 47: Windows 系统安全技术

扫描结果:扫描结果:操作系统识别操作系统识别

Page 48: Windows 系统安全技术

扫描结果:漏洞扫描扫描结果:漏洞扫描

Page 49: Windows 系统安全技术

针对针对 Windows 2000Windows 2000 的入侵的入侵 (3)(3)

查看目标主机的信息

Page 50: Windows 系统安全技术

针对针对 Windows 2000Windows 2000 的入侵的入侵 (4)(4)

IIS攻击 尝试利用 IIS 中知名的 Unicode 和“ Translate:f”漏洞进行攻击,没有成功。目标主机可能已修复相应漏洞,或没有打开远程访问权限

Administrator口令强行破解 这里我们使用 NAT ( NetBIOS Auditing Tool )进行强行破解:构造一个可能的用户帐户表,以及简单的密码字典,然后用 NAT 进行破解

Page 51: Windows 系统安全技术

AdministratorAdministrator 口令破解情况口令破解情况

Page 52: Windows 系统安全技术

针对针对 Windows 2000Windows 2000 的入侵的入侵 (5)(5)

巩固权力 现在我们得到了 Administrator 的帐户,接下去我们需要巩固权力 装载后门 一般的主机为防范病毒,均会安装反病毒软件,如

Norton Anti-Virus 、金山毒霸等,并且大部分人也能及时更新病毒库,而多数木马程序在这类软件的病毒库中均被视为 Trojan木马病毒。所以,这为我们增加了难度。除非一些很新的程序或自己编写的程序才能够很好地隐藏起来 我们使用 NetCat 作为后门程序进行演示

Page 53: Windows 系统安全技术

安装后门程序安装后门程序 (1)(1)利用刚刚获取的 Administrator口令,通过 Net use映射对方驱动器

Page 54: Windows 系统安全技术

安装后门程序安装后门程序 (2)(2)将 netcat 主程序 nc.exe 复制到目标主机的系统目录下,可将程序名称改为容易迷惑对方的名字利用 at命令远程启动 NetCat

Page 55: Windows 系统安全技术

安装后门程序安装后门程序 (3)(3)

Page 56: Windows 系统安全技术

针对针对 Windows 2000Windows 2000 的入侵的入侵 (6)(6)

清除痕迹 我们留下了痕迹了吗 del *.evt echo xxx > *.evt

看看它的日志文件 无安全日志记录

Page 57: Windows 系统安全技术

通过入侵来看通过入侵来看 Win 2000Win 2000 的防范的防范安装防火墙软件,对安全规则库定期进行更新 及时更新操作系统厂商发布的 SP补丁程序 停止主机上不必要的服务,各种服务打开的端口往往成为黑客攻击的入口 使用安全的密码如果没有文件和打印机共享要求,最好禁止 13

5 、 139 和 445端口上的空会话 经常利用 net session 、 netstat 查看本机连接情况

Page 58: Windows 系统安全技术

谢谢!谢谢!