웹사이트 검색

HTTPOXY 취약점: 웹 서버를 보호하고 테스트하는 방법


이 페이지에서

  1. 1 HTTPOXY는 내 서버에 어떤 영향을 줍니까?\n
    1. 1.1 일반 솔루션

    1. Apache를 사용하는 2.2 Debian 8(Jessie)\n
    2. Apache가 포함된 2.2 Debian 7(Wheezy)\n
    3. Nginx를 사용하는 2.3 데비안\n

    1. Apache를 사용하는 3.1 Ubuntu\n
    2. 3.2 Nginx가 있는 우분투

    1. 4.1 아파치
    2. 4.2 엔진엑스

    최근에 발견된 HTTPOXY 취약점은 cgi 또는 cgi와 유사한 환경에서 실행되는 응용 프로그램에 영향을 미치는 취약점입니다. 이는 이 문제가 Apache 및 Nginx를 포함한 거의 모든 웹 서버와 대부분의 PHP 애플리케이션에 영향을 미친다는 것을 의미합니다. Apache의 mod_php 모드도 영향을 받습니다.

    이 자습서에서는 HTTPOXY로부터 웹 서버를 보호하는 방법을 보여줍니다. 여기에는 가장 많이 사용되는 Linux 배포판 CentOS + RHEL, Debian 및 Ubuntu에 대한 섹션이 포함되어 있습니다. 이 단계는 다른 Linux 배포판에도 적용할 수 있지만 구성 파일의 경로는 다를 수 있습니다.

    HTTPOXY 취약점에 대한 자세한 설명은 https://httpoxy.org/ 웹 사이트에서 찾을 수 있습니다.

    이 가이드에 설명된 단계는 ISPConfig 퍼펙트 서버 가이드와 호환됩니다.

    1 HTTPOXY는 내 서버에 어떤 영향을 미칩니까?

    HTTPOXY는 HTTP_PROXY 변수를 존중하고 환경에서 HTTP_PROXY를 실제 또는 에뮬레이트된 변수로 사용하는 프록시 구성 및 서버 측 애플리케이션에 이를 사용하는 클라이언트에 영향을 미칩니다. 공격의 결과는 웹 애플리케이션이 공격자가 선택한 대상 시스템으로 프록시되는 트래픽이거나 애플리케이션이 다른 시스템으로 나가는 연결을 여는 것일 수 있습니다. 이 취약점은 원격으로 쉽게 악용될 수 있고 서버에서 이를 검색할 수 있으므로 서버에서 이를 닫는 조치를 취하는 것이 좋습니다.

    1.1 일반 솔루션

    현재 권장되는 솔루션은 HTTP_PROXY 헤더 변수를 설정 해제하거나 필터링하는 것입니다. 이것은 mod_headers 모듈과 다음 구성 문을 사용하여 아파치에서 수행됩니다.

    RequestHeader unset Proxy early

    Nginx에서는 이 줄을 사용하여 HTTP_PROXY 변수를 설정 해제할 수 있습니다.

    fastcgi_param HTTP_PROXY "";

    다음 장에서는 다양한 Linux 배포판에 대한 자세한 절차를 설명합니다.

    2 데비안

    이 장에서는 HTTPOXY에 대해 Debian 8(Jessie) 및 Debian 7(Wheezy) 서버에서 Apache 및 Nginx를 보호하는 구성에 대해 설명합니다. 다음 단계에서는 쉘에서 루트 사용자로 로그인했다고 가정합니다. 다른 사용자로 로그인한 경우 su 명령(또는 sudo를 구성한 경우 sudo)을 사용하여 루트 사용자가 됩니다.

    2.2 Apache를 사용하는 Debian 8(Jessie)

    아파치 헤더 모듈 활성화

    a2enmod headers

    전역 구성 파일 /etc/apache2/conf-available/httpoxy.conf를 추가합니다. 여기서는 nano 편집기를 사용하겠습니다.

    nano /etc/apache2/conf-available/httpoxy.conf

    해당 파일에 다음 콘텐츠를 붙여넣습니다.

    <IfModule mod_headers.c>
        RequestHeader unset Proxy early
    </IfModule>

    파일을 저장합니다. 그런 다음 a2enconf 명령을 사용하여 구성에서 활성화하고 Apache를 다시 시작합니다.

    a2enconf httpoxy
    service apache2 restart

    2.2 Apache를 사용하는 데비안 7(Wheezy)

    Apache 헤더 모듈을 활성화합니다.

    a2enmod headers

    전역 구성 파일 /etc/apache2/conf.d/httpoxy.conf를 추가합니다. 여기서는 nano 편집기를 사용하겠습니다.

    nano /etc/apache2/conf.d/httpoxy.conf

    해당 파일에 다음 콘텐츠를 붙여넣습니다.

    <IfModule mod_headers.c>
        RequestHeader unset Proxy early
    </IfModule>

    파일을 저장합니다. 그런 다음 아파치를 다시 시작하십시오.

    service apache2 restart

    2.3 Nginx를 사용하는 데비안

    다음 명령은 HTTP_PROXY 변수를 빈 문자열로 설정하는 fastcgi_param을 /etc/nginx/fastcgi_params 파일에 추가합니다.

    echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

    그런 다음 nginx를 다시 시작하여 구성 변경을 적용합니다.

    service nginx restart

    3 우분투

    이 장에서는 Ubuntu 14.04 - 16.04 서버에서 HTTPOXY에 대해 Apache 및 Nginx를 보호하는 구성에 대해 설명합니다.

    3.1 아파치와 우분투

    아파치 헤더 모듈을 활성화합니다.

    sudo a2enmod headers

    전역 구성 파일 /etc/apache2/conf-available/httpoxy.conf를 추가합니다. 여기서는 nano 편집기를 사용하겠습니다.

    sudo nano /etc/apache2/conf-available/httpoxy.conf

    해당 파일에 다음 콘텐츠를 붙여넣습니다.

    <IfModule mod_headers.c>
        RequestHeader unset Proxy early
    </IfModule>

    파일을 저장합니다. 그런 다음 a2enconf 명령을 사용하여 구성에서 활성화하고 Apache를 다시 시작합니다.

    sudo a2enconf httpoxy
    sudo service apache2 restart

    3.2 Nginx를 사용한 우분투

    HTTPOXY로부터 Ubuntu를 보호하는 단계는 Debian의 단계와 유사합니다. sudo로 명령을 실행하기만 하면 됩니다. 이 echo 명령은 HTTP_PROXY 변수를 빈 문자열로 설정하는 fastcgi_param 행을 추가합니다. /etc/nginx/fastcgi_params 파일은 nginx 가상 호스트 파일의 기본 @PHP 및 cgi-bin 섹션과 ISPConfig에 의해 생성되는 가상 호스트에도 포함됩니다. 맞춤 가상 호스트를 추가한 경우 php 및 기타 cgi 또는 fastcgi 커넥터의 구성 섹션에 "include /etc/nginx/fastcgi_params;"가 포함되어 있는지 확인하세요.

    다음 명령을 실행하여 빈 HTTP_PROXY 변수를 추가합니다.

    sudo echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

    그런 다음 Nginx를 다시 시작하여 구성 변경을 적용합니다.

    sudo service nginx restart

    4 CentOS, RHEL 및 페도라

    이 장에서는 HTTPOXY로부터 CentOS 서버의 Apache 및 Nginx를 보호하는 구성에 대해 설명합니다. 동일한 단계가 Fedora 서버에서도 작동합니다. 아래 명령을 진행하기 전에 쉘에서 루트 사용자로 로그인하십시오.

    4.1 아파치

    CentOS의 Apache(httpd) 구성 파일은 /etc/httpd/conf/httpd.conf입니다. 다음 명령을 사용하여 httpd.conf 파일 끝에 apache 헤더 규칙을 추가합니다.

    echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

    그런 다음 httpd를 다시 시작하여 구성 변경 사항을 적용하십시오.

    service httpd restart

    4.2 엔진엑스

    CentOS의 Nginx 웹 서버는 기본 가상 호스트의 PHP 및 CGI 섹션에 fastcgi_params를 포함하므로 빈 HTTP_PROXY 변수를 설정하는 규칙을 추가할 수 있습니다. 빈 HTTP_PROXY 변수를 추가하려면 이 명령을 실행하십시오.

    echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

    그런 다음 nginx를 다시 시작하여 구성 변경을 적용합니다.

    service nginx restart

    5 테스트

    마지막으로 지금 서버가 안전한지 테스트해야 합니다. Luke Rehman은 https://httpoxy.rehmann.co/에서 찾을 수 있는 멋진 온라인 테스트 도구를 개발했습니다.

    도구에 서버 또는 웹사이트의 URL을 입력하고 "테스트" 버튼을 클릭하십시오.

    다음은 linux-console.net의 결과입니다. 보시다시피 저희 웹사이트는 안전합니다.

    6 링크

    • HTTPOXY 웹사이트
    • Debian 8 레시피에 대해 Jesse에게 감사합니다.\n