Zerologon이란?

Zerologon은 Microsoft Active Directory 도메인 컨트롤러에 대한 공격을 허용하는 Microsoft Netlogon 프로세스의 암호화 취약점입니다. Zerologon을 사용하면 해커가 루트 도메인 컨트롤러를 포함한 모든 컴퓨터를 가장 할 수 있습니다.

Zerologon

Zerologon은 CVE-2020-1472에서 확인된 취약점에 부여된 이름입니다. 로그온 프로세스의 결함에서 비롯됩니다. 초기화 벡터(IV)는 항상 모두 0으로 설정되지만 IV는 항상 임의의 숫자여야 합니다.

이 취약점은 CVSS(Common Vulnerability Scoring System)의 심각도에 대해 10점 만점에 10점(CVSS v3.1)을 가지고 있습니다. 알려진 활성 POC(개념 증명) 공격이 있으며 곧 실제 공격을 보게 될 가능성이 높습니다.

CISA(Cybersecurity and Infrastructure Security Agency)는 민간 연방 기관에 영향을 받는 모든 Windows 서버를 즉시 패치하거나 비활성화하도록 명령하는 비상 지시문을 발표했으며 비정부 기관에도 동일한 작업을 수행하도록 경고했습니다. Microsoft는 2020년 8월에 두 개의 패치 중 첫 번째 패치를 출시했으며 모든 도메인 컨트롤러에 적용해야 합니다.

이 취약점은 마이크로소프트의 MS-NRPC(Active Directory Netlogon Remote Protocol)의 암호화 결함을 공격합니다. 사용자가 NTLM(NT LAN Manager)을 사용하는 서버에 로그온 할 수 있습니다. 

이 취약점의 가장 큰 문제는 MS-NRPC가 컴퓨터 서비스 계정 암호와 같은 특정 계정 변경 사항을 전송하는데도 사용된다는 것입니다. 그 이유를 살펴보면 이 기능을 추가 한 이유를 확인할 수 있습니다. 그러나 이러한 암호 변경 요청의 출처에 대한 유효성 검사 부족은 중요한 보안 문제가 되었습니다.

상황은 더 어려워질 수 있습니다. MS-NRPC에 추가된 암호화는 끝내 선택되지 않았습니다. 1883년 네덜란드의 암호학자 Aguste Kerckhoff는 La Cryptographie Militaire(Military Cryptography)라는 제목으로 2개의 에세이를 발행하여 암호화 시스템 설계를 위한 6가지 핵심 원칙을 요약했습니다. 

Kerckhoff의 원칙은 암호화 키를 비밀로 유지해야 한다고 명시하고 있습니다. 또한 데이터를 보호하기 위해 알고리즘의 비밀에 의존해서는 안되며 잘 알려지고 입증된 알고리즘을 사용해야 합니다.

원래 Windows NT에서 로그온 프로세스를 암호화하는데 사용된 알고리즘은 2DES였으며 현재 문제가 있음을 알고 있습니다. 오늘날 MS-NRPC는 암호화의 벤치마크로 간주되는 AES(Advanced Encryption Standard)를 사용합니다. 

강력한 알고리즘을 선택하는 것 외에도 적절한 강도를 보장하기 위해 추가 설정을 선택해야 합니다. MS-NRPC는 AES-CFB8(Advanced Encryption Standard – Cipher Feed Back 8bit)이라는 모호한 설정을 사용합니다. AES-CFB8은 잘 알려지지 않고 테스트 되지 않았기 때문에 모호합니다. 

MS-NRPC 내에서 AES-CFB8을 사용하면 IV(초기화 벡터)에 문제가 있습니다.이 벡터는 임의의 수여야 하지만 MS-NRPC는 16바이트의 0값으로 고정했습니다. 이건 무작위가 아닙니다. 예측이 가능합니다 예측 가능성이 있는 곳에서는 암호화가 종종 손상됩니다.

이 취약점에 대한 인식

이 취약점은 Secura에서 근무하는 네덜란드 연구원인 Tom Tervoort가 2020년 9월 발표했습니다. 이 취약점은 실제로 8월에 패치 되었지만 연구원이 9월 보고서를 발표 할 때까지 POC 및 기타 활동을 시작했습니다. 

Tervoort의 논문은 프로세스를 자세히 설명합니다. 그는 논문에서 MS-NRPC에 대한 정보가 상당히 부족하다는 사실을 인지했습니다. 흥미를 느낀 Tervoort는 더 많은 정보를 찾아보았습니다. 

Tervoort는 처음에 중간자 공격을 찾고 있었지만 CVE-2020-1424에 자세히 설명된 또 다른 취약점을 발견했습니다. 연구를 계속하면서 Zerologon으로 알려진 것을 확인했습니다. 

그의 연구에서 중요한 부분은 Microsoft가 다른 모든 RPC 프로토콜과 다른 고유한 암호화 변형을 구현했다는 것입니다. Windows NT 시대에는 컴퓨터에 할당된 계정이 일류 주체로 식별되지 않았습니다. 즉, Microsoft는 표준화된 Kerberos 또는 NTLM을 사용하여 컴퓨터 또는 컴퓨터 계정을 인증 할 수 없습니다. 

결과적으로 개발자는 대안을 만들었습니다. 해독할 수 없는 암호화를 위한 코드와 프로토콜을 만들기란 매우 어렵습니다. 실제로 결함이 발견되기까지 오랜 시간이 걸릴 수 있습니다.

공격 작동 방식

이 취약점을 통해 해커는 루트 DC를 포함한 DC(도메인 컨트롤러)를 제어할 수 있습니다. 이는 컨트롤러에서 서비스 계정의 암호를 변경하거나 제거하여 수행됩니다. 그런 다음 해커는 단순히 서비스 거부를 유발하거나 전체 네트워크를 인수하여 소유 할 수 있습니다.

공격자가 이 취약점을 이용하려면 DC로 TCP(전송 제어 프로토콜) 세션을 설정할 수 있어야 합니다. 물리적으로 네트워크 내부에 있는 경우 사용자 책상이나 회의실과 같은 위치의 열린 포트에 있을 수 있습니다. 

이러한 익스플로잇은 내부자 공격으로 간주됩니다. 이는 오늘날 기업에서 가장 비용이 많이 드는 공격입니다. 컨트롤러에 대한 TCP 세션을 설정할 수 있는 발판을 확보할 수 있는 한, 네트워크 외부에서 설정할 수 있습니다.

16바이트의 0으로 고정된 IV가 있는 AES-CFB8을 사용하여 Tervoort는 사용된 모든 256개의 키 중 하나가 모두 0의 값을 갖는 암호 텍스트를 생성할 가능성이 있음을 발견했습니다. 이것은 공격자가 모두 0의 암호 텍스트를 만들려고 시도하는 매우 적은 수의 키입니다. 해커의 컴퓨터가 이 작업을 수행하는데 최대 2~3초가 소요됩니다. 

AES-CFB8 암호화(모두 0인 IV 및 일반 텍스트) 다이어그램

그렇다면 이것이 왜 중요할까요?

DC와 통신하는 기기가 평소처럼 하루 일과를 하는 사용자의 소유라면 실제 문제는 없습니다. 이렇게 잘못 구성된 암호화 된 텍스트가 발생하지만 네트워크 인증 프로세스가 작동합니다. 문제는 해커가 시스템을 악용하려고 할 때만 나타납니다.

Tervoort에 의해 입증된 공격에서 해커는 먼저 네트워크에 있는 클라이언트의 자격 증명 또는 암호를 스푸핑해야 합니다. MS-NRPC 내에서 IV를 제대로 구현하지 못하기 때문에 올바르게 설정하는 데 약 256번의 시도만 필요합니다. 

일반적으로 사용자의 계정은 암호를 추측하려고 세 번 시도하면 잠기지만 컴퓨터나 컴퓨터 계정에 대해서는 동일하지 않습니다. 컴퓨터가 로그온 할 때 잘못된 암호 시도에 대한 제한이 설정되어 있지 않으므로 해커가 침입할 수 있는 짧은 시간에 연속적인 시도가 허용됩니다. 모두 0으로 된 암호 텍스트를 생성하는 키 중 하나를 찾아야 합니다.

해커가 네트워크에 있는 컴퓨터의 신원을 스푸핑하면 무엇을 할 수 있습니까? ID 스푸핑의 첫 번째 단계가 완료되면 공격자는 세션의 실제 암호화 키를 알 수 없습니다. 공격자는 암호문이 모두 0인 256개의 키 중 하나를 마지막으로 눌러 자신의 신원을 스푸핑할 수만 있었습니다. 다음 단계는 ‘서명 및 봉인’을 비활성화하는 것입니다.

RPC 서명 및 봉인은 MS-NRPC 내에서 전송 암호화에 사용되는 메커니즘입니다. 이는 전송 중인 데이터를 더 많이 암호화해야 하기 때문에 논리적 프로세스로 보입니다. 그러나 MS-NRPC 내에서는 메시지 헤더에 플래그를 설정하지 않음으로써 해제되는 선택적 기능입니다. 

서명 및 봉인이 해제되면 메시지가 일반 텍스트로 전송됩니다. 해커는 암호를 제거하거나 다른 값으로 설정하는 등 원하는 모든 조치를 취할 수 있습니다. 서명 및 봉인을 의무화하기 위해 2021년 2 월에 Microsoft의 패치가 있을 것입니다.

세번째 단계는 스푸핑된 계정의 비밀번호를 변경하는 것입니다. 스푸핑되는 가장 효과적인 장치는 AD 서버, 가급적이면 루트 AD 서버 일 것입니다. 암호를 변경하기 위해 공격자는 MS-NRPC에서 NetServerPasswordSet2 메시지를 사용합니다. 

원하는 새 비밀번호로 프레임을 전송하기만하면 비밀번호를 변경할 수 있습니다. 가장 쉬운 방법은 암호를 제거하거나 빈 값으로 설정하는 것입니다. 해커는 이제 정상적인 프로세스를 통해 로그인할 수 있습니다. 

NetrServer


공격이 네트워크의 임의의 컴퓨터를 대상으로 하는 경우 해당 컴퓨터는 로그인할 수 없습니다. 따라서 이 공격의 첫 번째 결과는 단순히 해당 컴퓨터에 대한 서비스 거부 공격입니다.

글로벌 영향

이제 여러 공개 POC 공격을 사용할 수 있습니다. AD 서버가 패치되지 않으면 공격이 랜섬웨어를 네트워크에 주입하는 데 사용될 수 있기 때문에 기업에 큰 피해를 입힐 수 있습니다. 

서버가 취약한지 확인하는 도구가 있습니다. Tervoort와 Secura는 도메인 컨트롤러가 패치되었는지 확인하거나 취약한지 여부를 발견하기 위해 GitHub에서 도구를 출시했습니다.

CVE-2020-1472 패치

2020년 8월 Microsoft는 CVE-2020-1472(Zerologon)용 패치를 출시했습니다. 모든 AD 서버(2008 R2 이상)는 가능한 한 빨리 패치해야 합니다. 그러나 패치 릴리스에서 배포까지의 평균 시간은 여전히 너무 깁니다. 

연구원들은 평균적인 조직에서 패치가 출시된 후 최종 설치까지 60~150일(약 5개월)이 걸린다고 말합니다. 이것을 MTTP(Mean Time to Patch)라고 합니다. 

안타깝게도 새로 출시된 패치는 이 문제에 대한 보편적인 해결책이 아닙니다. Microsoft는 2021년 2월 초에 시행 기능을 포함할 패치의 두 번째 단계를 출시할 계획입니다.

이때 모든 장치는 보안 채널 모드를 사용해야 합니다. 그렇지 않으면 액세스가 거부됩니다. 이전의 비호환 장치가 있는 경우 비호환 장치에 대한 액세스를 명시적으로 허용하는 그룹 정책에 추가해야 합니다.

가상 패치

손상된 계정과 네트워크, 악의적인 트래픽 및 기타 손상 지표를 감시하기 위해 항상 전통적인 보안 조치를 적용해야 합니다. 네트워크 및 호스트 장치(모든 엔드포인트)를 위한 침입방지시스템(IPS) 및 멀웨어방지 소프트웨어는 랜섬웨어, 바이러스 및 기타 위협을 모니터링하는 데 중요합니다. 

로그는 SIEM에서 수집, 중앙 집중화 및 분석되어야 합니다. 로그가 분석되면 침해 지표(IoC)에 대응할 사람과 프로세스가 있어야 합니다. 그런 다음 강력한 절차와 지식을 갖춘 사고 대응팀이 문제의 정도를 결정하고 해결을 위해 노력해야 합니다.

공급 업체 패치의 가용성에도 불구하고 많은 고객은 여전히 패치를 배포하고 환경을 보호하기 위한 추가 보안 조치를 구현하는데 시간이 필요합니다. IPS와 같은 솔루션을 통한 가상 패치의 개념은 관리자와 보안 전문가에게 네트워크 보안을 위한 중요한 시간을 벌 수 있는 추가적인 보호를 제공합니다. 

네트워크를 보호하기 위해 중요한 시간을 벌 수 있습니다. 공급 업체 패치는 여전히 권장되는 완화 방법입니다. 가상 패치 솔루션은 패치되지 않은 시스템을 보호하는데 도움이 됩니다. 많은 상황에서 로그 검사와 같은 기능을 통해 네트워크에서 패치 후 공격 시도에 대한 귀중한 통찰력을 제공합니다.

트렌드마이크로 고객은 다음 기술 자료 문서를 확인하여 취약성 해결을 위한 모범 사례와 지원 방법에 대해 자세히 알아볼 수 있습니다. https://success.trendmicro.com/solution/000270328

Zerologon 주제

관련 리소스

관련 연구