精华内容
下载资源
问答
  • 钛星WEB应用隔离保护系统白皮书钛星WEB应用隔离保护系统白皮书
  • 保护 Web 服务器

    千次阅读 2004-08-13 17:28:00
    保护 Web 服务器更新日期: 2004年04月12日本页内容本模块内容目标适用范围如何使用本模块概述威胁与对策确保 Web 服务器安全的方法IIS 和 .NET Framework 安装注意事项安装建议确保 Web 服务器安全的步骤步骤 1:...

    保护 Web 服务器

    更新日期: 2004年04月12日
    本页内容
    本模块内容本模块内容
    目标目标
    适用范围适用范围
    如何使用本模块如何使用本模块
    概述概述
    威胁与对策威胁与对策
    确保 Web 服务器安全的方法确保 Web 服务器安全的方法
    IIS 和 .NET Framework 安装注意事项IIS 和 .NET Framework 安装注意事项
    安装建议安装建议
    确保 Web 服务器安全的步骤确保 Web 服务器安全的步骤
    步骤 1:修补程序和更新程序步骤 1:修补程序和更新程序
    步骤 2:IISLockdown步骤 2:IISLockdown
    步骤 3:服务步骤 3:服务
    步骤 4:协议步骤 4:协议
    步骤 5:帐户步骤 5:帐户
    步骤 6:文件和目录步骤 6:文件和目录
    步骤 7:共享步骤 7:共享
    步骤 8:端口步骤 8:端口
    步骤 9:注册表步骤 9:注册表
    步骤 10:审核和日志记录步骤 10:审核和日志记录
    步骤 11:站点和虚拟目录步骤 11:站点和虚拟目录
    步骤 12:脚本映射步骤 12:脚本映射
    步骤 13:ISAPI 筛选器步骤 13:ISAPI 筛选器
    步骤 14:IIS 元数据库步骤 14:IIS 元数据库
    步骤 15:服务器证书步骤 15:服务器证书
    步骤 16:Machine.Config步骤 16:Machine.Config
    步骤 17:代码访问安全性步骤 17:代码访问安全性
    安全 Web 服务器快照安全 Web 服务器快照
    保持安全保持安全
    远程管理远程管理
    简化并自动设置安全性简化并自动设置安全性
    小结小结
    其他资源其他资源

    本模块内容

    Web 服务器位于宿主基础结构的前端。它直接连接到 Internet,负责接收来自客户端的请求、创建动态 Web 页并对请求的数据作出响应。

    安全的 Web 服务器可为宿主环境提供可靠的基础,其配置在 Web 应用程序的整体安全方面起重要作用。但是,如何确保 Web 服务器安全呢?确保 Web 服务器安全的挑战之一就是要明确自己的目标。只有明白了何谓安全的 Web 服务器,您就可以了解如何为此应用所需的配置设置。

    本模块提供了一种系统且可重复的方法,您可以使用它成功配置安全的 Web 服务器。模块还介绍了一种确保 Web 服务器安全的方法,该方法将服务器的配置划分为十二个安全区域。每一安全区域都由一系列高级操作步骤组成。这些步骤都是模块化的,介绍了将方法付诸实施的途径。

    目标

    使用本模块可以实现:

    了解何谓安全的 Web 服务器。

    使用已证明正确的方法确保 Web 服务器安全。

    了解在默认情况下 Windows 2000 Server 中 IIS 的完整安装和 .NET Framework 的安装内容。

    了解安全 Web 服务器中可禁用的服务。

    安全配置 Web 服务器,包括操作系统协议、帐户、文件、目录、共享、端口、注册表、审核和日志记录。

    安全配置 Web 服务器应用程序(本例是 IIS)组件,包括 Web 站点、虚拟目录、脚本映射、ISAPI 筛选器、元数据库和服务器证书。

    安全配置 .NET Framework 设置,包括 Machine.config 文件和代码访问安全性。

    针对远程管理安装并使用安全的终端服务。

    了解解决常见 Web 服务器威胁(包括配置处理、拒绝服务、未经授权的访问、随意代码执行、特权提升、病毒、蠕虫和特洛伊木马)的常用对策。

    适用范围

    本模块适用于下列产品和技术:

    Microsoft Windows Server 2000 和 2003

    Microsoft .NET Framework 1.1 和 ASP.NET 1.1

    Microsoft Internet 信息服务 (IIS) 5.0 和 6.0

    如何使用本模块

    为了充分理解本模块内容,您应:

    阅读模块 2 威胁与对策。这有助于您更广泛地了解 Web 应用程序的潜在威胁。

    使用快照安全 Web 服务器快照部分列出并说明了安全 Web 服务器的属性。它反映了来自各种源(包括客户、行业专家和内部 Microsoft 开发与支持小组)的输入。在配置服务器时,请参考快照表。

    使用检查表。本指南“检查表”部分的检查表:保护 Web 服务器提供了一份可打印的作业帮助,可将它用作快速参考。使用基于任务的检查表可快速评估必需的步骤,然后帮助您逐步完成各个步骤。

    使用“如何”部分。本指南“如何”部分包括了下列指导性文章:

    如何:使用 URLScan

    如何:使用 Microsoft 基准安全分析器

    如何:使用 IISLockdown

    概述

    究竟怎样的 Web 服务器才算安全?确保 Web 服务器安全的挑战之一就是明确您的目标。只有明白了何谓安全的 Web 服务器,您就可以了解如何为此应用所需的配置设置。本模块提供了一种系统且可重复的方法,您可以使用它成功配置安全的 Web 服务器。

    本模块首先回顾了影响 Web 服务器的最常见威胁。然后,使用上述观点创建相应的方法。最后,模块将这种方法付诸实施,并逐步说明如何提高 Web 服务器的安全性。尽管基本方法可跨不同技术复用,但本模块的重点是如何保证运行 Microsoft Windows 2000 操作系统并驻留 Microsoft .NET Framework 的 Web 服务器的安全。

    威胁与对策

    由于攻击者可远程攻击,Web 服务器常常是攻击对象。如果了解 Web 服务器的威胁并努力制定相应的对策,您可以预见很多攻击,进而阻止日渐增加的攻击者。

    Web 服务器的主要威胁是:

    配置处理

    拒绝服务

    未经授权的访问

    随意代码执行

    特权提升

    病毒、蠕虫和特洛伊木马

    图 16.1 汇总了目前流行的攻击和常见漏洞。

    Web 服务器主要威胁和常见漏洞

    图 16.1
    Web 服务器主要威胁和常见漏洞

    配置处理

    配置处理或主机枚举是一种收集 Web 站点相关信息的探测过程。攻击者可利用这些信息攻击已知的薄弱点。

    漏洞

    致使服务器容易受到配置处理攻击的常见漏洞包括:

    不必要的协议

    打开的端口

    Web 服务器在横幅中提供配置信息

    攻击

    常见的配置处理攻击包括:

    端口扫描

    Ping 扫射 (ping sweep)

    NetBIOS 和服务器消息块 (SMB) 枚举

    对策

    有效的对策有,阻止所有不必要的端口、阻止 Internet 控制消息协议 (ICMP) 通信、禁用不必要的协议(如 NetBIOS 和 SMB)。

    拒绝服务

    如果服务器被泛滥的服务请求所充斥,则出现拒绝服务攻击。此时的威胁是,Web 服务器因负荷过重而无法响应合法的客户端请求。

    漏洞

    导致拒绝服务攻击增加的可能漏洞包括:

    薄弱的 TCP/IP 堆栈配置

    未修补的服务器

    攻击

    常见的拒绝服务攻击包括:

    网络级 SYN flood(同步攻击)

    缓冲区溢出

    使用来自分布式位置的请求淹没 Web 服务器

    对策

    有效的对策有,强化 TCP/IP 堆栈,以及始终将最新的软件修补程序和更新程序应用于系统软件。

    未经授权的访问

    如果权限不合适的用户访问了受限的信息或执行了受限的操作,则出现未经授权的访问。

    漏洞

    导致未经授权访问的常见漏洞包括:

    薄弱的 IIS Web 访问控制(包括 Web 权限)

    薄弱的 NTFS 权限

    对策

    有效的对策有,使用安全的 Web 权限、NTFS 权限和 .NET Framework 访问控制机制(包括 URL 授权)。

    随意代码执行

    如果攻击者在您的服务器中运行恶意代码来损害服务器资源或向下游系统发起其他攻击,则出现代码执行攻击。

    漏洞

    可导致恶意代码执行的漏洞包括:

    薄弱的 IIS 配置

    未修补的服务器

    攻击

    常见的代码执行攻击包括:

    路径遍历

    导致代码注入的缓冲区溢出

    对策

    有效的对策有,配置 IIS 拒绝带有“../”的 URL(防止路径遍历)、使用限制性访问控制列表 (ACL) 锁定系统命令和实用工具、安装新的修补程序和更新程序。

    特权提升

    如果攻击者使用特权进程帐户运行代码,则出现特权提升攻击。

    漏洞

    导致 Web 服务器易受特权提升攻击的常见漏洞包括:

    过度授权进程帐户

    过度授权服务帐户

    对策

    有效的对策有,使用特权最少的帐户运行进程、使用特权最少的服务和用户帐户运行进程。

    病毒、蠕虫和特洛伊木马

    恶意代码有几种变体,具体包括:

    病毒。即执行恶意操作并导致操作系统或应用程序中断的程序。

    蠕虫。可自我复制并自我维持的程序。

    特洛伊木马。表面上有用但实际带来破坏的程序。

    在很多情况下,恶意代码直至耗尽了系统资源,并因此减慢或终止了其他程序的运行后才被发现。例如,“红色代码”就是危害 IIS 的臭名昭著的蠕虫之一,它依赖 ISAPI 筛选器中的缓冲区溢出漏洞。

    漏洞

    导致易受病毒、蠕虫和特洛伊木马攻击的常见漏洞包括:

    未修补的服务器

    运行不必要的服务

    使用不必要的 ISAPI 筛选器和扩展

    对策

    有效的对策有,提示应用程序安装最新的软件修补程序、禁用无用的功能(如无用的 ISAPI 筛选器和扩展)、使用特权最少的帐户运行进程来减小危害发生时的破坏范围。

    确保 Web 服务器安全的方法

    为了确保 Web 服务器的安全,必须应用很多配置设置来减少服务器受攻击的漏洞。但究竟在何处开始、何时才算完成呢?最佳的方法是,对必须采取的预防措施和必要配置的设置进行分类。通过分类,您可以从上到下系统安排保护过程,或选择特定的类别完成特定的步骤。

    配置类别

    本模块的安全方法都归入图 16.2 所示的类别。

    Web 服务器配置类别

    图 16.2
    Web 服务器配置类别

    分类基本原理如下:

    修补程序和更新程序
    很多安全威胁是由广泛发布和众所周知的漏洞引起的。在很多情况下,如果发现了新漏洞,成功利用该漏洞发起攻击的探测代码将在几小时内公布在 Internet 中。如果不修补并更新服务器,便为攻击者和恶意代码提供了机会。因此,修补并更新服务器软件是保护 Web 服务器的第一项重要步骤。

    服务
    对于有能力探测服务的特权和功能,并进而访问本地 Web 服务器或其他下游服务器的攻击者来说,服务是最主要的漏洞点。如果某服务不是 Web 服务器必需的,请不要在服务器中运行它。如果服务是必需的,请确保服务安全并进行维护。考虑监视所有的服务来确保可用性。如果服务软件不安全,您又需要该服务,请尝试寻找一种可替代它的安全服务。

    协议
    避免使用本身不安全的协议。如果无法避免使用这些协议,请采取相应的措施提供安全的身份验证和通信。例如使用 IPSec 策略。不安全的明文协议有 Telnet、邮局协议 (POP3)、简单邮件传输协议 (SMTP) 和文件传输协议 (FTP)。

    帐户
    帐户可向计算机授予经身份验证的访问权限,因此必须审核。用户帐户的用途是什么?有怎样的访问权限?是否属于可作为攻击目标的常见帐户?是否属于可泄露(并因此一定要包含在内)的服务帐户?使用最少的特权来配置帐户,避免特权提升的可能性。删除所有不需要的帐户。使用强密码策略缓解强力攻击和字典攻击,然后对失败的登录进行审核和报警。

    文件和目录
    使用有限的 NTFS 权限(仅允许访问必需的 Windows 服务和用户帐户)确保所有文件和目录安全。使用 Windows 审核可检测出何时出现可疑的或未经授权的操作。

    共享
    删除所有不必要的文件共享,包括默认管理共享(如果不需要它们)。使用有限的 NTFS 权限确保剩余共享的安全。尽管共享不直接展示在 Internet 中,但如果服务器存在漏洞,提供有限和安全共享的防御策略可减轻风险。

    端口
    在服务器中运行的服务可侦听特定端口,从而响应传入请求。定期审核服务器的端口可确保不安全或不必要的服务无法在您的 Web 服务器中激活。如果检测出活动的端口,但它不是管理员打开的,表明一定存在未经授权的访问和安全漏洞。

    注册表
    很多与安全有关的设置都保存在注册表中,因此必须保护注册表。您可应用有限的 Windows ACL 并阻止远程注册表管理来做到这一点。

    审核和日志记录
    审核是一种重要的工具,主要作用是确定入侵者、进行中的攻击和已发生攻击的证据。请结合 Windows 和 IIS 审核功能来配置 Web 服务器的审核。事件日志和系统日志可帮助您解决安全问题。

    站点和虚拟目录
    站点和虚拟目录直接展示在 Internet 中。尽管安全的防火墙配置和防御性 ISAPI 筛选器(如 IISLockdown 工具附带的 URLScan)可阻止对受限配置文件或程序可执行文件的请求,但还是建议您使用深层的防御策略。重新将站点和虚拟目录分配到非系统分区,然后使用 IIS Web 权限进一步限制访问。

    脚本映射
    如果删除可选文件扩展名的所有不必要 IIS 脚本映射,可防止攻击者对处理这些文件类型的 ISAPI 扩展中的任何 Bug 加以利用。不使用的扩展名映射常常被忽略,而它们正代表了主要的安全漏洞。

    ISAPI 筛选器
    攻击者已成功利用 ISAPI 筛选器中的漏洞。请从 Web 服务器中删除不必要的 ISAPI 筛选器。

    IIS 元数据库
    IIS 元数据库可维护 IIS 配置设置。必须确保正确配置与安全相关的设置,确保使用强化的 NTFS 权限来访问元数据库文件。

    Machine.config
    Machine.config 文件保存了应用于 .NET Framework 应用程序(包括 ASP.NET Web 应用程序)的计算机级配置设置。修改 Machine.config 中的设置可确保将安全的默认值应用于服务器中安装的所有 ASP.NET 应用程序。

    代码访问安全性
    限制代码访问安全性策略设置可确保下载自 Internet 或 Intranet 的代码没有权限,因此无法执行。

    IIS 和 .NET Framework 安装注意事项

    在确保 Web 服务器安全以前,必须先知道安装 IIS 和 .NET Framework 后在 Windows 2000 服务器中出现的组件。本节说明了安装哪些组件。

    IIS 安装了哪些组件?

    IIS 安装了很多服务、帐户、文件夹和 Web 站点。有些组件是 Web 应用程序所不用的,如果不在服务器中删除,可能导致服务器易受攻击。表 16.1 列出了在 Windows 2000 Server 系统中完整安装 IIS(选定所有组件)后创建的服务、帐户和文件夹。

    表 16.1:IIS 安装默认值

    项目详细信息默认值

    服务

    IIS Admin Service(管理 Web 和 FTP 服务)
    World Wide Web Publishing Service
    FTP Publishing Service
    Simple Mail Transport Protocol (SMTP)
    Network News Transport Protocol (NNTP)

    安装

    安装
    安装
    安装
    安装

    帐户和组

    IUSR_MACHINE(匿名 Internet 用户)

    IWAM_MACHINE(进程外 ASP Web 应用程序;不用在 ASP.NET 应用程序中,除了在域控制器中运行的 ASP.NET 应用程序;您的 Web 服务器不应是域控制器)

    添至 Guest 组

    添至 Guest 组

    文件夹

    %windir%/system32/inetsrv(IIS 程序文件)
    %windir%/system32/inetsrv/iisadmin(用于远程管理 IIS 的文件)
    %windir%/help/iishelp(IIS 帮助文件)
    %systemdrive%/inetpub(Web、FTP 和 SMTP 根文件夹)

      

    Web 站点

    默认 Web 站点 – 端口 80:%SystemDrive%/inetpub/wwwroot
    管理 Web 站点 – 端口 3693:%SystemDrive%/System32/inetsrv/iisadmin

    允许匿名访问
    仅限本地计算机和管理员访问

    .NET Framework 安装了哪些组件?

    如果在驻留 IIS 的服务器中安装 .NET Framework,.NET Framework 将注册 ASP.NET。作为该过程的一部分,系统将创建一个名为 ASPNET 的特权最少的本地帐户。这将运行 ASP.NET 工作进程 (aspnet_wp.exe) 和会话状态服务 (aspnet_state.exe),后者可用于管理用户会话状态。

    注意:在运行 Windows 2000 和 IIS 5.0 的服务器计算机中,所有 ASP.NET Web 应用程序都运行在 ASP.NET 工作进程的单个实例中,由应用程序域提供隔离。在 Windows Server 2003 中,IIS 6.0 借助应用程序池提供进程级隔离。

    表 16.2 显示了 .NET Framework 版本 1.1 默认安装的服务、帐户和文件夹。

    表 16.2:.NET Framework 安装默认值

    项目详细信息默认值

    服务

    ASP.NET State Service:为 ASP.NET 提供进程外会话状态支持。

    手动启动

    帐户和组

    ASPNET:运行 ASP.NET 工作进程 (Aspnet_wp.exe) 和会话状态服务 (Aspnet_state.exe) 的帐户。

    添至 Users

    文件夹

    %windir%/Microsoft.NET/Framework/{版本}
    /1033
    /ASP.NETClientFiles
    /CONFIG
    /MUI
    /Temporary ASP.NET Files

      

    ISAPI 扩展

    Aspnet_isapi.dll:处理 ASP.NET 文件类型的请求。将请求转发给 ASP.NET 工作进程 (Aspnet_wp.exe)。

      

    ISAPI 筛选器

    Aspnet_filter.dll:仅用于支持无 cookie 的会话状态。在 Inetinfo.exe (IIS) 进程内部运行。

      

    应用程序映射

    ASAX、ASCX、ASHX、ASPX、AXD、VDISCO、REM、SOAP、CONFIG、CS、CSPROJ、VB、VBPROJ、WEBINFO、LICX、RESX、RESOURCES

    /WINNT/Microsoft.NET/Framework/{版本} Aspnet_isapi.dll

    安装建议

    在默认情况下,Windows 2000 Server 安装程序将安装 IIS。但建议不要将 IIS 作为操作系统安装的一部分来安装,最好是日后更新并修补了基本操作系统之后再安装。安装了 IIS 之后,必须重新应用 IIS 修补程序并强化 IIS 配置,确保 IIS 接受完整的保护。只有这样,将服务器连接到网络中才安全。

    IIS 安装建议

    如果要安装并配置新的 Web 服务器,请执行如下操作步骤概述。

    构建新的 Web 服务器

    1.

    安装 Windows 2000 Server,但 IIS 不作为操作系统安装的一部分。

    2.

    将最新的 Service Pack 和修补程序应用于操作系统。(如果要配置多个服务器,请参阅本节后面的“在基本安装中包括 Service Pack”。)

    3.

    使用控制面板中的“添加/删除程序”单独安装 IIS。

    如果不需要以下服务,安装 IIS 时不要安装它们:

    文件传输协议 (FTP) 服务器

    Microsoft FrontPage® 2000 Server Extensions

    Internet 服务管理器 (HTML)

    NNTP 服务

    SMTP 服务

    可视 InterDev RAD 远程部署支持

    注意:通过在完全修补和更新的操作系统中安装 IIS,可阻止攻击利用已修补的现有漏洞(如 NIMDA)。

    .NET Framework 安装建议

    不要在生产服务器中安装 .NET Framework 软件开发工具包 (SDK)。SDK 包含了很多服务器不需要的实用工具。一旦攻击者获取了服务器的访问权限,便可利用其中的部分工具帮助发起其他攻击。

    正确的做法是,安装可重新分发的软件包。要获取该软件包,可访问 Microsoft.com 的 .NET Framework 站点,其网址为 http://www.microsoft.com/china/net/,单击“Downloads”链接。

    在基本安装中包括 Service Pack

    如果要构建多个服务器,可将 Service Pack 直接并入您的 Windows 安装。Service Pack 包括一个名为 Update.exe 的程序,作用是将 Service Pack 与您的 Windows 安装文件组合在一起。

    要将 Service Pack 与 Windows 安装组合在一起,请执行下列操作:

    1.

    下载最新的 Service Pack。

    2.

    使用 -x 选项启动 Service Pack 安装程序,从 Service Pack 中提取 Update.exe,如下所示:

    w3ksp3.exe -x

    3.

    将 Service Pack 与 Windows 安装源集成,方法是使用 -s 选项运行 update.exe(传递 Windows 安装的文件夹路径),如下所示:

    update.exe -s c:/YourWindowsInstallationSource

    有关详细信息,请参阅 MSDN 文章“Customizing Unattended Win2K Installations”,网址是 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnw2kmag01/html/custominstall.asp(英文)。

    确保 Web 服务器安全的步骤

    下面几节将指导您完成保护 Web 服务器的过程。这些内容使用了本模块确保 Web 服务器安全的方法一节中介绍的配置类别。每个高级步骤都包含了一项或多项确保特定区域或功能安全的操作。

    步骤 1

    修补程序和更新程序

    步骤 10

    审核和日志记录

    步骤 2

    IISLockdown

    步骤 11

    站点和虚拟目录

    步骤 3

    服务

    步骤 12

    脚本映射

    步骤 4

    协议

    步骤 13

    ISAPI 筛选器

    步骤 5

    帐户

    步骤 14

    IIS 元数据库

    步骤 6

    文件和目录

    步骤 15

    服务器证书

    步骤 7

    共享

    步骤 16

    Machine.config

    步骤 8

    端口

    步骤 17

    代码访问安全性

    步骤 9

    注册表

      

      

    步骤 1:修补程序和更新程序

    使用最新的 Service Pack 和修补程序更新服务器。必须更新并修补所有的 Web 服务器组件,包括 Windows 2000(以及 IIS)、.NET Framework 和 Microsoft 数据访问组件 (MDAC)。

    在本步骤中,您要执行以下操作:

    检测并安装必需的修补程序和更新程序

    更新 .NET Framework

    检测并安装修补程序和更新程序

    使用 Microsoft 基准安全分析器 (MBSA) 检测当前安装中可能遗漏的修补程序和更新程序。MBSA 将拿您的安装与一个 XML 文件中维护的当前可用更新列表进行比较。可以让 MBSA 在扫描服务器时下载该 XML 文件,或将 XML 文件手动下载到服务器中,或将它保存在网络服务器中。

    检测并安装修补程序和更新程序

    1.

    下载并安装 MBSA。

    为此,可访问 MBSA 主页 Microsoft 基准安全分析器

    如果运行 MBSA 时无法访问 Internet,MBSA 将无法检索到包含 Microsoft 最新安全设置的 XML 文件。可使用另一台计算机来下载该 XML 文件。然后,将它复制到 MBSA 程序目录中。XML 文件可从 http://download.microsoft.com/download/xml/security/1.0/nt5/en-us/mssecure.cab(英文)下载。

    2.

    双击桌面图标(或从“程序”菜单中选择“MBSA”)来运行 MBSA。

    3.

    单击“Scan a computer”(扫描计算机)。在默认情况下,MBSA 将扫描本地计算机。

    4.

    取消选中所有的复选框,除了“Check for security updates”(检查安全更新)。该选项可检测遗漏的修补程序和更新程序。

    5.

    单击“Start scan”(开始扫描)。此时,系统将分析您的服务器。完成扫描后,MBSA 将显示一份安全报告,并将该报告写入 %userprofile%/SecurityScans 目录。

    6.

    下载并安装遗漏的更新程序。
    单击各项失败检查旁的“Result details”(结果详细信息)链接,查看遗漏的安全更新。结果将出现显示 Microsoft 安全布告引用编号的对话框。单击引用编号可了解更多的布告信息并下载更新程序。

    有关使用 MBSA 的详细信息,请参阅本指南“如何”部分的如何:使用 Microsoft 基准安全分析器。

    更新 .NET Framework

    编写本指南时(2003 年 5 月),MBSA 无法检测 .NET Framework 的更新程序和修补程序。因此,您必须手动检测 .NET Framework 的更新程序。

    手动更新 .NET Framework 1.0 版

    1.

    确定您的 Web 服务器要安装哪一版本的 .NET Framework Service Pack。
    为此,请参阅 Microsoft 知识库文章 318785 INFO:Determining Whether Service Packs Are Installed on the .NET Framework(英文)。

    2.

    将已安装的 .NET Framework 版本与当前 Service Pack 比较。
    为此,请使用 Microsoft 知识库文章 318836 INFO:How to Obtain the Latest .NET Framework Service Pack(英文)中列出的 .NET Framework 版本。

    步骤 2:IISLockdown

    IISLockdown 工具可帮助您自动执行某些安全步骤。该工具大大减少了 Windows 2000 Web 服务器的很多漏洞。您可选取特定类型的服务器角色,然后使用自定义模板提高该特定服务器的安全性。这些模板或禁用不同功能,或保护不同功能。此外,IISLockdown 还安装了 URLScan ISAPI 筛选器。URLScan 允许 Web 站点管理员基于一组自己可控制的规则来限制服务器可处理的 HTTP 请求的种类。通过阻止特定的 HTTP 请求,URLScan 筛选器可防止可能有害的请求抵达服务器,并因此带来损害。

    在本步骤中,您要执行以下操作:

    安装并运行 IISLockdown

    安装并配置 URLScan

    安装并运行 IISLockdown

    IISLockdown 可通过 Microsoft 网站下载,网址是 http://download.microsoft.com/download/iis50/Utility/2.1/NT45XP/EN-US/iislockd.exe(英文)。

    将 IISlockd.exe 保存在本地文件夹中。IISlockd.exe 是 IISLockdown 向导,它不是安装程序。通过再次运行 IISlockd.exe,可撤消 IISLockdown 进行的任何更改。

    如果要锁定驻留 ASP.NET 页的基于 Windows 2000 的计算机,请在出现 IISLockdown 工具提示时选择“Dynamic Web”(动态 Web)服务器模板。一旦选择“Dynamic Web”(动态 Web)服务器时,IISLockdown 将执行下列操作:

    禁用如下不安全的 Internet 服务:

    文件传输协议 (FTP)

    电子邮件服务 (SMTP)

    新闻服务 (NNTP)

    将如下文件扩展名映射至 404.dll 来禁用脚本映射:

    索引服务器

    Web 接口(.idq、.htw、.ida)

    服务器端包含文件(.shtml、.shtm、.stm)

    Internet 数据连接器 (.idc)

    .HTR 脚本 (.htr)、Internet 打印 (.printer)

    删除如下虚拟目录:IIS Samples、MSADC、IISHelp、Scripts 和 IISAdmin。

    限制匿名访问系统实用工具,限制使用 Web 权限写入 Web 内容目录的权限。

    禁用 Web 分布式创作和版本控制 (WebDAV)。

    安装 URLScan ISAPI 筛选器。

    注意:如果不使用传统的 ASP,请不要使用静态 Web 服务器模板。该模板可删除 ASP.NET 页必需的基本功能,如 POST 命令。

    日志文件

    IISLockdown 工具将创建如下两份报告,其中列出了已应用的更改:

    %windir%/system32/inetsrv/oblt-rep.log:其中包含高级信息。

    %windir%/system32/inetsrv/oblt-log.log:其中包含低级详细信息,如使用拒绝访问控制项 (ACE) 配置了哪些程序文件(为了阻止匿名 Internet 用户帐户访问它们)。该日志文件还可用于支持 IISLockdown 的“撤消更改”功能。

    Web Anonymous Users 组和 Web Application 组

    IISLockdown 工具将创建 Web Anonymous Users 组和 Web Application 组。Web Anonymous Users 组包含了 IUSR_MACHINE 帐户。Web Application 组包含了 IWAM_MACHINE 帐户。各种权限都基于这些组分配给系统工具和内容目录,而并非直接分配给 IUSR 和 IWAM 帐户。可通过查看 IISLockdown 日志 %windir%/system32/inetsrv/oblt-log.log 来检查特定权限。

    404.dll

    IISLockdown 工具将安装 404.dll,可将客户端不应运行的文件扩展名映射至该文件。有关详细信息,请参阅 步骤 12:脚本映射

    URLScan

    如果将 URLScan ISAPI 筛选器作为 IISLockdown 的一部分安装,URLScan 设置将在 IISLockdown 工具运行时与选定服务器角色集成。例如,如果选定静态 Web 服务器,URLScan 将阻止 POST 命令。

    撤消 IISLockdown 的更改

    要撤消 IISLockdown 的更改,请再次运行 IISLockd.exe。这不会删除 URLScan ISAPI 筛选器。有关详细信息,请参阅本指南的“如何:使用 URLScan”部分的“删除 URLScan”。

    其他信息

    有关 IISLockdown 工具的详细信息,请参阅以下文章:

    有关运行 IISLockdown 的详细信息,请参阅本指南“如何”部分的如何:使用 IISLockdown.exe。

    有关 IISLockdown 疑难解答的相关信息,请参阅 Microsoft 知识库文章 325864 How To:Install and Use the IIS Lockdown Wizard(英文)。(最常见的问题是:运行 IISLockdown 后收到意外的“404 File Not Found”(未找到 404 文件)错误消息。)

    有关自动运行 IISLockdown 的相关信息,请参阅 Microsoft 知识库文章 310725 How To:Run the IIS Lockdown Wizard Unattended in IIS(英文)。

    安装并配置 URLScan

    URLScan 在您运行 IISLockdown 工具时安装,尽管您可以下载并单独安装它。

    要在不运行 IISLockdown 的情况下安装 URLScan,请执行下列操作:

    1.

    下载 IISlockd.exe,网址是 http://download.microsoft.com/download/iis50/Utility/2.1/NT45XP/EN-US/iislockd.exe(英文)。

    2.

    运行下面的命令来提取 URLScan 安装程序:

    iislockd.exe /q /c

    URLScan 可阻止包含不安全字符(例如,像使用“..”字符遍历目录这样的探测漏洞字符)的请求。URLScan 可将包含这些字符的请求记录在 %windir%/system32/inetsrv/urlscan 目录中。

    您可以使用 .ini 文件 %windir%/system32/inetsrv/urlscan/urlscan.ini 中的设置来配置 URLScan。

    除了阻止恶意请求,您还可以使用 URLScan 在请求到达 ASP.NET 前防止服务器受到拒绝服务攻击。为此,请在 URLScan.ini 文件的 MaxAllowedContentLengthMaxUrlMaxQueryString 参数中设置限制。有关详细信息,请参阅本指南“如何”部分的如何:使用 URLScan。

    撤消 URLScan 的更改

    删除 URLScan 没有相应的自动操作。如果使用 URLScan 时遇到问题,可将 URLScan 从 IIS 中删除,或将被拒绝的请求记录下来供分析。为此,请在 URLScan .ini 文件中使用选项 RejectResponseUrl=/~*

    有关如何删除 ISAPI 筛选器的详细信息,请参阅本模块后面的步骤 13:ISAPI 筛选器

    其他信息

    有关 URLScan 工具的详细信息,请参阅以下文章:

    有关运行 URLScan 的相关信息,请参阅本指南“如何”部分的如何:使用 URLScan。

    有关 URLScan 配置和 URLScan.ini 文件设置的相关信息,请参阅 Microsoft 知识库文章 326444 How To:Configure the URLScan Tool(英文)。

    步骤 3:服务

    不对客户端进行身份验证的服务、使用不安全协议的服务、或特权太多的服务都将带来风险。如果不需要这些服务,请不要运行它们。通过禁用不必要的服务,您可快速轻松地减少攻击面。而且,您还可以减少维护方面(修补程序、服务帐户,等等)的开销。

    如果要运行某个服务,请确保它是安全的并有一定的维护。为此,请使用特权最少的帐户运行该服务,然后通过应用修补程序使服务保持最新。

    在本步骤中,您要执行以下操作:

    禁用不必要的服务

    禁用 FTP、SMTP 和 NNTP(除非需要)

    禁用 ASP.NET State service(除非需要)

    禁用不必要的服务

    面对那些设法探测服务特权和功能来获取本地和远程系统资源访问权限的攻击者时,Windows 服务显得比较脆弱。作为一种防御措施,请禁用系统和应用程序不必要的 Windows 服务。您可使用“管理工具”程序组中的“服务”MMC 管理单元来禁用 Windows 服务。

    注意:在禁用某项服务之前,请确保首先在测试环境或临时环境中测试其影响。

    在大多数情况下,Web 服务器无需下列默认 Windows 服务:Alerter、Browser、Messenger、Netlogon(仅在域控制器中必需)、Simple TCP/IP Services 和 Spooler。

    Telnet 服务是随 Windows 安装的,但在默认情况下是禁用的。IIS 管理员一般会启用 Telnet。但它确是一种易被探测的不安全协议。终端服务可提供更安全的远程管理。有关远程管理的详细信息,请参阅本模块后面的远程管理

    禁用 FTP、SMTP 和 NNTP(除非需要)

    FTP、SMTP 和 NNTP 都是常被滥用的不安全协议。如果不需要这些服务,请不要运行它们。如果当前要运行它们,请试着找出安全的替代服务。如果必须运行,请确保其安全。

    注意:IIS Lockdown 提供了禁用 FTP、SMTP 和 NNTP 的相关选项。

    要消除 FTP 被探测的可能性,请禁用 FTP 服务(如果不使用它)。如果启用了 FTP,且用于出站连接,攻击者可使用 FTP 将文件和工具从攻击者的远程系统上载至 Web 服务器。一旦这些工具和文件位于您的 Web 服务器,攻击者即可攻击该 Web 服务器或其他已连接的系统。

    如果使用 FTP 协议,则访问 FTP 站点的用户名和密码,以及传输的数据都不编码或加密。IIS 不支持 FTP 的 SSL。如果安全通信非常重要,您又将 FTP 用作传输协议(而非借助 SSL 的万维网分布式创作和版本控制 (WebDAV)),请考虑通过加密通道(如使用点对点隧道协议 (PPTP) 或 Internet 协议安全 (IPSec) 保护的虚拟专用网络 (VPN) )使用 FTP。

    禁用 ASP.NET State Service(除非需要)

    .NET Framework 安装了 ASP.NET State service (aspnet_state.exe) 来管理 ASP.NET Web 应用程序和 Web 服务的进程外用户会话状态。在默认情况下,该服务是手动启动的,并使用特权最少的本地 ASPNET 帐户运行。如果您的应用程序都不使用该服务保存状态,请禁用它。有关确保 ASP.NET 会话状态安全的详细信息,请参阅模块 19 确保 ASP.NET 应用程序和 Web 服务的安全中的“会话状态”。

    步骤 4:协议

    避免使用不必要的协议可降低遭受攻击的可能性。.NET Framework 可通过 Machine.config 文件中的设置提供对协议的粒度控制。例如,您可控制 Web 服务是否使用 HTTP GET、POST 或 SOAP。有关在 Machine.config 文件中配置协议的详细信息,请参阅步骤 16:Machine.config

    在本步骤中,您要执行以下操作:

    禁用或保护 WebDav

    强化 TCP/IP 堆栈

    禁用 NetBIOS 和 SMB

    禁用或保护 WebDAV

    IIS 支持 WebDAV 协议,该协议是 HTTP 1.1 的标准扩展,用于发布协作内容。如果不使用该协议,请在生产服务器中禁用它。

    注意:IISLockdown 提供了删除 WebDAV 支持的选项。

    从安全角度来看,WebDAV 比 FTP 更可取,但您必须确保 WebDAV 的安全。有关详细信息,请参阅 Microsoft 知识库文章 323470 How To:Create a Secure WebDAV Publishing Directory(英文)。

    如果不需要 WebDAV,请参阅 Microsoft 知识库文章 241520 How To:Disable WebDAV for IIS 5.0(英文)。

    强化 TCP/IP 堆栈

    Windows 2000 支持对很多配置 TCP/IP 实现的参数进行粒度控制。其中一些默认设置可提供服务器可用性和其他特定功能。

    有关如何强化 TCP/IP 堆栈的相关信息,请参阅本指南“如何”部分的如何:强化 TCP/IP 堆栈。

    禁用 NetBIOS 和 SMB

    禁用所有不必要的协议,包括 NetBIOS 和 SMB。Web 服务器面向 Internet 的网卡 (NIC) 不需要 NetBIOS 或 SMB。禁用这些协议可对抗主机枚举威胁。

    注意:SMB 协议可通过空会话将大量计算机信息返回给未经身份验证的用户。您可以阻止空会话,方法是设置 RestrictAnonymous 注册表项,参见步骤 9:注册表

    禁用 NetBIOS

    NetBIOS 使用以下端口:

    TCP 和用户数据报协议 (UDP) 端口 137(NetBIOS 名称服务)

    TCP 和 UDP 端口 138(NetBIOS 数据报服务)

    TCP 和 UDP 端口 139(NetBIOS 会话服务)

    要禁止 SMB 通信,仅禁用 NetBIOS 是不够的。原因是:如果标准 NetBIOS 端口不可用,SMB 将使用 TCP 端口 445。(此端口称为“SMB 直接主机”。)因此,您必须分别禁用 NetBIOS 和 SMB。

    禁用 TCP/IP 的 NetBIOS

    注意:这一过程将禁用 Nbt.sys 驱动程序,并要求重新启动系统。

    1.

    右键单击桌面的“我的电脑”,然后单击“管理”。

    2.

    展开“系统工具”,选择“设备管理器”。

    3.

    右键单击“设备管理器”,指向“查看”,然后单击“显示隐藏的设备”。

    4.

    展开“非即插即用驱动程序”。

    5.

    右键单击“NetBios over Tcpip”,然后单击“禁用”。

    这将在 TCP 445 和 UDP 445 中禁用 NetBIOS 直接主机侦听程序。

    禁用 SMB

    SMB 使用下列端口:

    TCP 端口 139

    TCP 端口 445

    要禁用 SMB,请使用“本地连接”属性中的“TCP/IP 属性”对话框,解除 SMB 与面向 Internet 的端口的绑定。

    要解除 SMB 与面向 Internet 的端口的绑定,请执行下列操作:

    1.

    单击“开始”菜单,指向“设置”,然后单击“网络和拨号连接”。

    2.

    右键单击面向 Internet 的连接,然后单击“属性”。

    3.

    清除“Microsoft 网络客户端”框。

    4.

    清除“Microsoft 网络的文件和打印机共享”框。

    注意:“高级 TCP/IP 设置”对话框的“WINS”选项卡包含一个“禁用 TCP/IP 上的 NetBIOS”单选按钮。选择该选项可禁用使用 TCP 端口 139 的 NetBIOS 会话服务,它不完全禁用 SMB。为此,请使用以上过程。

    步骤 5:帐户

    必须删除不用的帐户,因为攻击者可能发现这些帐户并加以利用。必须使用强密码。弱密码增加了强力攻击或字典攻击的成功概率。使用最少的特权。攻击者可利用特权较多的帐户访问未经授权的资源。

    在本步骤中,您要执行以下操作:

    删除或禁用不使用的帐户

    禁用 Guest 帐户

    重命名 Administrator 帐户

    禁用 IUSR 帐户

    创建自定义的匿名 Web 帐户

    强制强密码策略

    限制远程登录

    禁用空会话(匿名登录)

    删除或禁用不使用的帐户

    攻击者可以利用不用的帐户及其权限获取访问服务器的机会。审核服务器中的本地帐户,然后禁用那些不用的帐户。如果禁用帐户不产生任何问题,请删除该帐户。(已删除的帐户是无法恢复的。)在生产服务器中禁用帐户之前,请先在测试服务器中禁用这些帐户。确保禁用帐户不会在应用程序操作方面产生负面影响。

    注意:Administrator 帐户和 Guest 帐户无法删除。

    禁用 Guest 帐户

    Guest 帐户在用户匿名连接计算机时使用。为了限制计算机的匿名连接,请禁用该帐户。在默认情况下,Windows 2000 系统禁用 Guest 帐户。要检查是否启用,请在“计算机管理”工具中查看“用户”文件夹。其中的 Guest 帐户应带有叉形图标。如果未禁用,请显示“属性”对话框,然后选中“帐户已停用”。

    重命名 Administrator 帐户

    默认的本地 Administrator 帐户由于享有很高的计算机控制权限,因此常常是攻击者利用的目标。为了增强安全性,请重命名默认的 Administrator 帐户并设置强密码。

    如果打算执行本地管理,请将该帐户配置为拒绝网络登录权限,并要求管理员以交互方式登录。这将防止用户(无意或有意)使用 Administrator 帐户从远程位置登录服务器。如果本地管理策略不够灵活,请实施安全的远程管理解决方案。有关详细信息,请参阅本模块后面的远程管理

    禁用 IUSR 帐户

    禁用默认的匿名 Internet 用户帐户 IUSR_MACHINE。该帐户在 IIS 安装过程中创建。安装 IIS 时服务器的 NetBIOS 名称是 MACHINE。

    创建自定义的匿名 Web 帐户

    如果应用程序支持匿名访问(例如,使用表单身份验证之类的自定义身份验证机制时),请创建自定义的、特权最少的匿名帐户。如果要运行 IISLockdown,请将自定义用户添至已创建的 Web Anonymous Users 组。IISLockdown 拒绝访问系统实用工具,并拒绝写入 Web Anonymous Users 组的 Web 内容目录。

    如果要在 Web 服务器中驻留多个 Web 应用程序,您可能希望使用多个匿名帐户(每个应用程序使用一个)来单独保护和审核每个应用程序的操作。

    有关驻留多个 Web 应用程序的详细信息,请参阅模块 20 驻留多个 Web 应用程序。

    强制强密码策略

    为了对抗攻击者施加给应用程序的密码猜测和强力字典攻击,请应用强密码策略。要强制使用强密码策略,请执行下列操作:

    设置密码长度和复杂性。使强密码减少密码猜测或字典攻击的威胁。强密码由八个或更多字符组成,必须既有字母也有数字。

    设置密码过期时间。定期过期的密码可减少旧密码被未经授权的访问利用的可能性。通常,过期频率遵循公司的安全策略。

    表 16.3 列出了默认的和建议的密码策略设置。

    表 16.3:密码策略的默认设置和建议设置

    密码策略默认设置建议最低设置

    强制密码历史

    1 个记住的密码。

    24 个记住的密码。

    密码最长使用期限

    42 天

    42 天

    密码最短使用期限

    0 天

    2 天

    最短密码长度

    0 个字符

    8 个字符

    密码必须满足复杂性要求。

    禁用

    启用

    用可还原的加密来储存密码(针对域中的所有用户)。

    禁用

    禁用

    此外,记录失败的登录尝试可检测并跟踪恶意行为。有关详细信息,请参阅步骤 10:审核和日志记录

    限制远程登录

    从 Everyone 组中删除“从网络访问此计算机”特权,限制可远程登录服务器的用户。

    禁用空会话(匿名登录)

    为了防止匿名访问,请禁用空会话。这些会话是在两台计算机之间建立的未经身份验证的会话或匿名会话。除非禁用空会话,否则攻击者可匿名(无须进行身份验证)连接您的服务器。

    一旦攻击者建立了空会话,他(或她)就可以实施各种攻击,包括使用枚举技术来收集目标计算机中与系统相关的信息(这些信息大大帮助了攻击者发起后续攻击)。可通过空会话返回的信息类型包括域、信任细节、共享、用户信息(包括组和用户权限)、注册表项等等。

    如果在注册表的以下子项将“RestrictAnonymous”设置为“1”,则可限制空会话:

    HKLM/System/CurrentControlSet/Control/LSA/RestrictAnonymous=1

    有关详细信息,请参阅 Microsoft 知识库文章 246261 How To:Use the RestrictAnonymous Registry Value in Windows 2000(英文)。

    其他注意事项

    下面是进一步提高 Web 服务器安全性的其他步骤列表:

    要求审批帐户委派
    不要在委派时将 Active Directory 中的域帐户标记为受信任(除非先行取得相关批准)。

    不要使用共享帐户
    不要创建供多人共享的帐户。得到授权的人必须有自己的帐户。个人的操作可单独审核,然后分配相应的组成员身份和特权。

    限制本地 Administrators 组成员身份
    尽量将管理帐户限定在两个。这有助于加强责任性。此外,密码不得共享(同样是为了责任性)。

    要求 Administrator 以交互方式登录
    如果仅实施本地管理,可要求 Administrator 帐户以交互方式登录,方法是删除“从网络访问此计算机”特权。

    步骤 6:文件和目录

    将 Windows 2000 安装在 NTFS 文件系统分区中有助于借助 NTFS 权限来限制访问。使用强大的访问控制可确保文件和目录不受攻击。在大多数情况下,许可访问特定的帐户要比拒绝访问特定的帐户更有效。请尽可能在目录级设置访问权限。文件一旦添加到文件夹中便继承了文件夹的相应权限,因此您无需再完成任何设置。

    在本步骤中,您要执行以下操作:

    限制 Everyone 组

    限制匿名 Web 帐户

    保护或删除工具、实用工具和 SDK

    删除示例文件

    限制 Everyone 组

    Windows 2000 的默认 NTFS 权限可授予 Everyone 组成员完全控制很多关键位置(包括根目录、/inetpub 和 /inetpub/scripts)的权限。

    首先,将根目录 (/) 的完全控制权限授予 Administrator 帐户,然后从以下目录删除 Everyone 组的访问权限。

    根目录 (/)

    系统目录 (/WINNT/system32)

    Framework 工具目录 (/WINNT/Microsoft.NET/Framework/{版本})

    Web 站点根目录和所有内容目录(默认值是 /inetpub/*)

    限制访问 IIS 匿名帐户

    匿名帐户是众所周知的。攻击者可利用这种众所周知的帐户执行恶意操作。要确保匿名帐户的安全,请执行下列操作:

    拒绝对 Web 内容目录的写入访问
    确保该帐户不能写入内容目录(例如,以破坏网站为目的)。

    限制对系统工具的访问
    尤其是限制对 /WINNT/System32 中的命令行工具的访问。

    将权限分配给组,而不是单独的帐户
    比较好的做法是,将用户分配到组,然后将权限应用于组而非单独的帐户。对于匿名帐户,请创建一个组,然后将匿名帐户添加到该组,再显式拒绝该组来访问关键的目录和文件。通过将权限分配给组,您可以更轻松地更改匿名帐户或创建其他匿名帐户(因为您不必重新创建这些权限)。

    注意:IISLockdown 通过将拒绝写入控制项 (ACE) 应用于 Web Anonymous Users 和 Web Applications 组,从而拒绝匿名帐户对内容目录进行写入访问。此外,它还在命令行工具中添加拒绝执行 ACL。

    在不同的应用程序中使用不同的帐户
    如果要在 Web 服务器中驻留多个应用程序,请在每个应用程序中使用不同的匿名帐户。将帐户添加到一个匿名 Web 用户组,例如 IISLockdown 创建的 Web Anonymous Users 组,然后使用该组配置 NTFS 权限。

    有关使用多个匿名帐户和驻留多个应用程序的详细信息,请参阅模块 20 驻留多个 ASP.NET 应用程序。

    保护或删除工具、实用工具和 SDK

    SDK 和资源工具包不应安装在 Web 生产服务器中。如果存在,请将其删除。

    确保在服务器中仅安装 .NET Framework 可重新分发的软件包,且不安装任何 SDK 实用工具。不要在生产服务器中安装 Visual Studio .NET。

    确保对功能强大的系统工具和实用工具(如 /Program Files 目录中的系统工具和实用工具)的访问有一定限制。使用 IISLockdown 可做到这一点。

    调试工具不应在 Web 服务器中可用。如果必须进行生产调试,应创建一个包含必要调试工具的 CD。

    删除示例文件

    通常,示例应用程序都不使用级别较高的安全设置来配置。攻击者有可能利用示例应用程序或配置本身的漏洞对您的 Web 站点进行攻击。删除示例应用程序可减少 Web 服务器受攻击的区域。

    其他注意事项

    此外,请考虑删除不必要的数据源名称 (DSN)。这些数据源包含了应用程序用来连接 OLE DB 数据源的明文连接详细信息。只有 Web 应用程序必需的 DSN 才应安装在 Web 服务器中。

    步骤 7:共享

    删除所有不使用的共享,然后强化必需共享的 NTFS 权限。在默认情况下,所有的用户都有完全控制新创建的文件共享的权限。强化这些默认权限可确保只有授权用户才能访问共享中的文件。除了明显的共享权限外,还可将 NTFS ACL 用于共享中的文件和文件夹。

    在本步骤中,您要执行以下操作:

    删除不必要的共享

    限制对所需共享的访问

    删除不必要的共享

    删除所有不必要的共享。要查看共享和相关联的权限,请运行“计算机管理”MMC 管理单元,然后在“共享文件夹”中选择“共享”,如图 16.3 所示。

    “计算机管理”MMC 管理单元共享

    图 16.3
    “计算机管理”MMC 管理单元共享

    限制对所需共享的访问

    删除 Everyone 组,然后授予特定的权限。如果不限制可访问共享的用户,则使用 Everyone。

    其他注意事项

    如果不允许远程管理服务器,请删除不使用的管理共享,例如“C$”和“Admin$”。

    注意:有些应用程序可能要求管理共享。例如,Microsoft Systems Management Server (SMS) 和 Microsoft Operations Manager (MOM)。有关详细信息,请参阅 Microsoft 知识库文章 318751 How To:Remove Administrative Shares in Windows 2000 or Windows NT 4.0(英文)。

    步骤 8:端口

    在服务器中运行的服务将使用特定的端口,以便为传入请求提供服务。关闭所有不必要的端口,然后执行常规的审核来检测处于侦听状态的新端口(这些端口指出了未经授权的访问和安全漏洞)。

    在本步骤中,您要执行以下操作:

    将面向 Internet 的端口限定为 TCP 80 和 443

    加密或限制 Intranet 通信

    将面向 Internet 的端口限定为 TCP 80 和 443

    限定出站通信使用端口 80(对于 HTTP)和端口 443(对于 HTTPS (SSL))。

    对于出站(面向 Internet)NIC,使用 IPSec 或 TCP 筛选。有关详细信息,请参阅本指南“如何”部分的如何:使用 IPSec。

    加密或限制 Intranet 通信

    对于内部(面向 Intranet)NIC,如果您没有安全的数据中心,但又要在计算机间传递敏感信息,则必须考虑是加密通信,还是限制 Web 服务器和下游服务器(如应用程序服务器或数据库服务器)的通信。加密网络通信可解决网络窃听带来的威胁。如果认为风险很小,可选择不对通信进行加密。

    使用的加密类型也会影响要解决的威胁类型。例如,SSL 是应用程序级加密,而 IPSec 是传输层加密。因此,SSL 可对抗来自同一计算机另一进程的数据篡改或信息泄漏威胁,尤其是使用不同帐户(与网络窃听的帐户相比)运行的进程。

    步骤 9:注册表

    注册表是很多重要服务器配置设置的存储库。因此,必须确保只有经过授权的管理员才能访问它。如果攻击者能编辑注册表,他(或她)可重新配置您的服务器,然后破坏其安全性。

    在本步骤中,您要执行以下操作:

    限制对注册表进行远程管理

    确保 SAM 的安全(仅限独立服务器)

    限制对注册表进行远程管理

    Winreg 键可决定注册表键是否可用于远程访问。在默认情况下,该键可防止用户远程查看注册表中的大多数键,只有特权较高的用户才能修改它。在 Windows 2000 中,远程注册表访问在默认情况下限定给 AdministratorsBackup operators 组的成员。管理员拥有完全控制权限,备份操作员拥有只读访问权限。

    下面注册表位置的相关权限决定了可远程访问注册表的人。

    HKLM/SYSTEM/CurrentControlSet/Control/SecurePipeServers/winreg

    要查看该注册表键的权限,请运行 Regedt32.exe,找到该键,然后从“安全”菜单中选择“权限”。

    注意:有些服务要求远程访问注册表。请参考 Microsoft 知识库文章 153183 How to Restrict Access to the Registry from a Remote Computer(英文),了解您的情况是否要限制注册表的远程访问。

    确保 SAM 的安全(仅限独立服务器)

    独立服务器可将帐户名称和单向(不可逆)密码哈希值 (LMHash) 保存在本地安全帐户管理器 (SAM) 数据库中。SAM 是注册表的一部分。通常,只有 Administrators 组的成员才能访问帐户信息。

    虽然密码实际上并未保存在 SAM 中,密码哈希值也不可逆,但如果攻击者获得了 SAM 数据库的副本,该攻击者便可以使用强力密码技术取得有效的用户名和密码。

    通过在注册表中创建键(不是值)NoLMHash 可限制在 SAM 中存储 LMHash,如下所示:

    HKLM/System/CurrentControlSet/Control/LSA/NoLMHash

    有关详细信息,请参阅 Microsoft 知识库文章 299656 How to Prevent Windows from Storing a LAN Manager Hash of Your Password in Active Directory and Local SAM Databases(英文)。

    步骤 10:审核和日志记录

    审核过程不能防止系统受攻击,但它是明确入侵者和进行中的攻击的重要辅助方法,且可帮助您诊断攻击踪迹。在 Web 服务器中启用级别最低的审核,然后使用 NTFS 权限保护日志文件,确保攻击者无法借助任何方式删除或更新日志文件来达到掩盖踪迹的目的。使用 IIS W3C 扩展日志文件格式审核。

    在本步骤中,您要执行以下操作:

    记录所有失败的登录尝试

    记录文件系统中的所有失败操作

    重定位并保护 IIS 日志文件

    存档日志文件供脱机分析

    审核对 Metabase.bin 文件的访问

    记录所有失败的登录尝试

    只有记录失败的登录尝试才能检测和跟踪可疑行为。

    要审核失败的登录尝试,请执行下列操作:

    1.

    从“管理工具”程序组启动本地安全策略工具。

    2.

    展开“本地策略”,然后选择“审核策略”

    3.

    双击“审核帐户登录事件”。

    4.

    单击“失败”,然后单击“确定”。

    登录失败将作为事件记录在 Windows 安全事件日志中。下面的事件 ID 是可疑的:

    531:表示使用禁用帐户进行登录尝试。

    529:表示使用未知的用户帐户或密码无效的有效用户帐户进行登录尝试。上述审核事件数量的意外增加表示存在密码猜测企图。

    记录文件系统中的所有失败操作

    在文件系统中使用 NTFS 审核可检测恶意企图。本过程包括两个步骤。

    启用日志记录

    1.

    从“管理工具”程序组启动“本地安全策略”工具。

    2.

    展开“本地策略”,然后选择“审核策略”

    3.

    双击“审核对象访问”。

    4.

    单击“失败”,然后单击“确定”。

    要审核文件系统中的失败操作,请执行下列操作:

    1.

    启动 Windows 资源管理器,然后定位至文件系统的根目录。

    2.

    右键单击,然后单击“属性”。

    3.

    单击“安全”选项卡。

    4.

    单击“高级”,然后单击“审核”选项卡。

    5.

    单击“添加”,然后在“名称”字段中输入 Everyone。

    6.

    单击“确定”,选中所有“失败”复选框,审核所有失败的事件。

    在默认情况下,这适用于当前文件夹及所有子文件夹和文件。

    7.

    单击“确定”三次,关闭所有打开的对话框。
    失败的审核事件将记录到 Windows 安全事件日志中。

    重定位并保护 IIS 日志文件

    通过移动和重命名 IIS 日志文件,可使攻击者更难掩盖自己的踪迹。攻击者必须先找到日志文件,然后才能改变日志文件。要使攻击者的任务更难于执行,请使用 NTFS 权限保护日志文件。

    将 IIS 日志文件目录移动到与 Web 站点所在卷不同的卷,然后重命名。不要使用系统卷。接着,将以下 NTFS 权限应用于日志文件文件夹和子文件夹。

    Administrators:完全控制

    System:完全控制

    Backup Operators:读取

    存档日志文件供脱机分析

    为了方便脱机分析 IIS 日志文件,可使用脚本将日志文件从 IIS 服务器自动删除,同时确保安全。必须至少每 24 小时删除一次日志文件。自动执行的脚本可使用 FTP、SMTP、HTTP 或 SMB 从服务器计算机中传输日志文件。但是,如果要启用其中一种协议,请确保启用的安全性,避免产生任何其他攻击。使用 IPSec 策略保护端口和通道。

    审核对 Metabase.bin 文件的访问

    审核 Everyone 组对 IIS metabase.bin 文件(位于 /WINNT/System32/inetsrv/)的所有失败访问。对 /Metabase 备份文件夹(元数据库的备份副本),执行同样的操作。

    其他注意事项

    此外,可配置 IIS W3C 扩展日志文件格式审核。在 Web 站点“属性”对话框的“Web 站点”选项卡中,选择“W3C 扩展日志文件格式”。然后,选择诸如“URI 资源”和“URI 查询”之类的“扩展属性”。

    步骤 11:站点和虚拟目录

    将 Web 根目录和虚拟目录重定位至非系统分区,防止目录遍历攻击。这些攻击的攻击者可执行操作系统程序和实用工具。跨驱动器遍历是不可能的。例如,此方法可确保将来允许攻击者访问系统文件的所有规范化蠕虫病毒都失败。例如,如果攻击者给出包含以下路径的 URL,请求将失败:

    /scripts/..%5c../winnt/system32/cmd.exe

    在本步骤中,您要执行以下操作:

    将 Web 站点移至非系统卷

    禁用父路径设置

    删除可能危险的虚拟目录

    删除或保护 RDS

    设置 Web 权限

    删除或保护 FrontPage Server Extensions

    将 Web 站点移至非系统卷

    不要使用默认的 /inetpub/wwwroot 目录。例如,如果系统安装在 C:驱动器,请将站点和内容目录移至 D:驱动器。这样做可缓解无法预料的规范化问题和目录遍历攻击风险。

    禁用父路径设置

    该 IIS 元数据库设置禁止在类似 MapPath 这种函数的脚本和应用程序调用中使用“..”。这有助于防止目录遍历攻击。

    要禁用父路径,请执行下列操作:

    1.

    启动 IIS。

    2.

    右键单击 Web 站点根目录,然后单击“属性”。

    3.

    单击“主目录”选项卡。

    4.

    单击“配置”。

    5.

    单击“应用程序选项”选项卡。

    6.

    清除“启用父路径”。

    注意:如果使用 Application Center 2002 管理站点,请参阅 Microsoft 知识库文章 288309 PRB:Disabling Parent Paths Breaks User Interface(英文)。

    删除可能危险的虚拟目录

    示例应用程序在默认情况下不安装,且不应在 Web 生产服务器中安装。删除所有示例应用程序,包括仅能使用 http://localhost 或 http://127.0.0.1 从本地计算机访问的示例应用程序。

    从生产服务器中删除下列虚拟目录:IISSamples、IISAdmin、IISHelp 和 Scripts。

    注意:IISLockdown 提供了一个选项来删除 Scripts、IISSamples、IISAdmin 和 IISHelp 虚拟目录。

    删除或保护 RDS

    远程数据服务 (RDS) 是一个组件,它允许通过 IIS 对远程数据资源进行受控的 Internet 访问。RDS 接口由 Msadcs.dll 提供,Msadcs.dll 位于:program files/common files/system/Msadc.

    删除 RDS

    如果应用程序不使用 RDS,请删除它。

    要删除 RDS 支持,请执行下列操作:

    1.

    从 IIS 中删除 /MSADC 虚拟目录映射。

    2.

    删除下列位置中的 RDS 文件和子目录:
    /Program Files/Common Files/System/Msadc

    3.

    删除下面的注册表项:
    HKLM/System/CurrentControlSet/Services/W3SVC/Parameters/ADCLaunch

    注意:IISLockdown 提供了一个选项来删除 MSADC 虚拟目录。请注意,IISLockdown 仅删除虚拟目录,它不删除文件或注册表项。

    保护 RDS

    如果应用程序要求使用 RDS,请确保安全。

    要确保 RDS 安全,请执行下列操作:

    1.

    删除以下位置中的示例:
    /Progam Files/Common Files/System/Msadc/Samples

    2.

    删除下面的注册表项:
    HKLM/System/CurrentControlSet/Services/W3SVC/Parameters/ADCLaunch/VbBusObj.VbBusObjCls

    3.

    在 IIS 中禁用 MSADC 虚拟目录的匿名访问。

    4.

    在如下位置创建 HandlerRequired 注册表项:
    HKLM/Software/Microsoft/DataFactory/HandlerInfo/

    5.

    创建一个新的 DWORD 值,将它设置为 1(1 代表安全模式,0 代表不安全模式)。

    注意:可使用注册表脚本文件 Handsafe.reg 更改注册表项。该脚本文件位于 msadc 目录:

    /Program Files/Common Files/System/msadc

    有关确保 RDS 安全的详细信息,请参阅:

    MS99-025 Microsoft Security Program:Unauthorized Access to IIS Servers through ODBC Data Access with RDS,网址是 http://www.microsoft.com/technet/security/bulletin/ms99-025.asp(英文)。

    MS98-004 Microsoft Security Program:Microsoft Security Bulletin:Unauthorized ODBC Data Access with RDS and IIS,网址是 http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS98-004.asp(英文)。

    Microsoft 知识库文章 184375 PRB:Security Implications of RDS 1.5, IIS 3.0 or 4.0, and ODBC(英文)。

    设置 Web 权限

    Web 权限在 IIS 管理单元中配置,并在 IIS 元数据库中维护。Web 权限不是 NTFS 权限。

    请使用下列 Web 权限:

    读取权限。将读取权限限制在 include 目录。

    写入和执行权限。将写入和执行权限限制在允许匿名访问的虚拟目录。

    脚本源访问。仅在允许内容创作的文件夹中配置脚本源访问权限。

    写入。仅在允许内容创作的文件夹中配置写入权限。仅将写入访问权限授予内容作者。

    注意:应将支持内容创作的文件夹配置为要求身份验证和使用 SSL 加密。

    删除或保护 FrontPage Server Extensions

    如果不使用 FrontPage Server Extensions (FPSE),请将其禁用。如果使用 FPSE,请执行下列步骤提高安全性:

    升级服务器扩展。请参考 MSDN 文章“Microsoft FrontPage Server Extensions 2002 for Windows”(网址是 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnservext/html/fpse02win.asp(英文))中的安全问题。

    使用 FrontPage 安全性来限制访问。FPSE 安装的组都有权访问配置了服务器扩展的网站。这些组的作用是基于用户角色来限制可用的访问。有关详细信息,请参阅 Assistance Center,网址是 http://office.microsoft.com/assistance/2002/articles/fp_colmanagesecurity.aspx(英文)。

    步骤 12:脚本映射

    脚本映射可将特定文件扩展名(如 .asp)与处理它的 ISAPI 扩展(如 Asp.dll)相关联。IIS 的配置要支持各种扩展名,其中包括 .asp、.shtm、.hdc 等。ASP.NET HTTP 处理程序大致等价于 ISAPI 扩展。在 IIS 中,文件扩展名(如 .aspx)先映射至 Aspnet_isapi.dll,然后 Aspnet_isapi.dll 再将请求转发至 ASP.NET 工作进程。之后,处理文件扩展名的实际 HTTP 处理程序由 Machine.config 或 Web.config 中的 <HttpHandler> 映射确定。

    与脚本映射相关的主要安全问题是:

    攻击者可利用在扩展中找到的漏洞
    如果扩展中的漏洞仍未修补,可能出现该问题。保留不使用的扩展将增加可能受攻击的区域。例如,假如您不使用某扩展,有可能注意不到相关更新。

    服务器端资源可被客户端下载
    文件扩展名映射不正确,可能出现该问题。对于不应由客户端直接访问的文件,应根据扩展名将它们映射至相应的处理程序,或将它们删除。

    在本步骤中,您要执行以下操作:

    映射 IIS 文件扩展名

    映射 .NET Framework 文件扩展名

    映射 IIS 文件扩展名

    在 Windows 2000 中,重要的 IIS 文件扩展名包括:.asp、.asa、.cer、.cdx、.htr、.idc、.shtm、.shtml、.stm 和 .printer。

    如果不使用上述扩展名中的任何一个,请将该扩展名映射至 IISLockdown 提供的 404.dll。例如,如果不希望为客户端提供 ASP 页,请将 .asp 映射至 404.dll。

    IISLockdown 具体改变怎样的映射取决于您选定的服务器模板:

    静态 Web 服务器。如果运行 IISLockdown 并选择“静态 Web 服务器”选项,所有上述扩展名都将映射至 404.dll。

    动态 Web 服务器。如果选择“动态 Web 服务器”选项(是处理 ASP.NET 页时的首选项),请将 .htr、.idc、.shtm、.shtml、.stm 和 .printer 映射至 404.dll,不要将 .asp、.cer、.cdx 和 .asa 映射至 404.dll。此时,应将 .cer、.cdx 和 .asa 手动映射至 404.dll。如果不使用 .asp,也可映射它。

    为何要映射至 404.dll?

    通过将文件扩展名映射至 404.dll,可防止通过 HTTP 返回和下载文件。如果请求文件的扩展名已映射至 404.dll,系统显示一个 Web 页,其中包含消息“HTTP 404 - 未找到文件”。建议您将不使用的扩展名映射至 404.dll,而不是删除映射。如果删除映射,而文件又误留在服务器中(或错放在服务器中),则请求该文件时系统可明文显示文件,因为 IIS 不知道如何处理它。

    要将文件扩展名映射至 404.dll,请执行下列操作:

    1.

    启动 IIS。

    2.

    右键单击左窗口中的服务器名称,然后单击“属性”。

    3.

    确保在“主属性”下拉列表中选定“WWWService”,然后单击相邻的“编辑”按钮。

    4.

    单击“主目录”选项卡。

    5.

    单击“配置”。将显示如图 16.4 所示的选项卡式页面。

    映射应用程序扩展名

    图 16.4
    映射应用程序扩展名

    6.

    从列表中选择一个扩展名,然后单击“编辑”。

    7.

    单击“浏览”并导航到 /WINNT/system32/inetsrv/404.dll。

    注意:此步骤假定您以前运行了 IISlockd.exe,因为 404.dll 是由 IISLockdown 工具安装的。

    8.

    单击“打开”,然后单击“确定”。

    9.

    对所有剩余文件扩展名,重复步骤 6、7 和 8。

    映射 .NET Framework 文件扩展名

    下列 .NET Framework 文件扩展名都映射至 aspnet_isapi.dll:.asax、.ascx、.ashx、.asmx、.aspx、.axd、.vsdisco、.jsl、.java、.vjsproj、.rem、.soap、.config、.cs、.csproj、.vb、.vbproj、.webinfo、.licx、.resx 和 .resources。

    .NET Framework 保护的文件扩展名不应由客户端直接调用,做法是将它们与 Machine.config 中的 System.Web.HttpForbiddenHandler 关联。在默认情况下,下面的文件扩展名将映射至 System.Web.HttpForbiddenHandler:.asax、.ascx、.config、.cs、.csproj、.vb、.vbproj、.webinfo、.asp、.licx、.resx 和 .resources。

    有关 HTTP 处理程序的详细信息,请参阅“步骤 16:Machine.config”。

    其他注意事项

    由于 IIS 首先处理 Web 请求,可将不希望客户端调用的 .NET Framework 文件扩展名直接映射至 404.dll。这要执行两项任务:

    将请求传递到 ASP.NET 之前(并在 ASP.NET 工作进程处理请求之前),先由 404.dll 处理并拒绝这些请求。这可消除 ASP.NET 工作进程的不必要处理。此外,尽早阻止请求是比较好的安全做法。

    404.dll 返回消息“HTTP 404 - 未找到文件”,System.Web.HttpForbiddenHandler 返回消息“无法提供此类型的页”。“未找到文件”消息显示的信息更少,可被认为更安全(对此有争议)。

    步骤 13:ISAPI 筛选器

    过去,ISAPI 筛选器中的漏洞可导致重大的 IIS 利用攻击。全新安装 IIS 之后,不再有多余的 ISAPI 筛选器,尽管 .NET Framework 安装了 ASP.NET ISAPI 筛选器 (Aspnet_filter.dll)(该筛选器被加载至 IIS 进程地址空间 (Inetinfo.exe),作用是支持无 cookie 的会话状态管理)。

    如果应用程序无需支持无 cookie 的会话状态,且未将 <sessionState> 元素的 cookieless 属性设置为 true,则可删除该筛选器。

    在本步骤中,请删除不使用的 ISAPI 筛选器。

    删除不使用的 ISAPI 筛选器

    删除所有不使用的 ISAPI 筛选器,如下节所述。

    要查看 ISAPI 筛选器,请执行下列操作:

    1.

    要启动 IIS,从“管理工具”程序组中选择“Internet 服务管理器”。

    2.

    右键单击计算机(非 Web 站点,因为筛选器属计算机范围),然后单击“属性”。

    3.

    单击“编辑”。

    4.

    单击“ISAPI 筛选器”选项卡。
    将显示如图 16.5 所示的选项卡式页面。

    删除不使用的 ISAPI 筛选器

    图 16.5
    删除不使用的 ISAPI 筛选器

    步骤 14:IIS 元数据库

    安全性和其他 IIS 配置设置都在 IIS 元数据库文件中维护。强化 IIS 元数据库(以及备份元数据库文件)的 NTFS 权限可确保攻击者无法以任何方式(例如,对于特定的虚拟目录禁用身份验证)修改您的 IIS 配置。

    在本步骤中,您要执行以下操作:

    使用 NTFS 权限来限制对元数据库的访问

    限制 IIS 返回的横幅信息

    使用 NTFS 权限来限制对元数据库的访问

    在位于 /WINNT/system32/inetsrv 目录中的 IIS 元数据库文件 (Metabase.bin) 中设置以下 NTFS 权限。

    本地系统:完全控制

    Administrators:完全控制

    限制 IIS 返回的横幅信息

    横幅信息可显示对攻击者有助的软件版本和其他信息。横幅信息可显示您运行的软件,它允许攻击者利用已知的软件漏洞。

    如果要检索静态页(例如 .htm 或 .gif 文件),内容位置标头将被添加到响应中。在默认情况下,该内容标头引用 IP 地址,但不是完全限定的域名 (FQDN)。这意味着,您的内部 IP 地址被意外公开。例如,以下 HTTP 响应标头以粗体显示 IP 地址:

    HTTP/1.1 200 OK
    Server:Microsoft-IIS/5.0
    Content-Location:http://10.1.1.1/Default.htm
    Date:Thu, 18 Feb 1999 14:03:52 GMT
    Content-Type:text/html
    Accept-Ranges:bytes
    Last-Modified:Wed, 06 Jan 1999 18:56:06 GMT
    ETag:"067d136a639be1:15b6"
    Content-Length: 4325
    

    您可隐藏 HTTP 响应标头中返回的内容位置,方法是修改 IIS 元数据库中的一个值,将默认行为从公开 IP 地址更改为发送 FQDN。

    有关隐藏 HTTP 响应中的内容位置的详细信息,请参阅 Microsoft 知识库文章 218180 Internet Information Server Returns IP Address in HTTP Header (Content-Location)(英文)。

    步骤 15:服务器证书

    如果 Web 应用程序通过端口 443 支持 HTTPS (SSL),必须安装服务器证书。这项要求是会话协商过程(出现在客户端建立安全 HTTPS 会话时)的一部分。

    有效的证书可提供安全的身份验证,客户端因此可信任与之通信的服务器。此外,有效的证书还可提供安全的通信,保证了在网络中传输的敏感数据依然机密,且不会被篡改。

    在本步骤中,您将验证服务器证书。

    验证服务器证书

    检查下列四项内容,确认 Web 服务器证书有效:

    检查有效开始日期和有效截止日期。

    检查是否正确使用证书。如果证书是作为服务器证书颁发的,不应将它用于电子邮件。

    检查证书链中的公钥是否直至受信任的根目录都是有效的。

    检查证书是否未被吊销。证书不得位于颁发证书的服务器的证书吊销列表 (CRL) 上。

    步骤 16:Machine.Config

    本节介绍了所有应用程序要应用的计算机级设置的强化信息。有关应用程序特定的强化设置,请参阅模块 19 确保 ASP.NET 应用程序和 Web 服务的安全。

    Machine.config 文件可维护 .NET Framework 的大量计算机范围设置,很多设置都将影响安全性。Machine.config 位于:

    %windir%/Microsoft.NET/Framework/{版本}/CONFIG

    注意:可使用任何文本或 XML 编辑器(如记事本)编辑 XML 配置文件。XML 标记区分大小写,请务必使用正确的大小写。

    在本步骤中,您要执行以下操作:

    将受保护的资源映射至 HttpForbiddenHandler

    验证是否禁用了跟踪

    验证是否禁用了调试编译

    验证 ASP.NET 错误是否未返回至客户端

    验证会话状态设置

    将受保护的资源映射至 HttpForbiddenHandler

    HTTP 处理程序位于 Machine.config,在 <httpHandlers> 元素下方。HTTP 处理程序负责处理特定文件扩展名的 Web 请求。不应在前端 Web 服务器中启用远程处理;仅需在与 Internet 隔离的中间层应用程序服务器中启用远程处理。

    Machine.config 中的下列文件扩展名被映射至 HTTP 处理程序:

    .aspx 用于 ASP.NET 页

    .rem 和 .soap 用于远程处理

    .asmx 用于 Web 服务

    .asax、.ascx、.config、.cs、.csproj、.vb、.vbproj、.webinfo、.asp、.licx、.resx 和 .resources 是受保护的资源,它们映射至 System.Web.HttpForbiddenHandler

    对于 .NET Framework 资源,如果不使用某个文件扩展名,请将该扩展名映射至 Machine.config 中的 System.Web.HttpForbiddenHandler,如下例所示:

    <add verb="*" path="*.vbproj" type="System.Web.HttpForbiddenHandler" />

    此时,将 .vbproj 文件扩展名映射至 System.Web.HttpForbiddenHandler。如果客户端请求的路径以 .vbproj 结尾,ASP.NET 返回一条消息,指出“无法提供此类型的页”。

    下列准则适用于处理 .NET Framework 文件扩展名:

    将不使用的扩展名映射至 HttpForbiddenHandler。如果不使用 ASP.NET 页,请将 .aspx 映射至 HttpForbiddenHandler。如果不使用 Web 服务,请将 .asmx 映射至 HttpForbiddenHandler

    在面向 Internet 的 Web 服务器中禁用远程处理。将面向 Internet 的 Web 服务器中的远程处理扩展名(.soap 和 .rem)映射至 HttpForbiddenHandler

    禁用 .NET 远程处理

    要禁用对 .rem 和 .soap 扩展名的 .NET 远程处理禁用请求,请使用 <httpHandlers> 中的以下元素:

    <add verb="*" path="*.rem" type="System.Web.HttpForbiddenHandler"/>
    <add verb="*" path="*.soap" type="System.Web.HttpForbiddenHandler"/>

    注意:这不会阻止 Web 服务器中的 Web 应用程序使用远程处理基础结构连接下游对象。但是,它将阻止客户端连接 Web 服务器中的对象。

    验证是否禁用了跟踪

    使用 <trace> 元素可在 Machine.config 中配置跟踪。尽管跟踪在开发服务器和测试服务器方面很有用,但不要在生产服务器中启用跟踪,因为系统级跟踪信息对攻击者分析应用程序并探测薄弱点来说作用重大。

    在生产服务器中使用以下配置:

    <trace enabled="false" localOnly="true" pageOutput="false" 
    	 requestLimit="10" traceMode="SortByTime"/>
    

    在生产服务器中设置 enabled="false"。如果确实要跟踪实际应用程序的问题,请在测试环境中模拟问题,或(根据需要)启用跟踪并设置 localOnly="true",防止将跟踪详细信息返回到远程客户端。

    验证是否禁用了调试编译

    使用 <compilation> 元素可控制编译器是否生成包括调试符号的调试内部版本。要关闭调试编译,请设置 debug="false",如下所示:

    <compilation debug="false" explicit="true" defaultLanguage="vb" />
    

    验证 ASP.NET 错误是否未返回至客户端

    使用 <customErrors> 元素可配置在出现应用程序异常情况时应返回给客户端的自定义一般错误消息。

    确保将模式属性设置为 "RemoteOnly",如下例所示:

    <customErrors mode="RemoteOnly" />
    

    安装了 ASP.NET 应用程序后,可将此设置配置为指向您的自定义错误页,如下例所示:

    <customErrors mode="On" defaultRedirect="YourErrorPage.htm" />
    

    验证会话状态设置

    如果不使用会话状态,请验证 Machine.config 中是否禁用了会话状态,如下例所示:

    <sessionState mode="Off" . . . />
    

    此外,确保禁用 ASP.NET State Service。默认的会话状态模式是 "InProc",且 ASP.NET State Service 设置为“手动”。有关保护会话状态的详细信息(如果安装了必需它的 ASP.NET 应用程序),请参阅模块 19 确保 ASP.NET 应用程序和 Web 服务的安全中的“会话状态”。

    步骤 17:代码访问安全性

    计算机级代码访问安全策略由 Security.config 文件中的设置确定,该文件位于:
    %windir%/Microsoft.NET/Framework/{版本}/CONFIG

    运行下面的命令,确保在您的服务器中启用代码访问安全性:

    caspol -s On

    有关为 ASP.NET Web 应用程序配置代码访问安全性的详细信息,请参阅模块 9 ASP.NET 代码访问安全性。

    在本步骤中,您要执行以下操作:

    删除本地 Intranet 区域的所有权限

    删除 Internet 区域的所有权限

    删除本地 Intranet 区域的所有权限

    本地 Intranet 区域将权限应用于在 UNC 共享或内部 Web 站点中运行的代码。将此区域与“Nothing”权限集关联,可重新配置为不授予权限。

    要删除本地 Intranet 区域的所有权限,请执行下列操作:

    1.

    从“管理工具”程序组中启动 Microsoft .NET Framework 1.1 版配置工具。

    2.

    展开“运行库安全策略”,展开“计算机”,然后展开“代码组”。

    3.

    展开“All_Code”,然后选择“LocalIntranet_Zone”。

    4.

    单击“编辑代码组属性”。

    5.

    单击“权限集”选项卡。

    6.

    从“权限”下拉列表中选择“Nothing”。

    7.

    单击“确定”。
    将显示如图 16.6 所示的对话框。

    将“LocalIntranet_Zone”代码权限设置为“Nothing”

    图 16.6
    将“LocalIntranet_Zone”代码权限设置为“Nothing”

    删除 Internet 区域的所有权限

    Internet 区域将代码访问权限应用于通过 Internet 下载的代码。在 Web 服务器中,应将此区域重新配置为不授予权限,方法是使其与“Nothing”权限集关联。

    重复上一节“删除本地 Intranet 区域的所有权限”中的步骤,只是将“Internet_Zone”设置为“Nothing”权限集。

    安全 Web 服务器快照

    在显示安全 Web 服务器属性的快照视图中,您可快速轻松地将设置与 Web 服务器进行比较。表 16.4 所示设置的相应 Web 服务器位于抗攻击力强且安全措施得力的 Web 站点中。通过执行前面的步骤,可生成在安全性方面配置完全相同的服务器。

    表 16.4:安全 Web 服务器快照

    组件特征

    修补程序和更新程序

    Windows、IIS 和 .NET Framework 中应用了最新的 service pack 和修补程序。

      

    服务

    禁用不需要的服务。
    NNTP、SMTP 和 FTP 也被禁用(除非需要)。
    禁用或保护 WebDAV(如果使用)。
    服务帐户特权最少。
    如果不需要 ASP.NET Session State service,则禁用它。

      

    协议

    服务器未启用 NetBIOS 和 SMB 协议。
    已强化 TCP 堆栈。

      

    帐户

    已删除不使用的帐户。
    禁用了 Guest 帐户。
    默认的 administrator 帐户已重命名,且使用强密码。
    禁用默认的匿名帐户 (IUSR_Machine)。
    自定义匿名帐户用于匿名访问。
    强制强密码策略。
    限制远程登录。
    禁用空会话(匿名登录)。
    需要时对帐户委派进行审批。
    不使用共享帐户。
    限制本地 administrators 组的成员(理想情况是两个成员)。
    要求管理员以交互方式登录(或实施安全的远程管理解决方案)。

      

    文件和目录

    Everyone 组没有系统、Web 或工具目录的访问权限。匿名帐户没有 Web 站点内容目录和系统实用工具的访问权限。
    删除或保护工具、实用工具和 SDK。
    删除示例文件。
    删除不需要的 DSN。

      

    共享

    已从服务器中删除不使用的共享。
    对必需共享的访问已经过保护(除非必要,否则不在“Everyone”组启用共享)。
    如果不需要管理共享(C$ 和 Admin$),则删除它们。

      

    端口

    阻止除 80 和 443 (SSL) 以外的所有端口,尤其是易受攻击的端口 135 – 139 和 445。

      

    注册表

    防止注册表的远程管理。
    已保护了 SAM(仅限独立服务器)。

      

    审核和日志记录

    将登录失败记入日志。
    记录 Everyone 组访问对象时的失败。
    将日志文件从 %systemroot%/system32/LogFiles 进行重定位,并使用 ACL 保护它们:Administrators 和 System 有完全控制权限。
    启用 IIS 日志记录。
    定期存档日志文件供脱机分析。
    对访问 metabase.bin 文件的情况进行审核。
    配置 IIS 进行 W3C 扩展日志文件格式审核。

      

    IIS

      

      

    站点和虚拟目录

    Web 根目录和虚拟目录分别位于与系统卷不同的卷。
    禁用父路径设置。
    已删除危险的虚拟目录(IIS Samples、MSADC、IISHelp、Scripts 和 IISAdmin)。
    已删除或保护 RDS。
    Web 权限限制不适当的访问。
    限制 Include 目录使用“读取”Web 权限。
    限制匿名访问文件夹使用“写入”和“执行”Web 权限。
    允许内容创作的安全文件夹可使用“脚本源访问”Web 权限,但所有其他文件夹不能使用这些权限。
    如果不需要 FPSE,则删除它。

      

    脚本映射

    不使用的脚本映射都映射至 404.dll:.idq、.htw、.ida、.shtml、.shtm、.stm、idc、.htr、.printer。
    注意:404.dll 在运行 IIS Lockdown 工具时安装。

      

    ISAPI 筛选器

    已删除不使用的 ISAPI 筛选器。

      

    IIS 元数据库

    已使用 NTFS 权限对 IIS 元数据库的访问进行了限制。
    横幅信息已限制;隐藏 HTTP 响应标头中的内容位置。

      

    Machine.config

      

      

    HttpForbiddenHandler

    受保护的资源都映射至 System.Web.HttpForbiddenHandler

      

    远程处理

    已禁用 .NET 远程处理。

    <httpHandlers>
    <add verb="*" path="*.rem" 
    	type="System.Web.HttpForbiddenHandler"/>  
    <add verb="*" path="*.soap"       
    	 type="System.Web.HttpForbiddenHandler"/>
    </httpHandlers>
    

      

    跟踪

    跟踪信息和详细错误信息都不返回至客户端:

    <trace  enabled="false">
    

      

    编译

    禁用调试编译

    <compilation debug="false"/>
    

      

    customErrors

    不将错误详细信息返回至客户端:

    <customErrors mode="On" /> 
    

    一般错误页将错误写入事件日志。

      

    sessionState

    如果不需要会话状态,则禁用它:

    <sessionState  mode="Off" />
    

      

    代码访问安全性

      

      

    代码访问安全性

    已在计算机中启用代码访问安全性。
    caspol -s On

      

    LocalIntranet_Zone

    本地 Intranet 区域没有权限:
    PermissionSet=Nothing

      

    Internet_Zone

    Internet 区域没有权限:
    PermissionSet=Nothing

      

    保持安全

    必须监视服务器的安全状态并定期更新,防止新发现的漏洞被他人利用。要确保服务器一直安全,请执行下列操作:

    审核组成员身份

    监视审核日志

    应用最新的 service pack 和修补程序

    执行安全评估

    使用安全性通告服务

    审核组成员身份

    跟踪用户组的成员身份,尤其是特权组(如 Administrators 组)。以下命令列出了 Administrators 组的成员:

    net localgroup administrators

    监视审核日志

    定期监视审核日志并分析日志文件,方法是手动查看它们,或参考 Microsoft 知识库文章 296085 How To:Use SQL Server to Analyze Web Logs(英文)中所述的技术。

    应用最新的 Service Pack 和修补程序

    制订计划来分析服务器软件并订阅安全警报。使用 MBSA 定期扫描服务器,确认缺少了哪些修补程序。下列链接提供了最新的更新程序:

    Windows 2000 service packs。最新的 service pack 位于 http://www.microsoft.com/windows2000/downloads/servicepacks/default.asp(英文)。

    .NET Framework Service Pack。有关获取 .NET Framework 最新更新程序的相关信息,请参阅 MSDN 文章“How to Get the Microsoft .NET Framework”,网址是 http://msdn.microsoft.com/netframework/downloads/howtoget.asp(英文)。

    关键更新程序。这些更新程序有助于解决已知的问题,并帮助您修补计算机的已知安全漏洞。有关最新关键更新程序,请参考“Critical Updates”,网址是 http://www.microsoft.com/windows2000/downloads/critical/default.asp(英文)

    高级安全更新程序。有关其他安全更新程序的信息,请参考“Advanced Security Updates”,网址是 http://www.microsoft.com/windows2000/downloads/security/default.asp(英文)。

    这些更新程序有助于您修补计算机的已知安全漏洞。

    执行安全评估

    使用 MBSA 定期检查安全漏洞,确认缺少了哪些修补程序和更新程序。安排 MBSA 每天运行一次,然后分析结果并根据需要采取操作。有关自动运行 MBSA 的详细信息,请参阅本指南“如何”部分的如何:使用 MBSA。

    使用安全性通告服务

    使用表 16.5 中列出的 Microsoft 服务,获取安全布告并了解可能出现的系统漏洞通知。

    表 16.5:安全性通告服务

    服务位置

    TechNet 安全网站

    http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/current.asp(英文)
    使用该网页可查看系统可用的安全布告。

    Microsoft 安全性通告服务

    http://register.microsoft.com/subscription/subscribeme.asp?ID=135(英文)
    使用该服务可注册定期电子邮件布告,并在新修复程序和更新程序可用时得到通知。

    此外,请订阅表 16.3 所示的行业安全警报服务。这样,您就可以对修补程序尚不可用的漏洞进行威胁评估。

    表 16.4:行业安全性通告服务

    服务位置

    CERT 咨询邮件列表

    http://www.cert.org/contact_cert/certmaillist.html(英文)
    如果报告了漏洞,用户可收到咨询信息。

    Windows 和 .NET 杂志安全更新

    http://email.winnetmag.com/winnetmag/winnetmag_prefctr.asp(英文)
    公布最新的安全违规并确定修复程序。

    NTBugtraq

    http://www.ntbugtraq.com/default.asp?pid=31&sid=1#020(英文)
    这是针对 Windows 安全漏洞和探测方面的公开讨论。这里将讨论当前没有修补程序的漏洞。

    远程管理

    通常,管理员要管理多台服务器。请确保远程管理解决方案的要求不损害安全性。如果需要远程管理功能,以下建议有助于提高安全性:

    限制管理帐户的数量。这包括限制管理帐户的数量以及限制允许哪些帐户远程登录。

    限制使用工具。主要包括 Internet 服务管理器和终端服务。另一选择是 Web 管理(使用 IISAdmin 虚拟目录),但不建议使用它(因为已由 IISLockdown.exe 删除)。Internet 服务管理器和终端服务都使用 Windows 安全性。此处的主要注意事项是,限制您使用的 Windows 帐户和端口。

    限制允许管理服务器的计算机。可使用 IPSec 限制哪些计算机连接 Web 服务器。

    确保终端服务的安全

    可以安全使用 Microsoft 终端服务来远程管理您的 Web 服务器。

    终端服务基于称为远程桌面协议 (RDP) 的 Microsoft 专有协议。RDP 使用 TCP 3389 端口并支持两个并发用户。下面几节描述了如何为安全管理安装并配置终端服务:

    安装终端服务

    配置终端服务

    安装终端服务

    要安装终端服务,请执行下列操作:

    1.

    使用控制面板中的“添加/删除程序”,安装终端服务。使用“添加/删除 Windows 组件”选项。不必为远程管理安装 Terminal Services Licensing 服务。

    2.

    为远程管理模式配置终端服务。

    3.

    删除 TsInternetUser 帐户(在安装终端服务期间创建)。该帐户用于支持对终端服务的匿名 Internet 访问,在服务器中不应启用它。

    配置终端服务

    使用“管理工具”程序组中的“终端服务配置”MMC 管理单元,进行如下配置:

    1.

    连接终端服务有三种加密级别(低、中和高)可用。将加密设置为 128 位密钥。请注意,Windows 高级加密包应同时安装在服务器和客户端中。

    2.

    配置终端服务会话,使其超过空闲连接时间限制后断开连接。将它设置为终止断开连接的会话。如果用户关闭终端服务客户端应用程序(在十分钟内不注销),则认为会话已断开连接。

    3.

    最后,限制终端服务的访问权限。使用“RDP”对话框中的“RDP 权限”选项卡。在默认情况下,允许 Administrators 组的所有成员访问终端服务。如果不希望 Administrators 组的所有成员访问终端服务,请删除该组,然后添加需要访问的单独帐户。请注意,SYSTEM 帐户必须包含在列表中。

    使用客户端和服务器之间的安全 VPN 连接或 IPSec 隧道来加强安全性。该方法可提供相互身份验证,且 RDP 有效负载是加密的。

    通过 RDP 复制文件

    终端服务不提供文件传输的内置支持。但您可从 Windows 2000 Server 资源工具包中安装“文件复制”实用工具,从而将文件传输功能添加到终端服务的剪贴板重定向功能。有关该实用工具和安装说明的详细信息,请参阅 Microsoft 知识库文章 244732 How To:Install the File Copy Tool Included with the Windows 2000 Resource Kit(英文)。

    简化并自动设置安全性

    本模块已向您说明了如何为 ASP.NET Web 服务器手动配置安全设置。手动过程有助于您了解配置,但它比较耗时。使用下列资源可自动执行本模块提供的步骤:

    有关如何自动运行 IISLockdown 的信息,请参阅 Microsoft 知识库文章 310725 How To:Run the IIS Lockdown Wizard Unattended in IIS(英文)。

    可使用安全模板创建并部署安全策略。有关详细信息,请参阅下列 Microsoft 知识库文章:

    313434, "How To:Define Security Templates in the Security Templates Snap-in in Windows 2000(英文)。

    309689, "How To:Apply Predefined Security Templates in Windows 2000(英文)。

    321679, "How To:Manage Security Templates in Windows 2000 Server(英文)。

    有关自定义和自动设置安全模板的详细指导,请参阅“Microsoft patterns & practices, Microsoft Solution for Securing Windows 2000 Server”,网址是 http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/prodtech/windows/secwin2k/default.asp(英文)。

    “Microsoft Solution for Securing Windows 2000 Server”介绍了最常见的服务器角色,包括域控制器、DNS 服务器、DHCP 服务器、IIS Web 服务器以及文件和打印服务器。通过本指南中的方法,您可以进行 Windows 2000 的默认安装,然后创建安全的服务器,服务器的详细配置随角色而异。此后,管理员可有意识地削弱安全性来满足特定环境的需要。本指南提供了与服务帐户、组策略等的基准安全建议有关的基础知识,您可以将它们用作常见服务器角色类型的起点。

    小结

    安全的 Web 服务器为驻留 Web 应用程序提供了安全的基础。本模块说明了可能影响 ASP.NET Web 服务器的主要威胁,并提供了缓解这些风险要执行的安全步骤。通过执行本模块提供的强化步骤,您可以创建安全的平台和主机基础结构,从而支持 ASP.NET Web 应用程序和 Web 服务。

    本模块使用的方法可供您从头开始构建安全的 Web 服务器,还可强化现有 Web 服务器的安全配置。下一步是如何确保正确配置所有已部署的应用程序。

    其他资源

    有关其他相关阅读材料,请参阅:

    有关保护开发人员工作站的信息,请参阅本指南“如何”部分的如何:保护开发人员工作站。

    有关确保 ASP.NET Web 应用程序和 Web 服务安全的详细信息,请参阅模块 19 确保 ASP.NET 应用程序和 Web 服务的安全。

    有关配置 Open Hack 应用程序的信息,请参阅 MSDN 文章构建和配置更安全的网站

    有关 TechNet 中的安全资源,请参阅 TechNet 安全页,网址是 http://www.microsoft.com/china/technet/security/default.asp(英文)。

    有关可打印检查表的信息,请参阅检查表:保护 Web 服务器。


    展开全文
  • web项目中WEB-INF文件夹保护资源

    千次阅读 2016-02-23 19:59:31
    web项目中WEB-INF文件夹保护资源  1)作用  放在此文件夹内的资源不能直接访问,必须通过转发的形式访问,它可以保护资源。  2)通常JSP放在此处  a.如果JSP不放在此处,而是直接放在WebRoot下,则...

    web项目中WEB-INF文件夹保护资源


      1)作用

         放在此文件夹内的资源不能直接访问,必须通过转发的形式访问,它可以保护资源。


      2)通常JSP放在此处

        a.如果JSP不放在此处,而是直接放在WebRoot下,则它可以被直接访问。

        b.由于我们采用Model2的模式开发,JSP的数据 都来源于Servlet,若直接访问它就会丧失这些数据,导致报错。

        c.如果将JSP放在此处,则JSP无法直接访问了, 就可以强制用户按照MVC的规则来访问它,从而避免了这种BUG。

     

    3)静态资源不放在此处

        a.因为静态资源必须直接访问,不存在转发访问的形式,所以不能被保护。

        b.直接将静态资源放在WebRoot下。


    附:web项目中静态资源和动态资源加载顺序


    展开全文
  • WEB服务器 是什么

    千次阅读 2014-03-29 21:05:19
    那么这个WEB服务器到底是怎么回事?它在处理请求时肯定会去调用一些业务逻辑,处理完请求后肯定需要把结果格式化为html形式,然后返回给客户端的浏览器。  在理解 web 的服务端的时候,下面的文字来自百度百科。...

       前言: 在学 web 编程的时候,知道浏览器(相当于客户端)发出的http 请求, 另一端 (即 WEB服务器)对请求作出回应。 那么这个WEB服务器到底是怎么回事?它在处理请求时肯定会去调用一些业务逻辑,处理完请求后肯定需要把结果格式化为html形式,然后返回给客户端的浏览器。

         在理解 web 的服务端的时候,下面的文字来自百度百科。但我觉得写的很清楚,故贴下来。

          

    http://baike.baidu.com/link?url=qbnHfHBhxD7RVZwWW-FwIP5H7A3rPc9FEzgQ4GrLPw344FaNFtTAaOgvcDk4zQ4f

    概述编辑

    词义辨析

    什么是 网络服务器
    网络服务器是网络环境下为客户提供某种服务的 专用计算机

    WEB简介

    Web服务器是可以向发出请求的 浏览器提供文档的 程序
    1、服务器是一种被动 程序:只有当Internet上运行在其他计算机中的 浏览器发出请求时,服务器才会响应
    2 、最常用的Web服务器是 ApacheMicrosoftInternet信息服务器(Internet Information Services,IIS)。
    3、Internet上的服务器也称为Web服务器,是一台在Internet上具有独立 IP地址的 计算机,可以向Internet上的客户机提供WWW、 EmailFTP等各种Internet服务。
    4 Web服务器是指驻留于 因特网上某种类型计算机的 程序。当Web 浏览器客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用 HTTP超文本 传输协议)与客户机浏览器进行信息交流,这就是人们常把它们称为HTTP服务器的原因。
    Web服务器不仅能够 存储信息,还能在用户通过Web 浏览器提供的信息的基础上 运行脚本程序

    协议

    1. HTML( 标准通用标记语言下的一个应用)文档格式。

    WWW简介

    WWW是 World Wide Web (环球信息网)的缩写,也可以简称为 Web,中文名字为“ 万维网”。它起源于1989年3月,由欧洲量子物理实验室 CERN(the European Laboratory for Particle Physics)所发展出来的主从结构分布式 超媒体系统。通过万维网,人们只要通过使用简单的方法,就可以很迅速方便地取得丰富的信息资料。由于用户在通过 Web 浏览器访问信息资源的过程中,无需再关心一些技术性的细节,而且界面非常友好,因而 Web 在Internet 上一推出就受到了热烈的欢迎,走红全球,并迅速得到了爆炸性的发展。

    WWW的发展和特点

    长期以来,人们只是通过传统的媒体(如电视、报纸、杂志和广播等)获得信息。但随着计算机网络的发展,人们想要获取信息,已不再满足于传统媒体那种单方面传输和获取的方式,而希望有一种主观的选择性。网络上提供各种类别的 数据库系统,如文献期刊、产业信息、气象信息、论文检索等等。由于计算机网络的发展,信息的获取变得非常及时、迅速和便捷。
    到了1993年,WWW 的技术有了突破性的进展,它解决了远程信息服务中的文字显示、 数据连接以及图像传递的问题,使得 WWW 成为 Internet 上最为流行的信息传播方式。Web 服务器成为 Internet 上最大的计算机群,Web 文档之多、链接的网络之广,令人难以想象。可以说,Web 为 Internet 的普及迈出了开创性的一步,是近年来 Internet 上取得的最激动人心的成就。
    WWW 采用的是 浏览器/服务器结构,其作用是整理和储存各种WWW资源,并响应 客户端软件的请求,把客户所需的资源传送到 Windows 95(或Windows98)、Windows NT、UNⅨ 或 Linux 等平台上。
    使用最多的 web server 服务器软件有两个: 微软的信息服务器(iis),和Apache。
    通俗的讲,Web服务器传送(serves)页面使 浏览器可以浏览,然而 应用程序服务器提供的是 客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理 HTTP请求(request),但是 应用程序服务器是通过很多协议来为应用程序提供(serves) 商业逻辑(business logic)。
    Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个 静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的 程序例如CGI 脚本,JSP(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者注: 脚本)的目的如何,这些服务器端(server-side)的 程序通常产生一个HTML的响应(response)来让 浏览器可以浏览。
    要知道,Web服务器的代理模型(delegation model)非常简单。当一个请求(request)被送到Web服务器里来时,它只单纯的把请求(request)传递给可以很好的处理请求(request)的 程序(译者注:服务器端 脚本)。Web服务器仅仅提供一个可以执行服务器端(server-side) 程序和返回( 程序所产生的)响应(response)的环境,而不会超出职能范围。服务器端(server-side) 程序通常具有事务处理(transaction processing),数据库连接(database connectivity)和消息(messaging)等功能。
    虽然Web服务器不支持事务处理或 数据库连接池,但它可以配置(employ)各种策略(strategies)来实现 容错性(fault tolerance)和可扩展性(scalability),例如 负载平衡(load balancing),缓冲(caching)。集群特征(clustering—features)经常被误认为仅仅是 应用程序服务器专有的特征。
    应用程序服务器(The Application Server)
    根据我们的定义,作为 应用程序服务器,它通过各种协议,可以包括HTTP,把 商业逻辑暴露给(expose) 客户端 应用程序。Web服务器主要是处理向 浏览器发送HTML以供浏览,而 应用程序服务器提供访问 商业逻辑的途径以供 客户端应用程序使用。应用程序使用此 商业逻辑就象你调用对象的一个方法(或过程语言中的一个函数)一样。
    应用程序服务器的 客户端(包含有 图形用户界面(GUI)的)可能会运行在一台PC、一个Web服务器或者甚至是其它的应用程序服务器上。在 应用程序服务器与其 客户端之间来回穿梭(traveling)的信息不仅仅局限于简单的显示标记。相反,这种信息就是 程序逻辑(program logic)。正是由于这种逻辑取得了(takes)数据和方法调用(calls)的形式而不是 静态HTML,所以 客户端才可以随心所欲的使用这种被暴露的 商业逻辑
    在大多数情形下, 应用程序服务器是通过组件(component)的 应用程序接口(API)把 商业逻辑暴露(expose)(给 客户端应用程序)的,例如基于J2EE(Java 2 Platform,Enterprise Edition)应用程序服务器的EJB(Enterprise JavaBean) 组件模型。此外, 应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keeping duties)包括安全(security),事务处理(transaction processing),资源池(resource pooling), 和消息(messaging)。就象Web服务器一样, 应用程序 服务器配置了多种可扩展(scalability)和容错(fault tolerance)技术。
    例如,设想一个在线商店(网站)提供实时定价(real-time pricing)和有效性(availability)信息。这个站点(site)很可能会提供一个 表单(form)让你来选择产品。当你提交查询(query)后,网站会进行查找(lookup)并把结果内嵌在HTML页面中返回。网站可以有很多种方式来实现这种功能。我要介绍一个不使用 应用程序服务器的情景和一个使用应用程序服务器的情景。观察一下这两中情景的不同会有助于你了解 应用程序服务器的功能。
    情景1:不带 应用程序服务器的Web服务器
    在此种情景下,一个Web服务器独立提供在线商店的功能。Web服务器获得你的请求(request),然后发送给服务器端(server-side)可以处理请求(request)的程序。此 程序从数据库或文本文件(flat file,译者注:flat file是指没有特殊格式的非二进制的文件,如properties和XML文件等)中查找定价信息。一旦找到,服务器端(server-side) 程序把结果信息表示成(formulate)HTML形式,最后Web服务器把会它发送到你的 Web浏览器
    简而言之,Web服务器只是简单的通过响应(response)HTML页面来处理HTTP请求(request)。
    情景2:带 应用程序服务器的Web服务器
    情景2和情景1相同的是Web服务器还是把响应(response)的产生委托(delegates)给 脚本(译者注:服务器端(server-side)程序)。然而,你可以把查找定价的 商业逻辑(business logic)放到 应用程序服务器上。由于这种变化,此 脚本只是简单的调用 应用程序服务器的查找服务(lookup service),而不是已经知道如何查找数据然后表示为(formulate)一个响应(response)。这时当该 脚本程序产生HTML响应(response)时就可以使用该服务的返回结果了。
    在此情景中, 应用程序服务器提供(serves)了用于查询产品的定价信息的 商业逻辑。(服务器的)这种功能(functionality)没有指出有关显示和 客户端如何使用此信息的细节,相反客户端和 应用程序服务器只是来回传送数据。当有 客户端调用 应用程序服务器的查找服务(lookup service)时,此服务只是简单的查找并返回结果给客户端。
    通过从响应产生(response-generating)HTML的代码中分离出来,在 应用程序之中该定价(查找)逻辑的可重用性更强了。其他的 客户端,例如收款机,也可以调用同样的服务(service)来作为一个店员给客户结帐。相反,在情景1中的定价查找服务是不可重用的因为信息内嵌在HTML页中了。
    总而言之,在情景2的模型中,在Web服务器通过回应HTML页面来处理HTTP请求(request),而 应用程序服务器则是通过处理定价和有效性(availability)请求(request)来提供应用程序逻辑的。
    警告(Caveats)
    现在,XML Web Services已经使 应用程序服务器和Web服务器的界线混淆了。通过传送一个XML有效载荷(payload)给服务器,Web服务器现在可以处理数据和响应(response)的能力与以前的 应用程序服务器同样多了。
    另外,现在大多数 应用程序服务器也包含了Web服务器,这就意味着可以把Web服务器当作是应用程序服务器的一个子集(subset)。虽然 应用程序服务器包含了Web服务器的功能,但是开发者很少把应用程序服务器部署(deploy)成这种功能(capacity)(译者注:这种功能是指既有应用程序服务器的功能又有Web服务器的功能)。相反,如果需要,他们通常会把Web服务器独立配置,和 应用程序服务器一前一后。这种功能的分离有助于提高性能(简单的Web请求(request)就不会影响 应用程序服务器了),分开配置(专门的Web服务器,集群(clustering)等等),而且给最佳产品的选取留有余地。

    2服务器特点编辑

    Windows,Linux与Unix这3个操作系统是架设Web服务器比较常见的操作系统。Linux的安全性能在这3个操作系统中最高,可以支持多个硬件平台,其网络功能比较强大。总的来说,这两大优点是其他操作系统不可替代的:第一,可以依据用户不同的需求来随意修改、调整与复制各种程序的源码以及发布在互联网上;第二,Linux操作系统的市场价格比较便宜,也能够在互联网上免费下载源码。可以说,Linux为架设既高效又安全的Web服务器的比较理想的操作系统。此外,要让Web服务器更具有优越的性能,可以根据服务器系统之特点与用途作进一步的优化与处理,尽量减少Web服务器的数据传输量以及降低其数据传输的频率,进而促进网络宽带的利用率与使用率,以及提高网络客户端的网页加载的速度,同时也可以减少Web服务器各种资源的消耗。

    3工作原理编辑


      Web服务器的工作原理并不复杂,一般可分成如下4个步骤:连接过程、请求过程、应答过程以及关闭连接。下面对这4个步骤作一简单的介绍。连接过程就是Web服务器和其浏览器之间所建立起来的一种连接。查看连接过程是否实现,用户可以找到和打开 socket这个 虚拟文件,这个文件的建立意味着连接过程这一步骤已经成功建立。请求过程就是Web的浏览器运用socket这个文件向其服务器而提出各种请求。应答过程就是运用HTTP协议把在请求过程中所提出来的请求传输到Web的服务器,进而实施任务处理,然后运用HTTP协议把任务处理的结果传输到Web的浏览器,同时在Web的浏览器上面展示上述所请求之界面。关闭连接就是当上一个步骤--应答过程完成以后,Web服务器和其 浏览器之间断开连接之过程。Web服务器上述4个步骤环环相扣、紧密相联,逻辑性比较强,可以支持多个进程、多个线程以及多个进程与多个线程相混合的技术。 [1]

    4大型编辑

    在UNⅨ和LINUX平台下使用最广泛的免费HTTP服务器是APACHE服务器,而Windows平台NT/2000/2003使用ⅡS的WEB服务器。在选择使用WEB服务器应考虑的本身特性因素有:性能、安全性、日志和统计、 虚拟主机代理服务器、缓冲服务和集成 应用程序等,下面介绍几种常用的WEB服务器。

    IIS

    Microsoft的Web服务器产品为Internet Information Services (IIS),IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。ⅡS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在ⅡS的平台上。IIS提供了一个图形界面的 管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。
    IIS是一种Web服务组件,其中包括Web服务器、 FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、 文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的 编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。

    Kangle

    kangle web服务器(简称:kangle)是一款跨平台、功能强大、安全稳定、易操作的高性能 web服务器反向代理 服务器软件。除此:kangle也是一款专为做 虚拟主机研发的 web服务器。实现 虚拟主机独立进程、独立身份运行。用户之间安全隔离,一个用户出问题不影响其他用户。安全支持php、asp、asp·net、java、ruby等多种动态开发语言。

    WebSphere

    WebSphere Application Server 是一种功能完善、开放的Web 应用程序服务器,是IBM电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。这一整套产品进行了扩展,以适应 Web 应用程序服务器的需要,范围从简单到高级直到企业级。
    WebSphere 针对以 Web 为中心的开发人员,他们都是在基本 HTTP服务器和 CGI编程技术上成长起来的。IBM 将提供 WebSphere 产品系列,通过提供综合资源、可重复使用的组件、功能强大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸缩运行时环境,来帮助这些用户从简单的 Web 应用程序转移到电子商务世界。

    WebLogic

    BEA WebLogic Server是一种多功能、基于标准的web 应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种系统和数据库,还是提交服务、跨 Internet 协作,起始点都是 BEA WebLogic Server。由于 它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用。
    BEA WebLogic Server 在使 应用服务器成为企业应用架构的基础方面继续处于领先地位。BEA WebLogic Server 为构建 集成化的企业级应用提供了稳固的基础,它们以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。

    Apache

    Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。它源于NCSAhttpd服务器,当 NCSAWWW服务器项目停止后,那些使用NCSA WWW服务器的人们开始交换用于此服务器的 补丁,这也是apache名称的由来(pache 补丁)。世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的 源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的 Unix、Windows、 Linux系统平台上)以及它的可移植性等方面。

    Tomcat

    Tomcat是一个开放 源代码、运行servlet和JSP Web 应用软件的基于Java的Web应用软件容器。Tomcat Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业 应用软件服务器要好。
    Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的 自由软件。Tomcat是完全重写的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。随着Catalina Servlet引擎的出现,Tomcat第四版号的性能得到提升,使得它成为一个值得考虑的Servlet/JSP容器,因此目前许多WEB服务器都是采用Tomcat。

    2003Web

    Web服务器组件是Windows Server2003系统中ⅡS6.0的服务组件之一,默认情况下并没有被安装,用户需要手动安装Web服务组件。
    第1步,打开“ 控制面板”窗口,双击“添加/删除 程序”图标,打开“ 添加或删除程序”窗口。单击“添加/删除Windows组件”按钮,打开“Windows组件安装向导”对话框。
    第2步,在“Windows组件”对话框中双击“ 应用程序服务器”选项,打开“应用程序服务器”对话框。在“ 应用程序服务器的子组件”列表中双击“Internet 信息服务(ⅡS)” 复选框
    第3步,打开“Internet 信息服务(ⅡS)”对话框,在“Internet 信息服务(ⅡS) 的子组件”列表中选中“万维网服务” 复选框。依次单击“确定”→“确定”按钮。
    第4步,系统开始安装ⅡS 6.0和Web服务组件。在安装过程中需要提供 Windows Server 2003系统安装光盘或指定安装文件路径。安装完成后单击“完成”按钮即可。

    5小型编辑

    【nginx】
    * 支持通用语言接口,如php、python、perl等
    * 支持正向和反向代理、 虚拟主机、url重写、压缩传输等
    * nginx的模块都是 静态编译的,对fcgi的支持非常好,在处理链接的的方式上nginx支持epoll。
    【 micro_httpd - really small HTTP server】
    特点:
    * 支持安全的 .. 上级目录过滤
    * 支持通用的MIME类型
    * 支持简单的目录
    * 支持目录列表
    * 支持使用 index.html 作为首页
    * Trailing-slash redirection
    * 程序总共代码才200多行
    这个httpd适合学习简单的Web Server编写学习,因为它只有一个简单的框架,只能够处理简单的 静态页,可以考虑用来放静态页。
    【 mini_httpd - small HTTP server
    特点:
    * 支持GET、HEAD、POST方法
    * 支持CGI功能
    * 支持基本的验证功能
    * 支持安全 .. 上级目录功能
    * 支持通用的MIME类型
    * 支持目录列表功能
    * 支持使用 index.html,index.htm,index.cgi 作为首页
    * 支持多个根目录的 虚拟主机
    * 支持标准日志记录
    * 支持自定义错误页
    * Trailing-slash redirection
    mini_httpd 也是相对比较适合学习使用,大体实现了一个Web Server的功能,支持 静态页和CGI,能够用来放置一些个人简单的东西,不适宜投入生产使用。
    【 thttpd - tiny/turbo/throttling HTTP server 】
    thttpd中是一个简单,小型,轻便,快速和安全的http服务器.
    简单:它能够支持HTTP/1.1协议标准,或者超过了最低水平
    小巧:它具有非常少的运行时间,因为它不fork子进程来接受新请求,并且非常谨慎的分配内存。
    便携:它能够在大部分的类Unix系统上运行,包括FreeBSD,SunOS 4,Solaris 2,BSD/OS,Linux,OSF等等
    快速:它的速度要超过主流的Web服务器(Apache,NCSA,Netscape),在高负载情况下,它要快的多
    安全:它努力的保护 主机不受到攻击,不中断服务器
    thttpd 类似于lighttpd,对于并发请求不使用fork()来派生子进程处理,而是采用多路复用(Multiplex)技术来实现。因此效能很好。同时它还有一个特点就是基于URL的文件 流量限制,这对于下载的 流量控制而言是非常方便的。象Apache就必须使用 插件实现,效率较thttpd低。

    6配置编辑

    如何设置默认文档;在同一台服务器上架设多个Web站点;(可以通过改变端口号)创建Web虚拟目录;
    (1)了解DNS主机名和IP地址。 如果此WEB服务器在Internet上,需向ISP申请和注册此服务器的DNS主机名和IP地址。如果此服务器只在企业网内使用,则在内部的DNS服务器上注册。
    (2)打开服务器文档,选择"端口"-"Internet端口",启用"TCP/ IP端口"。
    (3)选择"Internet协议",完成以下选项后,保存文档。
    "绑定主机名":
    A、选择"是"则您可在"主机名"项中输入主机别名,WEB用户可用此别名替代Domino服务器名访问WEB服务器。
    B、选择"否"(缺省)则不允许使用别名。
    "DNS查询": 选择"是"则Domino服务器查询发送请求的WEB客户机的DNS名。
    Domino日志文件和数据库将包含WEB客户机的DNS主机名。 选择"否"(缺省)则不查询, Domino日志文件和
    数据库将只包含WEB客户机的IP地址。
    注意:选择"否"将提高Domino服务器性能,因为服务器不使用资源执行DNS查询。
    "允许HTTP客户浏览数据库":选择"是"则允许WEB用户在URL中使用OpenServer命令来显示服务器上数据库列表。选择"否"(缺省)则不允许。但即使WEB用户不能看到服务器上数据库列表,他们仍能打开有权限访问的单个数据库。
    (4)启动HTTP任务。在服务器控制台上,输入:loap http

    7安全编辑

    设置策略

    盗用账号、缓冲区溢出以及执行任意命令是Web服务器比较常见的安全漏洞。黑客攻击、蠕虫病毒以及木马是因特网比较常见的安全漏洞。口令攻击、拒绝服务攻击以及IP欺骗是黑客攻击比较常见的类型。随着网络技术的不断发展,Web服务器面临着许多安全威胁,直接影响到Web服务器的安全。因此,加强Web服务器的安全防护是一项迫切需要的解决的时代课题。笔者结合多年的工作实践,认为可从以下3个方面入手来加强Web服务器的安全防护。
      第一,加强Web服务器的安全设置。
      以 Linux为操作平台的Web服务器的安全设置策略,能够有效降低服务器的安全隐患,以确保Web服务器的安全性,主要包括:登录有户名与密码的安全设置、系统口令的安全设置、BIOS的安全设置、使用SSL通信协议、命令存储的修改设置、隐藏系统信息、启用日志记录功能以及设置Web服务器有关目录的权限等[3]。
      第二,加强互联网的安全防范。
      Web服务器需要对外提供服务,它既有域名又有公网的网址,显然存在一些安全隐患。所以,可给予Web服务器分配私有的地址,并且运用防火墙来做NAT可将其进行隐藏;同时因为一些攻击来源于内网的攻击,比如把内网计算机和Web服务器存放在相同的局域网之内,则在一定程度上会增加很多安全隐患,所以必须把它划分为不同的虚拟局域网,运用防火墙的地址转换来提供相互间的访问,这样就大大提高了Web服务器的安全性和可靠性;把Web服务器连接至防火墙的DMZ端口,将不适宜对外公布的重要信息的服务器放于内部网络,进而在提供对外的服务的同时,可以最大限度地保护好内部网络[4]。
      第三,网络管理员要不断加强网络日常安全的维护与管理。
      要对管理员用户名与密码定期修改;要对Web服务器系统的新增用户情况进行定时核对,并且需要认真仔细了解网络用户的各种功能;要及时给予更新Web服务器系统的杀毒软件以及病毒库,必要时可针对比较特殊的病毒给予安装专门杀毒的程序,同时要定期查杀Web服务器的系统病毒,定期查看CPU的正常工作使用状态、后台工作进程以及应用程序,假若发现异常情况需要及时给予妥当处理[5];因为很多木马与病毒均是运用系统漏洞来进行攻击的,所以需要不断自动更新Web服务器系统,以及定期扫描Web服务器系统的漏洞。
    Web服务器现在已经成为了病毒、木马的重灾区。不但企业的门户网站被篡改、资料被窃取,而且还成为了病毒与木马的传播者。有些Web管理员采取了一些措施,虽然可以保证门户网站的主页不被篡改,但是却很难避免自己的网站被当作肉鸡,来传播病毒、恶意插件、木马等等。这很大一部分原因是管理员在Web安全防护上太被动。他们只是被动的防御。为了彻底提高Web服务器的安全,Web安全要主动出击。

    漏洞测试


      现在的 企业网站做的越来越复杂、功能越来越强。不过这些都不是凭空而来的,是通过代码堆积起来的。如果这个代码只供企业内部使用,那么不会带来多大的安全隐患。但是如果放在互联网上使用的话,则这些为实现特定功能的代码就有可能成为攻击者的目标。天眼举一个简单的例子。在网页中可以嵌入 SQL代码。而攻击者就可以利用这些SQL代码来发动攻击,来获取管理员的密码等等破坏性的动作。有时候访问某些网站还需要有某些特定的控件。用户在安装这些控件时,其实就有可能在安装一个木马(这可能访问者与被访问者都没有意识到)。
      为此在为网站某个特定功能编写代码时,就要主动出击。从编码的设计到编写、到测试,都需要认识到是否存在着安全的漏洞。天眼在日常过程中,在这方面对于员工提出了很高的要求。各个员工必须对自己所开发的功能负责。至少现在已知的病毒、木马不能够在你所开发的插件中有机可乘。通过这层层把关,就可以提高代码编写的安全性。

    持续监控

    冰冻三尺、非一日之寒。这就好像人生病一样,都有一个过程。病毒、木马等等在攻击Web服务器时,也需要一个过程。或者说,在攻击取得成功之前,他们会有一些试探性的动作。如对于一个采取了一定安全措施的Web服务器,从攻击开始到取得成果,至少要有半天的时间。如果Web管理员对服务器进行了全天候的监控。在发现有异常行为时,及早的采取措施,将病毒与木马阻挡在门户之外。这种主动出击的方式,就可以大大的提高Web服务器的安全性。
      现在维护的Web服务器有好几十个。现在专门有一个小组,来全天候的监控服务器的访问。平均每分钟都可以监测到一些试探性的攻击行为。其中99%以上的攻击行为,由于服务器已经采取了对应的安全措施,都无功而返。不过每天仍然会遇到一些攻击行为。这些攻击行为可能是针对新的漏洞,或者采取了新的攻击方式。在服务器上原先没有采取对应的安全措施。如果没有及时的发现这种行为,那么他们就很有可能最终实现他们的非法目的。相反,现在及早的发现了他们的攻击手段,那么我们就可以在他们采取进一步行动之前,就在服务器上关掉这扇门,补上这个漏洞。
      在这里也建议,企业用户在选择互联网Web服务器提供商的时候,除了考虑性能等因素之外,还要评估服务提供商能否提供全天候的监控机制。在Web安全上主动出击,及时发现攻击者的攻击行为。在他们采取进一步攻击措施之前,就他们消除在萌芽状态。

    设置蜜罐

    在军队中,有时候会给军人一些“ 伪装”,让敌人分不清真伪。其实在跟病毒、木马打交道时,本身就是一场无硝烟的战争。为此对于Web服务器采取一些伪装,也能够将攻击者引向错误的方向。等到供给者发现自己的目标错误时,管理员已经锁定了攻击者,从而可以及早的采取相应的措施。天眼有时候将这种主动出击的行为叫做蜜罐效应。简单的说,就是设置两个服务器。其中一个是真正的服务器,另外一个是蜜罐。现在需要做的是,如何将真正的服务器伪装起来,而将蜜罐推向公众。让攻击者认为蜜罐服务器才是真正的服务器。要做到这一点的话,可能需要从如下几个方面出发。
       一是有真有假,难以区分。如果要瞒过攻击者的眼睛,那么蜜罐服务器就不能够做的太假。天眼在做蜜罐服务器的时候,80%以上的内容都是跟真的服务器相同的。只有一些比较机密的信息没有防治在蜜罐服务器上。而且蜜罐服务器所采取的安全措施跟真的服务器事完全相同的。这不但可以提高蜜罐服务器的真实性,而且也可以用来评估真实服务器的安全性。一举两得。
       二是需要有意无意的将攻击者引向蜜罐服务器。攻击者在判断一个Web服务器是否值得攻击时,会进行评估。如评估这个网站的流量是否比较高。如果网站的流量不高,那么即使被攻破了,也没有多大的实用价值。攻击者如果没有有利可图的话,不会花这么大的精力在这个网站服务器上面。如果要将攻击者引向这个蜜罐服务器的话,那么就需要提高这个蜜罐服务器的访问量。其实要做到这一点也非常的容易。现在有很多用来交互流量的团队。只要花一点比较小的投资就可以做到这一点。
       三是可以故意开一些后门让攻击者来钻。作为Web服务器的管理者,不仅关心自己的服务器是否安全,还要知道自己的服务器有没有被人家盯上。或者说,有没有被攻击的价值。此时管理者就需要知道,自己的服务器一天被攻击了多少次。如果攻击的频率比较高,管理者就高兴、又忧虑。高兴的是自己的服务器价值还蛮大的,被这么多人惦记着。忧虑的是自己的服务器成为了众人攻击的目标。就应该抽取更多的力量来关注服务器的安全。

    攻防测试

    俗话说,靠人不如靠自己。在Web服务器的攻防战上,这一个原则也适用。天眼建议,如果企业对于Web服务的安全比较高,如网站服务器上有电子商务交易平台,此时最好设置一个专业的团队。他们充当攻击者的角色,对服务器进行安全性的测试。这个专业团队主要执行如下几个任务。
       一是测试Web管理团队对攻击行为的反应速度。如可以采用一些现在比较流行的攻击手段,对自己的Web服务器发动攻击。当然这个时间是随机的。预先Web管理团队并不知道。现在要评估的是,Web管理团队在多少时间之内能够发现这种攻击的行为。这也是考验管理团队全天候跟踪的能力。一般来说,这个时间越短越好。应该将这个时间控制在可控的范围之内。即使攻击最后没有成功,Web管理团队也应该及早的发现攻击的行为。毕竟有没有发现、与最终有没有取得成功,是两个不同的概念。
       二是要测试服务器的漏洞是否有补上。毕竟大部分的攻击行为,都是针对服务器现有的漏洞所产生的。现在这个专业团队要做的就是,这些已发现的漏洞是否都已经打上了安全补丁或者采取了对应的安全措施。有时候我们都没有发现的漏洞是无能为力,但是对于这些已经存在的漏洞不能够放过。否则的话,也太便宜那些攻击者了。 [2]

    8选购指南编辑

    在这个电商已经普及的时代,一个企业,不管大小总是都需要有一个网站,在网络上宣传自己的品牌。这跟90年代你开了公司一定要有一个办公室是一个道理了。而且现在更多的企业选择电子商务。作为网站建设的基础,服务器租用也成为必须要考虑的事情。
    服务器租用选择的成功与否,可以说在一定程度上直接影响着网站建设的成功与否。这不论是对大企业,还是中小企业建网站都是一样的。
    但实际,很多中小企业在建设网站,并选择服务器作为其信息化基础工具时,则出现一些不正确的做法:如为了节省资金,便随便租用或购买一台 服务器。结果由于服务器性能低下导致信息系统经常出问题。最终不但没有帮助企业传播信息,提升品牌,反而因系统不稳定,给企业带来负面影响。
    因此,拥有一款稳定、良好的服务器无疑是企业最基本的选择。那么,企业又该如何选择优秀的服务器呢。我这里想说下几点。
    第一、资质是最基本的,一定要有齐全的IDC服务商资质。如果没有,不管是多好的服务器,都不要购买。连企业真假都不能确定的事情,你如何保证他的产品呢?
    第二、对于中小企业不建议租用一线城市机房的服务器,原因很简单。像北京上海这种一线机房,都是寸土寸金,服务器好不好先不说,但是光机房的成本就比二线、三线城市的要高得多。这费用当然要算到企业的头上。而且二线、三线城市的机房其实是一样的,但是它的成本要低得多。同样的产品,为什么不选价格低的呢?
    第三、一定要考虑清楚你需要什么服务器?比如说品牌、配置,或者说是需要服务器租用、服务器托管还是服务器合租等等。这些都需要根据自身企业的需求来确定。如果自己不清楚,可以选择咨询IDC服务商,不放心的话可以在网上问相关的专业人士。

    9发展趋势编辑

    目前,Web服务器的发展有三个主要趋势:

    从HTML到XML

    标准通用标记语言的子集 可扩展标记语言(Extensible Markup Language)
    标准通用标记语言的子集HTML被称为“第一代Web语言”,如前面的介绍,HTML作为Web的开发语言,对Web应用的发展起到了关键性的作用。但是HTML有一个致命的缺点:只适合于人与计算机的交流,不适合计算机与计算机的交流。HTML通过大量的标记来定义文档内容的表现方式,它仅仅描述了应如何在Web 浏览器页面上布置文字、图形,并没有对Internet的信息含义本身进行描述,而信息又是Web应用中最重要的内容。通过HTML表现出来的文字、图形内容很容易被人理解,但却不利于 计算机程序去理解。另外,HTML的另一个问题就是它的标记集合是固定的,用户不能根据自己的需要增加标记;而且各种 浏览器的规格不尽相同,要使我们用HTML做的网页能够被所有浏览器正常显示,我们只能够使用W3C(万维网协会)规定的标记来创建网页。
    正如前面所说,Web服务器向Web 浏览器提供的信息都是来自有一定结构的数据库,在数据库里,为了检索和管理的方便,信息按照它本身的意义(如姓名、年龄、工作单位等)被存放在相应的字段里,一旦这些数据被调出来,经过CGI、ASP、JSP、PHP等转换成HTML后,其原来的意义无法转移到HTML标记中来,用户也就无法按照信息本来的意义去阅读。并且,由于 操作系统以及数据库的不同,不同的系统及应用层面之间要想互相理解对方的数据格式是相当困难的。这就需要一种新技术或标准能够将最初保存在 数据库服务器中的原始 数据结构在不同的系统层面共享。这种新技术就是XML。
    使用XML可以解决上述的难题。W3C对XML作了如下描述:“XML描述了一类被称为XML文档的 数据对象,并部分描述了处理它们的 计算机程序的行为。XML是SGML的一个应用实例。从结构上说,XML文档遵从SGML文档标准。”同HTML一样,XML也是一种基于 文本标记语言,都是从SGML(Standard Generalize Markup Language, 标准通用标记语言)发展而来,二者的不同在于:XML可以让我们根据要表现的文档,自由地定义标记来表现具有实际意义的文档内容,例如,我们可以定义〈文档名称〉〈/文档名称〉这样具有实际意义的标记。而且XML不像HTML那样具有固定的标记集合,它实际上是一种定义语言的语言,也就是说使用XML的用户可以定义无穷的标记来描述文档中的任何 数据元素,将文档的内容组织成丰富的完整的信息体系。总起来说,XML具有四大特点:便于存储的数据格式、可扩展性、高度结构化以及方便的 网络传输,这些特点为我们创建开放、高效、可扩展、个性化的Web应用提供了一个崭新的起点。

    从有线到无线

    电子商务正在从 台式机向着更为广泛的无线设备发展,Cahners In-Stat市场分析家预测,世界范围内的无线用户的人数将会从2000年的2.71亿增加到2004年的13亿。Aberdeen集团的研究主任Darcy Fowkes认为,采用无线方式进行电子商务的优势并不仅仅在于方便,它还可以节约公司的财力,而且,移动办公能使工作更加高效。
    然而,由于多种 无线网络类型、 标记语言、协议和无线设备并存的复杂情况,使得网络内容和数据转换成能够被无线设备所识别的格式并不容易。目前,许多企业都在致力于开发能够把 应用程序以及互联网内容扩展到无线设备上的产品。
    例如,IBM新版本的WebSphere Transcoding Publisher 3.5增加和改进了许多新的特性,可以将企业内部网上的数据翻译到多种无线设备上。该版本中新的特性包括对更多的无线设备、数据格式的支持,以及语言翻译功能。它基于Java架构,能把用HTML和XML等 标记语言编写的 应用程序和数据转换成WML、HDML(Handheld Device Markup Language)和iMode等无线设备所能识别的格式,这样,通过手持设备就可以访问互联网上的信息。
    无线设备厂商Mobilize也推出了Mobilize Commerce产品,帮助企业进入无线网络。该软件可以通过无线连接的方式访问企业的内部系统,远程地实现订单发送,并进行确认。Mobilize Commerce可以充分利用XML对信息进行格式转换,以适合于无线设备,这些无线设备包括笔记本电脑、 个人数字助理、无线电话、 网络电话和双向寻呼等。

    从无声到有声

    世界上现在有十亿个电话终端,有超过2亿的移动电话。而就人自身的交流习惯来看,人们也更愿意利用听和说的口头的方式进行交流。
    目前,文本语音转换器(TTS,Text to Speech)的研究工作已经取得了很大的进步,实现了自动的语言分析理解,并允许TTS的使用者增加更多的韵律、音调在讲话中,使 TTS系统的发声更接近人声。在自动 语音识别系统(ASR)领域里,自动语音识别系统在从整个词的模仿匹配,向音素层次的识别系统方向发展。自动语音识别系统的词汇表由一个基于声音片断的字母表构成,而且这种词汇表是受不同语言限制的。基于这种方式,在一个宽广的声音行列里,讲话能被识别系统发现和挑拣出来,并加以识别。并且,在识别一个词的时候,每一个音素将从系统的输入中挑拣出来,拼接组合后与已经有的音素和词语模板进行比较,来产生需要的模板。音素的识别大大减轻了ASR对讲话者的依赖性,并且使得它非常容易去建立大型的和容易修改的语音识别字典,从而满足不同应用市场的需求。
    Web语音发展的另一方面是VoiceXML(Voice Extensible Markup Language-语音 可扩展标记语言)的进展。VoiceXML的主要目标是要将Web上已有的大量应用、丰富的内容,让交互式语音界面也能够全部享受。Web服务器处理一个来自 客户端应用的请求,这一请求经过了VoiceXML 解释程序和VoiceXML解释程序语境处理,作为响应,服务器产生出VoiceXML文件,在回复当中,要经过VoiceXML解释程序的处理。VoiceXML 1.0规范基于XML,为语音和电话应用的开发者、服务提供商和设备制造商提供了一个智能化的API。VoiceXML的标准化将简化Web上具有语音响应服务的个性化界面的创建,使人们能够通过语音和电话访问网站上的信息和服务,像今天通过CGI 脚本一样检索中心数据库,访问企业内部网,制造新的语音访问设备。VoiceXML的执行平台上面加载了相应的软件和硬件,例如,ASR、TTS,从而实现语音的识别以及文本和语音之间的转化。2000年5月23日,W3C接受了语音 可扩展标记语言VoiceXML 1.0作为实例。
    目前, IBM、Nokia、Lucent、Motorola等著名厂商都已经开发出相应支持VoiceXML的产品,但现在的ASR和TTS系统大多还不能支持中文。

     

    展开全文
  • 什么是Web?及web服务器原理

    千次阅读 2016-12-10 23:53:06
    什么是WebWeb就是一种超文本信息系统,Web的一个主要的概念就是超文本连接,它使得文本不再象一本书一样是固定的线性的。而是可以从一个位置跳到另外的位置。你可以从中获取更多的信息。可以转到别的主题上。...

    什么是Web?

    Web就是一种超文本信息系统,Web的一个主要的概念就是超文本连接,它使得文本不再象一本书一样是固定的线性的。而是可以从一个位置跳到另外的位置。你可以从中获取更多的信息。可以转到别的主题上。想要了解某一个主题的内容只要在这个主题上点一下,就可以跳转到包含这一主题的文档上。正是这种多连接性我们才把它称为Web。 
    World Wide Web,简称WWW,是英国人TimBerners-Lee 1989年在欧洲共同体的一个大型科研机构任职时发明的。通过WEB,互联网上的资源,可以在一个网页里比较直观的表示出来;而且资源之间,在网页上可以链来链去。在WEB1.0上做出巨大贡献的公司有Netscape,Yahoo和Google。 Netscape研发出第一个大规模商用的浏览器,Yahoo的杨致远提出了互联网黄页, 而Google后来居上,推出了大受欢迎的搜索服务。 
    搜索最大的贡献是,把互联网上海量的信息,用机器初步分了个线索。但是,光知道网页里有哪些关键字,只解决了人浏览网页的需求。所以,Tim-Berners-Lee在提出WWW不久,即开始推崇语义网(Semantic Web)的概念。为什么呢?因为互联网上的内容,机器不能理解。他的理想是,网页制作时和架构数据库时,大家都用一种语义的方式,将网页里的内容表述成机器可以理解的格式。这样,整个互联网就成了一个结构严谨的知识库。从理想的角度,这是很诱人的,因为科学家和机器都喜欢有次序的东西。Berners-Lee关心的是,互联网上数据,及能否被其它的互联网应用所重复引用。举一个例子说明标准数据库的魅力。有个产品叫LiberyLink。装了它后,到Amazon上去浏览时,会自动告诉你某一本书在用户当地的图书馆能否找到,书号是多少等。因为一本书有统一的书号和书名,两个不同的互联网服务(Amazon 和当地图书馆数据库检索)可以公享数据,给用户提供全新服务。 
    但是,语义网提出之后,曲高和寡,响应的人不多。为什么?因为指望要网页的制作者提供这么多额外的信息去让机器理解一个网页,太难;简直就是人给机器打工。这违反了人们能偷懒就偷懒的本性。看看Google的成功就知道。 Google有个Page Rank技术,将网页之间互相链接的关系,用来做结果排序的一个依据,变相利用了网页制作人的判断力。想一想网页的制作者们,从数量来说,比纯浏览者的数量小得多。但Google就这一个革新,用上了网页的制作者的一部份力量,已将其推上了互联网的顶峰。 
    所以互联网下一步,是要让所有的人都忙起来,全民织网,然后用软件,机器的力量使这些信息更容易被需要的人找到和浏览。如果说WEB1.0是以数据为核心的网,那我觉得WEB2.0是以人为出发点的互联网。我们看一看最近的一些WEB2.0产品,就可以理解以上观点。 
    Blog: 用户织网,发表新知识,和其他用户内容链接,进而非常自然的组织这些内容。 
    RSS: 用户产生内容自动分发,定阅 
    Podcasting: 个人视频/声频的发布/定阅 
    SNS: blog+人和人之间的链接 
    WIKI: 用户共同建设一个大百科全书 
    从知识生产的角度看,WEB1.0的任务,是将以前没有放在网上的人类知识,通过商业的力量,放到网上去。WEB2.0的任务是,将这些知识,通过每个用户的浏览求知的力量,协作工作,把知识有机的组织起来,在这个过程中继续将知识深化,并产生新的思想火花; 
    从内容产生者角度看,WEB1.0是商业公司为主体把内容往网上搬,而WEB2.0则是以用户为主,以简便随意方式,通过blog/podcasting 方式把新内容往网上搬; 
    从交互性看,WEB1.0是网站对用户为主;WEB2.0是以P2P为主。 
    从技术上看,WEB客户端化,工作效率越来越高。比如像Ajax技术, GoogleMAP/Gmail里面用得出神入化。 
    我们看到,用户在互联网上的作用越来越大;他们贡献内容,传播内容,而且提供了这些内容之间的链接关系和浏览路径。在SNS里面,内容是以用户为核心来组织的。WEB2.0是以用户为核心的互联网。 
    那么,这种意义上的WEB2.0,和Tim Berners-Lee的语义网,有什么不同呢?语义网的出发点是数据的规整及可重复被机器调用,提出使用语义化的内容发布工具, 试图从规则和技术标准上使互联网更加有序。 Google等搜索引擎,在没有语义网的情况下,尽可能的给互联网提供了线索。 WEB2.0则是鼓励用户用最方便的办法发布内容(blog/podcasting),但是通过用户自发的(blog)或者系统自动以人为核心(SNS)的互相链接给这些看似凌乱的内容提供索引。因为这些线索是用户自己提供,更加符合用户使用感受。互联网逐渐从以关键字为核心的组织方式和阅读方式,到以互联网用户的个人portal(SNS)为线索,或者以个人的思想脉络(blog/rss)为线索的阅读方式。WEB2.0强调用户之间的协作。WIKI是个典型例子。从这个角度看,互联网是在变得更有序,每个用户都在贡献:要么贡献内容,要么贡献内容的次序. 
    对下一代互联网的看法,还会有很多的讨论。有一点可以肯定,WEB2.0是以人为核心线索的网。提供更方便用户织网的工具,鼓励提供内容。根据用户在互联网上留下的痕迹,组织浏览的线索,提供相关的服务,给用户创造新的价值,给整个互联网产生新的价值,才是WEB2.0商业之道。

    Web的特点:

    一、Web是图形化的和易于导航的(navigate)

    Web 非常流行的一个很重要的原因就在于它可以在一页上同时显示色彩丰富的图形和文本的性能。在Web之前Internet上的信息只有文本形式。Web可以提供将图形、音频、视频信息集合于一体的特性。同时,Web是非常易于导航的,只需要从一个连接跳到另一个连接,就可以在各页各站点之间进行浏览了。

    二、Web与平台无关

    无论你的系统平台是什么,你都可以通过Internet访问WWW。浏览WWW对你的系统平台没有什么限制。无论从Windows平台、UNIX平台、Macintosh还是别的什么平台我们都可以访问WWW。对WWW的访问是通过一种叫做浏览器(browser)的软件实现的。如Netscape 的Navigator、NCSA的Mosaic、Microsoft的Explorer等。

    三、Web是分布式的

    大量的图形、音频和视频信息会占用相当大的磁盘空间,我们甚至无法预知信息的多少。对于Web没有必要把所有信息都放在一起,信息可以放在不同的站点上。只需要在浏览器中指明这个站点就可以了。使在物理上并不一定在一个站点的信息在逻辑上一体化,从用户来看这些信息是一体的。

    Web 是动态的

    最后,由于各Web站点的信息包含站点本身的信息,信息的提供者可以经常对站上的信息进行更新。如某个协议的发展状况,公司的广告等等。一般各信息站点都尽量保证信息的时间性。所以Web站点上的信息是动态的。经常更新的。这一点是由信息的提供者保证的。

    Web动态的特性还表现在Web是交互的。

    Web的交互性首先表现在它的超连接上,用户的浏览顺序和所到站点完全由他自己决定。另外通过FORM的形式可以从服务器方获得动态的信息。用户通过填写FORM可以向服务器提交请求,服务器可以根据用户的请求返回相应信息。

    Web服务器工作原理:

    一个 Web 服务器也被称为 HTTP 服务器,它通过 HTTP 协议与客户端通信。这个客户端通常指的是 Web 浏览器。一个基于 Java 的 Web 服务器用到二个重要的类,java.net.Socket 与 java.net.ServerSocket ,并通过 HTTP 消息通信。因此,本文从讨论 HTTP 与这二个类开始,然后我将解释一个与本文相关的简单的 Web 应用。

    The Hypertext Transfer Protocol(HTTP)

    HTTP 是一种让 Web 服务器与浏览器(客户端)通过 Internet 发送与接收数据的协议。它是一个请求、响应协议--客户端发出一个请求,服务器响应这个请求。HTTP 运用可靠的 TCP 连接,通常用的 TCP 80 端口。它的第一个版本是 HTTP/0.9 ,然后被 HTTP/1.0 取代。当前的版本是 HTTP/1.1 ,由RFC2616(.pdf) 定义。

    本节主要对应 HTTP 1.1 ,足够使你充分理解由 Web 服务器程序发出的消息。如果你对更加详细的知识有兴趣,可以参考 RFC2616 。

    在 HTTP 中,客户端总是通过建立一个连接与发送一个 HTTP 请求来发起一个事务。服务器不能主动去与客户端联系,也不能给客户端发出一个回叫连接。客户端与服务器端都可以提前中断一个连接。例如,当用一个浏览器下载一个文件时,你可以通过点击“停止”键来中断文件的下载,关闭与服务器的 HTTP 连接。

    HTTP 请求

    一个 HTTP 请求包含三个部分:

    Method-URI-Protocol/Version方法-地址-版本

    Request header请求头

    Entity body请求实体

    下面是一个 HTTP 请求实例:

    POST /servlet/default.jsp HTTP/1.1

    Accept: text/plain; text/html

    Accept-Language: en-gb

    Connection: Keep-Alive

    Host: localhost

    Referer: http://localhost/ch8/SendDetails.htm

    User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)

    Content-Length: 33

    Content-Type: application/x-www-form-urlencoded

    Accept-Encoding: gzip, deflate

    LastName=Franks&FirstName=Michael

    The Method-URI-Protocol/Version 在这个请求的第一行:

    POST /servlet/default.jsp HTTP/1.1

    其中 POST 是请求的类型。每个客户端 HTTP 请求可以是 HTTP 规范中指定的许多请求类型中的一种。HTTP 1.1 支持七种类型的请求,它们是 GET,POST,HEAD,OPTIONS,PUT,DELETE,TRACE。其中 GET 与 POST 是 Internet 应用中经常用到的二种请求类型。

    URI 完整地指定了 Internet 资源。一个 URI 通常被解析为相对服务器的根目录。这样,它应该总是以一个 '/' 前缀开始。一个 URL 实际上是 URI 的一种类型。

    Version 指的是该 HTTP 请求所用到的 HTTP 协议版本。

    请求头包含了客户端环境与请求实体的一些有用的信息。例如它包含浏览器设定的语言、实体的长度等等。每条请求头用回车换行符(CRLF)分开。

    一个非常重要的空行分开了请求头与实体,它标志着实体内容的开始。一些 Internet 开发书籍认为这个 CRLF 空行是 HTTP 请求的第四个部分。

    在上面的 HTTP 请求中,实体只是简单以下的一行:

    LastName=Franks&FirstName=Michael

    在一个典型的 HTTP 请求中,请求实体内容会长得多。

    HTTP 响应

    与请求相似,HTTP 响应也由三部分组成:

    Protocol-Status code-Description协议状态 描述代码

    Response headers响应头

    Entity body响应实体

    以下是一个 HTTP 响应的实例:

    HTTP/1.1 200 OK

    Server: Microsoft-IIS/4.0

    Date: Mon, 3 Jan 1998 13:13:33 GMT

    Content-Type: text/html

    Last-Modified: Mon, 11 Jan 1998 13:23:42 GMT

    Content-Length: 112

    <html>

    <head>

    <title>HTTP Response Example</title></head><body>

    Welcome to Brainy Software

    </body>

    </html>

    响应头的第一行类似请求头的第一行,告诉你所用的协议是 HTTP 1.1 ,请求成功(200=success),以及没有任何问题。

    响应头类似请求头也包含了一些有用的信息。响应的实体响应本身的 HTML 内容。头与实体之间由回车换行的空行(CRLF)分开。

    Socket 类

    一个 socket 是一个网络连接的端点,它使得一个应用可以从网络读与写。在不同电脑上的二个应用软件能够通过收发字节流而彼此通信。要发一个信息到另一个应用程序,你需要知道它的IP地址,以及它的 socket 端口号。在 Java 中,一个 socket 用 java.net.Socket 来实现。

    要创建一个 socket ,你可以用 Socket 类中几个构建方法中的一个。其中一个接受主机名与端口号作为参数:

    new Socket("yahoo.com", 80);

    一旦你成功地创建了一个 Socket 类的实例,你就可以用它去发送与接收字节流了。要发送字节流,你需要呼叫 Socket 类的 getOutputStream 方法来得到一个 java.io.OutputSteam 对象。要发送文本到远程的程序,你通常需要从返回的 OutputStream 创建一个 java.io.PrintWriter 对象。要从连接的另一端接收字节流,你需要呼叫 Socket 类的 getInputStream 方法,它返回一个 java.io.InputStream 对象。

    以下代码创建一个可以与本地 HTTP 服务器通信的 socket (127.0.0.1 表示一个本地的主机),发送一个 HTTP 请求,并接收从服务器的响应。它还创建一个 StringBuffer 对象来接受响应,并打印到控制台。

    Socket socket= new Socket("127.0.0.1", "8080");

    OutputStream os= socket.getOutputStream();

    boolean autoflush = true;

    PrintWriter out= new PrintWriter( socket.getOutputStream(), autoflush );

    BufferedReader in = new BufferedReader(

    new InputStreamReader( socket.getInputStream() ));

    // send an HTTP request to the web server

    out.println("GET /index.jsp HTTP/1.1");

    out.println("Host: localhost:8080");

    out.println("Connection: Close");

    out.println();

    // read the response

    boolean loop= true;

    StringBuffer sb = new StringBuffer(8096);

    while (loop) {

    if ( in.ready() ) {

    int i=0;

    while (i!=-1) {

    i = in.read();

    sb.append((char) i);

    }

    loop = false;

    }

    Thread.currentThread().sleep(50);

    }

    // display the response to the out console

    System.out.println(sb.toString());

    socket.close();

    注意要从 web 服务器得到正确的响应,你必须要发送用 HTTP 协议编译了的 HTTP 请求。如果你看了上面的 HTTP 部分,你应该能够理解上面代码中的 HTTP 请求。

    黑客首选--Web 2.0应用程序

    日前,全球互联网内容安全领导者趋势科技(东京证交所代号:4704)发布了趋势科技实验室整理分析的“08 年病毒威胁摘要暨-09年病毒趋势预测”。根据这份研究报告指出,2008年亚洲地区的网络罪犯纷纷使用新媒介或针对旧媒介进行改良,用以谋取利益,并且以大规模的网页入侵、AUTORUN 恶意软件、社交诈骗手法与区域性病毒威胁为主要四大类型网络犯罪。进入2009年,值得注意的是:由于Web2.0社交网站的使用率大增,然而网站设计的安全弱点加上Web2.0用户的认知不足,因此,这类网站将成为 Web威胁繁衍的沃土。同时,2009年还需特别留意的还有浏览器与其他Web 应用程序,它们将成为黑客攻击的首要目标!

    趋势科技的产品技术顾问徐学龙指出:“2008年,锁定特定用户群与热门网站为目标的病毒攻击手法相当猖獗。在5月份,包括娱乐、政治、购物网、社交网络等各种性质的网站达到病毒入侵的最高峰,全球许多网站被植入了恶意代码,借此感染不知情的网民。该趋势似乎正以令人无法想象的速度持续发展,相当令人忧心。”

     

    据趋势科技2008年度数据安全分析报告指出:去年感染比例最高的是以利用USB移动储存装置作为传播媒介的AUTORUN恶意软件,在亚洲区即高达15%的感染比例,而在欧洲、中东及非洲 (EMEA) 地区感染数最高的恶意软件当中也出现其身影,甚至还成功渗透NASA与美国国防部网络。由于企业内部USB移动储存装置不易控管,造成窃取私密数据越来越方便,随之兴起了盗卖个人资料的地下经济。而Web威胁结合USB、Email整合而成的混合式攻击,也使得处理病毒问题日趋复杂,企业MIS人员很难找出造成问题的恶意软件档案,致使企业生产力降低。针对此现象,徐学龙进一步分析:“现今病毒感染途径范围越来越大,光靠单一防护措施已经越来越难以防止,若是没做好环节中的其中一项,将导致企业内部用户感染病毒的频率上升。”

    另外报告中提到,在过去一年中黑客擅于利用网民所关心的事件,如四川地震、北京奥运等作为套诱饵制作恶意软件向网民连番攻击,而针对特定地区的独特背景所设计的不同攻击事件也依然层出不穷。举例来说,08年2 月份,中国在线游戏平台联众网站遭恶意软件作者利用安全弱点设下陷阱等待玩家上钩。另外,持续兴风作浪的网络钓鱼诈骗邮件,在08年则锁定Yahoo! Japan拍卖网站用户为攻击目标,使他们面临帐户信息遭窃的风险。

    Web 2.0的安全风险及对策

    在企业IT世界中,安全风险随处可遇,例如不够强壮的密码,意料之外的电子邮件附件,浏览网页时误点了恶意网址,还有不请自来的流氓软件。诸如防火墙、杀毒软件等安全工具基本可以处理这些安全威胁。不过,随着Web 2.0应用逐渐增多,企业IT部门又迎来了新的安全威胁,传统的安全工具在面对Web 2.0应用时往往显得心有余而力不足,那么企业IT部门应该如何应对Web 2.0应用所带来的安全威胁呢?

    Web 2.0应用安全风险加剧

    随着互联网和Web 2.0应用的日益普及,无论是个人用户,还是企业用户,都将面临着巨大的安全威胁。

    安全公司Sophos曾经表示,每天有15000多个新网页将被感染,90%的Web威胁位于合法的黑客站点上,同时在全部搜索结果中有1%包含被感染的网页。

    其中,对于多数IT经理或信息安全管理者来说,社交网站所带来的安全威胁日渐增大。黑客们已经把目光转向了众多知名社交网站。

    在过去一年中,著名社交网站Facebook用户已经屡次遭到了多种蠕虫病毒的袭击。恶意分子首先获得某Facebook用户帐户,然后向其好友发送一条消息,告诉他们点击这个链接观看来自谷歌Picasa的相片或者是一段视频。缺乏防范意识的用户点击链接后,会被提示下载一个视频控件,但这实际上是一个传播木马病毒的恶意程序。

    去年8月份,Facebook的1800多名用户的信息遭到秘密安装的木马程序窜改。

    而微博客Twitter也同样成为网络罪犯散播恶意软件和商业广告讯息的工具。最近Twitter用户就遭遇到了钓鱼攻击,黑客首先用伪冒网站骗取用户的账号和密码,然后向被攻击用户的好友发送销售讯息或利用Twitter特有的缩址服务,欺骗网友进入第三方网站。

    除了社交网站之外,其它很多Web 2.0应用同样深受用户喜欢,因为它们非常易用和实用,用户一般主动去安装这些工具,但是同时它们也将其固有的风险引入到了企业此前非常牢固的网络架构之内,让企业数据面临着安全风险。

    Web 2.0应用安全防护的难点

    对于IT经理来说,防护Web 2.0应用所带来的安全风险是一件非常麻烦的事情,因为这些安全威胁的特点已经与传统的安全威胁有了很大区别。

    在过去,可以在网络入口处保护网络终端,但是现在,Web内容逐渐趋于动态化,用户需要持续不断的更新现有内容、共享应用程序,并通过多种渠道进行即时通讯。

    很多Web 2.0应用都对算法进行了优化,以确保不被阻挡,另外,这些应用还可以将自己伪装成HTTP、FTP、SMTP和Telnet通信,来绕开防火墙和目前统一威胁管理系统的探测。

    另外,企业IT人员无法采取一刀切的形式,禁止员工使用所有Web 2.0应用,这是不现实的。因为这样做只会阻扰员工,切断本应通过这些应用得到的具有潜在价值的商机。

    如何应对Web 2.0应用安全风险

    企业IT人员需要根据当今世界的Web2.0调整自己的安全策略,为社交网站、博客和所有其他类型的网站创建规则,同时借助于新的安全工具来检测和屏蔽恶意Web 2.0应用。

    为了避免Web 2.0应用导致企业数据面临威胁,企业安全人员应对企业内部的核心数据进行分门别类,并通过高质量的加密保证非常有价值的数据不被拦截和非授权用户利用。

    另外,加强企业内部员工的安全意识教育,通过不断强化员工的风险意识,实际操作培训等使员工自觉遵守相关的策略,帮助企业避免核心数据从内部泄露。

    除了加强安全策略和提高员工安全意识外,市场也在呼唤新的技术来加强对Web 2.0应用的管理和防护。

    美国FaceTime Communications公司最近推出了名为ACE的新探测分类技术,“ACE”是应用程序控制引擎(Application Control Engine)的首字母缩写。这种专利安全技术可以扫描网络,识别1400多个Web 2.0应用和5万多个社交网络插件。

    扫描网络上的恶意应用程序对IT人士来说或许不是一件新鲜的事情,但是FaceTime的ACE技术关注于扫描Web 2.0应用,这就颇具新意了。

    通过FaceTime的ACE,这1400多个Web应用可以被识别,同时更多的社交网络插件也可以被单独认出。不管这些应用使用什么端口、协议或逃避技术,ACE都可以发现并关闭它们。

    另外,ACE软件开发工具可以让第三方解决方案提供商进行扩展开发,可以帮助它们的客户管理即时通讯、端对端文件共享、社交网络、Web 2.0、VOIP等方面的应用。

    展开全文
  • 什么是Web Services

    千次阅读 2010-06-17 13:59:00
    2.1 什么是Web Services 从技术的角度来看,Web Service可以被认为是一种部署在Web上的对象(Web Object),因此,具有对象技术所承诺的所有优点;同时,Web Services的基石是以XML为主的、开放的Web...
  • 在应用Spring Security的Web应用中,假定全部采用缺省配置,如果用户在未登录状态试图访问一个受保护的HTTP资源,可能是我们的一个页面,也可能是一个Restful API,此时: Spring Security会抛出异常...
  • 什么是Web认证

    千次阅读 2010-08-19 16:32:00
    简而言之,web认证就是一个确认对方身份的过程。Web认证最典型的方式是通过用户名和密码。   Web认证有多种方式   A. Http协议内建的认证方法    1. ...
  • 使用ModSecurity 保护Web服务安全

    千次阅读 2014-08-26 15:17:34
    ModSecurity是一个入侵侦测与防护引擎,它主要是用于Web ...ModSecurity的功能是增强Web application的安全性和保护Web application以避免遭受来自已知与未知的攻击。 1 ModSecurity 简介 ModSecurity是一个入
  • 什么是web安全测试

    千次阅读 2020-05-08 20:58:54
    1.1什么是web安全测试? Web安全测试就是要提供证据表明,在面对敌意和恶意输入的时候,web系统应用仍然能够充分地满足它的需求 1.2为什么进行Web安全测试 2005年06月,CardSystems,黑客恶意侵入了它的电脑系统,...
  • 什么是 web 开发

    千次阅读 2014-01-21 17:53:44
    什么是 web 开发 这几天因为工作需要,了解了一下Web development 的技术路线,来源自:en.wikipedia.org/wiki/Web_development 本着互联网开放分享的态度,我是一边翻译一边学习。 --------------- -----------...
  • web系统Licence验证 保证java web ,可以现在IP,mac,自定义参数,License生成器 (JAVA源码+界面) 其中包括license授权机制的原理和制作license的具体步骤 增加了mac 地址验证
  • 什么是web应用防火墙?

    千次阅读 2017-12-29 10:12:21
    Web应用防火墙是集web防护、网页保护、负载均衡、应用交付于一体的web整体安全防护设备的一款产品。   Web防火墙产品部署在Web服务器的前面,串行接入,不仅在硬件性能上要求高,而且不能影响Web服务,所以HA功能...
  • 目前.net FrameWork WebAPI 仅支持到IdentityServer3,但是授权服务器是.net Core 的IdentityServer4 ,这时候对webapi 进行保护可能会出现一些问题,
  • Java WebSocket编程、开发、部署和保护动态Web应用 Java WebSocket编程、开发、部署和保护动态Web应用
  • Spring Security(一)保护Web应用

    千次阅读 2018-06-19 21:01:01
    Spring Security是为基于Spring的应用程序提供声明式安全保护的安全性框架。Spring Security提供了完整的安全性解决方案,它能够在Web请求级别和方法调用级别处理身份认证和授权。因为是基于Spring框架,所以Spring ...
  • 1、什么是Spring Security Spring Security是为基于Spring的应用程序提供声明式安全保护的安全性框架。Spring Security提供了完整的安全性解决方案,它能够在Web请求级别和方法调用级别处理身份认证和授权。因为...
  • NetCoreAuth 探索保护ASP.NET Core 2.0 Web应用程序的选项 相关博客文章 NetCoreAuth.App 使用Cookies保护您的MVC网站的示例。 NetCoreJWTAuth.App 使用JSON Web令牌保护Web API的另一个示例。
  • 系统等级保护中的Web应用安全评估

    千次阅读 2009-08-18 16:15:00
    系统等级保护中的Web应用安全评估 摘 要:Web应用安全评估是系统等级保护评估中的重要一环,本文以实例分析了常见Web应用漏洞的形成原理,介绍了相应的评估实施方法,并给出了增强Web应用安全性的实用性建议。...
  • 使用反向代理技术保护Web服务器

    千次阅读 2004-07-04 20:09:00
    使用反向代理技术保护Web服务器 为了增加网络的安全和保护内部网络上的重要数据,需要将内部网与Internet相隔离,当前主要通过防火墙技术来完成这个目的。然而为了保护内部主机,防火墙软件就必须限制外部网络中的...
  • 使用ModSecurity 保护Web服务安全(1)

    千次阅读 2012-12-28 14:47:11
    ModSecurity是一个入侵侦测与防护引擎,它主要是用于...ModSecurity的功能是增强Web application的安全性和保护Web application以避免遭受来自已知与未知的攻击。 AD: 51CTO编者注:在“拯救网站运
  • Web2.0 Web2.0 是相对Web1.0 的新的一类互联网应用的统称。Web1.0 的主要特点在于用户通过浏览器获取信息。Web2.0 则更注重用户的交互作用,用户既是网站内容的浏览者,也是网站内容的制造... 什么是web2.0
  • 软件介绍:《Web虎-java软件加密保护-Windows专用软加密版》推出永久免费版本,最适合通过互联网快速+大面积推广自己产品的用户朋友们,把源码/文件加密后,发布到互联网上做免费下载,使用。不需版权保护,提供强悍...
  • Web虎-php软件加密保护-Windows专用软加密版》推出永久免费版本,最适合希望通过互联网快速+大面积推广自己产品的用户朋友们,把源码/文件加密后,发布到互联网上做免费下载,使用。不需版权保护,仅保护源码
  • 《JavaWebSocket编程 开发、部署和保护动态Web应用》一书由JavaWebSocket编程权威专家撰写,提供了实际的开发策略和详尽的示例应用。本书诠释了如何设计客户端/服务器应用、与全双工消息通信协作、建立连接、创建...
  • java源码保护 加密 适应web ssh等

    千次阅读 2015-07-27 09:03:56
    终于完成了加密,而且无任何错误日志,也适合 web sping struts .运行容器 tomcat qq 24268908
  • 什么是WEB服务器、应用服务器

    千次阅读 2009-04-16 07:58:00
    WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 (1)应用层使用HTTP协议。 (2)HTML文档格式。 (3)浏览器统一资源定位器(URL)。 WWW代表万维网的意思 WWW 是 Internet 的多媒体信息查询...
  • WEB中如何保护文件的安全性

    千次阅读 2008-03-12 10:22:00
    WEB中提供一些机密文件给很多用户下载看,很容易禁止没有权限的用户下载文件。 但请问如何让有权限的用户可以查看文件,但不能把文件下载到本地,或者就算把文件下载到本地也不能打开。 然后如何控制用户在查看...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 237,409
精华内容 94,963
关键字:

web保护是什么