2021.06.21

기업 네트워크 보안의 ‘맹점’ 액티브 디렉토리 인증서 서비스

Lucian Constantin | CSO
윈도우 기업 네트워크의 핵심인 액티브 디렉토리(Active Directory, 이하 AD)는 사용자와 컴퓨터의 인증과 권한을 처리하는 서비스로, 수십년간 보안 전문가의 연구 대상이기도 했다. 하지만 AD의 PKI(Public Key Infrastructure) 컴포넌트는 이 정도로 면밀히 조사되지 않았다. 한 보안 연구 팀에 따르면, 이는 계정과 도메인 수준에서 권한 상승과 침해를 초래할 수 있는 여러 구성상의 실수가 존재할 수 있다.

보안 업체인 스펙터옵스(SpectreOps)의 연구원인 윈 슈뢰더와 리 크리스텐슨은 새 보고서를 통해 “AD 인증서 서비스(Active Directory Certificate Services, 이하 AD CS)는 파일 시스템 암호화부터 디지털 서명, 사용자 인증까지 모든 것을 제공하는 PKI 구현 기술이다. AD CS는 AD 환경에 기본 설치되지 않는다. 하지만 경험상 기업 환경에 널리 배포되어 있고, 이 인증서 서비스를 잘못 구성했을 때 초래되는 영향이 아주 크다”라고 설명했다.
 
ⓒ Getty Images Bank
 

AD CS 동작 방식

AD CS는 비공개 기업 인증 기관(certificate authority, 이하 CA)을 설정하는 데 사용된다. 사용자와 디바이스 ID 또는 계정을 공개-비공개 키 쌍에 연결하는 인증서를 발급하는 데 사용되어, 이 키 쌍을 파일 암호화, 파일 또는 문서 서명, 인증 등에 사용할 수 있다. AD CS 관리자는 인증서 발급 방법, 대상, 작업, 보유 기간 및 암호화 설정에 대한 청사진 역할을 하는 인증서 템플릿을 정의한다.

즉, HTTPS처럼 CA가 서명한 인증서는 AD 인프라가 특정 공개-비공개 키 쌍을 신뢰하도록 하는 증거다. 따라서 AD CS로부터 인증을 받으면 인증 받은 사용자나 컴퓨터는 키 쌍을 생성하고 원하는 다양한 설정과 함께 공개 키를 CSR(Certificate Signing Request)의 일부로 CA에 보낸다. CSR은 제목 필드의 도메인 계정 형식으로 사용자 신원과 인증서를 생성하는 데 사용할 템플릿, 인증서가 필요한 작업 유형을 표시한다. 작업 유형은 pKIExtendedKeyUsage(EKU)라는 필드에 정의되어 있다.

AD CS 서버는 사용자의 인증서 요청 권한 여부 및 조건 등 여러 사항을 확인한 후 기업 CA가 서명한 인증서를 반환한다. 언뜻 보기에도 서버에서 수행되는 확인과 인증이 아주 중요하다는 것을 알 수 있다. 그렇지 않으면 일부 취약점이나 악성코드를 악용해 로컬 계정 권한으로 코드를 실행할 수 있게 된 공격자가 LSASS 메모리를 폐기하지 않고 인증을 허용하는 인증서를 요청해 계정 크리덴셜을 빼낼 수 있다. 이는 공격자가 잘 알고 많이 이용하는 공격 기법이다. 더 심각한 경우, 계정 침해를 의심하거나 감지해 계정 암호를 나중에 바꿔도 여전히 인증서가 유효할 수 있다. 다시 말해 인증서는 공격자들에게 크리덴셜 도난보다 유리한 ‘퍼시스턴스(persistence)’를 제공한다.
 

잘못 구성된 AD CS 악용

AD CS 악용은 분명히 드러나는 경향이 있지만, 다양한 인증서 템플릿 구성 선택이나 선택지의 조합에서는 더 미묘한 공격이 나올 수 있다. 스펙터옵스의 조사 결과에 따르면, 이런 일이 꽤 많다. 슈뢰더와 크리스텐슨은 이번 백서에서 “이번 연구를 시작한 이후, AD CS가 잘못 구성되어 있는지 파악하기 위해 아주 많은 네트워크를 분석했다. 지금까지 분석한 거의 모든 네트워크가 이런 기법을 이용해 AD 권한을 상승시킬 수 있었다. 거의 대부분의 경우에 도메인 사용자(Domain User) 그룹의 구성원 등 권한이 낮은 사용자가 즉시 AD 포리스트(forest)를 침해할 수 있었다”라고 설명했다.

연구원들은 조사 결과를 바탕으로 AD CS 감사 도구와 공격 도구를 개발했다. 파워셸(PowerShell)로 만들어진 감사 툴킷 PSPKIAudit이 이미 제공되고 있는 상태다. 그러나 2가지 공격 도구인 CertifyForgeCert는 2021년 블랙햇 USA(Black Hat USA)가 열리는 8월 초 출시 예정이다. 따라서 기업 보안 팀은 이에 준비할 시간이 있다. 스펙터옵스의 백서에는 새로운 기법이나 연구 결과만을 다루는 것은 아니다. AD CS에 대한 공격을 종합적으로 다루고 있다. 일부는 과거 특정 맥락에서 다른 연구원이 문서화했으나, 지금은 확대되거나 자동화된 공격들이다.
 

기존 인증서 도용

슈뢰더와 크리스텐슨은 “조직 규모와 상관없이, 잘 작동하는 윈도우 PKI 인프라를 구축하는 것은 쉬운 일이 아니다. AD CS를 설치해 구성한 조직은 엔지니어링 측면에서 노력을 해야 할 이유가 있었다. 엔터프라이즈 CA가 있다면, 최소한 일부 AD 사용자와 컴퓨터에 인증서가 발급되었을 가능성이 있으며, 이런 인증서에 도메인 인증을 허용하는 EKU가 있을 가능성이 크다”고 말했다.

두 연구원은 기존 사용자나 기기 인증서가 저장된 몇몇 장소, 마이크로소프트 암호화 API(CAPI 및 CNG), 또는 DPAPI(Data Protection Application Programming Interface)를 통해 추출할 수 있는 기법들을 파악해 기록하고 있다. 때론 시스템 저장소가 아닌 파일시스템에서 직접 이런 인증서 파일들이 발견될 수도 있다. 이는 관리자나 사용자가 내보내기 한 결과이다. 연구원들에 따르면, 네트워크 파일의 이런 인증서들은 관리자의 다운로드 폴더, 소스 코드 저장소, 서버, 기타 여러 장소에서 공유된다.

악용 방식은 두 가지다. 사용자 계정에 대한 액세스로 인증서가 도용될 수 있다. 또 마이크로소프트 케베로스(Kerberos) 프로토콜의 PKINIT를 통해 인증서를 이용, 사용자의 NTLM 해시를 획득할 수도 있다. 이런 인증서, 크리덴셜 도용 공격과 이의 기술적 세부사항이 스펙터옵스의 백서에 THEFT1, THEFT2, THEFT3, THEFT4 및 THEFT5로 기록되어 있다.
 

인증서를 통한 계정 퍼시스턴스

앞서 설명했듯, 사용자나 컴퓨터가 엔터프라이즈 CA에 도메인 인증을 허용하는 인증서를 요청할 수 있다. 등록 권한이 있고, 이런 권한을 제공하는 인증서 템플릿이 존재하는 경우에 그렇다. 악용에 취약한 템플릿은 다음 특징과 속성을 갖고 있다.
  • 등록용으로 게시된다.
  • 표적인 사용자가 구성원인 도메인 사용자나 기타 그룹이 등록할 수 있도록 허용되어 있다. 컴퓨터나 시스템(SYSTEM) 계정의 경우에 그룹이 도메인 컴퓨터이다.
  • 도메인 인증 하나 이상이 활성화된 Smart Card Logon(1.3.6.1.4.1.311.20.2.2), Client Authentication(1.3.6.1.5.5.7.3.2), Any Purpose EKU(2.5.29.37.0) 같은 EKU를 갖고 있다. 또는 EKU 세트가 없다. 즉, 인증서가 하위 CA 인증서로 처리되고, 인증서를 발급해 특정 사용자나 컴퓨터를 사칭하는 데 이용될 수 있다.
  • 관리자 승인이나 ‘승인된 서명’ 발급 요건을 요구하지 않는다.

AD CS의 2개 기본 인증서 템플릿인 사용자(User)와 기기(Machine)는 이런 요건들을 충족한다. 또 2개 보안 설명자를 이용해 등록 권한(인증서를 요청할 수 있는)을 정의할 수 있다. 템플릿당 1개, 기업 CA용 1개이다. 기업 CA는 템플릿용을 우선한다. 문제를 더 복잡하게 만드는 것은 몇몇 등록 설정을 통해 사용자가 인증서를 요청할 수 있다는 것이다. Certificate-Enrollment 확장 권한, Certificate-AutoEnrollment 확장 권한, 모든 ExtendedRights 및 FullControl/GenericAll이 여기에 해당된다.

CA 인증서 관리자 승인 설정은 인증 관리자 발급 전 승인하기 전에는 모든 인증 서명 요청을 보류하지만, 승인된 서명 설정은 이를 토대로 인증서를 발급하기 전 CSR에 2차 서명을 요구한다. 이는 다른 사용자를 대신해 인증서를 요청할 수 있는 엔터티나 프로세스인 등록 에이전트라는 또 다른 기능성을 수용하기 위한 것이다.

도용이나 악의적인 등록을 통해 인증서를 획득한 공격자가 제약을 받는 부분은 이런 인증서의 유효 기간이다. 그러나 인증서의 기간을 연장하기 위해 갱신 요청을 할 수 있다. 모니터링을 하더라도, 등록 기록이 서버에 남겨져 있지 않다. 스펙터옵스 연구원들은 이런 인증서 기반 퍼시스턴트 기법들을 백서에 PERSIST1, PERSIST2, PERSIST3로 기록하고 있다.
 

도메인 상승 및 퍼시스턴스

가장 심각하게 잘못 구성된 인증서 템플릿은 일반 사용자가 자신의 권한을 상승시켜 도메인 관리자가 될 수 있도록 되어있는 경우이다. 이런 잘못된 구성 중 하나는 템플릿이 CSR의 subjectAltName(SAN) 필드를 사용할 수 있게 되어있는 경우이다.

AD CS가 지원하고, 몇몇 도메인 이름이나 동일한 도메인의 하위 도메인에서 단일 인증서를 갖도록 지원하는 SAN는 HTTPS 인증서에서 아주 흔하다. HTTP에서는 여러 도메인을 호스팅할 수 있는 서버를 클라이언트에 대해 인증하는 것이 목표이기 때문이다. 그러나 클라이언트 인증을 허용하는 인증서의 대상은 사용자나 컴퓨터이다. 임의의 SAN을 허용하면, 요청자가 다른 사용자를 사칭할 수 있는 인증서를 요청할 수 있다. 이렇게 취약한 구성 설정을 관리자가 활성화시키려 할 때 경고 메시지가 표시되지만, 이를 간과하기 쉽다.

연구원들은 “관리자가 PKI에 익숙하지 않다면, 다른 일들을 처리하면서 이런 경고 메시지에 클릭을 할 가능성이 높다. 이미 취약하게 설정되어 있는 템플릿을 복제하는 경우 경고 메시지가 표시되지 않는다. 또 IT 관리자가 자신만의 인증 템플릿을 만들 때 AD CS와 함께 제공되는 기본 WebServer 템플릿을 복제하는 것으로 판단한다. WebServer 템플릿에 CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT 플래그가 활성화되어 있다면, IT 관리자가 ‘Client Authentication’이나 ‘Smart Card Logon’ EKU를 추가할 때 GUI에서 이를 경고하지 않은 상태에서 취약한 상황이 다시 발생할 수 있다”고 설명했다.

SAN 사용과 관련된 또 다른 문제는 CA 자체에 EDITF_ATTRIBUTESUBJECTALTNAME2 플래그를 사용하는 것이다. 이는 모든 CSR이 대상 대체명(Subject alternative name) 필드에 사용자 정의 값을 갖도록 만든다. 공격자가 이 플래그를 활성화하기 위해 ‘CA administrator’ 및 ‘Certificae manager’ 역할에 해당되는 ManageCA 및 ManageCertificates 권한을 악용할 수도 있다.

권한 상승을 초래할 수 있는 또 다른 잘못된 구성은 템플릿이 Any Purpose EKU나 ‘no EKU at all’을 정의하는 것이다. 이로 인해 모든 목적에 사용할 수 있거나, 하위 CA 인증서로 기능하는 인증서가 만들어질 수 있다.

이 밖에도 Certificate Request Agent EKU(1.3.6.1.4.1.311.20.2.1)가 포함되며, 권한이 낮은 사용자가 관리자 승인이나 추가 서명 요건 없이 등록을 할 수 있는 템플릿을 구성하는 실수도 있다. 안전하지 못한 또 다른 옵션들의 조합은 권한이 낮은 사용자의 등록을 허용하고, 관리자 승인을 끄고, 템플릿 스키마는 버전 1이나 2 이상이며, Certificate Request Agent EKU를 요구하는 Application Policy Issuance Requirement를 지정하고, 템플릿이 CA에 도메인 인증 및 등록 에이전트 제한이 구현되지 않도록 EKU를 정의하는 것이다.

또한 엑세스 제어 수준에서 AD의 객체로 템플릿을 잘못 구성할 수도 있다. 예를 들어, 공격자가 인증서 템플릿에서 ‘Full Control’이나 ‘Write’ 액세스가 구성되도록 여러 액세스를 ‘체인’ 할 수 있다면, 이들은 다른 안전한 템플릿으로 이런 잘못된 구성을 보낼 수 있다.

또한 인증서 템플릿과 인증 권한 밖의 몇몇 AD 객체들은 전체 AD CS 시스템의 보안에 영향을 줄 수 있다. 연구원들에 따르면, CA 서버의 AD 컴퓨터 객체, CA 서버의 RPC/DCOM 서버, 또는 컨테이너 CN=Public Key Services,CN=Services,CN=Configuration,DC=<COMPANY>,DC=<COM의 모든 AD 객체나 컨테이너(인증서 템플릿 컨테이너, 인증 권한 컨테이너, NTAuthCertificates 객체 등)이 여기에 해당된다.

연구원들은 “낮은 권한을 가진 공격자가 이를 통제할 수 있다면, 공격을 통해 PKI 시스템을 침해할 가능성이 있다”고 말했다. 백서의 ESC1부터 ESC7까지가 권한 상승 기법들이다.

마지막으로 CA 인증서에 적용된 일부 인증서 도용과 악의적 공격은 전체 도메인에 대한 장기적 퍼시스턴트를 획득할 수 있도록 해준다. 다음 도메인 테이크오버 공격을 예로 들 수 있다. 연구원들은 특정 조건이 충족되었을 때, 인증서를 훔치거나 CA 자체의 프라이빗 키를 연결시키거나, 자신이 생성한 악성 CA 인증서를 NTAuthCertificates AD 객체에 추가할 수 있는 몇몇 기법들을 설명하고 있다. DPERSIST1, DPERSIST2, DPERSIST3으로 기록된 기법들이 여기에 해당된다.

연구원들은 블로그 게시글에서 “AD CS에 본질적으로 안전하지 않은 부분은 없다. 마이크로소프트 관계자들과 이야기를 나눴지만, 애초부터 존재하는 취약점은 없다. 고칠 부분도 없다. 조직이 AD CS나 보안 측면의 영향을 제대로 이해하지 못할 경우 전체 시스템이 아주 위험해진다. 잘못 구성을 하기 쉽기 때문이다. 2021년 1월부터 조사를 했는 데, 실제 환경에 이런 문제들이 아주 많다. 우리는 방어적 관점에서, 조직들에 AD CS 아키텍처와 인증서 템플릿을 감사할 것을 권고한다. 또 CA 서버(하위 CA 포함)를 도메인 컨틀롤러와 동일한 보호 체계를 적용한 Tier 0 자산으로 취급하는 것이 좋다”고 말했다.

백서에는 공격들 가운데 상당수를 저지할 수 있는 종합적인 조언들이 포함되어 있다. editor@itworld.co.kr
 


2021.06.21

기업 네트워크 보안의 ‘맹점’ 액티브 디렉토리 인증서 서비스

Lucian Constantin | CSO
윈도우 기업 네트워크의 핵심인 액티브 디렉토리(Active Directory, 이하 AD)는 사용자와 컴퓨터의 인증과 권한을 처리하는 서비스로, 수십년간 보안 전문가의 연구 대상이기도 했다. 하지만 AD의 PKI(Public Key Infrastructure) 컴포넌트는 이 정도로 면밀히 조사되지 않았다. 한 보안 연구 팀에 따르면, 이는 계정과 도메인 수준에서 권한 상승과 침해를 초래할 수 있는 여러 구성상의 실수가 존재할 수 있다.

보안 업체인 스펙터옵스(SpectreOps)의 연구원인 윈 슈뢰더와 리 크리스텐슨은 새 보고서를 통해 “AD 인증서 서비스(Active Directory Certificate Services, 이하 AD CS)는 파일 시스템 암호화부터 디지털 서명, 사용자 인증까지 모든 것을 제공하는 PKI 구현 기술이다. AD CS는 AD 환경에 기본 설치되지 않는다. 하지만 경험상 기업 환경에 널리 배포되어 있고, 이 인증서 서비스를 잘못 구성했을 때 초래되는 영향이 아주 크다”라고 설명했다.
 
ⓒ Getty Images Bank
 

AD CS 동작 방식

AD CS는 비공개 기업 인증 기관(certificate authority, 이하 CA)을 설정하는 데 사용된다. 사용자와 디바이스 ID 또는 계정을 공개-비공개 키 쌍에 연결하는 인증서를 발급하는 데 사용되어, 이 키 쌍을 파일 암호화, 파일 또는 문서 서명, 인증 등에 사용할 수 있다. AD CS 관리자는 인증서 발급 방법, 대상, 작업, 보유 기간 및 암호화 설정에 대한 청사진 역할을 하는 인증서 템플릿을 정의한다.

즉, HTTPS처럼 CA가 서명한 인증서는 AD 인프라가 특정 공개-비공개 키 쌍을 신뢰하도록 하는 증거다. 따라서 AD CS로부터 인증을 받으면 인증 받은 사용자나 컴퓨터는 키 쌍을 생성하고 원하는 다양한 설정과 함께 공개 키를 CSR(Certificate Signing Request)의 일부로 CA에 보낸다. CSR은 제목 필드의 도메인 계정 형식으로 사용자 신원과 인증서를 생성하는 데 사용할 템플릿, 인증서가 필요한 작업 유형을 표시한다. 작업 유형은 pKIExtendedKeyUsage(EKU)라는 필드에 정의되어 있다.

AD CS 서버는 사용자의 인증서 요청 권한 여부 및 조건 등 여러 사항을 확인한 후 기업 CA가 서명한 인증서를 반환한다. 언뜻 보기에도 서버에서 수행되는 확인과 인증이 아주 중요하다는 것을 알 수 있다. 그렇지 않으면 일부 취약점이나 악성코드를 악용해 로컬 계정 권한으로 코드를 실행할 수 있게 된 공격자가 LSASS 메모리를 폐기하지 않고 인증을 허용하는 인증서를 요청해 계정 크리덴셜을 빼낼 수 있다. 이는 공격자가 잘 알고 많이 이용하는 공격 기법이다. 더 심각한 경우, 계정 침해를 의심하거나 감지해 계정 암호를 나중에 바꿔도 여전히 인증서가 유효할 수 있다. 다시 말해 인증서는 공격자들에게 크리덴셜 도난보다 유리한 ‘퍼시스턴스(persistence)’를 제공한다.
 

잘못 구성된 AD CS 악용

AD CS 악용은 분명히 드러나는 경향이 있지만, 다양한 인증서 템플릿 구성 선택이나 선택지의 조합에서는 더 미묘한 공격이 나올 수 있다. 스펙터옵스의 조사 결과에 따르면, 이런 일이 꽤 많다. 슈뢰더와 크리스텐슨은 이번 백서에서 “이번 연구를 시작한 이후, AD CS가 잘못 구성되어 있는지 파악하기 위해 아주 많은 네트워크를 분석했다. 지금까지 분석한 거의 모든 네트워크가 이런 기법을 이용해 AD 권한을 상승시킬 수 있었다. 거의 대부분의 경우에 도메인 사용자(Domain User) 그룹의 구성원 등 권한이 낮은 사용자가 즉시 AD 포리스트(forest)를 침해할 수 있었다”라고 설명했다.

연구원들은 조사 결과를 바탕으로 AD CS 감사 도구와 공격 도구를 개발했다. 파워셸(PowerShell)로 만들어진 감사 툴킷 PSPKIAudit이 이미 제공되고 있는 상태다. 그러나 2가지 공격 도구인 CertifyForgeCert는 2021년 블랙햇 USA(Black Hat USA)가 열리는 8월 초 출시 예정이다. 따라서 기업 보안 팀은 이에 준비할 시간이 있다. 스펙터옵스의 백서에는 새로운 기법이나 연구 결과만을 다루는 것은 아니다. AD CS에 대한 공격을 종합적으로 다루고 있다. 일부는 과거 특정 맥락에서 다른 연구원이 문서화했으나, 지금은 확대되거나 자동화된 공격들이다.
 

기존 인증서 도용

슈뢰더와 크리스텐슨은 “조직 규모와 상관없이, 잘 작동하는 윈도우 PKI 인프라를 구축하는 것은 쉬운 일이 아니다. AD CS를 설치해 구성한 조직은 엔지니어링 측면에서 노력을 해야 할 이유가 있었다. 엔터프라이즈 CA가 있다면, 최소한 일부 AD 사용자와 컴퓨터에 인증서가 발급되었을 가능성이 있으며, 이런 인증서에 도메인 인증을 허용하는 EKU가 있을 가능성이 크다”고 말했다.

두 연구원은 기존 사용자나 기기 인증서가 저장된 몇몇 장소, 마이크로소프트 암호화 API(CAPI 및 CNG), 또는 DPAPI(Data Protection Application Programming Interface)를 통해 추출할 수 있는 기법들을 파악해 기록하고 있다. 때론 시스템 저장소가 아닌 파일시스템에서 직접 이런 인증서 파일들이 발견될 수도 있다. 이는 관리자나 사용자가 내보내기 한 결과이다. 연구원들에 따르면, 네트워크 파일의 이런 인증서들은 관리자의 다운로드 폴더, 소스 코드 저장소, 서버, 기타 여러 장소에서 공유된다.

악용 방식은 두 가지다. 사용자 계정에 대한 액세스로 인증서가 도용될 수 있다. 또 마이크로소프트 케베로스(Kerberos) 프로토콜의 PKINIT를 통해 인증서를 이용, 사용자의 NTLM 해시를 획득할 수도 있다. 이런 인증서, 크리덴셜 도용 공격과 이의 기술적 세부사항이 스펙터옵스의 백서에 THEFT1, THEFT2, THEFT3, THEFT4 및 THEFT5로 기록되어 있다.
 

인증서를 통한 계정 퍼시스턴스

앞서 설명했듯, 사용자나 컴퓨터가 엔터프라이즈 CA에 도메인 인증을 허용하는 인증서를 요청할 수 있다. 등록 권한이 있고, 이런 권한을 제공하는 인증서 템플릿이 존재하는 경우에 그렇다. 악용에 취약한 템플릿은 다음 특징과 속성을 갖고 있다.
  • 등록용으로 게시된다.
  • 표적인 사용자가 구성원인 도메인 사용자나 기타 그룹이 등록할 수 있도록 허용되어 있다. 컴퓨터나 시스템(SYSTEM) 계정의 경우에 그룹이 도메인 컴퓨터이다.
  • 도메인 인증 하나 이상이 활성화된 Smart Card Logon(1.3.6.1.4.1.311.20.2.2), Client Authentication(1.3.6.1.5.5.7.3.2), Any Purpose EKU(2.5.29.37.0) 같은 EKU를 갖고 있다. 또는 EKU 세트가 없다. 즉, 인증서가 하위 CA 인증서로 처리되고, 인증서를 발급해 특정 사용자나 컴퓨터를 사칭하는 데 이용될 수 있다.
  • 관리자 승인이나 ‘승인된 서명’ 발급 요건을 요구하지 않는다.

AD CS의 2개 기본 인증서 템플릿인 사용자(User)와 기기(Machine)는 이런 요건들을 충족한다. 또 2개 보안 설명자를 이용해 등록 권한(인증서를 요청할 수 있는)을 정의할 수 있다. 템플릿당 1개, 기업 CA용 1개이다. 기업 CA는 템플릿용을 우선한다. 문제를 더 복잡하게 만드는 것은 몇몇 등록 설정을 통해 사용자가 인증서를 요청할 수 있다는 것이다. Certificate-Enrollment 확장 권한, Certificate-AutoEnrollment 확장 권한, 모든 ExtendedRights 및 FullControl/GenericAll이 여기에 해당된다.

CA 인증서 관리자 승인 설정은 인증 관리자 발급 전 승인하기 전에는 모든 인증 서명 요청을 보류하지만, 승인된 서명 설정은 이를 토대로 인증서를 발급하기 전 CSR에 2차 서명을 요구한다. 이는 다른 사용자를 대신해 인증서를 요청할 수 있는 엔터티나 프로세스인 등록 에이전트라는 또 다른 기능성을 수용하기 위한 것이다.

도용이나 악의적인 등록을 통해 인증서를 획득한 공격자가 제약을 받는 부분은 이런 인증서의 유효 기간이다. 그러나 인증서의 기간을 연장하기 위해 갱신 요청을 할 수 있다. 모니터링을 하더라도, 등록 기록이 서버에 남겨져 있지 않다. 스펙터옵스 연구원들은 이런 인증서 기반 퍼시스턴트 기법들을 백서에 PERSIST1, PERSIST2, PERSIST3로 기록하고 있다.
 

도메인 상승 및 퍼시스턴스

가장 심각하게 잘못 구성된 인증서 템플릿은 일반 사용자가 자신의 권한을 상승시켜 도메인 관리자가 될 수 있도록 되어있는 경우이다. 이런 잘못된 구성 중 하나는 템플릿이 CSR의 subjectAltName(SAN) 필드를 사용할 수 있게 되어있는 경우이다.

AD CS가 지원하고, 몇몇 도메인 이름이나 동일한 도메인의 하위 도메인에서 단일 인증서를 갖도록 지원하는 SAN는 HTTPS 인증서에서 아주 흔하다. HTTP에서는 여러 도메인을 호스팅할 수 있는 서버를 클라이언트에 대해 인증하는 것이 목표이기 때문이다. 그러나 클라이언트 인증을 허용하는 인증서의 대상은 사용자나 컴퓨터이다. 임의의 SAN을 허용하면, 요청자가 다른 사용자를 사칭할 수 있는 인증서를 요청할 수 있다. 이렇게 취약한 구성 설정을 관리자가 활성화시키려 할 때 경고 메시지가 표시되지만, 이를 간과하기 쉽다.

연구원들은 “관리자가 PKI에 익숙하지 않다면, 다른 일들을 처리하면서 이런 경고 메시지에 클릭을 할 가능성이 높다. 이미 취약하게 설정되어 있는 템플릿을 복제하는 경우 경고 메시지가 표시되지 않는다. 또 IT 관리자가 자신만의 인증 템플릿을 만들 때 AD CS와 함께 제공되는 기본 WebServer 템플릿을 복제하는 것으로 판단한다. WebServer 템플릿에 CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT 플래그가 활성화되어 있다면, IT 관리자가 ‘Client Authentication’이나 ‘Smart Card Logon’ EKU를 추가할 때 GUI에서 이를 경고하지 않은 상태에서 취약한 상황이 다시 발생할 수 있다”고 설명했다.

SAN 사용과 관련된 또 다른 문제는 CA 자체에 EDITF_ATTRIBUTESUBJECTALTNAME2 플래그를 사용하는 것이다. 이는 모든 CSR이 대상 대체명(Subject alternative name) 필드에 사용자 정의 값을 갖도록 만든다. 공격자가 이 플래그를 활성화하기 위해 ‘CA administrator’ 및 ‘Certificae manager’ 역할에 해당되는 ManageCA 및 ManageCertificates 권한을 악용할 수도 있다.

권한 상승을 초래할 수 있는 또 다른 잘못된 구성은 템플릿이 Any Purpose EKU나 ‘no EKU at all’을 정의하는 것이다. 이로 인해 모든 목적에 사용할 수 있거나, 하위 CA 인증서로 기능하는 인증서가 만들어질 수 있다.

이 밖에도 Certificate Request Agent EKU(1.3.6.1.4.1.311.20.2.1)가 포함되며, 권한이 낮은 사용자가 관리자 승인이나 추가 서명 요건 없이 등록을 할 수 있는 템플릿을 구성하는 실수도 있다. 안전하지 못한 또 다른 옵션들의 조합은 권한이 낮은 사용자의 등록을 허용하고, 관리자 승인을 끄고, 템플릿 스키마는 버전 1이나 2 이상이며, Certificate Request Agent EKU를 요구하는 Application Policy Issuance Requirement를 지정하고, 템플릿이 CA에 도메인 인증 및 등록 에이전트 제한이 구현되지 않도록 EKU를 정의하는 것이다.

또한 엑세스 제어 수준에서 AD의 객체로 템플릿을 잘못 구성할 수도 있다. 예를 들어, 공격자가 인증서 템플릿에서 ‘Full Control’이나 ‘Write’ 액세스가 구성되도록 여러 액세스를 ‘체인’ 할 수 있다면, 이들은 다른 안전한 템플릿으로 이런 잘못된 구성을 보낼 수 있다.

또한 인증서 템플릿과 인증 권한 밖의 몇몇 AD 객체들은 전체 AD CS 시스템의 보안에 영향을 줄 수 있다. 연구원들에 따르면, CA 서버의 AD 컴퓨터 객체, CA 서버의 RPC/DCOM 서버, 또는 컨테이너 CN=Public Key Services,CN=Services,CN=Configuration,DC=<COMPANY>,DC=<COM의 모든 AD 객체나 컨테이너(인증서 템플릿 컨테이너, 인증 권한 컨테이너, NTAuthCertificates 객체 등)이 여기에 해당된다.

연구원들은 “낮은 권한을 가진 공격자가 이를 통제할 수 있다면, 공격을 통해 PKI 시스템을 침해할 가능성이 있다”고 말했다. 백서의 ESC1부터 ESC7까지가 권한 상승 기법들이다.

마지막으로 CA 인증서에 적용된 일부 인증서 도용과 악의적 공격은 전체 도메인에 대한 장기적 퍼시스턴트를 획득할 수 있도록 해준다. 다음 도메인 테이크오버 공격을 예로 들 수 있다. 연구원들은 특정 조건이 충족되었을 때, 인증서를 훔치거나 CA 자체의 프라이빗 키를 연결시키거나, 자신이 생성한 악성 CA 인증서를 NTAuthCertificates AD 객체에 추가할 수 있는 몇몇 기법들을 설명하고 있다. DPERSIST1, DPERSIST2, DPERSIST3으로 기록된 기법들이 여기에 해당된다.

연구원들은 블로그 게시글에서 “AD CS에 본질적으로 안전하지 않은 부분은 없다. 마이크로소프트 관계자들과 이야기를 나눴지만, 애초부터 존재하는 취약점은 없다. 고칠 부분도 없다. 조직이 AD CS나 보안 측면의 영향을 제대로 이해하지 못할 경우 전체 시스템이 아주 위험해진다. 잘못 구성을 하기 쉽기 때문이다. 2021년 1월부터 조사를 했는 데, 실제 환경에 이런 문제들이 아주 많다. 우리는 방어적 관점에서, 조직들에 AD CS 아키텍처와 인증서 템플릿을 감사할 것을 권고한다. 또 CA 서버(하위 CA 포함)를 도메인 컨틀롤러와 동일한 보호 체계를 적용한 Tier 0 자산으로 취급하는 것이 좋다”고 말했다.

백서에는 공격들 가운데 상당수를 저지할 수 있는 종합적인 조언들이 포함되어 있다. editor@itworld.co.kr
 


X