정보보안/정보2009. 2. 27. 20:56

연재를 시작하며

오늘날 컴퓨팅 환경의 핵심은 인터넷이라고 할 수 있다. HTTP 프로토콜과 웹 브라우저를 기반으로 한 인터넷은 현대인의 일상 생활 속으로 빠르게 흡수되어 생활 패턴까지 변화시킬 정도로 그 영향력은 엄청나다. 문자, 소리, 그림, 동영상 등의 모든 매체가 디지털화되고 있으며 이렇게 디지털화된 정보를 언제 어디서든 인터넷을 통해 얻을 수 있는 시대가 된 것이다.

이러한 인터넷의 중심에는 IIS(Internet Information Server)라는 마이크로소프트의 웹 솔루션이 있다. IIS는 NT Server 4.0에서는 옵션 팩의 형태로 제공되었으나 현재는 윈도우 운영 체제와 함께 하나의 구성 요소로서 배포되고 있다. IIS는 쉬운 설정으로 강력한 웹 서비스를 제공할 수 있고 ASP라는 웹 프로그래밍 기술을 바탕으로 대표적인 웹 솔루션으로 자리잡았다.

그러나 불특정 다수에 의해서 접근된다는 웹의 특성상 가장 많은 위험에 노출되어 있는 것이 바로 웹 서버이다. IIS 웹 서버의 경우도 예외는 아니어서 그 동안 백도어에 의한 서버 자원의 유출이나 취약부분에 대한 끊임없는 공격으로 웹 서비스를 제공하는 많은 업체들이 적지 않은 타격을 입어왔다.

이 글은 IIS 웹 서버의 취약점과 악의적인 공격 유형을 알아보고 웹 서버를 보다 능동적으로 보호할 수 있는 방법을 알아보는데 목적이 있으며, 마이크로소프트의 웹 서버 보안 가이드를 기초로 작성되었다.

먼저 그 첫 번째 순서로서 IIS 웹 서버가 가지고 있는 취약점과 일반적인 대응책에 대해서 살펴보도록 하겠다.

IIS 웹 서버의 취약점과 대응책

다음 그림은 일반적으로 IIS 웹 서버가 노출되어 있는 보안상의 취약점과 위협 요소를 정리한 것이다.

 

[그림1] 웹 서버의 취약점과 위협요소

이러한 웹 서버의 보안상 취약점과 각각의 대응책에 대해서 정리해 보도록 하자.


1. 프로파일링(Profiling)
프로파일링은 특정 웹 사이트에 대한 정보를 모으는데 사용되며 공격자는 이렇게 모아진 정보를 이용해서 취약점을 찾아 공격한다.
  • 취약점
    - 불필요하게 사용되는 프로토콜이나 열려 있는 포트가 프로파일링의 대상이 되며 일반적으로 포트 스캔, 포트 스윕, NetBIOS와 SMB 열거(Server Message Block enumeration)와 같은 방법이 사용된다.
  • 대응책
    - 프로파일링 공격에 대한 대응책으로 불필요한 포트를 막고 ICMP(Internet Control Message Protocol), NetBIOS, SMB와 같은 불필요한 프로토콜을 비활성화 시켜야 한다.


    2. 서비스 거부(Denial of Service) 공격
    서비스 거부(DoS) 공격은 클라이언트의 요청에 의해 서버가 응답할 수 없는 상태가 되는 것을 말한다.
  • 취약점
    - 주로 TCP/IP 스택이 취약하게 설정되어 있거나 최신 패치가 적용되지 않은 서버가 공격대상이 되며, 네트워크 레벨의 SYN Floods, 버퍼 오버플로우, 과도한 요청으로 웹 서버에게 부하를 주는 공격 방법 등이 사용된다.
  • 대응책
    - 이에 대한 대응책으로 TCP/IP 스택을 강화하고 시스템 소프트웨어에 대하여 최근 패치와 업데이트를 지속적으로 적용해야 한다.


    3. 불법적인 접근
    권한 없는 사용자가 제한된 기능을 실행하거나 정보에 접근하려는 것을 말한다.
  • 취약점
    - IIS의 권한 제어상의 취약 사항이나 NTFS 권한의 취약점이 공격대상이 된다.
  • 대응책
    - 이에 대한 대응책으로 Web 권한이나 NTFS 권한을 강화하여 익명 사용자가 제한된 자원에 접근할 수 없도록 해야 한다.


    4. 임의의 코드 실행(Arbitrary code execution)
    공격자가 악의적인 코드를 서버 상에서 실행시켜서 서버의 리소스에 영향을 주거나 시스템의 하위에 마운트되어 추가 공격하려는 행위을 말한다.
  • 취약점
    - IIS 설정상의 취약점이나 패치되지 않은 서버가 공격 대상이 되며, 경로 탐색(path traversal)이나 코드 주입으로 버퍼 오버플로우를 발생시키는 방법이 사용된다.
  • 대응책
    - 대응책으로 "../"로 상위 경로를 탐색하려는 URL 접근을 거부하도록 IIS를 설정하고, 시스템 명령과 유틸리티 파일 또는 해당 폴더에 접근 권한(ACL)을 강화하고, 최근의 업데이트와 패치가 적용된 상태로 시스템을 유지해야 한다.


    5. 정보 공개(Information Disclosure)
    웹 서버 상의 특정 소스 코드나 정보가 외부에 공개되는 것을 말한다.
  • 취약점
    - 최신 패치가 적용되지 않은 서버의 IIS 서비스에 존재하는 백도어나 기타 불필요한 서비스나 프로토콜이 공격 대상이 된다.
  • 대응책
    - 항상 최근의 업데이트와 패치를 유지해야 하며, 서버 상에 데이터베이스 연결 문자열과 같은 주요 정보를 소스 코드상에 직접 기입하지 않고 다른 저장소(예: 레지스트리)를 사용하는 것이 좋다.


    6. 바이러스, 웜, 토로이 목마
    대부분의 경우 이들 코드는 시스템 자원을 소비해서 느려지거나 실행이 중단되도록 만든다. 코드레드 웜의 경우 ISAPI 필터의 버퍼 오버플로우 취약점을 이용하여 IIS 서비스에 영향을 준 대표적인 예이다.

    구분 설명
    바이러스 자기 복제를 하며, 컴퓨터 시스템을 파괴하거나 작업을 지연 또는 방해하는 악성 프로그램이다.
    분산형 시스템, 네트워크에 상주하는 독립 프로그램 또는 실행 가능한 코드 모듈을 말한다. 웜은 가능한 많은 시스템 자원을 이용하기 위해 필요하다면 스스로 자기 자신을 복제한다.
    트로이 목마 시스템에서 정상적인 기능을 하는 프로그램으로 가장해 다른 프로그램 안에 숨어 있다가 그 프로그램이 실행될 때 자신이 활성화하는 악성 프로그램을 말한다. 컴퓨터 바이러스와 달리 자기 복사 능력은 없지만, 자기자신이 실행되는 순간 시스템에 직접적인 피해를 가하는 특징을 가지고 있다.
    [표 1] 바이러스, 웜, 트로이목마의 구분
  • 취약점
    - 바이러스나 웜과 같은 악성 코드는 주로 패치가 안된 서버와 불필요하게 실행중인 서비스나 ISAP 필터와 확장을 대상으로 공격한다.
  • 대응책
    - 최근의 소프트웨어 패치를 항시 적용하고, 사용되지 않는 ISAPI 필터나 확장 기능을 비활성화 시켜야 한다. 안티바이러스 프로그램으로 바이러스의 침투를 예방하고 자동으로 치료할 수 있는 환경을 설정한다. 또한 공격 대상의 영역을 최소화하기 위해 玲老記?권한으로 프로세스가 실행되도록 설정해야 한다.

    지금까지 IIS 웹 서버의 취약점과 대응책을 개괄적으로 알아보았다. 다음 호에서부터는 IIS 웹 서버를 보호하기 위한 보다 구체적인 방법을 살펴보도록 하겠다.
  • 출처 : 안철수 연구소

    Posted by Huikyun