가로채기로부터 SMB 트래픽 보호
이 문서에서는 공격자가 SMB 프로토콜에 대해 가로채기 기술을 사용할 수 있는 몇 가지 방법과 공격을 완화하는 방법에 대해 알아봅니다. 이 개념은 SMB 프로토콜에 대한 심층 방어 전략을 개발할 수 있습니다.
가로채기 공격이란?
악의적인 AITM(중간) 공격은 클라이언트와 서버 간의 네트워크 통신을 수정하여 위협 행위자가 트래픽을 가로챌 수 있도록 합니다. 가로채기 후 악의적인 행위자는 조직 데이터 또는 계정 자격 증명에 대한 액세스를 스푸핑, 변조, 공개 또는 거부할 수 있습니다.
많은 조직에서는 SMB를 사용하여 사용자 간에 파일을 공유하고 Active Directory 도메인 Services와 같은 다른 애플리케이션 또는 기술을 지원합니다. 이러한 광범위한 채택으로 인해 SMB는 공격자에게 인기 있는 대상이며 비즈니스 전반에 영향을 미칠 가능성이 있습니다.
예를 들어 AITM 공격은 산업 또는 상태 수준의 간첩, 강탈, 또는 파일에 저장된 중요한 보안 데이터를 찾는 데 사용될 수 있습니다. 또한 공격자가 네트워크 내에서 횡적으로 이동하거나 여러 엔드포인트를 대상으로 지정할 수 있도록 더 넓은 범위의 공격의 일부로 사용할 수 있습니다.
공격은 지속적으로 진화하고 있으며, 공격자는 종종 확립된 기술과 새로운 기술을 조합하여 사용합니다. SMB 가로채기로부터 시스템을 보호하는 경우 다음 두 가지 주요 목표가 있습니다.
- 사용 가능한 공격 방법 수를 줄입니다.
- 사용자에게 제공하는 경로를 보호합니다.
많은 조직 내에서 기술과 클라이언트의 다양성으로 인해, 다각적인 방어는 여러 방법을 결합하고 제로 트러스트 원칙을 따릅니다. 제로 트러스트란? 문서에서 제로 트러스트 대해 자세히 알아보세요.
이제 SMB 가로채기의 위험을 줄이기 위한 몇 가지 일반적인 모범 사례 구성에 대해 알아봅니다.
사용 가능한 공격 방법 줄이기
SMB 가로채기 공격으로부터 시스템을 보호하려면 첫 번째 단계는 공격 노출 영역을 줄이는 것입니다. 공격 노출 영역은 시스템이 사이버 위협 및 손상에 취약한 곳입니다.
다음 섹션에서는 공격 노출 영역을 줄이기 위해 수행해야 하는 몇 가지 기본 단계를 설명합니다.
업데이트 설치
조직에서 허용하는 한 Windows Server 및 클라이언트 시스템 모두에 사용 가능한 모든 보안 업데이트를 릴리스에 가깝게 정기적으로 설치합니다. 최신 보안 업데이트를 설치하는 것은 SMB뿐만 아니라 모든 Microsoft 제품 및 서비스에 영향을 미치는 현재 알려진 보안 취약성으로부터 시스템을 보호하는 가장 빠르고 쉬운 방법입니다.
조직 요구 사항에 따라 몇 가지 다른 방법을 사용하여 보안 업데이트를 설치할 수 있습니다. 일반적인 방법은 다음과 같습니다.
- Azure 업데이트 관리
- Windows 업데이트
- WSUS(Windows Server Update Services)
- Endpoint Configuration Manager에서 소프트웨어 업데이트
MSRC(Microsoft Security Response Center) 보안 업데이트 가이드에서 알림을 구독하는 것이 좋습니다. 보안 업데이트 가이드 알림 시스템은 소프트웨어 업데이트가 게시되어 신규 및 기존 CVE(일반 취약성 및 노출)를 해결하기 위해 게시되는 시기를 알려 줍니다.
SMB 1.0 제거
필요하지 않은 모든 Windows Server 및 클라이언트에서 SMB 1.0 기능을 제거하거나 사용하지 않도록 설정해야 합니다. SMB 1.0이 필요한 시스템의 경우 가능한 한 빨리 SMB 2.0 이상으로 이동해야 합니다. Windows 10 Fall Creators Update 및 Windows Server 2019 부터, SMB 1.0은 더 이상 기본적으로 설치되지 않습니다.
팁
Windows 10 Home 및 Windows 10 Pro에는 여전히 새로 설치하거나 현재 위치 업그레이드한 후에도 기본적으로 SMB 1.0 클라이언트가 포함되어 있습니다. 이 동작은 Windows 11에서 변경되고 있으며, Windows 11 Home Insiders 빌드에 대해 기본적으로 비활성화된 SMB1 문서에서 자세히 확인할 수 있습니다.
SMB 1.0을 제거하면 잘 알려진 몇 가지 보안 취약성을 제거하여 시스템을 보호합니다. SMB 1.0에는 가로채기로부터 보호하는 데 도움이 되는 SMB 2.0 이상의 보안 기능이 없습니다. 예를 들어 SMB 3.0 이상의 손상된 연결을 방지하려면 사전 인증 무결성, 암호화 및 서명을 사용합니다. SMB 보안 향상 문서에서 자세히 알아보세요.
SMB 1.0 기능을 제거하기 전에 컴퓨터의 애플리케이션 및 프로세스가 필요하지 않은지 확인합니다. SMB 1.0을 검색하고 사용하지 않도록 설정하는 방법에 대한 자세한 내용은 Windows에서 SMBv1, SMBv2 및 SMBv3을 검색, 사용 및 사용하지 않도록 설정하는 방법 문서를 참조하세요.
Windows Admin Center 파일 및 파일 공유 도구를 사용하여 SMB1 클라이언트 연결에 대한 감사를 빠르게 사용하도록 설정하고 SMB 1을 제거할 수도 있습니다.
게스트 인증 및 대체 사용 안 함
사용자의 자격 증명이 실패하면 SMB 1.0에서 SMB 클라이언트는 게스트 액세스를 시도합니다. Windows 10 버전 1709 및 Windows Server 2019부터 SMB2 및 SMB3 클라이언트는 더 이상 게스트 계정 액세스를 허용하거나 기본적으로 게스트 계정으로 대체하지 않습니다. SMB 2.0 이상을 사용하고 게스트 액세스가 기본적으로 사용하지 않도록 설정되지 않은 시스템에서 SMB 게스트 액세스를 사용하지 않도록 설정해야 합니다.
팁
Windows 11 Home 및 Pro 버전은 이전의 기본 동작에서 변경되지 않았습니다. 기본적으로 게스트 인증을 허용합니다.
게스트 액세스를 사용하지 않도록 설정하면 악의적인 행위자가 서버를 만들고 사용자가 게스트 액세스를 사용하여 액세스하도록 속이는 것을 방지합니다. 예를 들어 사용자가 스푸핑된 공유에 액세스하면 자격 증명이 실패하고 SMB 1.0이 게스트 액세스 사용으로 대체됩니다. 게스트 액세스를 사용하지 않도록 설정하면 SMB 세션이 연결되지 않으므로 사용자가 공유 및 어떠한 악성 파일에도 액세스할 수 없습니다.
게스트 액세스가 기본적으로 사용하지 않도록 설정되지 않은 Windows SMB 클라이언트에서 게스트 대체를 사용하지 않도록 하려면(Windows Server 포함):
- 열기는 그룹 정책 관리 콘솔합니다.
- 콘솔 트리에서 컴퓨터 구성 > 관리 템플릿 > 네트워크 >Lanman Workstation를 선택합니다.
- 설정을 위해 안전하지 않은 게스트 로그온 사용을 마우스 오른쪽 버튼으로 클릭하고 편집을 선택합니다.
- 사용을 선택한 다음 확인을 선택합니다.
게스트 액세스 기본 동작에 대한 자세한 내용은 Windows에서 기본적으로 사용하지 않도록 설정된 SMB2 및 SMB3의 게스트 액세스 문서를 참조하세요.
WebDAV 프로토콜 비활성화
Windows 클라이언트는 WebClient
서비스를 실행하도록 요구하지 않을 수 있습니다. 이 서비스는 WebDAV(Web Distributed Authoring and Versioning) 프로토콜을 제공합니다. 클라이언트가 WebDAV를 사용하여 HTTP 또는 HTTPS를 통해 SMB 공유에 액세스하지 않는 경우 서비스를 사용하지 않도록 설정할 수 있습니다.
사용자가 WebDAV를 사용하여 파일에 액세스하는 경우 HTTPS를 통해 TLS 기반 연결을 강제 적용하는 방법은 없습니다. 예를 들어 SMB 서명 또는 암호화가 필요하도록 서버를 구성할 수 있지만 WebDAV를 사용하도록 설정한 경우 Webclient가 HTTP/80에 연결할 수 있습니다. 이로 인한 연결은 SMB 구성에 관계없이 암호화되지 않습니다.
구현할 준비가 되면 그룹 정책 기본 설정을 사용하여 많은 수의 컴퓨터에서 서비스를 사용하지 않도록 설정할 수 있습니다. 그룹 정책 기본 설정을 구성하는 방법에 대한 자세한 내용은 서비스 항목 구성을 참조 하세요.
아웃바운드 SMB 대상 제한
네트워크 외부 디바이스에 대한 아웃바운드 SMB 트래픽을 최소한으로 차단합니다. 아웃바운드 SMB를 차단하면 데이터가 외부 엔드포인트로 전송되지 않습니다. 악의적인 행위자는 종종 전자 메일 또는 기타 파일 내에서 친숙한 링크 또는 바로 가기로 위장한 악의적인 엔드포인트로 사용자를 보내려고 하는 스푸핑, 변조 또는 피싱 공격을 시도합니다. 아웃바운드 SMB 액세스를 차단하는 방법에 대한 자세한 내용은 Windows Server의 보안 SMB 트래픽 문서를 참조하세요.
아키텍처에 마이크로 경계 및 마이크로 세분화를 도입하여 이 원칙에 대해 더 자세히 살펴보세요. 외부 네트워크에 대한 아웃바운드 SMB 트래픽을 차단하면 인터넷에 대한 데이터 직접 반출을 방지하는 데 도움이 되지만, 최신 공격은 고급 기술을 사용하여 다른 시스템을 공격한 다음 네트워크 내에서 횡적으로 이동하여 간접적으로 액세스 권한을 얻습니다. 마이크로 경계 및 마이크로 세분화는 명시적으로 필요하지 않은 한 SMB 공유에 직접 연결할 수 있는 시스템 및 사용자의 수를 줄이는 것을 목표로 합니다. 제로 트러스트 지침의 일부로 네트워크 구분에 대해 자세히 알아봅니다.
프로토콜 보안
두 번째 목표는 전송 중인 데이터 보호라고 하는 사용자와 데이터 간의 경로를 보호하는 것입니다. 전송 중인 데이터 보호에는 일반적으로 암호화, 인터페이스 강화 및 안전하지 않은 프로토콜 제거를 사용하여 공격에 대한 저항을 개선하는 작업이 포함됩니다.
다음 섹션에서는 SMB 프로토콜을 보호하기 위해 수행해야 하는 몇 가지 기본 단계를 설명합니다.
SMB 3.1.1 사용
Windows는 항상 사용 가능한 가장 높은 프로토콜로 협상하고 디바이스 및 컴퓨터가 SMB 3.1.1을 지원하는지 확인합니다.
SMB 3.1.1은 Windows 10 및 Windows Server 2016부터 사용할 수 있습니다. SMB 3.1.1에는 사전 인증 무결성이라는 새로운 필수 보안 기능이 포함되어 있습니다. 사전 인증 무결성은 협상 및 세션 설정 메시지의 변조를 방지하기 위해 암호화 해시를 사용하여 SMB 연결의 초기 단계를 서명하거나 암호화합니다.
암호화 해싱은 클라이언트와 서버가 연결 및 세션 속성을 상호 신뢰할 수 있음을 의미합니다. 사전 인증 무결성은 SMB 3.0에 도입된 보안 방언 협상을 대체합니다. 사전 인증 무결성을 끌 수는 없지만 클라이언트가 이전 방언을 사용하는 경우 사용되지 않습니다.
SMB 3.1.1을 최소한으로 사용하도록 강제하여 보안 태세를 더욱 강화할 수 있습니다. 최소 SMB 방언을 3.1.1로 설정하려면 관리자 권한 PowerShell 프롬프트에서 다음 명령을 실행합니다.
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" -Name "MinSMB2Dialect" -Value 0x000000311
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" -Name "MaxSMB2Dialect" -Value 0x000000311
Windows Server 및 Windows에서 사용되는 최소 및 최대 SMB 방언을 설정하는 방법에 대한 자세한 내용은 Windows에서 SMB 방언 관리를 참조하세요.
UNC 강화를 사용하여 서명, 암호화 및 상호 인증 필요
적어도 상호 인증(Kerberos) 및 무결성(SMB 서명)을 요구하여 모든 SMB 공유에 대해 UNC 강화를 사용하도록 설정합니다. 또한 SMB 서명 대신 개인 정보 보호(SMB 암호화)를 평가하는 것도 고려해야 합니다. 암호화에는 서명에 사용되는 서명이 암시적으로 포함되므로 SMB 서명과 암호화를 모두 구성할 필요가 없습니다.
주의
SMB 암호화는 Windows 8 및 Windows Server 2012에서의 SMB 3과 함께 도입되었습니다. 모든 기기가 SMB 3.0 이상을 지원하거나, SMB 3 및 암호화 지원을 사용하는 타사인 경우가 아니면 암호화가 필요하지 않습니다. SMB 암호화를 지원하지 않는 서버에서 호스트하는 클라이언트, 또는 UNC 경로에서 SMB 암호화를 구성하는 경우 SMB 클라이언트는 지정된 경로에 액세스할 수 없습니다. 또한, SMB 암호화를 위해 서버를 구성하고 서버를 지원하지 않는 클라이언트에서 액세스하는 경우 해당 클라이언트는 다시 경로에 액세스할 수 없습니다.
UNC 강화는 위임된 보안 설정에 대한 UNC 경로를 확인하는 기능을 제공하며 서버가 이를 충족할 수 없는 경우 연결을 거부합니다. Windows Server 2016 및 Windows 10부터 UNC 강화는 도메인 컨트롤러의 SYSVOL 및 NETLOGON 공유에 대해 기본적으로 사용하도록 설정됩니다. 클라이언트가 서버의 ID를 인증하고 SMB 페이로드의 무결성을 확인할 수 있으므로 스푸핑 및 변조에 대한 매우 효과적인 도구입니다.
UNC 강화를 구성할 때, 다양한 UNC 경로 패턴을 지정할 수 있습니다. 예시:
\\<Server>\<Share>
- 구성 항목은 지정된 서버에서 지정된 이름을 포함하는 공유에 적용됩니다.\\*\<Share>
- 구성 항목은 모든 서버에서 지정된 이름을 포함하는 공유에 적용됩니다.\\<Server>\*
- 구성 항목은 지정된 서버의 모든 공유에 적용됩니다.
그룹 정책을 사용하여 UNC 강화 기능을 구현할 준비가 되면 많은 컴퓨터에 적용할 수 있습니다. 그룹 정책을 통해 UNC 강화를 구성하는 방법에 대한 자세한 내용은 보안 공지 MS15-011을 참조하세요.
위임된 서명 또는 암호화를 사용하여 요청 시 드라이브 매핑하기
UNC 강화 이외에도 네트워크 드라이브를 매핑할 때 서명 또는 암호화를 사용할 수 있습니다.
Windows 버전 1709 이상부터 Windows PowerShell 또는 명령 프롬프트를 사용하여 요청 시 암호화되거나 서명된 매핑된 드라이브를 만들 수 있습니다. NET USE
명령 또는 PowerShell New-SmbMapping
명령을 사용하여 RequireIntegrity(서명) 또는 RequirePrivacy(암호화) 매개 변수를 지정하여 드라이브를 매핑할 수 있습니다.
이 명령은 관리자가 사용하거나 스크립트에 포함되어 암호화 또는 무결성 검사가 필요한 드라이브의 매핑을 자동화할 수 있습니다.
매개 변수는 서명 또는 암호화의 작동 방식이나 언어 요구 사항을 변경하지 않습니다. 드라이브를 매핑하려고 할 때 서버에서 서명 또는 암호화 요구 사항을 준수하지 않으면 안전하게 연결되지 않고 드라이브 매핑이 실패합니다.
New-SmbMapping 참조 문서에서 New-SmbMapping
명령에 대한 구문 및 매개 변수에 대해 알아봅니다.
SMB를 넘어
NTLM 사용을 중지하여 Kerberos 보안을 강화합니다. 먼저 NTLM 사용에 대한 감사를 사용하도록 설정한 다음 로그를 검토하여 NTLM이 사용되고 있는 위치를 찾을 수 있습니다.
NTLM을 제거하면 이전 MD4/MD5 암호화 해시 함수를 사용하므로 통과 해시, 무차별 암호 대입 또는 무지개 해시 테이블과 같은 일반적인 공격으로부터 사용자를 보호할 수 있습니다. 또한 NTLM은 Kerberos와 같은 비교적 신규 프로토콜과 달리 서버 ID를 확인할 수 없으므로 NTLM 릴레이 공격에도 취약합니다. 이러한 일반적인 공격의 대부분은 Kerberos를 사용하여 쉽게 완화됩니다.
Kerberos로의 전환을 시작하기 위한 노력의 일환으로 NTLM을 감사하는 방법을 알아보려면 NTLM 사용량 평가 문서를 참조하세요. Azure Sentinel 안전하지 않은 프로토콜 통합 문서 구현 가이드 블로그 문서에서 Azure Sentinel을 사용하여 안전하지 않은 프로토콜을 검색하는 방법을 알아볼 수도 있습니다.
NTLM 제거와 동시에 오프라인 및 티켓 전달 공격에 대한 보호 계층을 추가하는 것이 좋습니다. Kerberos 보안을 강화할 때 다음 항목을 가이드로 사용합니다.
- 비즈니스용 Windows Hello 또는 스마트 카드 배포 - 비즈니스용 Windows Hello 2단계 인증은 완전히 새로운 보호 계층을 추가합니다. 비즈니스용 Windows Hello에 대해 알아보기.
- 긴 암호 및 구 적용 - 무차별 암호 공격에 대한 저항을 줄이기 위해 15자 이상과 같은 긴 암호 길이를 사용하는 것이 좋습니다. 암호를 더욱 강력하게 만들려면 일반적인 단어나 구 역시 피해야 합니다.
- Active Directory 도메인 Services용 Microsoft Entra 암호 보호 배포 - Microsoft Entra ID 암호 보호를 사용하여 알려진 취약한 암호 및 조직과 관련된 용어를 차단합니다. 자세한 내용은 Active Directory Domain Services에 대한 온-프레미스 Microsoft Entra 암호 보호 적용을 검토하세요.
- gMSA(그룹 관리 서비스 계정) 사용 - 127개의 임의의 문자 생성과 함께 gMSA가 설정된 서비스는 무차별 암호 대입 및 사전 공격을 통해 암호를 해독하는 데 매우 많은 시간이 소요됩니다. 그룹 관리 서비스 계정 개요 문서에 있는 gMSA에 대해 알아봅니다.
- FAST(유연한 인증 보안 터널링)라고 하는 Kerberos 아머링 - FAST는 사용자의 사전 인증 데이터가 보호되고 더 이상 오프라인 무차별 암호 대입 또는 사전 공격의 영향을 받지 않으므로 Kerberoasting을 방지합니다. 또한 스푸핑된 KDC의 다운그레이드 공격을 방지하여 Kerberos 아머링을 자세히 검토합니다.
- Windows Defender Credential Guard 사용 - Credential Guard는 티켓 부여 및 캐시된 서비스 티켓 도난을 방지하여 티켓의 로컬 손상을 더 어렵게 만듭니다. Windows Defender Credential Guard 작동 방법 문서에서 자세히 알아보세요.
- SCRIL 요구 고려: 대화형 로그온 에 필요한 스마트 카드 - SCRIL을 배포할 때 AD는 사용자의 암호를 사용자가 더 이상 대화형으로 로그인하는 데 사용할 수 없는 임의의 128비트 집합으로 변경합니다. SCRIL은 일반적으로 특정 보안 요구 사항이 있는 환경에만 적합합니다. 암호 없는 전략에 대해 자세히 알아보려면 암호 인증을 허용하지 않도록 사용자 계정 구성을 검토하세요.
다음 단계
이제 SMB 가로채기를 방지하기 위한 몇 가지 보안 제어 및 완화에 대해 알아보았으므로 모든 가로채기 공격을 방지하는 단일 단계가 없다는 것을 이해하게 됩니다. 목표는 계층화된 방어를 통해 여러 기술에 걸친 위험 완화의 사려 깊고 전체적이며 우선 순위가 지정된 조합을 만드는 것입니다.
아래 문서에서 이러한 개념에 대해 자세히 알아볼 수 있습니다.