1、InfoCage SiteShell技术白皮书恩益禧数码应用产品贸易(上海)有限公司技术白皮书及软件介绍目 录1. 前言 12. 产品介绍 23. 产品部署 .113.1. 针对 IIS 的部署 .113.2. 针对 APACHE 的部署 .113.3. 针对 TOMCAT 的部署 .113.4. 针对 NGINX 的部署 113.5. 针对网络型的部署 .124. 典型应用 .145. 附加说明 .15技术白皮书及软件介绍第 1 页 共 15 页1. 前言Web 广泛普及,为了提供购物网站和各种服务,人们使用着各种 Web 应用,这些 Web 应用服务给人们的工作和生活带来了巨大的便利,推动
2、了社会的发展。然而,随着 Web 应用的高速发展,针对 Web 应用漏洞的攻击导致的信息泄漏和经济损失正在增加。2005 年以后,Web 应用的漏洞问题呈现大幅度上升,同时攻击的手段正在日益进化,新的攻击手段正在不断出现。即使是迄今为止安全的 Web 应用也不能保证将来一定安全。有组织的攻击和 BOT(机器人)等自动攻击也在不断增加中。Web 应用持续暴露在危险中,需要切实有效的应对方案。在这样的情况下,确保 Web 应用的安全性非常困难,但是,作为 Web 应用的所有者,企业必须用适当的成本达到最佳的安全效果。作为 Web 应用漏洞的对策,可利用 WAF(Web Application Fi
3、rewall - 应用防火墙)。如下图所示,作为保护 Web 系统的产品,有防火墙、IDS /IPS,但它们保护的范围和 WAF 不同。 WAF 监视 Web 应用的输入和输出,检测攻击,处理攻击。是专门为了保护 Web 应用的专用安全工具。WAF 对 Web 服务器收到的访问数据流进行分析,并利用内部预先定义的规则进行检查,判断为攻击行为时进行相应的处理(如拒绝本次访问显示出错页面或进行无害化处理等)。简单的说,有了 WAF 后,向 Web 系统发出的正常请求将被接受,恶意的请求将被拒绝。技术白皮书及软件介绍第 2 页 共 15 页技术白皮书及软件介绍第 3 页 共 15 页2. 产品介绍产
4、品概要SiteShell 是一款由 NEC 专门研发的用于防御 Web 应用漏洞攻击的安全软件产品,可应对市场上所有通过 IIS、APACHE 等构建的 Web 服务器的应用漏洞;可防护 SQL 注入、跨站脚本攻击等OWASP 组织所公布的”Top 10 Web Application Security Risks”中所有 WAF 软件可以对应的部分;通过其优质的、可信赖的黑名单技术以及相关策略,在保护用户的 Web 应用免受最新攻击的同时,让 Web 防护更符合客户的实际需求。Siteshell 可以防御 OWASP 规定的 WAF 需要应对的所有种类的攻击,这在业界是极为少见的。高性能 (
5、通过 Apache 实现负载均衡),和传统的修改网站源代码实现网站安全的方式相比具有巨大优越性,轻松应对 Https(SSL)的应用,SiteShell 为软件性 WAF,和硬件性 WAF 相比导入更为容易,设置更灵活。此外 SiteShell 具有完备的防御力(领先的黑名单技术),NEC 在全球(中国,印度,日本)的安全专家组的不间断研究成果确保抵御攻击的核心-黑名单的完备性和更新的及时性,使用户的网站免受最新的攻击。产品原理:如下图所示:产品构成:产品分 2 个部分,SiteShell 管理端 Console 和 SiteShell 软件防火墙。如下图所示:技术白皮书及软件介绍第 4 页
6、共 15 页产品安装环境:SiteShell(IIS 版)OSWindows Server 2003 (x86,x64)Windows Server 2008 (x86,x64)Windows Server 2008 R2 (x64)Web 服务器Internet Information Services 6.0Internet Information Services 7.0Internet Information Services 7.5SiteShell(Apache 版)OS(*1)Windows Server 2003 (x86,x64)Windows Server 2008 (x8
7、6,x64)Windows Server 2008 R2 (x64)RedHat Enterprise Linux v.4 (x86,x64)RedHat Enterprise Linux v.5 (x86,x64)Java 环境 Java SE 6(x86 用)Web 服务器Apache HTTP Server 1.3 (x86,x64) 1.3.24 以上Apache HTTP Server 2.0 (x86,x64)Apache HTTP Server 2.2 (x86,x64)(*1) 只支持 Windows Server 64 位 OS 上运行的 32 位 Apache HTTP S
8、erver(不支持 64 位Apache HTTP Server)NW 型 SiteShell 实体OS(*2)RedHat Enterprise Linux v.4 (x86,x64)RedHat Enterprise Linux v.5 (x86,x64)(*2)使用 IPv6 时,只支持反向代理方式(不支持其它方式)。运用管理控制台OSWindows Server 2003 (x86,x64)Windows Server 2008 (x86,x64)Windows Server 2008 R2 (x64)技术白皮书及软件介绍第 5 页 共 15 页RedHat Enterprise Li
9、nux v.4 (x86,x64)RedHat Enterprise Linux v.5 (x86,x64)Java 环境 Java SE 6(x86 用)Web 浏览器Internet Explorer 6Internet Explorer 7Internet Explorer 8Firefox 3.6(显示器,XGA(1024768)以上,推荐 65536 色(16bit)以上)功能列表:功 能 说明监查日志 监查日志是 SiteShell 识别出了攻击时,记录攻击信息及SiteShell 对攻击的处理动作的日志。通常,用户不需要直接参照监查日志的内容。监查日志记录过程中会使用文件循环机制
10、,将信息输出到多个文件。统计信息 用图表显示脆弱性攻击的状况的统计信息。报表统计 以月为单位的图表显示脆弱性攻击的状况的月际报表。数据维护 数据库中的监查日志可以删除或者导出到 CSV 文件。白名单 可以编辑记述根据脆弱性对策定义产生的核对对象外规则的对象外定义。黑名单 可以编辑自定义规则,关键字过滤,定义 HTTP 协议头长度等。控制台集中管理 可以将多个管理节点在操作管理控制台集中管理。多据点策略/日志集中管理可以将多个管理节点的策略和日志在操作管理控制台集中管理。站点组别/局部站点独立策略管理根据每个节点的不同设定独立策略管理。技术白皮书及软件介绍第 6 页 共 15 页信息通知功能 可
11、以将脆弱性攻击的检知状况和脆弱性对策定义的自动更新状况通过邮件和 syslog 的形式通知操作管理控制台的用户。限定管理者 IP 可以指定管理者 IP,保证策略设定的安全性。支持过滤 IP 协议:IPV4/IPV6输入规则适用对象(HTTP 请求的 IP 地址) 。支持 IPv4 和IPv6。关键字过滤 可以过滤指定关键字,效率不受影响。在线自动更新功能 采用在线更新服务,可以实时地更新脆弱性对策。应用层 DOS 攻击 防止不断发送没有完成的 HTTP 头,直到服务器耗尽所有的资源的攻击。网站隐身(OS,webserver,)避免这些敏感信息为攻击者利用、提升入侵的概率。Cookie 防护 处
12、理指定 Cookie,从而加大推测的难度。防网页篡改 事前防御,防止黑客进行命令攻击修改网页。负载均衡 通过 Apache 实现负载均衡。图形界面 操作简单的管理界面。报表 显示方式灵活,支持日志导出。web 应用日志(记录攻击)能够记录所有来自 web 的攻击情况,分析日志。自定义 HTTP 响应方式 阻止指定了的 HTTP 方法。Zero-day 防护 即安全补丁与瑕疵曝光的同一日内,即可防护漏洞。脆弱性可设定列表:功能 可设定 备 考缓冲区溢出对策 跨站脚本攻击对策 SQL 注入对策 跨站请求伪造对策 脆弱性对策功能会话劫持对策 技术白皮书及软件介绍第 7 页 共 15 页参数篡改对策
13、强制浏览对策 路径跨越对策 OS 指令注入对策 错误代码对策 HTTP 协议方法对策 有关 Cookie 的脆弱性攻击对策 脆弱性防御的详细说明:条目 脆弱性的名称 内容 处理概要 检查对象 处理 备考1 缓冲区溢出由于输入比预期大的参数值而导致用户应用行为异常。如果超过了用户指定 URL 的长度,作为错误处理。同时,如果请求头部包含非 ASCII (0x000x7F 以外)文字,也作为错误处理。请求 处理 1 请求头部和参数名处理 1 请求头部 处理 1 请求的参数值 处理 1 2 跨站脚本攻击向输入框中输入了包含了标签的脚本,从而获取控制信息(Cookie)或者把控制信息发送给第三方。脚本
14、的无害化,或者对包含脚本的请求直接返回错误页面。同时也包含了链接注入脆弱性的处理。请求的参数值 处理 2 请求头部 处理 1 请求的参数值 处理 1 3 SQL 注入 由于向输入框(参数)中输入不正当的 SQL 文,使数据库出现错误动作,从而查看或者更新数据库的内容。对成为 SQL 注入攻击的 SQL文进行无害化,或者直接返回错误页面。请求的参数值 处理 2 技术白皮书及软件介绍第 8 页 共 15 页4 跨站请求伪造 用户在无意识的情况下访问了别的网站。根据 SiteShell 附加的特殊的数据进行客户的确认,如果附加数据不正确,则返回错误页面。请求的参数值 处理 1 使本处理有效需满足以下
15、三个条件:(1)响应 body 中使用 Form 表单。(2)响应头部含有效的 Content-Length。(3) 响应头部的Content-Type 是text/html。5 会话劫持攻击者偷取用户的 Session ID 并加以利用。对可能操纵 cookie 的请求直接返回错误页面请求头部和参数值处理 1 6 参数篡改发送或者接受的参数被篡改处理响应的参数,如果收到的下次请求的参数内容不正确,则返回错误页面。请求的参数值 处理 1 使本处理有效需满足以下三个条件:(1) INPUT(hidden)Tag 中定义了参数。(2) 响应头部含有效的 Content-Length。(3) 响应头
16、部的 Content-Type 是text/html。7 强制浏览从公开的 URL,推测各种各样的 URL并尝试访问。在一些特定的情况下,可能会访问到一些原本并不公开的信息。指定公开的 URL 请求的 URL 处理 1 8 路径跨越 篡改指定路径的参数,从而读取并不公开的文件。指定公开的 URL 请求的 URL 和参数值处理 1 技术白皮书及软件介绍第 9 页 共 15 页9 OS 指令注入通过输入点内被输入 OS 指令,使该指令在 Web 服务器机器上执行。把成为 OS 指令注入的请求返回错误页面请求头部和参数值处理 1 10 错误代码 根据服务器返回的错误内容(SQL的错误等),得到攻击的
17、提示。 5xx 错误发生的时候,表示代替的 HTML 画面。应答的 HTTP 状态码处理 3 11 HTTP 方法利用以下的 HTTP的方法攻击。DELETE、SEARCH、COPY、MOVE、PROPFIND、PROPPATCH、MKCOL、LOCK、UNLOCK、TRACE、PUT、HEAD、CONNECT 阻止指定了的 HTTP 方法。 请求中的 HTTP方法处理 4 用户设定的阻止访问的 HTTP 方法1. DELETE2. SEARCH3. COPY4. MOVE5. PROPFIND6. PROPPATCH7. MKCOL8. LOCK9. UNLOCK 10. TRACE11.
18、PUT12. HEAD13. CONNECTApache 版中【TRACE】指定无效。要阻止【TRACE】方法,需要在 Apache 的设定中把TraceEnable 属性设为 off。技术白皮书及软件介绍第 10 页 共 15 页通过推测 Cookie内包含的数据,可能能够得到不正当访问的信息。处理指定 Cookie,从而加大推测的难度。请求中的Cookie 和SiteShell 参数处理 1 处理 Cookie 和SiteShell 参数12 有关Cookie的脆弱性由于 Cookie 的有效期限过长,变得容易被冒充。将 Cookie 包含的有效期限改写为指定值。Cookie 的有效期限处
19、理 5 Cookie 的有效期限 表中用语说明:请求 HTTP(HTTPS)数据包的 request 数据应答 HTTP(HTTPS)数据包的 response 数据SiteShell 攻击检知后的处理:SiteShell 如果识别出了脆弱性攻击,会进行以下 5 种类型的处理。技术白皮书及软件介绍第 11 页 共 15 页攻击检知后的处理类型处理类型 处理内容 检知后动作 处理逻辑处理 1 返回错误页面(可自定义)结束处理 用脆弱性对策定义规则检查 HTTP 数据包,攻击的情况下返回错误页面。处理 2 无害化数据后继续执行继续 如果处理 1 中攻击未被查出,则用处理 2中的脆弱性对策定义规则检
20、查 HTTP 数据包。如果检查出攻击,进行无害化处理,向用户应用返回无害化后的 HTTP 数据包。处理 3 返回代替页面(可自定义)结束处理 在错误码对策中,返回 5xx 错误画面的代替画面。处理 4 返回 403 Forbidden结束处理 在 HTTP 方法对策中,对于禁止访问的方法返回 403 Forbidden 错误。处理 5 更新 Cookie的有效期限继续执行继续 用指定的 cookie 有效期替代响应内包含的cookie 有效期。说明: 脆弱性对策是根据默认的 SiteShell 脆弱性对策规则定义的内容和用户自定义的脆弱性对策文件来进行的。 用户自定义的脆弱性对策,优先于默认的
21、脆弱性对策。 处理 1 的错误页面在默认情况下是含有红色文字“error”的页面。 处理 3 代替页面在默认情况下是含有蓝色文字“error”的页面。 如果把 SiteShell 设置成了测试模式,那么虽然在监查日志中会留下攻击的记录,但不实行 1-4 处理。控制台集中管理如下所示:技术白皮书及软件介绍第 12 页 共 15 页操作管理控制台机器服务器机器(管理服务器)IIS 版 SiteShell浏览器Apache 版 SiteShellNW 型 SiteShellWebSite1WebSite2服务器机器( 管理服 务器)服务器机器( 管理服 务器)以节点为单位,集中管理所有的动作状况。技
22、术白皮书及软件介绍第 13 页 共 15 页3. 产品部署SiteShell 的部署分为针对 IIS 的部署、针对 Apache 的部署和针对网络型的部署三类。Apache 的部署根据操作系统的不同分为 Windows 对应和 Linux 对应。支持 Tomcat 和 Nginx。网络型的部署分为【反向代理方式】 , 【路由器方式】 , 【桥方式】三种类型。3.1. 针对 IIS 型的部署SiteShell(ISAPI过滤器)用户应用 (asp,aspx等)IIS浏览器3.2. 针对 Apache 型的部署3.3. 针对 Tomcat 的部署SiteShell(Apache模块)用户应用 (c
23、gi,php等)ApacheHTTPServe(1.3/2.0/2.2)浏览器SiteShell(Apache模块)用户应用 (cgi,php等)Tomcat浏览器技术白皮书及软件介绍第 14 页 共 15 页3.4. 针对 Nginx 的部署3.5. 针对网络型部署(反向代理方式的构成)WebSite1(IP=10.1.1.1)InternetWebSite2(IP=10.1.1.2)WebSite1=10.1.1.101WebSite2=10.1.1.102DNS服务器现有站点http:/WebSite1/虚拟WebSite2虚拟IP=10.1.1.102(向10.1.1.2的转送)虚拟W
24、ebSite1虚拟IP=10.1.1.101(向10.1.1.2的转送)管理节点IP=10.1.1.100SiteShell(Apache模块)用户应用 (cgi,php等)Nginx浏览器SiteShell服务器技术白皮书及软件介绍第 15 页 共 15 页(路由器方式的构成)WebSite1(IP=10.1.1.1)InternetWebSite2(IP=10.1.1.2)路由器现有网站http:/WebSite1/管理节点IP=10.1.1.100HUB10.1.1.110.1.1.10110.1.1.210.1.1.102虚拟WebSite2虚拟IP=10.1.1.102(10.1.1
25、.2转送)虚拟WebSite1虚拟IP=10.1.1.101(向10.1.1.1中转送)(桥方式的构成)WebSite1(IP=10.1.1.1)InternetWebSite2(IP=10.1.1.2)现有网站http:/WebSite1/HUB管理节点IP=10.1.1.100NIC1 NIC2虚拟WebSite2虚拟IP=10.1.1.102(向10.1.1.2中转送)虚拟WebSite1虚拟IP=10.1.1.101(向10.1.1.1中转换)SiteShell服务器SiteShell服务器技术白皮书及软件介绍第 16 页 共 15 页4. 典型应用1、电子商务行业(百货,化妆品,数码
26、,食品,日用品,服务业,服装)百货行业的电子商务网站、化妆品行业的电子商务网站、数码产品的电子商务网站、日用品电子商务网站、服务业电子商务网站,服装行业的电子商务网站等一切 B2C,B2B 的电子商务网站。2、500 强企业的门户网站3、制造业B/S 架构销售系统,采购系统以及相关 B/S 架构的人事,CRM 系统等有企业重要信息的相关B/S 架构相关系统4、使用 B/S 架构云计费软件的厂商5、教育行业门户网站以及培训用 B/S 架构网站。技术白皮书及软件介绍第 17 页 共 15 页5. 附加说明(siteshell 防御攻击种类)序号 攻击种类 说明1 BF OVERFLOW 在请求中,
27、通讯的数据位数超过了应用程序缓冲区本身的容量,溢出部分覆盖了原合法数据区,而导致异常的动作。2 BF NONASCII 在请求中输入二进制文字,导致应用程序在处理过程产生预想之外的异常动作。3 XSS 在关键字输入框中组合输入脚本标签,从而获取控制信息(Cookie)或者把控制信息发送给第三方。4 SQL 在参数等输入框中输入不正的 SQL 文,返回异常的响应,并通过异常信息,改造 SQL 再次攻击。5 SF 攻击者通过 Session 欺骗,在 Web 应用程序中做不正当的行为。 6 FB 从公开的 URL 地址中推测出许多类似的 URL 进行访问。这样会使一些不期望公开的 URL 存在暴露
28、的危险。7 PT 通过篡改带参数的路径,访问未公开的文件。 8 OSC 在输入框中输入系统命令,从而达到在 Web 服务器电脑中执行系统命令的目的。9 Http Method 以下是攻击者可以利用的 HTTP Method。 DELETE、SEARCH、COPY、MOVE、PROPFIND、PROPPATCH、MKCOL、LOCK、UNLOCK、TRACE、PUT、HEAD、CONNECT。 10 PM 篡改参数。11 CSRF 盗取客户端的控制信息(Cookie) ,伪装正规的客户端,再次发出请求信息。通过原 Cookie 文中的内容,推测并篡改 Cookie 信息,发送不正当的请求。12 Cookie Manipulation 通过篡改 Cookie 延长有效期。13 ErrorCode 攻击者根据 Web 应用程序发生错误时返回的详细信息,构造攻击。14 IPFilter 定制访问者 IP 的黑白名单,判断是否接受指定访问者的请求访问。