第22章 网站安全需求分析与安全保护工程

第22章 网站安全需求分析与安全保护工程

22.1 网站安全威胁与需求分析

22.1.1 网站安全概念

  网站是一个基于B/S技术架构的综合信息服务平台,主要提供网页信息及业务后台对外接口服务。一般网站涉及网络通信、操作系统、数据库、Web服务器软件、Web应用、浏览器、域名服务以及HTML、XML、SSL、Web Services等相关协议,同时,网站还有防火墙、漏洞扫描、网页防篡改等相关的安全措施。
  网站安全主要是有关网站的机密性、完整性、可用性及可控性。

22.1.2 网站安全分析

  网站已经成为各单位开展业务工作的平台,也是对外服务的窗口,其安全性日益受到关注。目前,网站面临多个方面的安全威胁,其主要威胁如下。
  1. 非授权访问
  2. 网页篡改
  3. 数据泄露
  4. 恶意代码
  5. 网站假冒
  6. 拒绝服务
  7. 网站后台管理安全威胁

22.1.3 网站安全需求

  网站安全需求涉及多个方面,主要包括物理环境、网络通信、操作系统、数据库、应用服务器、Web服务软件、Web应用软件、数据等安全威胁防护。同时,网站运行维护需要建立一个相应的组织管理体系以及相应的安全运维工具和平台。网站作为一个业务运行承载平台,其相关业务必须符合国家法律政策要求,如内容安全、等级保护、安全测评以及数据存储安全要求。

22.2 Apache Web安全分析与增强

  Apache Httpd是常用的构建网站服务器的软件,简称Apache Web。本节主要分析Apache Web的安全性及安全机制,然后给出Apache Web的安全增强措施。
  1. httpd.conf
  httpd.conf是Apache的主配置文件,httpd程序启动时会先读取httpd.conf。该文件设定Apache服务器一般的属性、端口、执行者身份等。
  2. conf/srm.conf
  conf/srm.conf是数据配置文件,在这个文件中主要设置WWW Server读取文件的目录、目录索引时的画面、CGI执行时的目录等。srm.conf不是必需的,可以在httpd.conf里设定。
  3. conf/access.conf
  access.conf负责基本的读取文件控制,限制目录所能执行的功能及访问目录的权限,设置access.conf不是必需的,可以在httpd.conf里设定。
  4. conf/mine.conf
  mine.conf设定Apache所能辨别的MIME格式,一般而言,无须动此文件。若要增加MIME格式,可参考srm.conf中AddType的语法说明。

22.2.2 Apache Web安全分析

  Apache Web主要面临以下安全威胁。
  1. Apache Web软件程序威胁
  Apache软件包自身存在安全隐患。
  2. Apache Web软件配置威胁
  攻击者利用Apache网站配置漏洞,访问网站敏感信息。
  3. Apache Web安全机制威胁
  4. Apache Web应用程序威胁
  5. Apache Web服务通信威胁
  6. Apache Web服务内容威胁
  7. Apache Web服务器拒绝服务威胁

22.2.3 Apache Web安全机制

  Apache Web主要有以下安全机制。
  1. Apache Web本地文件安全
  Apache安装后默认设置的文件属主和权限是比较合理与安全的。
  2. Apache Web模块化管理机制
  Apache软件体系采用模块化结构,这使得Apache的功能可以灵活配置。当Apache服务不需要某项功能时,就可以通过配置方式,禁止相应的模块。例如,通过配置可以关闭SSL模块功能。
  3. Apache Web认证机制
  Apache提供了非常简单方便的用户认证机制。比如,若要对 /usr/local/apache/htdocs/secret 目录进行访问控制,则认证过程如下。
  第一步,在Apache的配置文件httpd.conf里加入以下内容:

	<Directory "usr/local/apache/htdocs/secret">
    	options Indexed FollowSymLinks MultiViews
        AllowOverride AuthConfig
        Order allow, deny
        Allow from all
    </Directory>

  第二步,在/usr/local/apache/htdocs/secret目录下建立文件 .htaccess,文件内容如下:

	AuthName "private"
    AuthType Basic
    AuthUserFile /usr/local/apache/conf/passwd
    Require valid-user

  第三步,用Apache提供的htpasswd命令来创建用户,具体如下:

	/usr/local/apache/bin/htpasswd -c /usr/local/apache/conf/passwd testuser

  其中,-c表示是新建口令文件,另外再添加用户就不需要使用-c参数了。上面的.htaccess文件最后一行定义了Require valid-user,它的意思是允许所有合法用户。
  4. 连接耗尽应对机制
  (1)减少Apache超时(Timeout)设置、增大MaxClient设置。例如,修改httpd.conf配置文件,具体如下:

	Timeout 30
    MaxClients 256

  但是,MaxClient设置得越大,则要求内存也越大,否则可能会由于进程过多导致内存占满。
  (2)限制同一IP的最大连接数。
  (3)多线程下载保护机制。
  5. Apache Web自带的访问机制
  基于IP地址或域名的访问控制是Apache提供的一种根据客户机的IP地址或域名信息进行网站授权控制的措施。例如,如果允许192.168.X.Y到192.18.X.X的主机访问,则可以配置如下:

	order deny,allow
	deny from all
	allow from pair 192.168.X.0/255.255.255.0

  6. Apache Web审计和日志
  Apache提供一个记录所有访问请求的机制,而且错误的请求也会记录。这些请求记录存放在access.log和error.log两个文件中,其中:

  • access.log 记录对Web站点的每个进入请求。
  • error.log记录产生错误状态的请求。

  7. Apache Web服务器防范DoS
  Apache服务器对拒绝服务攻击的防范主要通过软件Apache DoS Evasive Maneuvers Module来实现。该软件可以快速拒绝来自相同地址对同一URL的重复请求,通过查询内部一张各个子进程的Hash表来实现。

22.2.4 Apache Web安全增强

  Apache Web的安全增强措施主要如下。
  1. 及时安装Apache Web补丁
  2. 启用.htaccess文件保护网页
  3. 为Apache Web服务软件设置专门的用户和组
  4. 隐藏Apache Web软件的版本号
  5. Apache Web目录访问安全增强
  对于可以访问的Web目录,要使用相对安全的途径进行访问,不要让用户查看到任何目录索引列表,具体要求如下:
  (1)设定禁止使用目录索引文件。
  (2)禁止默认访问。
  (3)禁止用户重载。
  6. Apache Web文件目录保护
  Apache Web文件目录安全可以通过操作系统来实现。对于不同的目录,最佳安全实践如下。
  (1)ServerRoot保存配置文件(conf子目录)、二进制文件和其他服务器配置文件。conf的属主和权限设置如下:

	# chown -R root:webadmin /usr/local/apache/conf
    # chmod -R 600 /usr/local/apache/conf
    # chmod 664 /usr/local/apache/conf/password

  (2)DocumentRoot保存Web站点的内容,包括HTML文件和图片等。DocumentRoot的属主和权限设置如下:

	# chown -R root:webdev /usr/local/apache/htdocs
    # chmod -R 664 /usr/local/apache/htdocs

  (3)Apache服务器CGI目录的属主和权限设置如下:

	# chown -R root:webadmin /usr/local/apache/cgi-bin
    #chmod -R 555 /usr/local/apache/cgi-bin

  (4)Apache服务器执行目录的属主和权限设置如下:

	# chown -R root:webadmin /usr/local/apache/bin
    # chmod -R 550 /usr/local/apache/bin

  (5)Apache服务器日志目录的属主和权限设置如下:

	# chown -R root:webadmin /usr/local/apache/logs
    # chmod -R 664 /usr/local/apache logs

  7. 删除Apache Web默认目录或不必要的文件
  Apache默认目录或不必要的文件通常会给Apache服务器带来安全威胁,为了增强Apacher的安全,建议将其删除。Apache需要删除的默认目录或不必要的文件如下:

  • Apache源代码文件;
  • 默认HTML文件;
  • CGI程序样例;
  • 默认用户文件。

  8. 使用第三方软件安全增强Apache Web服务
  (1)构建Apache Web服务器“安全沙箱”。
  (2)使用Open SSL增强Apache Web安全通信。
  (3)增强Apache Web服务器访问控制。

22.3 IIS安全分析与增强

22.3.1 IIS概述

  IIS(Internet Information Services)是Microsoft公司的Web服务软件的简称,主要提供Web服务。IIS从最初的1.0版本已经发展到10.0版本。IIS由若干个组件构成,每个组件负责相应的功能,协同处理HTTP请求过程。

22.3.2 IIS安全分析

  IIS经历了许多安全网络攻击,归纳起来,IIS典型安全威胁如下:

  • 非授权访问。
  • 网络蠕虫。
  • 网页篡改。
  • 拒绝服务。
  • IIS软件漏洞。

22.3.3 IIS安全机制

  IIS的安全机制主要包括IIS认证机制、IIS访问控制、IIS日志审计。
  1. IIS认证机制
  IIS支持多种认证方式,主要包括如下内容:

  • 匿名认证
  • 基本验证
  • 证书验证
  • 数字签名认证
  • IIS证书认证
  • Windows证书认证

  2. IIS访问控制
  IIS的访问控制流程分为以下步骤:
  (1)用户浏览器所在的IP地址是否限制?如果来自受限IP,访问将被拒绝;否则进入下一步验证。
  (2)用户身份验证是否通过?对于非匿名访问的站点,要对用户进行帐号验证,如果使用非法帐号,访问将被拒绝;否则进入下一步验证。
  (3)在IIS中指定的Web权限是否允许用户访问?如果用户试图进行未授权的访问,访问将被拒绝;否则进入下一步验证。
  (4)用户正在进行的操作请求是否符合相应Web文件或文件夹的NTFS许可权限?如果不符合,访问将被拒绝;如果符合,则允许访问。
  (5)用户通过上述访问控制措施就可以访问其请求的资源。
  3. IIS日志审计。

22.3.4 IIS安全增强

  IIS的安全增强主要有如下几个方面。
  1. 及时安装IIS补丁
  2. 启用动态IP限制(Dynamic IP Restrictions)
  3. 启用URLScan
  4. 启用IIS Web应用防火墙(Web Application Firewall)
  5. 启用SSL服务

22.4 Web应用漏洞分析与防护

22.4.1 Web应用安全概述

  Web应用安全是网站安全的重要组成部分。常见的Web安全漏洞有两个方面:一是技术安全漏洞一,其漏洞来源是因为技术处理不当而产生的安全隐患,如SQL注入漏洞、跨站脚本(XSS)、恶意文件执行、非安全对象引用等。二是业务逻辑安全漏洞,其漏洞来源于业务工作流程及处理上因安全考虑不周或处理不当而产生的安全隐患。

22.4.2 OWASP Top 10

  OWASP Top 10是国际开放Web应用安全项目组推出的前10个Web应用漏洞排名。下面分别介绍2017年版本的OWASP Top 10漏洞情况。
  1. A1-注入漏洞(Injection)
  2. A2-遭受破坏的认证(Broken Authentication)
  3. A3-敏感数据暴露漏洞(Sensitive Data Exposure)
  4. A4-XML外部实用引用漏洞(XML Entities,XXE)
  5. A5-受损害的访问控制漏洞(Broken Access Control)
  6. A6-安全配置错误(Security Misconfiguration)
  7. A7-跨站脚本漏洞(Cross-Site Scripting,XSS)
  8. A8-非安全反序列化漏洞(Insecure Descrialization)
  9. A9-使用含有已知漏洞的组件(Using Components with Know Vulnerabilities)
  10. A10-非充分的日志记录和监控(Insufficient Logging and Monitoring)

22.4.3 Web应用漏洞防护

  Web应用漏洞防护的常见方法有SQL注入漏洞分析与防护、文件上传漏洞分析与防护和跨站脚本攻击。
  1. SQL注入漏洞分析与防护
  2. 文件上传漏洞分析与防护
  3. 跨站脚本攻击

22.5 网站安全保护机制与技术方案

  网站安全保护涉及操作系统、数据库、Web应用程序、网络通信、用户等多个构成组件,本节主要给出网站常见的安全保护机制,以及网站构成组件的安全加固措施、网站攻击防护和监测方法。

22.5.1 网站安全保护机制

  网站除了物理环境安全保护外,基本安全保护机制还包括身份鉴别、访问控制、内容安全、数据安全、安全防护、安全审计与监控、应急响应和灾备、合规管理、安全测评等。
  1. 身份鉴别
  2. 访问控制
  3. 网站内容安全
  4. 网站数据安全
  5. 网站安全防护
  6. 网站安全审计与监控
  7. 网站应急响应
  8. 网站合规管理
  9. 网站安全测评
  10. 网站安全管理机制

22.5.2 网站构成组件安全加固

  网站是一个综合信息服务平台,其安全性与构成组件紧密相关,一个组件的安全会影响网站的整体安全。网站安全加固主要有以下几个这方面:

  • 操作系统安全加固;
  • 数据库系统安全加固;
  • Web服务器软件安全加固;
  • Web应用程序安全加固;
  • Web通信安全加固;
  • 网站域名服务安全加固;
  • 网站后台管理安全加固。
      其中,安全加固最佳实践参考是CIS标准规范。

22.5.3 网站攻击防护及安全监测

  1. 防火墙
  2. 漏洞扫描
  3. 网站防篡改
  4. 网络流量清洗
  5. 网站安全监测

22.6 网站安全综合应用案例分析

22.6.1 政务网站安全保护

  GB/T 31506-2015提出政府门户网站系统安全技术措施要求,如表22-1所示。
  表22-1 政府门户网站系统安全技术措施表

层面防护 整体防护
网站层 Web应用安全 域名安全 运行支撑 攻击防范 安全监控 应急响应
数据层 内容发布及数据安全
主机层 服务器安全 管理终端安全
网络层 边界安全
物理安全 物理安全
posted @ 2023-02-04 15:36  Evan-whc  阅读(112)  评论(0编辑  收藏  举报