Dos 공격 방어 레지스트리

by ADMINPLAY posted Apr 24, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
그냥 훑어 보면서 좋은 내용만 골라서 복사 한 것들이기 때문에 보는데 불편 할 수 있습니다.

경고: 레지스트리 편집기를 잘못 사용하면 심각한 문제가 발생할 수 있으며 문제를 해결하기 위해 운영 체제를 다시 설치해야 할 수도 있습니다. 필자는 레지스트리 편집기를 잘못 사용함으로써 발생하는 문제에 대해 해결을 보증하지 않습니다. 레지스트리 편집기의 사용에 따른 모든 책임은 사용자에게 있습니다.

HKLMSystemCurrentControlSetServicesTcpipParameters
값 이름: SynAttackProtect
키: TcpipParameters
값 종류: REG_DWORD
유효 범위: 0,1
기본값: 0

이 레지스트리 값은 TCP(Transmission Control Protocol)가 SYN-ACKS의 재전송을 조정하도록 합니다. 이 값을 구성하면 SYN 공격(서비스 거부 공격의 한 종류) 동안 연결 응답이 더 빨리 시간 초과됩니다.

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

TcpMaxPortsExhausted
TCPMaxHalfOpen
TCPMaxHalfOpenRetried



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

다음은 이 레지스트리 값과 함께 사용할 수 있는 매개 변수입니다. ? 1 : EnableDeadGWDetect를 1로 설정하면 TCP는 더 이상 작동하지 않는 게이트웨이를 검색할 수 있습니다. 더 이상 작동하지 않는 게이트웨이 감지가 사용되면 TCP는 여러 연결에 문제가 발생하는 경우 인터넷 프로토콜(IP)에 백업 게이트웨이를 변경하도록 요청할 수 있습니다. 백업 게이트웨이는 제어판의 네트워크 도구에 있는 TCP/IP 구성 대화 상자의 고급 섹션에서 정의됩니다.
0: EnableDeadGWDetect 값은 0으로 설정하는 것이 좋습니다. 0으로 설정하지 않으면 공격으로 인하여 서버가 강제로 원하지 않는 게이트웨이로 전환될 수 있습니다.

값 이름: EnablePMTUDiscovery
키: TcpipParameters
값 종류: REG_DWORD
유효 범위: 0, 1(False, True)
기본값: 1(True)

다음은 이 레지스트리 값과 함께 사용할 수 있는 매개 변수입니다. ? 1 : EnablePMTUDiscovery를 1로 설정하면 TCP는 최대 전송 단위(MTU)나 원격 호스트 경로에 대한 최대 패킷 크기를 검색하려 합니다. TCP는 경로의 MTU를 검색하고 TCP 세그먼트를 이 크기로 제한하여 경로에 있는 각자 다른 MTU로 네트워크에 연결하는 라우터에서 조각을 제거할 수 있습니다. 조각이 있으면 TCP 처리량에 좋지 않은 영향을 줍니다.
? 0 : EnablePMTUDiscovery는 0으로 설정하는 것이 좋습니다. 이렇게 하면 로컬 서브넷에서 호스트하지 않는 모든 연결에 576바이트의 MTU가 사용됩니다. 이 값을 0으로 설정하지 않으면 공격자가 강제로 MTU를 아주 작은 값으로 설정하여 스택의 부하가 커집니다.

값 이름: KeepAliveTime
키: TcpipParameters
값 종류: REG_DWORD - 시간(밀리초)
유효 범위: 1 - 0xFFFFFFFF
기본값: 7,200,000(2시간)

이 값은 TCP가 Keep Alive 패킷을 보내어 유휴 연결이 열려 있는지 확인하는 빈도를 결정합니다. 연결이 유지되어 있다면 원격 컴퓨터가 Keep-Alive 패킷을 인식합니다. Keep-Alive 패킷은 기본적으로 보내지지 않습니다. 연결에서 이 값을 구성하기 위한 프로그램을 사용할 수 있습니다. 권장값은 300,000(5분)입니다.

값 이름: NoNameReleaseOnDemand
키: NetbtParameters
값 종류: REG_DWORD
유효 범위: 0, 1(False, True)
기본값: 0(False)

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


DisableIPSourceRouting DWORD 2

IP 원본 라우팅은 데이터그램이 네트워크를 통해 취해야 할 IP 경로를 보낸 사람이 결정할 수 있도록 하는 메커니즘입니다.
보안 문제
공격자는 원본에서 라우팅한 패킷을 사용하여 ID와 위치를 모호하게 만들 수 있습니다.
패킷을 보내는 컴퓨터는 원본 라우팅을 통해 사용할 경로를 지정할 수 있습니다.
이 레지스트리 값으로 사용할 수 있는 값은 다음과 같습니다.

? 0, 1 또는 2, 기본값은 0(원본에서 라우팅한 패킷 확인됨)


TcpMaxConnectResponseRetransmissions DWORD 2

TcpMaxConnectResponseRetransmissions: SYN ? ACK retransmissions when a connection request is not acknowledged
이 항목은 SCE에서 MSS: SYN ? ACK retransmissions when a connection request is not acknowledged로 나타납니다. 이 매개 변수는 중단하기 전에 TCP에서 SYN을 재전송하는 횟수를 결정합니다. 재전송 제한 시간은 지정한 연결 시도에서 재전송이 연속될 때마다 두 배로 증가합니다. 초기 시간 제한 값은 3초입니다.

보안 문제
SYN 대규모 공격에서 공격자는 연속 SYN 패킷 스트림을 서버에 보내고 서버는 무력화되어 더 이상 합법적인 요청에 응답할 수 없을 때까지 부분 공개 연결을 열어 둡니다.

대책
MSS: SYN ? ACK retransmissions when a connection request is not acknowledged의 값을 3 seconds, half?open connections dropped after nine seconds로 구성하십시오.

이 레지스트리 값으로 사용할 수 있는 값은 다음과 같습니다.

? 0?0xFFFFFFFF, 기본값은 2


TcpMaxDataRetransmissions DWORD 3

TcpMaxDataRetransmissions: How many times unacknowledged data is retransmitted (3 recommended, 5 is default)
이 항목은 SCE에서 MSS: How many times unacknowledged data is retransmitted (3 recommended, 5 is default)로 나타납니다. 이 매개 변수는 연결을 중단하기 전에 TCP에서 개별 데이터 세그먼트(연결되지 않은 세그먼트)를 재전송하는 횟수를 결정합니다. 재전송 제한 시간은 연결에서 재전송이 연속될 때마다 두 배로 증가하고 응답이 재개되면 다시 설정됩니다. 기본 제한 시간 값은 연결 시 측정된 Round-Trip Time에 따라 동적으로 결정됩니다.

보안 문제
SYN 대규모 공격에서 공격자는 연속 SYN 패킷 스트림을 서버에 보내고 서버는 무력화되어 더 이상 합법적인 요청에 응답할 수 없을 때까지 부분 공개 연결을 열어 둡니다.

대책
MSS: How many times unacknowledged data is retransmitted (3 recommended, 5 is default)의 값을 3으로 구성하십시오. 이 레지스트리 값으로 사용할 수 있는 값은 다음과 같습니다.

? 0 ~ 0xFFFFFFFF, 기본값은 5



PerformRouterDiscovery DWORD 0

PerformRouterDiscovery: Allow IRDP to detect and configure Default Gateway addresses (could lead to DoS)
이 항목은 SCE에서 MSS: Allow IRDP to detect and configure Default Gateway addresses (could lead to DoS)로 나타납니다. 이 설정은 IRDP(Internet Router Discovery Protocol)의 사용 여부를 설정하는 데 사용됩니다. IRDP를 사용하면 시스템에서 기본 게이트웨이 주소를 자동으로 검색하고 구성할 수 있습니다.

보안 문제
같은 네트워크 세그먼트에서 시스템을 제어하는 공격자는 네트워크에서 컴퓨터가 라우터를 가장하도록 구성할 수 있습니다. 그러면 IRDP를 사용하도록 설정된 다른 컴퓨터에서 이미 손상된 시스템을 통해 트래픽을 라우팅하려고 시도할 수 있습니다.

대책
MSS: Allow IRDP to detect and configure Default Gateway addresses (could lead to DoS)의 값을 사용 안 함으로 구성하십시오.

이 레지스트리 값으로 사용할 수 있는 값은 다음과 같습니다.

? 1 또는 0, 기본값은 0(사용 안 함)


TCPMaxPortsExhausted DWORD 5

TCPMaxPortsExhausted: How many dropped connect requests to initiate SYN attack protection (5 is recommended)
이 항목은 SCE에서 MSS: How many dropped connect requests to initiate SYN attack protection (5 is recommended)으로 나타납니다. 이 매개 변수는 SYN ? ATTACK 보호가 작동하기 시작하는 시점을 결정합니다. 사용 가능한 연결 백로그를 0으로 설정했기 때문에 시스템에서 TcpMaxPortsExhausted 연결 요청을 거부하면 SYN ? ATTACK 보호가 작동하기 시작합니다.

보안 문제
SYN 대규모 공격에서 공격자는 연속 SYN 패킷 스트림을 서버에 보내고 서버는 무력화되어 더 이상 합법적인 요청에 응답할 수 없을 때까지 부분 공개 연결을 열어 둡니다.

대책
MSS: How many dropped connect requests to initiate SYN attack protection (5 is recommended)의 값을 5로 구성하십시오.

이 레지스트리 값으로 사용할 수 있는 값은 다음과 같습니다.

? 0 ~ 0xFFFF, 기본값은 5


AFD 설정:

DynamicBacklogGrowthDelta

EnableDynamicBacklog
MinimumDynamicBacklog

MaximumDynamicBacklog
FTP 서버 및 웹 서버와 같은 Windows 소켓 응용 프로그램의 연결 시도는 Afd.sys에 의해 처리됩니다. Afd.sys는 합법적 클라이언트에 대한 액세스를 거부하지 않고 부분 공개 상태에서 여러 번의 연결을 지원하도록 수정되었습니다.
관리자가 동적 백로그를 구성할 수 있도록 함으로써 이러한 지원이 가능해졌습니다.
DynamicBacklogGrowthDelta는 연결이 더 필요할 때 만들 사용 가능 연결 수를 결정합니다. 값이 크면 free 연결 할당이 폭주할 수 있으므로 이 값을 주의하여 설정하십시오.
SYN 대규모 공격에서 공격자는 연속 SYN 패킷 스트림을 서버에 보내고 서버는 무력화되어 더 이상 합법적인 요청에 응답할 수 없을 때까지 부분 공개 연결을 열어 둡니다.


DisableIPSourceRouting
IP 원본 라우팅은 데이터그램이 네트워크를 통해 취해야 할 IP 경로를 보낸 사람이 결정할 수 있도록 하는 메커니즘입니다. 이 값을 2로 설정하면 원본에서 라우팅한 모든 들어오는 패킷이 삭제됩니다.
공격자는 원본에서 라우팅한 패킷을 사용하여 ID와 위치를 모호하게 만듭니다. 패킷을 보내는 컴퓨터는 원본 라우팅을 통해 취할 경로를 지정할 수 있게 됩니다.


PerformRouterDiscovery
이 매개 변수는 IRDP(Internet Router Discovery Protocol)를 지원하는 Windows 2000이 컴퓨터에서 기본 게이트웨이 주소를 자동으로 검색 및 구성하지 못하도록 하기 위해 설정됩니다.
같은 네트워크 세그먼트에서 시스템을 제어하는 공격자는 네트워크에서 컴퓨터가 라우터를 가장하도록 구성할 수 있습니다.
그러면 IRDP를 사용하도록 설정된 다른 컴퓨터에서 이미 손상된 시스템을 통해 트래픽을 라우팅하려고 시도할 수 있습니다.

자동 실행 사용 안 함: 모든 드라이브에 대해 자동 실행 사용 안 함
이 항목은 SCE에서 MSS: 모든 드라이브에 대해 자동 실행 사용 안 함으로 나타납니다. 자동 실행은 컴퓨터의 드라이브에 미디어가 삽입되는 즉시 읽기를 시작하는 기능입니다. 따라서 프로그램의 설치 파일과 오디오 미디어의 사운드가 즉시 시작됩니다.

다음과 같은 레지스트리 값 항목이 템플릿 파일의 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer 레지스트리 키에 추가되었습니다.

표 5. 자동 실행을 사용하지 않도록 구성하기 위해 레지스트리에 추가된 설정

하위 키 레지스트리 값 항목 형식 권장 값(10진수)
NoDriveTypeAutoRun
DWORD
0xFF


다음 설정의 값을 1로 설정하여 CD/DVD 자동 실행만 사용할 수 없도록 할 수도 있습니다. 다음과 같은 레지스트리 값 항목이 템플릿 파일의 HKEY_LOCAL_MACHINE SYSTEMCurrentControlSetServicesCdrom 레지스트리 키에 추가되었습니다.

표 6. 자동 실행을 사용하지 않도록 구성하기 위해 레지스트리에 추가할 설정

하위 키 레지스트리 값 항목 형식 권장 값(10진수)
AutoRun
DWORD
0


보안 문제
미디어를 삽입할 때 악의적인 프로그램이 시작되지 않도록 하기 위해 그룹 정책을 통해 모든 드라이브에서 자동 실행을 사용하지 않도록 합니다.

시스템에 실제로 액세스할 수 있는 공격자는 자동 실행이 가능한 DVD 또는 CD를 컴퓨터에 삽입할 수 있으므로 이로 인해 악의적인 코드가 자동으로 시작됩니다. 이 악의적 프로그램에는 공격자가 원하는 모든 코드가 포함되어 있습니다.

화면 보호기 암호 보호 즉시 적용: 화면 보호기 유예 기간 만료 시간(초)(0 권장)
이 항목은 SCE에서 MSS: 화면 보호기 유예 기간 만료 시간(초)(0 권장)으로 나타납니다. Windows에는 화면 보호기 잠금이 활성화되어 있는 경우 화면 보호기가 실행된 후 실제로 콘솔이 자동으로 잠길 때까지의 유예 기간이 설정되어 있습니다.

다음과 같은 레지스트리 값 항목이 템플릿 파일의 HKEY_LOCAL_MACHINESYSTEMSoftwareMicrosoftWindows NTCurrentVersionWinlogon 레지스트리 키에 추가되었습니다.

표 7. 화면 보호기 암호 보호를 즉시 적용하기 위해 레지스트리에 추가된 설정

하위 키 레지스트리 값 항목 형식 권장 값(10진수)
ScreenSaverGracePeriod
String
0


보안 문제
화면 보호기 잠금이 실행되기 전에 사용자 동작에 허용된 기본 유예 기간은 5초입니다. 기본 유예 기간의 기본 설정을 그대로 유지하면 화면 보호기 잠금이 실행되기 전에 시스템에 로그온하기 위해 콘솔에 들어가는 사람으로부터 컴퓨터가 쉽게 공격을 받을 수 있습니다. 레지스트리 항목을 만들어 유예 기간을 조정할 수 있습니다.

대책
MSS: 화면 보호기 유예 기간 만료 시간(초)(0 권장)의 값을 0으로 구성하십시오.

이 레지스트리 값으로 사용할 수 있는 값은 다음과 같습니다.

? 0 ~ 255, 기본값은 5초

보안 로그 용량 경고: 시스템에서 경고를 생성할 보안 이벤트 로그 용량에 대한 백분율 임계값
이 항목은 SCE에서 MSS: 시스템에서 경고를 생성할 보안 이벤트 로그 용량에 대한 백분율 임계값으로 나타납니다. Windows Server 2003과 Windows 2000 서비스 팩 3에는 보안 로그가 사용자 정의된 임계값에 도달하면 보안 이벤트 로그에 보안 감사를 생성하는 새로운 기능이 포함되어 있습니다. 예를 들어 이 값이 90으로 설정된 경우에는 보안 로그가 용량의 90%에 도달하면 eventID 523에 대한 이벤트 항목과 보안 이벤트 로그가 90% 찼습니다.라는 텍스트가 표시됩니다.

참고: 필요에 따라 이벤트를 덮어쓰도록 보안 이벤트 로그를 구성한 경우에는 이 설정이 적용되지 않습니다.

다음과 같은 레지스트리 값 항목이 템플릿 파일의 HKEY_LOCAL_MACHINE SYSTEMCurrentControlSetServicesEventlogSecurity 레지스트리 키에 추가되었습니다.

표 8. 안전한 DLL 검색 모드를 사용할 수 있도록 레지스트리에 추가된 설정

하위 키 레지스트리 값 항목 형식 권장 값(10진수)
WarningLevel
DWORD
0


보안 문제
필요에 따라 이벤트를 덮어쓰도록 컴퓨터를 구성하지 않은 경우 보안 로그가 꽉 차면 최신 이벤트가 로그에 기록되지 않습니다. 보안 로그에 더 이상 이벤트를 기록할 수 없을 때 컴퓨터를 종료하도록 구성한 경우 로그가 꽉 차면 컴퓨터가 종료되고 네트워크 서비스를 더 이상 제공할 수 없게 됩니다.

대책
MSS: 시스템에서 경고를 생성할 보안 이벤트 로그 용량에 대한 백분율 임계값의 값을 90으로 구성하십시오.

이 레지스트리 값으로 사용할 수 있는 값은 다음과 같습니다.

? 0 ~ 100, 기본값은 0(경고 이벤트가 생성되지 않음)

안전한 DLL 검색 순서 사용: 안전한 DLL 검색 모드 사용(권장)
이 항목은 SCE에서 MSS: 안전한 DLL 검색 모드 사용(권장)으로 나타납니다. 다음 두 가지 중 한 가지 방법으로 프로세스를 실행하여 요청된 DLL(동적 연결 라이브러리)을 검색하도록 DLL 검색 순서를 구성할 수 있습니다.

? 시스템 경로에 지정된 폴더를 먼저 검색한 다음 현재 작업 중인 폴더를 검색합니다.

? 현재 작업 중인 폴더를 먼저 검색한 다음 시스템 경로에 지정된 폴더를 검색합니다.


이 레지스트리 값은 1로 설정되어 있습니다. 이 경우 시스템에서는 시스템 경로에 지정된 폴더를 먼저 검색한 다음 현재 작업 중인 폴더를 검색합니다. 0으로 설정하면 시스템에서는 현재 작업 중인 폴더를 먼저 검색한 다음 시스템 경로에 지정된 폴더를 검색합니다.

다음과 같은 레지스트리 값 항목이 템플릿 파일의 HKEY_LOCAL_MACHINE SYSTEMCurrentControlSetControlSession Manager 레지스트리 키에 추가되었습니다.

표 9. 안전한 DLL 검색 모드를 사용할 수 있도록 레지스트리에 추가된 설정

하위 키 레지스트리 값 항목 형식 권장 값(10진수)
SafeDllSearchMode
DWORD
0


보안 문제
사용자가 실수로 악성 코드를 실행하는 경우 이 코드가 수정된 버전의 시스템 DLL을 포함하여 추가 파일과 함께 패키지되어 있으면 해당 DLL의 고유 버전이 로드되어 코드에서 렌더링할 수 있는 손상 유형 및 정도가 커집니다.

대책
MSS: 안전한 DLL 검색 모드 사용(권장)의 값을 사용으로 구성하십시오.

이 레지스트리 값으로 사용할 수 있는 값은 다음과 같습니다.

? 1 또는 0, 기본값은 0

최종 로그온 사용자 이름 감추기
레지스트리를 아래와 같이 설정하여 최종 로그온 한 사용자의 이름을 감추십시오.

Win NT

하이브
HKEY_LOCAL_MACHINESOFTWARE


MicrosoftWindows NTCurrent VersionWinlogon

이름
DontDisplayLastUserName

형식
REG_SZ (Win 2000 > REG_DWORD)


1

win NT

공개 로컬 보안 인증(LSA)의 정보에 대한 액세스 제한

시스템의 모든 사용자를 식별하여, 익명 사용자를 제한하고 Windows NT Security Subsystem의 LSA 구성 요소에 대해 얻을 수 있는 공개 정보를 최소화해야 합니다. LSA는 로컬 컴퓨터의 액세스와 사용 권한을 포함한 보안 관리 항목을 처리합니다. 이 제한을 적용하려면 아래와 같이 레지스트리 항목을 만들고 설정하십시오. 하이브

HKEY_LOCAL_MACHINE SYSTEM




CurrentControlSetControlLSA


값 이름

RestrictAnonymous


종류

REG_DWORD




1

win 2000
RestrictAnonymous 레지스트리 값
레지스트리 편집기를 사용하여 다음 레지스트리 키를 보고 이 키에 다음 값을 추가하거나 값이 이미 있는 경우 값을 수정하십시오.
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLSA
값: RestrictAnonymous
값 종류: REG_DWORD
값 데이터: 0x2(16진수)

윈도우 기본 공유 폴더 생성 또는 제거

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParametersAutoShareServer

AutoShareServer의 값을 0으로 한경우 재시작시 공유 만들지 않음.
1인경우 재시작시 공유 만들거나 복원.