Nginx配置文件安全分析工具:Gixy

《Nginx配置文件安全分析工具:Gixy》要点:
本文介绍了Nginx配置文件安全分析工具:Gixy,希望对您有用。如果有疑问,可以联系我们。

Gixy是一款用来分析Nginx配置文件的工具. Gixy的主要目标是防止安全配置错误,并自动进行缺陷检测.

Gixy特性

  • 找出服务器端请求伪造.
  • 验证HTTP拆分.
  • 验证referrer/origin问题.
  • 验证是否正确通过add_header指令重新定义Response Headers.
  • 验证请求的主机头是否伪造.
  • 验证valid_referers是否为空.
  • 验证是否存在多行主机头.

项目地址:https://github.com/yandex/gixy

Gixy安装

Gixy是一个Python开发的应用,目前支持的Python版本是2.7和3.5+.

安装步骤非常简单,直接使用pip安装即可:

$ pip install gixy

如果你的系统比较老,自带Python版本比较低.可参考「使用pyenv搭建python虚拟环境」或者「如何在CentOS上启用软件集Software Collections(SCL)」升级Python版本.

Gixy使用

Gixy默认会检查/etc/nginx/nginx.conf配置文件.

$ gixy

也可以指定NGINX配置文件所在的位置.

$ gixy /usr/local/nginx/conf/nginx.conf

==================== Results ===================

No issues found.

==================== Summary ===================

Total issues:

Unspecified: 0

Low: 0    Medium: 0

High: 0

来看一个http折分配置有问题的示例,修改Nginx配置:

server {

location ~ /v1/((?<action>[^.]*)\.json)?$ {
add_header X-Action $action;
}

}

再次运行Gixy检查配置.

$ gixy /usr/local/nginx/conf/nginx.conf

==================== Results ===================

>> Problem: [http_splitting] Possible HTTP-Splitting vulnerability.
Description: Using variables that can contain “\n” may lead to http injection.
Additional info: https://github.com/yandex/gixy/blob/master/docs/en/plugins/httpsplitting.md
Reason: At least variable “$action” can contain “\n”
Pseudo config:

server {
server_name localhost mike.hi-linux.com;

location ~ /v1/((?<action>[^.]*)\.json)?$ {
add_header X-Action $action;
}
}

==================== Summary ===================
Total issues:
Unspecified: 0
Low: 0
Medium: 0
High: 1

从结果可以看出检测到了一个问题,指出问题类型为http_splitting.原因是$action变量中可以含有换行符.这就是HTTP响应头拆分漏洞,通过CRLFZ注入实现攻击.

如果你要暂时忽略某类错误检查,可以使用--skips参数:

$ gixy –skips http_splitting /usr/local/nginx/conf/nginx.conf
==================== Results ===================
No issues found.

==================== Summary ===================
Total issues:
Unspecified: 0
Low: 0
Medium: 0
High: 0

更多使用方法可以参考gixy --help命令.

参考文档

http://www.google.comhttps://github.com/yandex/gixy

文章来自微信公众号:运维之美

相关文章

每个HTTP请求和响应都会带有相应的头部信息。默认情况下,在...
&quot;Markdown自动生成目录&quot; &quot;使用n...
当我们从客户端向服务器发送请求时&#160;服务器向我们返...
原理 介绍 哈希表(Hash table,也叫散列表), 是根据关键码...
一 共享秘钥 1.1 概念 共享秘钥和我们生活中同一把锁的钥匙概...
正向代理的概念 正向代理,也就是传说中的代理,他的工作原理就...