
Nginx 설정 정적 분석기
Gixy는 Nginx 구성을 분석하는 도구입니다. Gixy의 주요 목표는 보안 구성 오류를 방지하고 결함 탐지를 자동화하는 것입니다.
현재 지원되는 Python 버전은 2.7, 3.5, 3.6, 3.7입니다.
면책 조항: Gixy는 GNU/Linux에서만 잘 테스트되었으며, 다른 OS에서는 문제가 있을 수 있습니다.
현재 Gixy는 다음을 탐지할 수 있습니다:
Gixy가 탐지하는 방법을 학습 중인 항목은 Issues labeled with "new plugin"에서 확인할 수 있습니다.
Gixy는 PyPI에 배포됩니다. 가장 좋은 설치 방법은 pip를 사용하는 것입니다:
pip install gixy
Gixy를 실행하고 결과를 확인하세요:
gixy
기본적으로 Gixy는 /etc/nginx/nginx.conf에 있는 Nginx 구성을 분석하려고 시도합니다.
하지만 언제든지 필요한 경로를 지정할 수 있습니다:
$ gixy /etc/nginx/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/ru/plugins/httpsplitting.md
Reason: At least variable "$action" can contain "\n"
Pseudo config:
include /etc/nginx/sites/default.conf;
server {
location ~ /v1/((?<action>[^.]*)\.json)?$ {
add_header X-Action $action;
}
}
==================== Summary ===================
Total issues:
Unspecified: 0
Low: 0
Medium: 0
High: 1
또는 일부 테스트를 건너뛸 수 있습니다:
$ gixy --skips http_splitting /etc/nginx/nginx.conf
==================== Results ===================
No issues found.
==================== Summary ===================
Total issues:
Unspecified: 0
Low: 0
Medium: 0
High: 0
또는 다른 옵션은 도움말 명령어로 확인할 수 있습니다: gixy --help
Gixy는 Docker Hub에서 Docker 이미지로 제공됩니다. 사용하려면 분석할 구성을 볼륨으로 마운트하고 Gixy 이미지를 실행할 때 구성 파일의 경로를 제공하세요.
$ docker run --rm -v `pwd`/nginx.conf:/etc/nginx/conf/nginx.conf yandex/gixy /etc/nginx/conf/nginx.conf
이미 nginx 구성을 포함하는 이미지가 있다면, 해당 구성을 Gixy 컨테이너와 볼륨으로 공유할 수 있습니다.
$ docker run --rm --name nginx -d -v /etc/nginx
nginx:alpinef68f2833e986ae69c0a5375f9980dc7a70684a6c233a9535c2a837189f14e905
$ docker run --rm --volumes-from nginx yandex/gixy /etc/nginx/nginx.conf
==================== Results ===================
No issues found.
==================== Summary ===================
Total issues:
Unspecified: 0
Low: 0
Medium: 0
High: 0
Gixy에 대한 기여는 언제나 환영합니다! 다양한 방법으로 도움을 주실 수 있습니다:
코드 가이드라인: