Windows Server 진단 - SMB Signing 비활성화 진단
진단 시나리오
SMB(Server Message Block) 프로토콜의 서명(Signing) 기능 활성화 여부를 진단합니다.
점검 결과
| 설정항목 | 현재값 | 권장값 | 상태 |
| SMB Signing (서버) | 비필수 | 필수 | 위험 |
| SMB Signing (클라이언트) | 비활성화 | 활성화 | 위험 |
| SMB v2/v3 | 혼용 | v3만 사용 | 부적절 |
| SMB v1 비활성화 | Yes | Yes | 양호 |
레지스트리 분석
[서버 설정]
HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
RequireSecuritySignature = 0 (비필수 - 위험)
EnableSecuritySignature = 0 (비활성화 - 위험)
EnableForcedLogoff = 1 (양호)
[클라이언트 설정]
HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
RequireSecuritySignature = 0 (비필수 - 위험)
EnableSecuritySignature = 0 (비활성화 - 위험)
EnablePlainTextPassword = 0 (양호)
[권장 설정값]
RequireSecuritySignature = 1 (필수)
EnableSecuritySignature = 1 (활성화)
공격 시나리오
[SMB Signing 미활성화의 위험]
1. 중간자 공격(MITM)
- Responder.py로 LLMNR/mDNS 스푸핑
- 사용자 인증정보 탈취
2. 세션 하이재킹
- SMB 세션 가로채서 명령 삽입
- 파일 변조 또는 악성코드 배포
3. 릴레이 공격
- ntlmrelayx.py로 NTLM 인증 릴레이
- 다른 시스템으로 권한 상승
[Wireshark 캡처 예]
일반 텍스트 SMB 통신 감지
- Negotiate Protocol Request (서명 협상 없음)
- Session Setup AndX (서명 불필수)
- Tree Connect AndX (암호화 없음)
PowerShell 명령
# 현재 설정 확인
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' | Select-Object RequireSecuritySignature, EnableSecuritySignature
# 서버 SMB Signing 필수 설정
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name RequireSecuritySignature -Value 1
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name EnableSecuritySignature -Value 1
# 클라이언트 SMB Signing 필수 설정
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters' -Name RequireSecuritySignature -Value 1
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters' -Name EnableSecuritySignature -Value 1
# 서비스 재시작
Restart-Service -Name LanmanServer -Force
조치 가이드
- SMB Signing 필수 설정:
- RequireSecuritySignature = 1로 설정
- 모든 SMB 통신에 암호화 서명 적용
- SMB v1 제거: 레거시 프로토콜은 다양한 취약점 보유
- Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
- SMB 암호화 고려:
- 민감한 데이터의 경우 전체 SMB 암호화 활성화
- EncryptionCiphers 설정 검토
- 네트워크 분석: Wireshark로 정기적 모니터링
- 클라이언트 정책: 그룹정책으로 모든 클라이언트에 일관된 설정 적용