본문 바로가기

security/tips

서비스 거부 공격에 대비한 TCP/IP 스택 강화 레지스트리 값


서비스 거부 공격에 대비한 TCP/IP 스택 강화 레지스트리 값

Windows 2000 기반 워크스테이션과 서버에서 TCP/IP(Transmission Control Protocol/Internet Protocol) 프로토콜 스택을 강화합니다.

기본 TCP/IP 스택 구성은 정상적인 인트라넷 트래픽을 처리하도록 조정되어 있으나, 컴퓨터를 인터넷에 직접 연결한 경우 서비스 거부 공격에 대비하여 TCP/IP 스택을 강화하는 것이 좋습니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

  • 값 이름: SynAttackProtect
    키: Tcpip\Parameters
    값 종류: REG_DWORD
    유효 범위: 0,1,2
    기본값: 0

    이 레지스트리 값은 전송 제어 프로토콜(TCP)이 SYN-ACKS의 재전송을 조정하도록 합니다. 이 값을 구성하면 SYN 공격(서비스 거부 공격의 한 종류)이 발생한 경우 연결 응답이 더 빨리 시간 초과됩니다.

    다음은 이 레지스트리 값과 함께 사용할 수 있는 매개 변수입니다.
    • 0(기본값): SYN 공격에 대한 일반적인 보호를 하려면 SynAttackProtect0으로 설정합니다.
    • 1 : SYN 공격에 대하여 보다 높은 수준의 보호를 하려면 SynAttackProtect1로 설정합니다. 이 매개 변수는 TCP가 SYN-ACKS의 재전송을 조정하도록 합니다. SynAttackProtect1로 설정하면 SYN 공격이 이루어지고 있는 경우 연결 응답이 더 빨리 시간 초과됩니다. Windows는 공격이 진행 중인지 확인하기 위하여 다음 값을 사용합니다.
      • TcpMaxPortsExhausted
      • TCPMaxHalfOpen
      • TCPMaxHalfOpenRetried

    • 2 : SYN 공격에 대하여 최상의 보호를 하려면 SynAttackProtect2로 설정합니다. 이 값은 연결 표시가 더 지연되도록 하며, SYN 공격이 진행 중일 때는 TCP 연결 요청이 더 빨리 시간 초과됩니다. 이 값은 권장 설정입니다.

      참고: 다음 소켓 옵션은 SynAttackProtect 값을 2로 설정하면 더 이상 작동하지 않습니다.
      • 확장 가능한 창
      • 각 어댑터에 구성된 TCP 매개 변수(초기 RTT 및 창 크기 포함)

  • 값 이름: EnableDeadGWDetect
    키: Tcpip\Parameters
    값 종류: REG_DWORD
    유효 범위: 0, 1(False, True)
    기본값: 1(True)

    다음은 이 레지스트리 값과 함께 사용할 수 있는 매개 변수입니다.
    • 1 : EnableDeadGWDetect1로 설정하면 TCP는 더 이상 작동하지 않는 게이트웨이를 검색할 수 있습니다. 더 이상 작동하지 않는 게이트웨이 감지가 사용되면 TCP는 여러 연결에 문제가 발생하는 경우 인터넷 프로토콜(IP)에 백업 게이트웨이를 변경하도록 요청할 수 있습니다. 백업 게이트웨이는 네트워크 제어판에 있는 TCP/IP 구성 대화 상자의 고급 섹션에서 정의됩니다.
    • 0 : EnableDeadGWDetect0으로 설정하는 것이 좋습니다. 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(두 시간)

    이 값은 TCP가 연결 유지(Keep-alive) 패킷을 보내어 유휴 연결이 열려 있는지 확인하는 횟수를 결정합니다. 연결이 유지되어 있다면 원격 컴퓨터가 Keep-Alive 패킷을 인식합니다. Keep-Alive 패킷은 기본적으로 보내지지 않습니다. 연결에서 이 값을 구성하기 위한 프로그램을 사용할 수 있습니다. 권장값은 300,000(5분)입니다.
  • 값 이름: NoNameReleaseOnDemand
    키: Netbt\Parameters
    값 종류: REG_DWORD
    유효 범위: 0, 1(False, True)
    기본값: 0(False)

    이 값은 컴퓨터가 이름 해제 요청을 받을 때 NetBIOS 이름을 해제할지 여부를 결정합니다. 이 값은 관리자가 악의적인 이름 해제 공격으로부터 컴퓨터를 보호할 수 있도록 추가되었습니다. NoNameReleaseOnDemand 값을 1(기본값)로 설정하는 것이 좋습니다.

    참고: NoNameReleaseOnDemand 값을 사용하려면 Windows 2000 서비스 팩 2(SP2) 이상을 사용해야 합니다.

..
다음 부분을 Syn.reg 파일을 만들어 클릭해서 넣어시면 됩니다.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"SynAttackProtect"=dword:00000002
"TcpMaxHalfOpen"=dword:00000100
"TcpMaxHalfOpenRetried"=dword:00000080
"EnableICMPRedirect"=dword:00000001
"NoNameReleaseOnDemand"=dword:00000001
"EnableDeadGWDetect"=dword:00000000
"KeepAliveTime"=dword:00300000
"PerformRouterDiscovery"=dword:00000000
"EnableICMPRedirects"=dword:00000000