윈도우98 이후 10년의 기록 '최악의 취약점들' ②

Andrew Brandt | InfoWorld 2008.10.10

1998년 6월 25일과 2008년 6월 30일은 윈도우 OS의 진화에서 획기적이라 할 수 있는 윈도우 95에서 윈도우 98로의 전환, 다소 매끄럽진 않았지만 XP에서 비스타로의 전환이 일어난 날이다.

 

그 사이에 놓인 3,659일 동안 또 다른 종류의 달갑지 않은 진화가 있었으니 ‘종의 기원’이라 할 만큼 급속도로 출현해 윈도우를 취약성에 노출시켜온 버그들이 바로 그것이다.

 

많은 사람들에게 윈도우의 취약점을 찾아 악용하는 일은 하나의 오락이었고 또 이보다 더 많은 사람들에게는 직업이었다. 업계는 알려지지 않은 취약점으로부터 윈도우 이용자들을 보호하느라 진땀을 흘렸고, 한편으로 멀웨어는 유치한 장난으로부터 수익을 노리는 범죄적 기업 차원으로 발달해갔다.

 

아무 죄도 없는 PC 이용자들과 곤경에 처한 IT 관리자들이 이 그칠 줄 모르는 공격의 한가운데 자리하고 있다. MS를 비롯한 소프트웨어 업계 전체가 나서 제로-데이 익스플로잇을 해결하고, 잠재적 보안 문제 보고를 위한 프로토콜을 개발하는 등의 부단한 노력을 했음에도 불구하고 사소한 윈도우 버그 하나가 어마어마한 보안 문제를 시킨 사례가 몇 차례 있었다.

 

이들 오류는 수백만 개의 코드 라인 속에 묻힌 채 거대 기업들을 조정하고 부의 흐름을 뒤바꾸기도 했다. 이제는 이들을 돌아보고 마땅한 평가를 내릴 시간인 듯 하다. 여기서는 지난 기사에 이어 윈도우 98 도입 이후 감내해야 했던 최악의 취약점들을 소개하겠다.  

 

 

빌리 게이츠(Billy Gates), 돈만 벌지 말고 대신 멀웨어나 만들어라.

버그 식별 기호: MS03-026

설명: RPC 인터페이스에서의 버퍼 오버런이 코드 실행을 허용할 수 있음

별칭: 블래스터 웜 버그(The Blaster Worm bug)

발표일: 2003년 7월 16일

 

DCOM RPC 인터페이스는 NT, 2000, XP, 서버 2003 등 NT 기반 윈도우 OS의 공통 컴포넌트이다. 2003년 여름 이는 집중적 감시의 대상이 됐다.

 

MS가 패치와 함께 발행한 공지에서 설명한대로 이 취약성을 이용하는 데는 오직 ‘특수한 형식의 요청’만을 취약 PC에 전송하면 된다.

 

블래스터 웜은 8월 11일 나타나 급속도로 확산되었으나 이는 방화벽으로 간단히 차단할 수 있는 종류였다.

 

하지만 그 당시 방화벽을 이용해 일반 가정의 시스템을 보호하는 일은 보편적이지 않았다. 인터넷에 직접 연결된 일반 가정의 PC는 이 웜에 의해 초토화되다시피 했다. 이 웜의 코드에 의해 감염 컴퓨터의 RPC 서비스가 붕괴되면 즉각적인 시스템 셧다운 경고가 나오고 시스템은 제멋대로 재부팅되는 현상이 나타난다.

 

이 웜에는 MS 설립자에게 보내는 별개 메시지가 엠베드되어 있는데 “빌리 게이츠, 이걸 왜 가능하게 만들어놨어? 돈만 벌지 말고 소프트웨어부터 고쳐!!’라는 것이었다.

 

이 버그는 수정되었다. 적어도 패치를 설치했다면 말이다.

 

그 해 여름 끝 무렵 MS는 RPC 서비스를 엉망으로 만드는데 이용할 수 있는 추가적 포트들을 차단하는 MS03-039를 통해 2차 업데이트를 배포했다.

 

결론: 일반 가정에서의 방화벽 시스템이 보편화 됨에 따라 상황이 많이 나아졌다. 블래스터나 이의 아류들은 대부분의 광대역 모뎀에 방화벽이 내장되도록 하는데 일정 역할을 했다.

 

이 건방진 버그는 대담하기까지 하다

버그 식별기호: CVE-2003-0533, MS04-011

설명: LSASRV.DLL의 액티브 디렉터리 서비스 기능에서의 스택 기반 오버플로우

별칭: 새서 버그(The Sasser bug)

발표일: 2004. 4. 13.

 

버퍼 오버플로우의 또 하나의 아니러니한 사례인 이 버그는 윈도우 보안 하위시스템을 악의 매개체로 활용했다. 그리고 여기서 역시 악성 코드 제작자들은 OS 내 공격 대상을 정확히 파악하는데 MS 패치를 이용하고 있다.

 

윈도우 XP의 문지기라 할 수 있는 LSASS(Local Security Authority Subsystem)은 PC이용자 계정의 승인을 담당한다. 코드 레드 버그를 발견한 바 있는 이아이(eEye)가 2003년 10월 MS에게 이 취약성에 대해 상세히 알려주었을 때 LSASS 버그뿐 아니라 윈도우 98, NT, 2000, XP, 서버 2003의 13개의 다른 취약성까지 보완하는 장장 6개월에 걸친 맹렬한 코딩 작업이 시작되었다.

 

그리고 그로부터 18일이 지났음에도 새서 웜은 인터넷을 떠돌며 패치되지 않은 한 머신에서 다른 머신으로 옮겨 다니고 있었다. 부실한 코딩의 웜 하나가 큰 혼란을 초래하며 전 세계의 네트워크들을 먹통으로 만들었다. MS04-011픽스가 이미 서비스되고 있음에도 이를 아직 적용하지 않은 사람들이 많았던 것이다(특히 기업 IT 매니저들). 2004년 5월 1일까지 새서에 의해 야기된 의도하지 않았던 손상들을 보완하는 작업이 수많은 워룸과 교대근무 속에서 불철주야 계속되었다고 MSRC의 당시 센터장이었던 케빈 킨은 말한다.

 

결론: 업데이트가 나오는 즉시 패칭을 하라는 말은 무엇인가? 3년 전에 이미 배운 교훈들이 세서가 공공연히 패치 없는 PC들을 실신시키고 다닐 때까지 심각하게 받아들여지지 않았던 것이다.

 

WMF : 멀웨어가 살짝 끼어져 있는 곳   

버그 식별기호: CVE-2005-4560, MS06-001

설명: 그래픽 렌더링 엔진의 취약성이 원격 코드 실행을 가능하게 할 수 있음

별칭: 윈도우 메타파일 취약성, 또는 드라이브-바이 다운로드(drive-by downloads)

발표일: 2006년 1월 5일

 

2005년 겨울 휴가시즌 동안 보안 전문가들은 윈도우 OS 및 애플리케이션에서 각종 그래픽을 표시하는데 이용되는 윈도우 라이브러리에서 새롭게 발견된 취약성을 논의하기 시작했다.

 

이 문제는 윈도우 3.0 시절부터 윈도우에 정착한 WMF(윈도우 메타파일)라는 이미지 파일 포맷에 기인했다. MS 오피스 문서의 그래픽 저장 고유 포맷으로 이용되면서 WMF에 대한 지원이 MS 제품들에서 전반적으로 이루어지게 된다.

 

WMF 파일에는 프로그램이 GDI(그래픽 드라이버 인터페이스)에 전송하는 함수 호출이 포함되어 있다. 그런데 누군가가 WMF 파일에 실행 코드가 포함될 수 있음을 알게 됐다. 이게 의미하는 바는 단지 파일을 열기만 하면 인터넷 익스플로러가 특정 URL을 방문해 일정 파일을 다운로드하여 실행하도록 하는 WMF 파일을 생성할 수 있다는 것이다.

 

이러한 발견의 결과 우리에게 익숙한 패턴이 또 나타난다. MS는 2006년 1월 5일 패치를 공식 발표했다. 하지만 오랜 기간 동안 패치를 적용하지 않은 채 취약성 있는 gdi32.dll을 이용하는 컴퓨터는 인터넷을 배회하며 엄청난 양의 멀웨어를 집어삼키게 된다.

 

이 버그는 광범위한 영향을 미쳤는데 악성코드가 신뢰성 있는 사용자에게 살짝 끼어들게 하여 이를 다양한 방법으로 실행되도록 만들었다. 예컨대 아웃룩에서 악성 WMF 파일을 포함한 이메일을 미리보기하거나, 익스플로러에서 이미지 프리뷰를 하거나, 특정 타사 프로그램에서 악성 WMF를 여는 식이다. 악성 파일을 포함하고 있는 하드 디스크를 인덱스하여 이메일이나 IM 내의 또는 여타 웹페이지 상의 URL 링크를 따라 악성 파일이 엠베드된 사이트로 유도한다.

 

결론 : 믿을 것은 아무 것도 없다. 파일 포맷도 적이 될 수 있다. 아울러 드라이브-바이 다운로드라는 악용 방식에 대한 괜찮은 이름도 새로 하나 얻었다.

 

MDAC: 끊임없이 주는 컴포넌트(골치거리)

버그 식별기호: CVE-2006-0003, MS06-014

설명: MDAC(MS 데이터 액세스 컴포넌트)의 취약성이 코드 실행을 가능케 할 수 있음

별칭: MDAC RDS.데이터스페이스 액티브X 버그(MDAC RDS.Dataspace ActiveX bug)

발표일: 2006년 4월 11일

 

1998년 MS는 윈도우 NT 서버에서 실행되는 MS 데이터 액세스 컴포넌트라는 IIS 컴포넌트에 관한 보안 공지를 발표한 적이 있다. 그 공지, MS98-004에서 MS는 MDAC의 일부인 RDS(원격 데이터 서비스)가 승인되지 않는 사람들이 데이터베이스를 탐색할 수 있도록 하는 취약성을 가지고 있다고 경고했다.

 

그로부터 8년 뒤 2006년 봄 MS는 RDS라는 MDAC 컴포넌트에 관한 보안공지를 발표하게 된다. 악성 웹서버들이 패치가 적용되지 않은 PC에 드라이브-바이 다운로드를 수행하도록 하는 취약성을 가지고 있다는 것이다. 이상하리만치 익숙하지 않은가?

 

2006년 봄의 경우 사용자가 IE에서 RDS에 접속해 위험을 초래하게 한 것은 액티브X 컨트롤이었다. 이 액티스X 컨트롤은 악성 웹사이트 방문 시 지정한 방식으로 활동하지 않고 로드되어 악용될 수 있다.

 

물론 2006년까지 MDAC는 서버에 로드되지 않았고 PC에 설치되었다. 게다가 전술들도 변화했다. 악성 웹사이트를 우연히 방문하기를 끈기 있게 기다리는 대신 링크와 함께 스팸을 발송하거나 구글 검색 기반 광고를 구매하거나 SEO(검색 엔진 최적화)-리치 키워드와 함께 페이지를 로드시킨다. 결과는 똑 같다. 방문을 유도해 악용하는 것이다.

 

사실, 요즈음에는 기성의 익스플로잇 소프트웨어가 멀웨어를 머신에 침투시키는데 버젓이 이용되고 있다. 악성 웹사이트 상에 로드된 M팩이라는 툴은 이용 중인 브라우저 버전, 설치된 패치를 파악할 수 있다. 이 분석을 바탕으로 가장 치명적인 익스플로잇을 전송한다. 게다가 공격자는 웹페이지를 ‘mdac4.php’로 지정함으로써 별다른 노력 없이 자신이 하는 일을 들키지 않도록 할 수 있다.

 

결론: MDAC RDS는 복잡한 체계를 가지고 있으며 설치된 버전에 따라 다양한 패치를 이용할 수 있다. 적절한 패치를 직접 찾는 것은 쉽지만은 않다. 하지만 이런 심각한 취약성에는 실수가 용납되지 않는다. 이 같은 패치들은 윈도우 업데이트의 진보를 이끌어내는 역할을 했다. 윈도우 업데이트가 시스템을 스캔한 다음 정확한 패치를 자동으로 골라준다. 그러므로 굳이 이를 직접 할 필요는 없다.

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.