보안 업체인 스펙터옵스(SpectreOps)의 연구원인 윈 슈뢰더와 리 크리스텐슨은 새 보고서를 통해 “AD 인증서 서비스(Active Directory Certificate Services, 이하 AD CS)는 파일 시스템 암호화부터 디지털 서명, 사용자 인증까지 모든 것을 제공하는 PKI 구현 기술이다. AD CS는 AD 환경에 기본 설치되지 않는다. 하지만 경험상 기업 환경에 널리 배포되어 있고, 이 인증서 서비스를 잘못 구성했을 때 초래되는 영향이 아주 크다”라고 설명했다.
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가지 공격 도구인 Certify와 ForgeCert는 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
함께 보면 좋은 콘텐츠
Sponsored
Surfshark
“유료 VPN, 분명한 가치 있다” VPN 선택 가이드
ⓒ Surfshark VPN(가상 사설 네트워크, Virtual Private Network)은 인터넷 사용자에게 개인 정보 보호와 보안을 제공하는 중요한 도구로 널리 인정받고 있다. VPN은 공공 와이파이 환경에서도 데이터를 안전하게 전송할 수 있고, 개인 정보를 보호하는 데 도움을 준다. VPN 서비스의 수요가 증가하는 것도 같은 이유에서다. 동시에 유료와 무료 중 어떤 VPN을 선택해야 할지 많은 관심을 가지고 살펴보는 사용자가 많다. 가장 먼저 사용자의 관심을 끄는 것은 별도의 예산 부담이 없는 무료 VPN이지만, 그만큼의 한계도 있다. 무료 VPN, 정말 괜찮을까? 무료 VPN 서비스는 편리하고 경제적 부담도 없지만 고려할 점이 아예 없는 것은 아니다. 보안 우려 대부분의 무료 VPN 서비스는 유료 서비스에 비해 보안 수준이 낮을 수 있다. 일부 무료 VPN은 사용자 데이터를 수집해 광고주나 서드파티 업체에 판매하는 경우도 있다. 이러한 상황에서 개인 정보가 유출될 우려가 있다. 속도와 대역폭 제한 무료 VPN 서비스는 종종 속도와 대역폭에 제한을 생긴다. 따라서 사용자는 느린 인터넷 속도를 경험할 수 있으며, 높은 대역폭이 필요한 작업을 수행하는 데 제약을 받을 수 있다. 서비스 제한 무료 VPN 서비스는 종종 서버 위치가 적거나 특정 서비스 또는 웹사이트에 액세스하지 못하는 경우가 생긴다. 또한 사용자 수가 늘어나 서버 부하가 증가하면 서비스의 안정성이 저하될 수 있다. 광고 및 추적 위험 일부 무료 VPN은 광고를 삽입하거나 사용자의 온라인 활동을 추적하여 광고주에게 판매할 수 있다. 이 경우 사용자가 광고를 보아야 하거나 개인 정보를 노출해야 할 수도 있다. 제한된 기능 무료 VPN은 유료 버전에 비해 기능이 제한될 수 있다. 예를 들어, 특정 프로토콜이나 고급 보안 기능을 지원하지 않는 경우가 그렇다. 유료 VPN의 필요성 최근 유행하는 로맨스 스캠은 인터넷 사기의 일종으로, 온라인 데이트나 소셜 미디어를 통해 가짜 프로필을 만들어 상대를 속이는 행위다. 이러한 상황에서 VPN은 사용자가 안전한 연결을 유지하고 사기 행위를 방지하는 데 도움이 된다. VPN을 통해 사용자는 상대방의 신원을 확인하고 의심스러운 활동을 감지할 수 있다. 서프샤크 VPN은 구독 요금제 가입 후 7일간의 무료 체험을 제공하고 있다. ⓒ Surfshark 그 외에도 유료 VPN만의 강점을 적극 이용해야 하는 이유는 다음 3가지로 요약할 수 있다. 보안 강화 해외 여행객이 증가함에 따라 공공 와이파이를 사용하는 경우가 늘어나고 있다. 그러나 공공 와이파이는 보안이 취약해 개인 정보를 노출할 위험이 있다. 따라서 VPN을 사용하여 데이터를 암호화하고 개인 정보를 보호하는 것이 중요하다. 서프샤크 VPN은 사용자의 개인 정보를 안전하게 유지하고 해킹을 방지하는 데 유용하다. 개인정보 보호 인터넷 사용자의 검색 기록과 콘텐츠 소비 패턴은 플랫폼에 의해 추적될 수 있다. VPN을 사용하면 사용자의 IP 주소와 로그를 숨길 수 있으며, 개인 정보를 보호할 수 있다. 또한 VPN은 사용자의 위치를 숨기고 인터넷 활동을 익명으로 유지하는 데 도움이 된다. 지역 제한 해제 해외 여행 중에도 한국에서 송금이 필요한 경우가 생길 수 있다. 그러나 IP가 해외 주소이므로 은행 앱에 접근하는 것이 제한될 수 있다. VPN을 사용하면 지역 제한을 해제해 해외에서도 한국 인터넷 서비스를 이용할 수 있다. 따라서 해외에서도 안전하고 편리하게 인터넷을 이용할 수 있다. 빠르고 안전한 유료 VPN, 서프샤크 VPN ⓒ Surfshark 뛰어난 보안 서프샤크 VPN은 강력한 암호화 기술을 사용하여 사용자의 인터넷 연결을 안전하게 보호한다. 이는 사용자의 개인 정보와 데이터를 보호하고 외부 공격으로부터 사용자를 보호하는 데 도움이 된다. 다양한 서버 위치 서프샤크 VPN은 전 세계 곳곳에 여러 서버가 위치하고 있어, 사용자가 지역 제한된 콘텐츠에 액세스할 수 있다. 해외에서도 로컬 콘텐츠에 손쉽게 접근할 수 있음은 물론이다. 속도와 대역폭 서프샤크 VPN은 빠른 속도와 무제한 대역폭을 제공하여 사용자가 원활한 인터넷 경험을 누릴 수 있도록 지원한다. 온라인 게임, 스트리밍, 다운로드 등 대역폭이 필요한 활동에 이상적이다. 다양한 플랫폼 지원 서프샤크 VPN은 다양한 플랫폼 및 디바이스에서 사용할 수 있다. 윈도우, 맥OS, iOS, 안드로이드 등 다양한 운영체제 및 디바이스에서 호환되어 사용자가 어디서나 안전한 인터넷을 즐길 수 있다. 디바이스 무제한 연결 서프샤크 VPN은 무제한 연결을 제공하여 사용자가 필요할 때 언제든지 디바이스의 갯수에 상관없이 VPN을 사용할 수 있다.