본문 바로가기
정보보호 (Security)

Apache 웹서버 서비스 거부 취약점 보안업데이트

by 날으는물고기 2011. 9. 13.

Apache 웹서버 서비스 거부 취약점 보안업데이트

728x90

Apache HTTP Server 서비스 거부(DoS) 취약점 분석 및 보안 업데이트 가이드 – CVE-2011-3192

1. 개요

Apache HTTP Server에서 원격 서비스 거부(Denial of Service, DoS) 공격이 가능한 보안 취약점인 CVE-2011-3192가 발견되었다.

해당 취약점은 HTTP 프로토콜의 Range 헤더를 처리하는 과정에서 발생하는 문제로, 공격자는 특수하게 조작된 HTTP 요청을 원격 서버에 전송하여 Apache 웹서버의 메모리 및 CPU 자원을 과도하게 소모시킬 수 있다.

특히 여러 개의 중첩된 바이트 범위(Multiple Overlapping Byte Ranges)를 지정한 HTTP 요청을 반복적으로 전송할 경우, 서버 내부에서 요청을 처리하는 데 필요한 자원이 급격하게 증가할 수 있다.

이로 인해 정상적인 사용자 요청까지 처리하지 못하게 되어 웹서비스 장애 또는 서비스 중단이 발생할 수 있다.

해당 취약점은 2011년 8월 공개되었으며, 당시 공격 방법과 관련 도구가 공개적으로 유통되어 취약한 Apache 웹서버를 운영하는 시스템에 대한 적극적인 보안 조치가 요구되었다.

주요 취약점 정보

구분내용

취약점 명칭 Apache HTTP Server Range Header DoS
CVE 번호 CVE-2011-3192
취약점 유형 서비스 거부(DoS)
공격 방식 HTTP Range 헤더 조작
공격 위치 원격 네트워크
주요 영향 메모리 및 CPU 자원 고갈
보안 영향 웹서비스 지연 및 서비스 중단
최초 공개 2011년 8월 29일

2. 취약점 발생 원인

2.1 HTTP Range 헤더란?

HTTP Range 헤더는 클라이언트가 서버에 저장된 리소스 중 특정 바이트 범위만 요청할 수 있도록 지원하는 HTTP 기능이다.

예를 들어 대용량 파일을 다운로드할 때 파일 전체를 한 번에 내려받는 대신 필요한 일부 영역만 요청하거나, 다운로드가 중단된 경우 이어받기를 수행하는 데 활용된다.

일반적으로 Range 요청은 정상적인 웹서비스 기능이며, Apache 웹서버도 이를 처리하기 위한 내부 기능을 제공한다.

그러나 CVE-2011-3192는 Apache의 바이트 범위 처리 필터(Byte Range Filter)가 여러 개의 중첩된 범위 요청을 효율적으로 처리하지 못하면서 발생했다.

2.2 취약점 발생 구조

공격자는 하나의 HTTP 요청에 다수의 중첩된 바이트 범위를 지정하여 서버에 전달할 수 있다.

Apache 웹서버는 해당 요청을 처리하는 과정에서 내부적으로 다수의 데이터 처리 작업을 발생시키며, 비효율적인 메모리 관리와 처리 과정으로 인해 CPU 및 메모리 사용량이 급격하게 증가할 수 있다.

이러한 요청이 반복되면 서버의 가용 자원이 소진되어 정상적인 서비스 제공이 어려워진다.

취약점 발생 과정

  1. 공격자가 조작된 HTTP Range 요청을 전송한다.
  2. Apache 웹서버가 요청에 포함된 다수의 바이트 범위를 분석한다.
  3. 내부 Byte Range 처리 과정에서 과도한 데이터 처리 작업이 발생한다.
  4. 서버의 CPU 및 메모리 사용량이 증가한다.
  5. 서버 자원이 고갈되면서 정상적인 요청 처리가 지연되거나 실패한다.
  6. 최종적으로 웹서비스 장애 또는 서비스 거부 상태가 발생한다.

2.3 공격 구조 및 서비스 장애 흐름

공격의 핵심은 서버에 침입하거나 데이터를 탈취하는 것이 아니라, 웹서버가 정상적인 요청을 처리하지 못하도록 가용성을 저하시키는 데 있다.

따라서 이 취약점은 기밀성이나 데이터 무결성보다는 서비스 가용성(Availability)에 직접적인 영향을 미치는 보안 취약점이다.

3. 취약점 영향 시스템

3.1 영향받는 Apache HTTP Server 버전

CVE-2011-3192의 공식 취약점 정보에 따르면 다음 버전이 영향을 받는다.

구분영향받는 버전

Apache 1.3 1.3.x 계열
Apache 2.0 2.0.64 및 이전 버전
Apache 2.2 2.2.19 및 이전 버전

※ 실제 영향 여부는 운영체제 배포판에서 제공하는 패키지 및 백포트 보안 패치 적용 여부에 따라 달라질 수 있다. 버전 문자열만으로 취약 여부를 단정하지 말고 공급업체의 보안 권고를 함께 확인해야 한다.

3.2 주요 보안 영향

해당 취약점으로 발생할 수 있는 대표적인 피해는 다음과 같다.

  • 웹서비스 중단: Apache 프로세스가 정상적인 HTTP 요청을 처리하지 못해 웹사이트 접속 장애 발생
  • 시스템 자원 고갈: 메모리 및 CPU 사용량 증가로 시스템 전체 성능 저하
  • 정상 사용자 서비스 장애: 공격 요청이 서버 자원을 점유하여 일반 사용자의 접속 요청 처리 실패
  • 서비스 연속성 저하: 웹서비스 장애로 업무 시스템, 온라인 서비스 및 외부 연계 시스템에 영향 발생
  • 운영 비용 증가: 장애 복구, 시스템 재기동 및 보안 대응에 추가적인 관리 비용 발생

4. 취약점 해결 방안 및 보안 업데이트

4.1 Apache 보안 패치 적용

Apache 프로젝트는 CVE-2011-3192에 대한 수정 사항을 Apache HTTP Server 2.2.20에서 최초 반영했다.

이후 2.2.21 버전에서는 해당 취약점의 바이트 범위 요청 처리에 대한 추가 수정이 이루어졌다.

따라서 당시 Apache 2.2 계열을 사용하는 환경에서는 2.2.21 이상으로 업데이트하는 것이 권고되었다.

버전주요 내용

2.2.19 이하 CVE-2011-3192 영향 대상
2.2.20 CVE-2011-3192 최초 수정 반영
2.2.21 CVE-2011-3192 추가 수정 반영
2.0.65 Apache 2.0 계열의 후속 수정 버전
1.3.x 보안 업데이트 지원 중단에 따른 상위 계열 이전 필요

※ 2.2.21 릴리스에는 별도로 CVE-2011-3348(mod_proxy_ajp 및 mod_proxy_balancer 관련 DoS) 수정도 포함되어 있다.

현재 운영 환경에 대한 권고

Apache 2.2.21은 역사적인 취약점 대응 버전이지 현재 사용을 권장하는 버전이 아니다.

Apache 1.3 및 2.2 계열은 현재 지원이 종료된 구형 버전이므로, 실제 운영 환경에서는 지원 중인 Apache HTTP Server 계열의 최신 보안 업데이트 버전으로 업그레이드해야 한다.

운영체제에서 Apache 패키지를 제공하는 경우에는 해당 배포판의 최신 보안 업데이트를 우선 확인하고 적용한다.

4.2 Apache 웹서버 버전 확인

보안 업데이트를 적용하기 전에 현재 운영 중인 Apache 버전을 확인한다.

Linux 환경

apachectl -v

또는

httpd -v

실행 결과 예시:

Server version: Apache/2.2.19
Server built:   Aug 20 2011

위와 같이 2.2.19 이하 버전이 확인된다면 CVE-2011-3192의 영향 대상인지 확인하고 보안 조치를 진행해야 한다.

추가로 실제 실행 프로세스와 설치 패키지의 버전이 일치하는지도 확인하는 것이 좋다.

4.3 Apache 보안 업데이트 적용

운영체제 및 설치 방식에 따라 업데이트 방법이 다르다.

① Debian / Ubuntu 계열

패키지 목록을 갱신한 후 Apache 보안 업데이트를 적용한다.

sudo apt update
sudo apt install --only-upgrade apache2

② RHEL / CentOS / Fedora 계열

sudo dnf update httpd

구형 환경에서 YUM을 사용하는 경우:

sudo yum update httpd

※ 위 명령어는 패키지 관리자를 통해 업데이트하는 일반적인 예시다. 운영체제 버전, 저장소 구성, 패키지 이름 및 공급업체의 지원 정책에 따라 실제 적용 명령은 달라질 수 있다.

③ 소스코드 직접 설치 환경

소스코드로 설치한 Apache는 공식 다운로드 페이지에서 지원되는 버전을 확인한 뒤, 운영 환경에 맞게 빌드 및 설치해야 한다.

https://httpd.apache.org/download.cgi

기존 설정 파일, 가상 호스트 구성, 모듈 및 라이브러리 의존성을 사전에 확인하고 백업한 후 업데이트를 진행한다.

4.4 Apache 서비스 재시작 및 적용 확인

업데이트가 완료되면 설정 파일의 문법을 검사한다.

sudo apachectl configtest

정상적인 경우 다음과 같이 출력된다.

Syntax OK

이후 서비스 재시작을 진행한다.

sudo systemctl restart httpd

Debian / Ubuntu 계열에서는 서비스명이 apache2일 수 있다.

sudo systemctl restart apache2

서비스 상태 확인:

sudo systemctl status httpd

버전 확인:

httpd -v

업데이트 이후 실제 실행 버전과 서비스 정상 동작 여부를 확인해야 한다.

5. 추가 보안 대응 방안

보안 패치 적용 외에도 웹서버의 안정적인 운영과 유사한 서비스 거부 공격에 대비하기 위한 추가 보안 대책이 필요하다.

5.1 HTTP Range 요청 제한

Range 요청은 정상적인 서비스 기능이므로 무조건 차단하기보다는 서비스 특성에 맞게 요청 범위 및 개수를 제한하는 것이 바람직하다.

Apache의 MaxRanges 지시어를 활용하면 허용할 Range 요청 개수를 제한할 수 있다.

예시:

MaxRanges 5

해당 설정은 Range 요청 처리 범위를 제한하기 위한 보완책이다. 취약한 Apache 버전을 안전하게 만들어 주는 대체 패치는 아니므로 반드시 보안 업데이트와 함께 적용해야 한다.

5.2 웹방화벽(WAF) 및 네트워크 보안 강화

  • 비정상적인 HTTP Range 요청 탐지
  • 반복적이고 과도한 HTTP 요청에 대한 접근 제한
  • 웹방화벽의 DoS 방어 정책 적용
  • IP 및 요청 패턴 기반 접근 제어
  • 비정상적인 트래픽에 대한 차단 및 경보 설정

5.3 시스템 자원 모니터링

Apache 웹서버의 자원 사용량을 지속적으로 모니터링해야 한다.

주요 점검 항목은 다음과 같다.

점검 항목확인 내용

CPU 비정상적인 사용률 증가 여부
Memory 메모리 점유율 및 고갈 여부
Apache Process 프로세스 및 작업자 수 증가 여부
HTTP Access Log 비정상적인 요청 반복 여부
Error Log 요청 처리 오류 및 프로세스 이상 여부
Network Traffic 비정상적인 트래픽 급증 여부

5.4 로그 분석 및 이상 징후 탐지

Apache Access Log 및 Error Log를 정기적으로 분석하여 비정상적인 요청 패턴을 확인한다.

특히 짧은 시간 동안 특정 IP 또는 다수의 IP에서 비정상적으로 많은 HTTP 요청이 발생하는 경우 보안 이벤트로 분류하여 분석할 필요가 있다.

6. 보안 업데이트 적용 후 점검 사항

보안 패치 적용 이후에는 다음 항목을 기준으로 최종 점검을 수행한다.

번호점검 항목확인 내용

1 Apache 버전 확인 취약한 버전 사용 여부
2 보안 패치 적용 공급업체 보안 업데이트 적용 여부
3 설정 파일 검사 Syntax OK 확인
4 서비스 상태 확인 Apache 정상 실행 여부
5 웹서비스 접속 확인 HTTP 및 HTTPS 정상 응답 여부
6 시스템 자원 확인 CPU 및 메모리 정상 여부
7 로그 모니터링 비정상적인 요청 및 오류 발생 여부
8 재발 방지 정기적인 보안 업데이트 및 취약점 점검 여부

7. 결론

Apache HTTP Server의 CVE-2011-3192 취약점은 HTTP Range 헤더를 처리하는 과정에서 발생하는 서비스 거부 취약점으로, 원격 공격자가 특수하게 조작된 HTTP 요청을 이용하여 서버의 메모리와 CPU 자원을 과도하게 소모시킬 수 있는 문제이다.

해당 취약점은 웹서버 자체에 대한 직접적인 침입이나 데이터 탈취가 없어도 정상적인 서비스 제공을 방해할 수 있다는 점에서 운영 환경에 상당한 영향을 미칠 수 있다.

당시 Apache 프로젝트는 2.2.20에서 최초 수정 사항을 반영했으며, 2.2.21에서 추가적인 보완 작업을 진행했다.

현재는 해당 버전들이 모두 구형이므로, 과거의 패치 버전을 그대로 적용하는 것이 아니라 지원되는 최신 보안 업데이트 버전으로 전환하는 것이 중요하다.

무엇보다 웹서버 관리자는 정기적인 보안 패치 적용, HTTP 요청 모니터링, 시스템 자원 점검 및 웹방화벽 운영 등을 통해 서비스 가용성을 지속적으로 확보해야 한다.

안전한 웹서비스 운영을 위해서는 취약점 발견 이후의 일회성 조치뿐 아니라 지속적인 보안 관리와 예방 중심의 운영 체계가 필요하다.


8. 참고 자료 및 공식 사이트

  1. CVE-2011-3192 취약점 정보 (MITRE)
    https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3192
  2. Apache HTTP Server 2.2 보안 취약점 목록
    https://httpd.apache.org/security/vulnerabilities_22.html
  3. Apache HTTP Server 2.2.21 릴리스 공지
    https://www.mail-archive.com/announce%40httpd.apache.org/msg00082.html
  4. Apache HTTP Server 공식 다운로드
    https://httpd.apache.org/download.cgi
  5. Apache CVE-2011-3192 보안 권고
    https://httpd.apache.org/security/CVE-2011-3192.txt
  6. 한국인터넷침해대응센터
    국번 없이 118

핵심 요약

  • 취약점: CVE-2011-3192
  • 공격 방식: 조작된 HTTP Range 헤더 전송
  • 주요 원인: Byte Range 처리 과정의 비효율적인 자원 사용
  • 주요 영향: CPU 및 메모리 고갈, 웹서비스 장애
  • 당시 최초 수정: Apache 2.2.20
  • 당시 추가 수정: Apache 2.2.21
  • 현재 권고: 지원되는 Apache 버전으로 업그레이드 및 최신 보안 패치 적용
728x90

댓글