Silverlight를 설치하려면 여기를 클릭합니다.*
Korea 대한민국변경|Microsoft 전체 사이트
MSDN
|개발자 센터
MSDN Home   MSDN Home
MSDN 홈 > Security Developer Center > 제품 정보 > Windows XP 서비스 팩 2  > 네트워크 보호 강화 > 방화벽

Windows 방화벽

Windows 방화벽은 Windows XP와 Windows Server 2003을 위한 상태 저장 필터링 방화벽으로서, TCP/IP 버전 4(IPv4)를 통한 임의의 인바운드 연결을 거부하여 네트워크에 연결된 PC를 보호합니다. SP2에서는 Windows 방화벽이 기본적으로 작동되도록 설정되어 있으며 부팅 과정 초기에 실행됩니다. 여러 새로운 기능 중 6가지가 기존 응용 프로그램에 직접적인 영향을 미칠 수 있습니다.

  • 기본 사용(On-by-Default) 기능

    SP2 이전까지, Windows XP와 함께 제공된 Windows 방화벽은 작동되지 않도록 기본 설정되었습니다. 사용자는 마법사를 실행하거나 네트워크 연결 폴더를 탐색하여 Windows 방화벽 기능을 직접 작동시켜야 했습니다. Windows 방화벽을 기본적으로 사용하도록 설정하면 네트워크를 이용한 여러 침입으로부터 컴퓨터가 보호됩니다. Windows 방화벽은 포트 스캐닝과 같은 임의의 통신을 차단하기 때문에 Windows 방화벽이 기본적으로 작동하도록 설정되었다면 최근의 MSBlaster 공격의 영향은 사용자의 최신 패치 설치 여부와 관계 없이 실질적으로 크게 완화되었을 것입니다.

    Windows 방화벽 기본 사용(On-by-Default) 기능은 기본적으로 상태 저장 필터링 기능과 함께 작동되지 않는 기존 응용 프로그램에 영향을 미칠 수 있습니다. 예를 들어 먼저 메시지를 전송하지 않고 다른 컴퓨터로부터 메시지를 받을 것으로 예상하는 응용 프로그램(즉, 클라이언트와 서버로 모두 기능)은 작동이 중지될 것입니다. 또한 웹 서버를 실행하는 PC의 경우, 그러한 요청을 허용하도록 Windows 방화벽이 구성되어야 할 것입니다 (http://support.microsoft.com/kb/320855/ko).

  • 부팅 시간 보안

    기존 버전의 Windows에는 네트워크 스택이 실행 중인 시간과 Windows 방화벽이 보호 기능을 제공하는 시간 사이에 시간적 공백이 있습니다. 이렇게 되면 Windows 방화벽 필터링 기능이 없는 서비스로 패킷이 전달 및 수신될 수 있는 여지가 발생하며 컴퓨터의 취약점을 노출시킬 가능성이 있습니다. 이것은 방화벽 서비스가 로딩되어 적절한 정책을 적용할 때까지 방화벽 드라이버가 필터링을 시작하지 않기 때문입니다. 그러한 방화벽 서비스에는 여러 종속성이 있는데 서비스는 이 종속성들이 없어질 때까지 기다렸다가 정책을 드라이버에 하달합니다. 여기에 걸리는 시간은 컴퓨터의 속도에 따라 다릅니다.

    Windows XP 서비스 팩 2의 경우, 방화벽 드라이버는 부팅 시간 정책이라는 정적 규칙을 갖고 있습니다. 이 규칙은 상태 저장 필터링을 수행하며 컴퓨터가 부팅되는 동안 취약한 요소를 제거합니다. 이번 새로운 정책 규칙에서는 DNS 및 DHCP와 같은 기본적인 네트워킹 작업이 이루어질 수 있도록 컴퓨터가 포트를 여는 것을 허용합니다. 또한 적절한 정책을 얻을 수 있도록 도메인 컨트롤러와의 통신을 허용합니다. 그러다가 일단 방화벽 서비스가 실행되면 런타임 Windows 방화벽 정책을 로딩하여 적용하고 부팅 시간 필터를 제거합니다. (부팅 시간 정책은 구성될 수 없습니다.)

    Windows 방화벽/인터넷 연결 공유(ICS)사용하지 않음으로 설정된 경우에는 부팅 시간 보안이 없습니다.

  • 쉬워진 구성

    Windows 방화벽은 모든 기존 및 신규 네트워크 연결에 변경 사항이 자동으로 적용되도록 모든 인터페이스를 전면적으로 구성할 수 있으므로 구성하기가 더 쉬워졌습니다. 개별 구성도 여전히 가능합니다. 또한 이제 Windows 방화벽에서는 두 가지 방화벽 정책 체계를 만들 수 있습니다. 하나는 컴퓨터가 회사 네트워크에 연결된 경우를 위한 것이고 다른 하나는 연결되지 않은 경우를 위한 것입니다. 컴퓨터가 회사 네트워크에 연결되었을 때 업무용 응용 프로그램이 작동할 수 있도록 덜 엄격한 정책을 지정할 수 있습니다. 컴퓨터가 회사 네트워크에서 나오면 더욱 적극적인 보안 정책이 집행되도록 함으로써 인터넷을 이용한 공격에 대비할 수 있습니다. 그러나 Windows 방화벽의 여러 프로필 지원 기능은 도메인에 연결된 컴퓨터에만 적용됩니다. 작업 그룹에 속한 컴퓨터는 하나의 프로필만 갖습니다.

    또한 관리자들은 Netsh helper 명령줄 유틸리티(이전에는 Advanced Networking Pack for Windows XP에서만 제공됨)를 사용하여 다음과 같은 작업을 수행할 수 있습니다.
    • Windows 방화벽 사용 권한 목록에 응용 프로그램을 추가하거나 제거합니다.
    • Windows 방화벽의 기본 상태(Off, 사용, 예외 없이 On)를 구성합니다.
    • 어떤 포트가 열려야 하는지, 포트가 전역 액세스를 허용해야 하는지 또는 로컬 서브넷으로 액세스가 제한되어야 하는지, 그리고 포트가 모든 인터페이스에서 열려야 하는지 아니면 인터페이스별로 열려야 하는지 등을 구성합니다.
    • 로깅 옵션을 구성합니다.
    • ICMP(Internet Control Message Protocol) 처리 옵션을 구성합니다.

      서비스 팩 2에는 네트워크 관리자들이 기업 환경에서 Windows 방화벽 정책을 관리할 수 있게 해주는 새로운 그룹 정책 개체(GPO)도 포함되어 있습니다. 이러한 GPO에는 운영 모드(On, Off, 또는 예외 없이 On), 허용된 프로그램(Allowed Programs), 열린 포트(Opened Ports)(정적), ICMP 설정, RPC 사용(Enable RPC) 등이 포함되어 있습니다. 이들은 기업 프로필과 표준 프로필에서 모두 구성될 수 있습니다.

  • 응용 프로그램 사용 권한 목록(Windows 방화벽 사용 권한 목록)

    일부 응용 프로그램은 네트워크 클라이언트와 서버의 기능을 모두 수행합니다. 서버로 기능할 때는 피어가 누가될지 미리 알 수 없으므로 임의 트래픽 수신을 허용할 필요가 있습니다.

    이전 버전의 Windows에서는 필요한 수신 포트를 열려면 응용 프로그램이 Windows 방화벽 API를 호출해야 했습니다. 이것은 해당 포트를 미리 알 수 없는 피어-투-피어 상황에서는 어려운 것으로 드러났습니다. 통신이 완료되었을 때 포트를 다시 닫을지 여부는 응용 프로그램에 달린 문제였습니다. 따라서 응용 프로그램이 갑자기 종료되면 방화벽에는 불필요하게 열려 있는 부분이 남게 됩니다.

    또한 이 포트들은 로컬 관리자의 보안 컨텍스트 안에서 실행되는 경우에만 열릴 수 있었습니다. 따라서 이것은 응용 프로그램을 필요한 최소한의 권한으로만 실행하는 것이 아니라 관리자 컨텍스트에서 실행되도록 만듦으로써 최소 권한 원리에 위배됩니다.

    Windows XP 서비스 팩 2에서는 네트워크에 연결되어 수신해야 하는 응용 프로그램을 관리자를 통해 그리고 프로그래밍 방식을 통해 Windows 방화벽 사용 권한 목록에 추가할 수 있습니다. 응용 프로그램이 응용 프로그램 사용 권한 목록(Windows 방화벽 사용 권한 목록)에 있는 경우, Windows는 응용 프로그램의 보안 컨텍스트에 관계 없이 필요한 포트를 그 응용 프로그램이 그 포트를 수신하는 동안 자동으로 엽니다. 응용 프로그램은 사용하지 않는 포트는 열 수 없습니다. 사용하지 않는 포트를 열어 두게 되면 고의 또는 실수로 다른 응용 프로그램 또는 서비스를 그 포트를 통해 들어 오는 네트워크 트래픽에 노출시킬 수 있습니다.

    이것은 또한 네트워크에 수신하는 응용 프로그램을, 이전 버전의 Windows처럼 관리자 권한이 아니라, 일반 사용자 권한으로 실행할 수 있도록 합니다.

    네트워크를 수신하지 않는 응용 프로그램은 걱정할 필요가 없으며 응용 프로그램 사용 권한 목록에 둘 필요가 없습니다. Windows 방화벽 사용 권한 목록에 어느 응용 프로그램을 그래픽을 통해 추가해야 하는 경우, 관리자는 네트워크 연결을 볼 때 네트워크 작업 창의 Windows 방화벽 구성을 선택하거나 특정 네트워크 연결의 고급 탭에서 설정 단추를 클릭하면 됩니다. 그에 따라 나타나는 그림 1과 같은 대화 상자에서 관리자는 Windows 방화벽을 예외와 함께 On으로 설정(즉, 하얀 목록 활성화)하거나 예외 없이 On으로 설정하거나 Off로 설정할 수 있습니다.


    그림 1: Windows 방화벽 일반 탭

    첫 번째 옵션이 선택되면 예외 탭에 있는 Windows 방화벽 사용 권한 목록이 그림 2에서와 같이 사용됩니다.


    그림 2: Windows 방화벽 예외 탭

    Windows 방화벽 사용 권한 목록에 응용 프로그램을 추가하려면 관리자는 추가 단추를 클릭하고 그림 3과 같이 응용 프로그램의 실행 파일을 구성합니다. 이 대화 상자에서 개별 TCP와 UDP 포트도 사용 가능 설정된 점에 유의하십시오.


    그림 3: Windows 방화벽 예외 대화 상자

    또한 관리자는 앞에서 언급한 Netsh 명령줄 유틸리티를 사용하여 Windows 방화벽 사용 권한 목록을 관리할 수 있습니다.

  • RPC 지원

    이전 버전의 Windows에서는 Windows 방화벽이 원격 프로시저 호출(RPC) 통신을 차단했습니다. Windows 방화벽은 RPC Endpoint Mapper로의 네트워크 트래픽을 허용하도록 구성될 수 있었지만 동적 종점을 사용하는 응용 프로그램에서는 RPC가 네트워크 포트를 임의로 선택하기 때문에 RPC 트래픽이 Windows 방화벽에 의해 차단되었습니다.

    RPC가 네트워크를 통해 통신하도록 허용되지 않으면 많은 응용 프로그램과 구성 요소들이 장애를 일으킵니다. 그 예로는 아래와 같은 것들이 있습니다.

    • 파일 및 인쇄 공유
    • 원격 관리
    • 원격 WMI(Windows Management Instrumentation) 구성
    • 원격 클라이언트와 서버를 관리하는 스크립트
  • RPC는 몇몇 포트를 열어 그 포트에서 각각 다른 여러 서버를 노출합니다. 일반적인 워크스테이션 또는 서버에는 네트워크에 대한 클라이언트의 요청을 수신하는 RPC 서버가 기본적으로 약 60대 실행됩니다. 일부 서버는 구성에 따라 더 많을 수 있습니다. 이것이 RPC 공격 지점입니다.

    너무나 많은 RPC 서버들이 Windows XP에 포함되어 있고 이들 중 대부분이 동일한 프로세스 이미지 파일 이름(Svchost.exe)을 사용하여 실행되므로 Windows 방화벽은 RPC 서버에 대해 다른 접근 방식을 채택했습니다. 포트를 열면 호출자는 해당 포트가 RPC에 사용될 것임을 요청할 수 있습니다. Windows 방화벽은 호출자가 로컬 시스템, 네트워크 서비스 또는 로컬 서비스 보안 컨텍스트에서 실행 중인 경우에만 이 요청을 받아들입니다. Windows 방화벽은 호출자가 Windows 방화벽 사용 권한 목록에 없는 경우에도 RPC가 열릴 수 있게 하는 프로필 레벨 플래그를 지원합니다.

    이것은 레지스트리의 프로필 키 아래 PrivilegedRpcServerPermission이라는 이름의 REG _DWORD 값으로 저장됩니다. 이 값은 NET_FWV 4_SERVICE_PERMISSION 열거에 상응합니다.

    • NET_ FWV 4_SERVICE_BLOCK = 0. RPC 서버는 Windows 방화벽 사용 권한 목록에 있는 경우에만 포트를 열도록 허용됩니다.
    • NET_ FWV 4_SERVICE_ALLOW_LOCAL = 1. RPC 서버가 Windows 방화벽 사용 권한 목록에 없더라도 포트가 열리지만 로컬 서브넷의 네트워크 트래픽만 수신합니다.
    • NET_ FWV 4_SERVICE_ALLOW_ ALL = 2. RPC 서버가 Windows 방화벽 사용 권한 목록에 없더라도 모든 서브넷의 네트워크 트래픽에 대해 포트가 열립니다.

그러나 인증된 응용 프로그램 설정은 항상 일반 RPC 설정을 무시합니다. 예를 들어 RPC 설정은 "로컬 허용"인데 RPC 서버 실행 파일이 Windows 방화벽 사용 권한 목록에도 있고 로컬 서브넷은 False로 설정되어 있다면 RPC 서버의 포트는 모든 서브넷에 대해 열려 있게 됩니다.

  • 예외 없이 On

    Windows 방화벽은 일반적인 사용 중 임의 트래픽 수신을 허용하도록 구성될 수 있습니다. 이것은 파일 및 프린터 공유와 같은 주요 시나리오를 가능하게 할 필요성 때문인 경우가 일반적입니다. 수신 중인 Windows 서비스 가운데 하나 이상에서 보안 문제가 발생하면 해당 컴퓨터를 클라이언트 전용 모드 예외 없이 On으로 전환할 필요가 있을 수 있습니다. 이 클라이언트 전용 모드로 전환하면 Windows 방화벽을 다시 구성할 필요 없이 트래픽 임의 수신을 차단할 수 있습니다. 이것은 그림 1과 같이 예외 없이 On 옵션을 선택하여 구성됩니다.

    이 모드일 때는 모든 정적 통로가 차단됩니다. 정적 통로를 열려는 모든 API 호출은 허용되고 그 구성은 저장되지만 Windows 방화벽 운영 모드가 정상 운영으로 돌아가기 전까지는 적용되지 않습니다. 응용 프로그램의 모든 수신 요청 또한 무시됩니다.

    바이러스, 웜 및 공격자들은 이용할 수 있는 서비스가 없는지 찾고 있다는 점을 기억하십시오. 이 운영 모드에 있을 때 Windows 방화벽은 이러한 유형의 공격 시도가 성공하는 것을 방지합니다. 컴퓨터는 네트워크의 인바운드 요청은 수신할 수 없지만 아웃바운드 연결은 성공할 것입니다.

개발자에게 미치는 영향 보기






Top of Page 페이지 맨 위로


Microsoft