基于互联网行业的日益发展壮大,对安全性这块的领域,无论是国家还是企业都是非常重视,信息安全、网络安全也是一道不可逾越的鸿沟。所以也诞生出很多第三方信息安全的检测机构,他们会针对我们的整个站点和整个服务进行安全检测,为此今天针对服务器的各个环境的安全的一个漏洞进行描述和解决,主要包括市场主流的Apache、Nginx、IIS。

漏洞简介:可通过HTTP获取远端WWW服务信息,本插件检测远端HTTP Server信息。这可能使得攻击者了解远程系统类型以便进行下一步的攻击。

大部分的第三方安全检测软件都会报类似的漏洞信息:

一、Apache服务解决办法:

apache版本”httpd-2.4.39”

Apache中关闭目录浏览功能:
打开Apache配置文件httpd.conf。查找 “Options Indexes FollowSymLinks”,修改为“ Options -Indexes”(减号表示取消),保存退出,重启Apache。

二、Nginx服务解决办法:

首先看Nginx的服务在客户端运行的情况

通过这个 HTTP 的请求得到的 Response Headers 里我们可以查看到一个信息是 Server: Nginx 说明对方使用的是 Nginx 做 web 服务,可以为下一步攻击提供信息,试探 Nginx 某个版本的漏洞发起攻击等。 对于公司业务来说,这个确实是有安全隐患的,虽然定义为低风险,还是应该要修复的,修复方式是改变HTTP服务器的缺省 banner。

修改流程:

  1. 这种方式适合编译安装Nginx的模式,下载Nginx扩展headers-more-nginx-module
    1
    wget https://github.com/openresty/headers-more-nginx-module/archive/v0.30.tar.gz
  2. 解压:tar -zxvf v0.30.tar.gz
  3. 进入到Nginx的安装目录 执行nginx -V查看安装参数,拷贝configure arguments后的安装参数。我这里的Nginx的安装路径是/www/server/nginx/src
  4. 在src目录下,执行./configure粘贴的内容--add-module=headers-more-nginx-module的路径,建议headers-more-nginx-module的路径也放在src下。
  5. 执行make && make install
  6. 执行完以上操作就可以到Nginx.conf的http中添加more_clear_headers 'Server';

效果:Response Headers 里的 Server: Nginx 不见了

三、IIS服务解决办法:

IIS版本: [Microsoft-IIS/7.5]

处理方法:

  1. 实现IHttpModule接口 将Response Headers 相应信息移除
  2. 在web.config的<httpProtocol><customHeaders>子节点中添加<remove name=”X-Powered-By”/>节点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public  class HeaderFilterHttpModule: IHttpModule
{
public void Init(HttpApplication context)
{
context.PreSendRequestHeaders += OnPreSendRequestHeaders;
}

public void Dispose()
{ }

void OnPreSendRequestHeaders(object sender, System.EventArgs e)
{
//过滤掉 Response Headers 的banner ,以隐藏服务器和平台信息
HttpContext.Current.Response.Headers.Remove("Server");
HttpContext.Current.Response.Headers.Remove("X-AspNet-Version");
HttpContext.Current.Response.Headers.Remove("X-Frame-Options");
}
}

web.config:

1
2
3
4
5
6
7
8
9
<modules>
<!--改变您的HTTP服务器的缺省banner配置-->
<add name="HeaderFilterModule" type="JoinTop.VRVEIS.BLL.HeaderFilterHttpModule,JoinTop.VRVEIS.BLL"/>
</modules>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By"/>
</customHeaders>
</httpProtocol>

至此,基本流行的三种服务的“可通过HTTP获取远端WWW服务信息 本插件检测远端HTTP Server信息 这可能使得攻击者了解远程系统类型以便进行下一步的攻击”这类漏洞已彻底解决。