시스템이야기2011. 8. 31. 17:15
지난주 '아파치 웹서버를 한방에 다운시키는 Range요청 취약점'이 발표되었다.

apache 웹서버


국내에서는 이 DoS 취약점에 대해 너무나 조용하지만, 한방에 서버를 다운시킬 수 있는 심각한 문제이다. 아파치 웹서버(Apache)에 정상적이지 않은 형태로 Range 헤더를 요청하면, 웹서버의 load는 단 몇초만에 급상승하여 서버는 응답을 처리할 수가 없다.

아파치 1.3, 2.0, 2.2버전대 모두 DoS 취약점이 존재한다. 오늘 DoS 취약점을 패치한 2.2.20 버전을 발표했다.

SECURITY: CVE-2011-3192 (cve.mitre.org) core: Fix handling of byte-range requests to use less memory, to avoid denial of service. If the sum of all ranges in a request is larger than the original file, ignore the ranges and send the complete file. PR 51714.

예전 1.3.x버전 운영중인 분들은 더 이상 지원하지 않는 버전대를 버리고 2.2.x대로 갈아타시기 권장한다. 2.0.x버전대는 조만간 발표될 것이다.
2.2.20 테스트 결과, 해당 취약점이 패치된 것을 확인했다.


Posted by 좋은진호
시스템이야기2011. 8. 30. 13:22


apache


jjun님이 글을 쓰셨으니 간단하게만 몇가지 언급하겠다.

'아파치 웹서버 무력화시킬 심각한 DoS 결함 발견' 기사에는 mod_deflate또는 mod_gzip 모듈과 관련이 있는 것으로 쓰여있지만, 이 모듈과는 무관하게 취약점이 존재한다. 해당 모듈을 주석처리해도 악의적인 Range 헤더 요청에 대해 똑같은 문제가 있으며, 아파치 메일링 리스트에서도 이 모듈을 언급한 것은 잘못된 판단이었다고 한다.

* Bug 51714 - Byte Range Filter might consume huge amounts of memory combined with compressed streams
As discussed on the Apache Dev Mailing list it looks like this issue has nothing to do with mod_deflate or mod_gzip, wrong assumption by me.

웹페이지 size에 따라서, Range 헤더의 문제가 발생할 수도 있고 없을 수도 없다.

1) mod_php5모듈이 없다면 웹페이지 size에 상관없이 문제가 있다.
2) mod_php5모듈과 함께 아파치를 동작중이라면 8000bytes 이하의 웹페이지를 요청할 때만 문제가 발생한다. mod_php5 모듈이 있더라도 php로 인식하지 않는 확장자(예를 들어 .css, js, .txt 등)는 사이즈에 상관없이 문제가 있다.

따라서 index페이지만 체크하고 '우리는 문제가 없네'라고 판단해서는 안된다. php로 된 index가 8000bytes를 넘는다면, 취약점이 없는 것으로 보일 수 있기 때문이다.

Request 헤더에 Range: bytes=0-,1-2,2-3,4-5 같은 형태로 요청했다고 가정하자.

0-은 해당 웹페이지의 시작부터 끝까지를, 1-2는 웹페이지의 2번째~3번째 문자(0부터 시작하니깐 1-2는 2~3번째)를, 나머지도 같은 의미이다. 일반적으로 콤마(,)로 구분해서 여러 필드를 요청하는 경우는 없다라고 생각하면 된다.

[ 아파치 설정에서 Range헤더에 콤마를 제한하는 예 ]
SetEnvIf Range (,.*?){5,} bad-range=1
RequestHeader unset Range env=bad-range

따라서 위처럼 5개 필드 이상(콤마가 5개 이상)인 경우만 제한해도 좋고, 간단하게 콤마(,)가 포함된 경우를 차단해도 무방할 것으로 보인다.
곧 패치버전이 나올 것이다. 하지만 그 때까지는 L7장비 또는 웹서버에서 Range 헤더 조건 강화하는 방법으로 차단해야 할 것이다.


* 관련글 :
  - Mitigation of Apache Range Header DoS Attack
  - DoS with mod_deflate & range requests

* 내용 추가 (2011.8.31(수) 점심)

이 DoS 취약점을 패치한 2.2.20 버전이 발표되었다.

- Release 정보 : http://www.apache.org/dist/httpd/Announcement2.2.html
- 다운받기 : http://ftp.daum.net/apache/httpd/




Posted by 좋은진호
IT이야기2009. 8. 16. 16:34
microsoft.com의 과거 웹사이트를 소개한 A Brief History of Microsoft on the Web: Reflections on microsoft.com from Birth to 'Middle Age' 를 살펴봤다.

* 1994년 4월~1995년 8월 (서버 3대)
microsoft.com MS 초기 웹사이트

[ 이미지 출처 : 위에서 소개한 MS 사이트 ]


초기의 서버는 총 3대로 운영되었다. 웹서버와 FTP, 그리고 Gopher(고퍼) 서버가 각각 1대씩 운영되었다. 다음 사진을 보라. 맨 위부터 FTP, Gopher, 웹서버까지 딱 이게 전부였다. 서버 크기는 대략 8U 정도로 보인다. 초기에는 WindowsNT 3.1와  EMWAC(European Microsoft Windows Academic Consortium) 웹서버를사용했다. 웹페이지 맨 하단을 보면 그 뒤에 NT 3.5로 업그레이드 했다는 것을 알 수 있다.

[ microsoft.com의 최초 랙(rack) ]


※ 고퍼는 웹이 등장하기 이전에 메뉴방식으로 이용하던 텍스트기반의 인터넷 서비스이다. 그 당시에는 고퍼가 지금의 포털사이트처럼관문 역할을 했다고 생가하면 이해가 빠를 것 같다. 저도 90년대에 텍스트기반의 고퍼 클라이언트, 또는 넷스케이프를 사용( gopher://도메인 )하여 고퍼를 이용했다.

* 1995년 8월~1995년 11월 (서버 4대)

초기의 많은 웹사이트들은 배경에 반복되는 이미지를 많이 사용했다. 특히 회색바탕으로 글자나 작은 모양을 엠보싱 처리(?)하는 경우가 두드러졌다. MS도 마찬가지.

* 1995년 11월~1996년 6월 (서버 6대)

* 1996년 6월~1996년 8월 (서버 12대)

짧은 기간에 서버대수가 무려(?) 2배로 늘어났다. 엄청난 증가다. 페이지뷰도 그 전 웹사이트의 1일 1,434,274 페이지뷰에서 이 기간에는 3,734,804 페이뷰로 2배 이상 급증했다.

* 1996년 8.14~1996년 11.15 (서버 16대)

* 1996년 11.15~1997년 9.29 (서버 19대)

당시의 노란색 바탕 생각난다.

* 1997년 9.29~1998년 11.30 (서버 29대)

* 1998년 11.30~1999년 12월 당시 (서버 35대)


'해외 주요 업체의 서버 대수는?' (2009.6월)에서 얘기한 서버 대수와 비교하면, 1999년 당시에 '35대' 서버만으로 웹사이트를 운영했다는 것을 보면 우습기도 할 것이다. 지금은 Microsoft의 서버는 21만대 이상일 것으로 추정한다. 10년만에 무려 6천배로 증가한 것이다. 그리고, NT 3.1에서 지금은 Windows server 2008과 IIS 7.0으로 운영중이다.

그러면 세계 최초의 서버는 어떻게 생겼을까?
이 서버가 바로 CERN의 '팀버너스 리(Tim Berners-Lee)'가 사용한 세계 최초의 웹 서버이다. 서버에 붙여있는 글자가 재밌다. 'This machine is a server. DO NOT POWER IT DOWN!!' ^^

The World's first web server


한편 microsoft의 초기 웹사이트와 세계 최초의 웹서버를 보니 이런 생각이 든다.
기억은 사라진다. 하지만 기록한 것은 남는다. 기록이 있기 때문에 과거를 되살릴 수 있는 하나의 통로가 생기는 것이다. 그렇다면 내 삶을 되돌아볼 수 있는 좋은 방법은 사진, 글이나 메모 등을 남겨두는 것 같다.


* 관련글
  2009/06/01 - [IT이야기] - 해외 주요 업체의 서버 대수는?
  2007/07/07 - [IT이야기] - www.microsoft.com 사이트는 windows 2008로 운영중


Posted by 좋은진호