Apache中间件基线核查 – 作者:fu福lin林

1、访问控制

1.1应提供访问控制功能,依据安全策略控制用户对文件、数据库表等客体的访问

1.1.1检查是否禁止客户端访问Web目录之外的任何文件

禁止所有对根目录的访问

在配置文件httpd.conf中添加如下语句,禁止对根目录的访问: <Directory /> Order Deny,Allow Deny from all </Directory>

1.1.2检查是否禁止Apache显示目录结构

取消Indexes选项:

在配置文件中,将所有Options关键字后的Indexes去掉,如 <Directory “D:/Apache2/htdocs”> Options FollowSymlinks </Directory>

1.1.3检查是否更改默认端口

取消80默认端口:

在配置文件中修改Listen语句: Listen X.X.X.X:8080

1.1.4检查是否禁用PUT、DELETE等危险的HTTP方法

只允许GET和POST方法:

在httpd.conf中,添加如下内容: <LimitExcept GET POST> Deny from all </LimitExcept>

1.2访问控制的覆盖范围应包括与资源访问相关的主体、客体及它们之间的操作

1.2.1查是否仅绑定提供服务的IP地址

只有一个IP地址时可监听全部:

使用ipconfig命令查看网络信息,若仅有一个网络地址,在httpd.conf中可不绑定IP: Listen 80 

绑定特定IP:

在httpd.conf中更改Listen语句: Listen X.X.X.X:80

1.3应授予不同帐户为完成各自承担任务所需的最小权限,并在它们之间形成相互制约的关系

1.3.1检查是否以专门的用户帐号和组运行Apache

以专门的用户账号运行Apache

配置方法:

第一步:在“控制面板”中依次选择“计算机管理” —>“本地用户和组”—>”用户”,创建新帐号apche

第二步:在”用户”面板中,右键选择用户apache,选择“隶属于”,确认属于Users组或不属于任何组

第三步:确认新帐号具有读取和执行(RX)整个Apache安装目录的权限,并且对logs子目录具有读/写/删除(RWD)的权限

第四步:打开“本地安全策略”—>“本地策略”—>“用户权限分配”—>“作为服务登录”项,把新建的帐号apache添加进去

第五步:在“控制面板”—> “管理工具”—>”服务”中找到Apache 服务,右键”属性”—>”登录”,选中”此帐户”,浏览选择帐号apache

第六步:确认后,重启Apache

1.4应依据安全策略严格控制用户对有敏感标记重要信息资源的操作

1.4.1检查Apache服务器根目录访问权限

Users用户组无根目录写权限:

配置方法: 右键选择根目录”属性”,设置Users组的权限,不可允许“完全控制”和“修改”。Apache 专用账号apache属于Users组,为了避免被攻击后可获取高权限Web shell,须控制Users组对根目录的写权限。

1.4.2检查是否禁用CGI

禁止加载cgi相关模块:

在httpd.conf中,去掉所有与cgi相关的LoadModule 语句

禁止对cgi_bin目录进行配置:

在httpd.conf中,将cgi-bin目录的配置删除或者注释掉

2、安全审计

2.1应提供覆盖到每个用户的安全审计功能,对应用系统重要安全事件进行审计

2.2.1检查是否配置错误日志

设置错误日志文件:

在配置文件httpd.conf中设置错误日志文件路径,例如:ErrorLog logs/error_log,其中logs/error_log为相应的文件路径

设置错误信息详细程度为notice:

在httpd.conf中设置LogLevel字段如下: LogLevel notice

2.2.2检查是否配置访问日志

设置访问日志文件:

在配置文件httpd.conf中设置访问日志文件路径,例如: CustomLog log/access_log 其中log/access_log为相应的文件路径

2.2审计记录的内容至少应包括事件日期、时间、发起者信息、类型、描述和结果等

2.2.1检查是否配置日志记录格式

设置日志记录格式:

在配置文件httpd.conf中添加LogFormat命令,例如: LogFormat “%h %l %u % t \”%r\” %>s %b \”%{Accept}i\”\”%{Referer}i\” \”%{User-Agent}i\””

3、剩余信息保护

3.1应保证系统内的文件、目录和数据库记录等资源所在的存储空间被释放或重新分配给其他用户前得到完全清除

检查是否设置Apache在断定请求失败前等待10秒:

在httpd.conf中添加如下语句: TimeOut 10

4、软件容错

4.1在故障发生时,应用系统应能够继续提供一部分功能,确保能够实施必要的措施

4.1.1检查是否设置错误页面重定向

400错误页面重定向:

在httpd.conf中,配置400错误重定向页面,例如: ErrorDocument 400 /custom400.html /custom400.html为要显示的400错误页面

401错误页面重定向:

在httpd.conf中,配置401错误重定向页面,例如: ErrorDocument 401 /custom401.html /custom401.html为要显示的401错误页面

403错误页面重定向:

在httpd.conf中,配置403错误重定向页面,例如: ErrorDocument 403 /custom403.html /custom403.html为要显示的403错误页面

404错误页面重定向:

在httpd.conf中,配置404错误重定向页面,例如: ErrorDocument 404 /custom404.html /custom404.html为要显示的404错误页面

405错误页面重定向:

在httpd.conf中,配置405错误重定向页面,例如: ErrorDocument 405 /custom405.html /custom405.html为要显示的405错误页面

500错误页面重定向:

在httpd.conf中,配置500错误重定向页面,例如: ErrorDocument 500 /custom500.html /custom500.html为要显示的500错误页面

5、资源控制

5.1当应用系统的通信双方中的一方在一段时间内未作任何响应,另一方应能够自动结束会话

5.5.1检查是否设置持久链接中Apache在两次请求之间等待不超过15秒

持久链接保持秒数不超过15秒:

在httpd.conf中设置相关字段如下: KeepAliveTimeout 15

5.2应能够对一个时间段内可能的并发会话连接数进行限制

5.2.1检查是否缓冲http请求

对http请求进行缓冲:

在httpd.conf中增加如下语句: AcceptFilter http data

5.2.2检查是否缓冲https请求

缓冲https请求:

在httpd.conf中增加如下语句: AcceptFilter https data

5.2.3检查是否启用http持久链接

启用http持久链接:

在httpd.conf中添加如下语句: KeepAlive On

5.3应能够对一个访问帐户或一个请求进程占用的资源分配最大限额和最小限额

5.3.1检查是否限制http请求的消息主体的大小

限制http请求的消息主体大小在100K之内:

在httpd.conf中添加如下语句: LimitRequestBody 102400

限制http请求的消息主体大小:

在httpd.conf中不可设置LimitRequestBody字段值为0

6、数据保密性

6.1应采用加密或其他保护措施实现鉴别信息的存储保密性

6.1.1检查是否关闭TRACE方法

关闭TRACE方法:

在httpd.conf中设置相关语句如下: TraceEnable Off

6.1.2检查是否删除缺省安装的无用文件

删除缺省HTML文件:

根据情况删除相应目录下文件 如,删除C:\Program Files\apache2\htdocs\目录下的所有文件,不使用该默认路径存放页面。 其中C:\Program Files\apache2为apache安装路径

删除缺省CGI脚本:

根据情况删除相应目录下文件 如,删除C:\Program Files\apache2\cgi-bin\目录下的所有文件 其中C:\Program Files\apache2为apache安装路径

删除Apache说明文件:

根据情况删除相应目录下文件 如,删除C:\Program Files\apache2\manual目录下的所有文件 其中/usr/local/apache2为Apache安装路径

6.1.3检查是否隐藏Apache版本号及其他敏感信息

隐藏版本号:

在httpd.conf中按如下行修改相应语句: ServerToken Prod

隐藏签名:

在httpd.conf中设置ServerSignature字段如下: ServerSignature Off

6.2应对重要通信提供专用通信协议或安全通信协议服务,避免来自基于通用协议的攻击破坏数据保密性

检查是否支持HTTPS

加载mod_ssl模块:

在配置文件中添加如下语句: LoadModule ssl_module modules/mod_ssl.so

来源:freebuf.com 2020-09-17 15:45:05 by: fu福lin林

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论