본문 바로가기

Trouble Shooting

Windows 2003에서 서비스 거부 공격에 대비한 TCP/IP 스택 강화

서비스 거부(DoS) 공격은 네트워크 사용자가 컴퓨터나 컴퓨터의 특정 서비스를 사용할 수 없도록 만들기 위한 네트워크 공격입니다. 서비스 거부 공격은 방어하기 어려울 수 있습니다. 서비스 거부 공격을 방지하려면 다음 방법 중 하나 또는 두 가지 모두를 사용할 수 있습니다.

  • 최신 보안 수정 프로그램으로 사용 중인 컴퓨터를 업데이트합니다. 보안 수정 프로그램은 다음 Microsoft 웹 사이트에 있습니다.

    http://www.microsoft.com/korea/security

  • Windows Server 2003 컴퓨터에서 TCP/IP 프로토콜 스택을 강화합니다. 기본 TCP/IP 스택 구성은 표준 인트라넷 트래픽을 처리하도록 조정되어 있습니다. 컴퓨터를 인터넷에 직접 연결한 경우 서비스 거부 공격에 대비하여 TCP/IP 스택을 강화하는 것이 좋습니다.
TCP/IP 스택을 강화하는 TCP/IP 레지스트리 값
경고: 레지스트리 편집기를 잘못 사용하면 심각한 문제가 발생할 수 있으며 문제를 해결하기 위해 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 레지스트리 편집기를 잘못 사용함으로써 발생하는 문제에 대해 해결을 보증하지 않습니다. 레지스트리 편집기의 사용에 따른 모든 책임은 사용자에게 있습니다.
다음 목록은 인터넷에 직접 연결된 컴퓨터에서 TCP/IP 스택을 강화하도록 구성할 수 있는 TCP/IP 관련 레지스트리 값에 대한 설명입니다. 이러한 값은 별다른 설명이 없는 한 모두 아래의 레지스트리 키 아래에 있습니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

참고: 모든 값은 별다른 설명이 없는 한 16진수입니다.

  • 값 이름: SynAttackProtect
    키: Tcpip\Parameters
    값 종류: REG_DWORD
    유효 범위: 0,1
    기본값: 0
    이 레지스트리 값은 TCP(Transmission Control Protocol)가 SYN-ACKS의 재전송을 조정하도록 합니다. 이 값을 구성하면 SYN 공격(서비스 거부 공격의 한 종류) 동안 연결 응답이 더 빨리 시간 초과됩니다.
    다음 매개 변수는 이 레지스트리 값과 함께 사용할 수 있습니다.
    • 0(기본값): SYN 공격에 대한 일반적인 보호를 하려면 SynAttackProtect0으로 설정합니다.
    • 1 : SYN 공격에 대하여 보다 높은 수준의 보호를 하려면 SynAttackProtect1로 설정합니다. 이 매개 변수는 TCP가 SYN-ACKS의 재전송을 조정하도록 합니다. SynAttackProtect1로 설정하는 경우 시스템에서 SYN 공격이 이루어지고 있음을 감지하면 연결 응답이 더 빨리 시간 초과됩니다. Windows는 공격이 진행 중인지 확인하기 위하여 다음 값을 사용합니다.
      • TcpMaxPortsExhausted
      • TCPMaxHalfOpen
      • TCPMaxHalfOpenRetried
  • 값 이름: EnableDeadGWDetect
    키: Tcpip\Parameters
    값 종류: REG_DWORD
    유효 범위: 0, 1(False, True)
    기본값: 1(True)
    다음은 이 레지스트리 값과 함께 사용할 수 있는 매개 변수입니다.
    • 1 : EnableDeadGWDetect1로 설정하면 TCP는 더 이상 작동하지 않는 게이트웨이를 검색할 수 있습니다. 더 이상 작동하지 않는 게이트웨이 감지가 사용되면 TCP는 여러 연결에 문제가 발생하는 경우 인터넷 프로토콜(IP)에 백업 게이트웨이를 변경하도록 요청할 수 있습니다. 백업 게이트웨이는 제어판의 네트워크 도구에 있는 TCP/IP 구성 대화 상자의 고급 섹션에서 정의됩니다.
    • 0: EnableDeadGWDetect 값은 0으로 설정하는 것이 좋습니다. 0으로 설정하지 않으면 공격으로 인하여 서버가 강제로 원하지 않는 게이트웨이로 전환될 수 있습니다.
  • 값 이름: EnablePMTUDiscovery
    키: Tcpip\Parameters
    값 종류: REG_DWORD
    유효 범위: 0, 1(False, True)
    기본값: 1(True)
    다음은 이 레지스트리 값과 함께 사용할 수 있는 매개 변수입니다.
    • 1 : EnablePMTUDiscovery1로 설정하면 TCP는 최대 전송 단위(MTU)나 원격 호스트 경로에 대한 최대 패킷 크기를 검색하려 합니다. TCP는 경로의 MTU를 검색하고 TCP 세그먼트를 이 크기로 제한하여 경로에 있는 각자 다른 MTU로 네트워크에 연결하는 라우터에서 조각을 제거할 수 있습니다. 조각이 있으면 TCP 처리량에 좋지 않은 영향을 줍니다.
    • 0 : EnablePMTUDiscovery0으로 설정하는 것이 좋습니다. 이렇게 하면 로컬 서브넷에서 호스트하지 않는 모든 연결에 576바이트의 MTU가 사용됩니다. 이 값을 0으로 설정하지 않으면 공격자가 강제로 MTU를 아주 작은 값으로 설정하여 스택의 부하가 커집니다.
  • 값 이름: KeepAliveTime
    키: Tcpip\Parameters
    값 종류: REG_DWORD - 시간(밀리초)
    유효 범위: 1 - 0xFFFFFFFF
    기본값: 7,200,000(2시간)
    이 값은 TCP가 Keep Alive 패킷을 보내어 유휴 연결이 열려 있는지 확인하는 빈도를 결정합니다. 연결이 유지되어 있다면 원격 컴퓨터가 Keep-Alive 패킷을 인식합니다. Keep-Alive 패킷은 기본적으로 보내지지 않습니다. 연결에서 이 값을 구성하기 위한 프로그램을 사용할 수 있습니다. 권장값은 300,000(5분)입니다.
  • 값 이름: NoNameReleaseOnDemand
    키: Netbt\Parameters
    값 종류: REG_DWORD
    유효 범위: 0, 1(False, True)
    기본값: 0(False)
    이 값은 컴퓨터가 이름 해제 요청을 받을 때 NetBIOS 이름을 해제할지 여부를 결정합니다. 이 값은 관리자가 악의적인 이름 해제 공격으로부터 컴퓨터를 보호할 수 있도록 추가되었습니다. NoNameReleaseOnDemand 값은 1로 설정하는 것이 좋습니다.
 
TCP/IP 레지스트리 값을 변경하면 Windows Server 2003 기반 컴퓨터에서 실행 중인 프로그램과 서비스에 영향을 줄 수 있습니다. 업무 환경과 호환되는지 확인하려면 이 설정을 프로덕션 컴퓨터가 아닌 워크스테이션과 서버에서 테스트하는 것이 좋습니다