一、网站安全威胁与需求分析
1.1 网站安全概念
网站是一个基于B/S技术架构的综合信息服务平台,主要提供网页信息及业务后台对外接口服务
- 网站涉及:网络通信、操作系统、数据库、Web服务器软件、Web应用、浏览器、域名服务以及HTML、XML、SSL、Web Services等相关协议
- 网站相关安全措施:防火墙、漏洞扫描、网页防篡改等
网站安全:主要是有关网站的机密性、完整性、可用性及可控性
- 网站的机密性:是指网站信息及相关数据不被授权查看或泄露
- 网站的完整性:是指网站的信息及数据不能非授权修改,网站服务不被劫持
- 网站的可用性:是指网站可以持续为相关用户提供不中断的服务的能力,满足用户的正常请求服务
- 网站的可控性:是指网站的责任主体及运营者对网站的管理及控制的能力,网站不能被恶意利用
1.2 网站安全分析
目前,网站面临主要安全威胁如下
- 非授权访问:网站的认证机制的安全缺陷导致网站服务及信息被非授权访问。攻击者通过口令猜测及“撞库”攻击技术手段,获取网站用户的访问权限
- 网页篡改:网站相关的组件存在安全隐患,被攻击者利用,恶意篡改网页
- 数据泄露:网站的访问控制措施不当,导致外部非授权用户获取敏感数据
- 恶意代码:网页木马是一个含有恶意功能的网页文件,其目的是使得网页访问者自动下载设置好的木马程序并执行。网页木马将导致用户账户密码私密信息泄露、终端设备被黑客连接控制
- 网站假冒:攻击者通过网站域名欺骗、网站域名劫持、中间人等技术手段,诱骗网站用户访问以获取敏感信息或提供恶意服务
- 拒绝服务:攻击利用目标网站的带宽资源有限性以及TCP/IP协议的安全缺陷,针对目标网站发起DDoS/DoS攻击,使得用户无法正常访问网站服务。常见的网站拒绝服务攻击技术:UDP洪水(UDP Flood)、ICMP洪水 (ICMP Flood) 、SYN洪水(SYN F lood)、HTTP洪水(HTTP Flood)
- 网站后台管理安全威胁:网站后台管理是网站的控制中心,一旦失去控制,网站的安全就难以保障。网站后台管理的安全主要涉及管理员账号安全性、后台管理程序安全性、内部管理权限安全性
常见的后台管理问题包括
- 网站管理员身份及密码被窃取:后台管理页面缺少安全限制,外部任何人都可以访问和尝试登录,导致管理员的口令被猜测
- 后台管理网页存在安全漏洞:管理认证应用程序缺少安全性输入检查,导致 SQL 注入攻击,或者存在认证旁路
- 内部管理权限分配不合理:网站安全管理没有细分系统管理、网页发布、安全审计等角色,导致管理员权限过于集中,形成内部安全隐患
1.3 网站安全需求
网站安全需求涉及方面:包括物理环境、网络通信、操作系统、数据库、应用服务器、Web服务软件、Web应用程序、数据等安全威胁防护
同时,网站运行维护需要建立一个相应的组织管理体系以及相应的安全运维工具和平台。网站作为一个业务运行承载平台,其相关业务必须符合国家法律政策要求,如内容安全、等级保护、安全测评以及数据存储安全要求
二、Apache Web安全分析与增强
2.1 Apache Web概述
Apache Httpd:是一个用于搭建Web服务器的开源软件,目前应用非常广泛
最新的Apache可以到官方网址找到。该站点包含了Apache Httpd 的最新稳定版、最新发行测试版、补丁程序、第三方提供的模块等
Apache Httpd配置文件如下
- httpd.conf:是Apache的主配置文件,httpd 程序启动时会先读取htpd.conf,该文件设定Apache服务器一般的属性、端口、执行者身份等
- conf/srm.conf:是数据配置文件,在这个文件中主要设置WWW Server读取文件的目录、目录索引时的画面、CGI 执行时的目录等。srm.conf 不是必需的,可以完全在httpd.conf里设定
- conf/access.conf:access.conf负责基本的读取文件控制,限制目录所能执行的功能及访问目录的权限,设置access.conf不是必需的,可以在httpd.conf里设定
- conf/mime.conf:mime.conf设定Apache所能辨别的MIME格式,一般而言,无须动此文件。若要增加MIME格式,可参考srm.conf中AddType的语法说明
2.2 Apache Web安全分析
ApacheWeb主要面临以下安全威胁
1. Apache Web软件程序威胁
Apache软件包自身存在安全隐患。攻击者利用Apache软件程序漏洞来攻击网站,特别是一些具有缓冲区溢出漏洞的程序
攻击者编写的一些漏洞利用程序,使得Apache服务失去控制,一旦缓冲区溢出成功,攻击者可以执行其恶意指令
2. Apache Web软件配置威胁
攻击者利用Apache网站管理配置漏洞,访问网站敏感信息
典型实例有:目录索引(Directory Indexing)、资源位置预测(Predictable Resource Location)、信息泄露(Information Leakage)
3. Apache Web安全机制威胁
攻击者利用Apache安全机制的漏洞,进行攻击非授权访问的Apache服务
典型实例有:口令暴力攻击(Brute Force)、授权不当(Insufficient Authorization)、弱口令恢复验证(Weak Password Recovery Validation)
4. Apache Web应用程序威胁
攻击者利用Apache 应用程序漏洞来攻击网站,攻击者编写的一些漏洞利用程序,使得Apache服务失去控制,攻击者可以执行其恶意指令
典型实例有:SQL注入、输入验证错误(Input Validation Error)
5. ApacheWeb服务通信威胁
Apache一般情况下使用的HTTP协议是明文传递的,攻击者可以通过监听手段获取Apache服务器和浏览器之间的通信内容
6. ApacheWeb服务内容威胁
攻击者利用网站服务的漏洞,修改网页信息或者发布虛假信息
典型实例有:网页恶意篡改和网络钓鱼
7. Apache Web服务器拒绝服务威胁
攻击者通过某些手段使服务器拒绝对HTTP应答。这使得Apache对系统资源(CPU时间和内存)需求剧增,最终造成系统变慢甚至完全瘫痪
2.3 Apache Web安全机制
Apache Web主要有以下安全机制
1. Apache Web本地文件安全
Apache安装后默认设置的文件属主和权限是比较合理与安全的,可通过chmod命令修改
2. Apache Web模块管理机制
Apache软件体系采用模块化结构,这使得Apache的功能可以灵活配置
当Apache服务不需要某项功能时,就可以通过配置方式,禁止相应的模块
3. Apache Web 认证机制
Apache 提供了非常简单方便的用户认证机制
4. 连接耗尽应对机制
网站最容易受到攻击,当攻击者发起大量http连接,但不发送任何数据,而是等待超时,将造成Apache服务器达到最大客户连接限制,从而造成其他正常的用户无法再正常访问网站
此时Apache的access_log 里会出现大量错误信息,出错408 (请求超时)的日志,如果网站服务器的内存和swap空间比较少,甚至会导致一些服务器崩溃
针对这种类型的攻击,Apache 软件提供以下几种解决方法
(1)减少Apache超时(Timeout) 设置、增大MaxClients设置
例如,修改httpd.conf配置文件,具体如下:
Timeout 30
MaxClients 256
但是,MaxClients设置得越大,则要求内存也越大,否则可能会由于进程过多导致内存占满
(2)限制同一IP的最大连接数
除了用防火墙流量限制功能来完成这项工作外,还可以使用xinetd来启动Apache,xinetd中有一个参数per_source 可以进行设置
但是,对于访问量大的Web服务器,使用xinetd 可能会造成性能下降。由于这种全连接攻击无法伪造IP,源IP总是真实的,所以,可以通过防火墙或路由器来屏蔽该攻击源IP的访问
(3)多线程下载保护机制
用户多线程下载对服务器的负载非常重,可能会导致服务器僵死。比较简单的解决方法是根据User_Agent判断,把已知的多线程工具都禁止掉
5. Apache Web自带的访问机制
基于IP地址或域名的访问控制是Apache提供的一种根据客户机的IP地址或域名信息进行网站访问授权控制的措施
Apache的access.conf文件负责设置文件的访问权限,可以实现互联网域名和IP地址的访问控制。它包含一些指令,控制允许什么用户访问Apache目录
最佳安全配置首先把deny from all设为初始化指令,然后再使用allow from指令打开访问权限
例如,如果允许192.168.X.Y到192.168.X.X的主机访问,则可以配置如下
order deny, allow
deny from all
allow from pair 192.168.X.0/255.255.255.0
6. Apache Web审计和日志
Apache提供一个记录所有访问请求的机制,而且错误的请求也会记录。这些请求记录存放在aceslog和error.log两个文件中,其中:
- access.log:记录对Web站点的每个进入请求
- error.log:记录产生错误状态的请求
7. ApacheWeb服务器防范DoS
Apache服务器对拒绝服务攻击的防范主要通过软件Apache DoS Evasive Maneuvers Module来实现。该软件可以快速拒绝来自相同地址对同一URL的重复请求,通过查询内部一张各个子进程的Hash表来实现
2.4 Apache Web安全增强
Apache Web的安全增强措施主要如下
1.及时安装Apache Web补丁
网站管理员要经常关注Apache官方网址公布的HTTP服务器软件包缺陷修正和升级信息,及时升级系统或添加补丁。使用最高和最新安全版本可以加强Apache Web软件的安全性
2.启用.htaccess文件保护网页
.htaccess文件是Apache服务器上的一个配置文件
.htaccess 的功能:包括设置网页密码、设置发生错误时出现的文件、改变首页的文件名(如index.html) 、禁止读取文件名、重新导向文件、加上MIME类别、禁止列目录下的文件等
3.为Apache Web服务软件设置专门的用户和组
- 按照最小特权原则,给Apache Web服务程序分配一个合适的权限,让其能够完成Web服务
- 必须保证Apache使用一个专门的用户和用户组,不要使用系统预定义的账号,比如nobody用户和nogroup用户组
4.隐藏Apache Web软件的版本号
通常来说软件的漏洞信息和特定版本是相关的,因此,版本号对黑客来说是最有价值的
默认情况下,系统会把Apache的版本系统模块都显示出来
ApacheWeb软件包版本号的屏蔽方法是:修改配置文件httpd.conf,找到关键字ServerSignature 和ServerTokens,将其参数设定为ServerSignature Off和ServerTokens Prod,然后重新启动Apache服务器
5.Apache Web目录访问安全增强
对于可以访问的Web目录,要使用相对安全的途径进行访问,不要让用户查看到任何目录索引列表,具体要求如下:
(1)设定禁止使用目录索引文件
Apache服务器在接收到用户对一个目录的访问请求时,会查找DirectoryIndex指令指定的目录索引文件
默认情况下该文件是index.html。 如果该文件不存在,那么Apache会创建动态列表为用户显示该目录的内容。通常这样的设置会暴露Web站点结构,因此需要修改配置文件禁止显示动态目录索引。按如下方式修改配置文件httpd.conf:
Options -Indexes FollowSymLinks
- Options指令:通知Apache禁止使用目录索引
- FollowSymLinks:表示不允许使用符号链接
(2)禁止默认访问
首先禁止默认访问,只对指定目录开启访问权限,如果允许访问/var/www/html目录,使用如下设定:
Order deny,allow
Allow from all
(3)禁止用户重载
禁止用户对目录配置文件(.htaccess) 进行重载(修改),使用如下设定:
AllowOverride None
6.Apache Web文件目录保护
Apache Web文件目录安全设置可以通过操作系统来实现
7.删除Apache Web默认目录或不必要的文件
Apache默认目录或不必要的文件通常会给Apache服务器带来安全威胁,为了增强Apache的安全,建议将其删除
Apache 需要删除的默认目录或不必要的文件如下:
- Apache源代码文件
- 默认HTML文件
- CGI程序样例
- 默认用户文件
8.使用第三方软件安全增强Apache Web服务
(1)构建Apache Web服务器“安全沙箱”
安全沙箱:是指通过chroot机制来更改某个软件运行时所能看到的根目录,即将某软件运行限制在指定目录中,保证该软件只能对该目录及其子目录的文件有所动作,从而保证整个服务器的安全
这样即使被破坏或侵入,服务器的整体也不会受到损害。可以用jail软件包来帮助简化建立Apache Web chroot安全机制
(2)使用Open SSL增强Apache Web安全通信
使用具有SSL (安全套接字层协议)功能的Web服务器,可以提高Apache网站的安全
SSL使用加密方法来保护Web服务器和浏览器之间的信息流。SSL不仅用于加密在互联网上传
递的数据流,而且还提供双方身份验证,这种特性使得SSL适用于那些交换重要信息的活动,
如电子商务和基于Web的邮件
(3)增强Apache Web服务器访问控制
使用TCP Wrappers强化Apache Web服务器访问控制,部署TCP Wrappers的Web服务器,可以通过配置TCP Wrappers的hosts.allow、hosts.deny文件,指定IP地址访问特定的服务
个人导航:http://xqnav.top/