2019.03.07

윈도우 계정 암호 탈취 도구 미미캐츠의 정체와 방어법

J.M. Porup | CSO
미미캐츠(Mimikatz)는 메모리에서 해시, PIN, 커버러스 티켓, 암호 등을 찾아내 탈취하는 도구다. 미미캐츠로 가능한 다른 유용한 공격으로는 패스 더 해시(Pass-the-Hash) 공격, 패스 더 티켓(Pass-the-Ticket) 공격, 골든 커버러스 티켓 구둑 공격 등이 있다. 네트워크 내에서 공격자가 쉽게 공격할 수 있도록 도와준다.

제작자가 “윈도우 보안을 가지고 노는 작은 툴”이라고 설명하는 미미캐츠는 벤자민 델피(Benjamin Delpy)가 개발한 놀라울 정도로 효율적이고 공격적인 보안 툴이다. 침투 테스터와 악성코드 작성자들이 사용한다. 이터널블루(EternalBlue) 같은 NSA가 사용한 익스플로잇 도구를 드러나게 한 낫페트야(NotPetya) 사건에서도 미미캐츠가 사용됐다. 

원래는 윈도우 보안을 더 잘 이해하기 위한 연구 프로젝트로 만들어진 미미캐츠에는 메모리에서 지뢰찾기를 찾아서 지뢰의 위치를 모두 알려주는 모듈도 포함되어 있다.

미미캐츠는 사용하기 어렵지 않으며, 미미캐츠 1버전에는 메타스플로잇(Metasploit)의 일부로 미터프리터 스크립트가 번들로 제공된다. 새로운 미미캐츠 버전 2에는 기사 작성 시점에는 아직 메타스플로잇이 통합되어 있지 않다.

미미캐츠라는 이름은 프랑스 은어로 귀엽다는 의미인 ‘미미’가 붙어 ‘귀여운 고양이’라는 뜻이다. 델피는 프랑스인으로, 미미캐츠 블로그 역시 프랑스어다.
 

미미캐츠의 동작 원리

미미캐츠는 크리덴셜 탈취를 위해 윈도우 SSO(single-sign-on) 기능을 악용한다. 윈도우 10 이전까지 윈도우는 기본적으로 WDigest라는 기능이 사용되었는데, 이는 암호화된 암호를 메모리에서 로딩함은 물론, 이를 복호화하기 위한 비밀 키도 로딩한다. WDigest는 기업이나 정부 네트워크에서 대규모의 사용자를 인증하기 위한 유용한 기능이었지만, 미미캐츠가 메모리에서 암호를 추출하기 위해 악용할 수 있는 기능이기도 하다.

2013년 마이크로소프트는 윈도우 8.1에서 이 기능을 비활성화할 수 있도록 했으며, 윈도우 10에서는 비활성화를 기본 설정으로 만들었다. 하지만 여전히 윈도우에는 WDigest가 있으며, 관리자 권한을 얻은 공격자들은 간단히 이 기능을 활성화해서 미미캐츠를 실행할 수 있다.

더군다나 전 세계에는 여전히 구형 윈도우를 구동하는 레거시 시스템들이 있어, 미미캐츠가 여전히 믿을 수 없을 만큼 강력한 역할을 하고 앞으로도 몇 년간 그 영향력을 유지할 것으로 보인다.
 

미미캐츠의 역사

델피는 2011년 윈도우에서 WDigest 취약점을 발견해 마이크로소프트에 알렸는데, 마이크로소프트는 이를 무시했다. 이에 따라 델피는 C 언어를 사용해 미미캐츠를 만들었고, 인터넷에 배포했다. 보안 연구원들 사이에서 큰 인기를 얻으면서 전 세계 정부의 주목도 받았고, 결국 소스코드를 깃허브(GitHub)에 공개했다.

즉시 공격자들이 미미캐츠를 사용하기 시작했는데, 가장 처음으로 알려진 사례는 2011년 네덜란드의 인증기관인 디지노타(DigiNotar) 해킹 사건이다. 이 사건으로 디지노타는 파산했다. 공격자들은 구글용으로 가짜 인증서를 발행해서 이란 사람 수천 명의 지메일을 엿보는 데 사용했다.

이후 미미캐츠는 공격자들이 웜 확산을 자동화하는 데도 활용되었고, 앞서 언급한 낫페트야뿐만 아니라 2017년의 배드래빗(BadRabbit) 랜섬웨어 사건도 이와 관련있었다. 미미캐츠는 앞으로도 윈도우 플랫폼 공격을 위한 가장 효과적이고 공격적인 보안 툴로 남을 것이다.
 

미미캐츠를 어떻게 막는가

미미캐츠를 사용하는 공격자들을 막는 것은 쉽지 않다. 미미캐츠를 이용하려면 우선 공격자들이 윈도우의 루트 액세스 권한을 가지고 있어야 하기 때문에, 어떤 면에선 이미 게임이 끝난 것이나 다름없다. 따라서 방어는 대규모 피해를 막는 수준밖에 되지 않는다.

하지만 공격자들이 미미캐츠를 사용하기 위한 관리자 권한을 얻을 위험을 줄이는 것이 더 효율적이다. 여기서 핵심은 관리자 권한을 실제로 필요한 사람만 사용하도록 제한하는 것이다.

최소한 윈도우 10이나 8.1로 업그레이드하면 미미캐츠가 악용되는 위험을 조금 완화할 수 있지만, 대부분의 경우 해법이 아니다. 코드 침투를 방지하기 위해 LSA(Local Security Authority)를 강화하는 것도 이 위협을 완화할 수 있는 입증된 전략 중 하나다.

디버그 권한(SeDebugPrivlege)을 비활성화하는 것도 공격 효과를 제한할 수 있는 방법이다. 미미캐츠가 내장된 윈도우 디버깅 툴을 사용해 메모리 속 데이터를 복사하기 때문이다. 구형의 패치되지 않은 윈도우 버전에서는 WDigest를 수동으로 비활성화하는 것도 공격 속도를 1~2분 정도지만 늦출 수 있는 방법이다.

기업 전체에서 하나의 관리자 암호를 재사용하는 것이 일반적인데 공격에 취약한 행태다. 각 윈도우에 고유의 관리자 암호를 설정해야 하며, 윈도우 8.1 이상에서는 보호 보드에서 LSASS를 구동해 미미캣츠에 효과를 경감시킬 수 있다.

현재 자동화된 탐지 솔루션들의 탐지율이 높지 않기 때문에 기업 네트워크의 현황과 미미캣츠 사용을 탐지하는 것은 만병통치약이 아니다. 최선의 방어책은 공격이라는 말이 있는 것처럼 미미캐츠로 정기적으로 시스템을 테스트하고 네트워크의 활동을 사람이 모니터링하는 것이 좋다. editor@itworld.co.kr 
 


2019.03.07

윈도우 계정 암호 탈취 도구 미미캐츠의 정체와 방어법

J.M. Porup | CSO
미미캐츠(Mimikatz)는 메모리에서 해시, PIN, 커버러스 티켓, 암호 등을 찾아내 탈취하는 도구다. 미미캐츠로 가능한 다른 유용한 공격으로는 패스 더 해시(Pass-the-Hash) 공격, 패스 더 티켓(Pass-the-Ticket) 공격, 골든 커버러스 티켓 구둑 공격 등이 있다. 네트워크 내에서 공격자가 쉽게 공격할 수 있도록 도와준다.

제작자가 “윈도우 보안을 가지고 노는 작은 툴”이라고 설명하는 미미캐츠는 벤자민 델피(Benjamin Delpy)가 개발한 놀라울 정도로 효율적이고 공격적인 보안 툴이다. 침투 테스터와 악성코드 작성자들이 사용한다. 이터널블루(EternalBlue) 같은 NSA가 사용한 익스플로잇 도구를 드러나게 한 낫페트야(NotPetya) 사건에서도 미미캐츠가 사용됐다. 

원래는 윈도우 보안을 더 잘 이해하기 위한 연구 프로젝트로 만들어진 미미캐츠에는 메모리에서 지뢰찾기를 찾아서 지뢰의 위치를 모두 알려주는 모듈도 포함되어 있다.

미미캐츠는 사용하기 어렵지 않으며, 미미캐츠 1버전에는 메타스플로잇(Metasploit)의 일부로 미터프리터 스크립트가 번들로 제공된다. 새로운 미미캐츠 버전 2에는 기사 작성 시점에는 아직 메타스플로잇이 통합되어 있지 않다.

미미캐츠라는 이름은 프랑스 은어로 귀엽다는 의미인 ‘미미’가 붙어 ‘귀여운 고양이’라는 뜻이다. 델피는 프랑스인으로, 미미캐츠 블로그 역시 프랑스어다.
 

미미캐츠의 동작 원리

미미캐츠는 크리덴셜 탈취를 위해 윈도우 SSO(single-sign-on) 기능을 악용한다. 윈도우 10 이전까지 윈도우는 기본적으로 WDigest라는 기능이 사용되었는데, 이는 암호화된 암호를 메모리에서 로딩함은 물론, 이를 복호화하기 위한 비밀 키도 로딩한다. WDigest는 기업이나 정부 네트워크에서 대규모의 사용자를 인증하기 위한 유용한 기능이었지만, 미미캐츠가 메모리에서 암호를 추출하기 위해 악용할 수 있는 기능이기도 하다.

2013년 마이크로소프트는 윈도우 8.1에서 이 기능을 비활성화할 수 있도록 했으며, 윈도우 10에서는 비활성화를 기본 설정으로 만들었다. 하지만 여전히 윈도우에는 WDigest가 있으며, 관리자 권한을 얻은 공격자들은 간단히 이 기능을 활성화해서 미미캐츠를 실행할 수 있다.

더군다나 전 세계에는 여전히 구형 윈도우를 구동하는 레거시 시스템들이 있어, 미미캐츠가 여전히 믿을 수 없을 만큼 강력한 역할을 하고 앞으로도 몇 년간 그 영향력을 유지할 것으로 보인다.
 

미미캐츠의 역사

델피는 2011년 윈도우에서 WDigest 취약점을 발견해 마이크로소프트에 알렸는데, 마이크로소프트는 이를 무시했다. 이에 따라 델피는 C 언어를 사용해 미미캐츠를 만들었고, 인터넷에 배포했다. 보안 연구원들 사이에서 큰 인기를 얻으면서 전 세계 정부의 주목도 받았고, 결국 소스코드를 깃허브(GitHub)에 공개했다.

즉시 공격자들이 미미캐츠를 사용하기 시작했는데, 가장 처음으로 알려진 사례는 2011년 네덜란드의 인증기관인 디지노타(DigiNotar) 해킹 사건이다. 이 사건으로 디지노타는 파산했다. 공격자들은 구글용으로 가짜 인증서를 발행해서 이란 사람 수천 명의 지메일을 엿보는 데 사용했다.

이후 미미캐츠는 공격자들이 웜 확산을 자동화하는 데도 활용되었고, 앞서 언급한 낫페트야뿐만 아니라 2017년의 배드래빗(BadRabbit) 랜섬웨어 사건도 이와 관련있었다. 미미캐츠는 앞으로도 윈도우 플랫폼 공격을 위한 가장 효과적이고 공격적인 보안 툴로 남을 것이다.
 

미미캐츠를 어떻게 막는가

미미캐츠를 사용하는 공격자들을 막는 것은 쉽지 않다. 미미캐츠를 이용하려면 우선 공격자들이 윈도우의 루트 액세스 권한을 가지고 있어야 하기 때문에, 어떤 면에선 이미 게임이 끝난 것이나 다름없다. 따라서 방어는 대규모 피해를 막는 수준밖에 되지 않는다.

하지만 공격자들이 미미캐츠를 사용하기 위한 관리자 권한을 얻을 위험을 줄이는 것이 더 효율적이다. 여기서 핵심은 관리자 권한을 실제로 필요한 사람만 사용하도록 제한하는 것이다.

최소한 윈도우 10이나 8.1로 업그레이드하면 미미캐츠가 악용되는 위험을 조금 완화할 수 있지만, 대부분의 경우 해법이 아니다. 코드 침투를 방지하기 위해 LSA(Local Security Authority)를 강화하는 것도 이 위협을 완화할 수 있는 입증된 전략 중 하나다.

디버그 권한(SeDebugPrivlege)을 비활성화하는 것도 공격 효과를 제한할 수 있는 방법이다. 미미캐츠가 내장된 윈도우 디버깅 툴을 사용해 메모리 속 데이터를 복사하기 때문이다. 구형의 패치되지 않은 윈도우 버전에서는 WDigest를 수동으로 비활성화하는 것도 공격 속도를 1~2분 정도지만 늦출 수 있는 방법이다.

기업 전체에서 하나의 관리자 암호를 재사용하는 것이 일반적인데 공격에 취약한 행태다. 각 윈도우에 고유의 관리자 암호를 설정해야 하며, 윈도우 8.1 이상에서는 보호 보드에서 LSASS를 구동해 미미캣츠에 효과를 경감시킬 수 있다.

현재 자동화된 탐지 솔루션들의 탐지율이 높지 않기 때문에 기업 네트워크의 현황과 미미캣츠 사용을 탐지하는 것은 만병통치약이 아니다. 최선의 방어책은 공격이라는 말이 있는 것처럼 미미캐츠로 정기적으로 시스템을 테스트하고 네트워크의 활동을 사람이 모니터링하는 것이 좋다. editor@itworld.co.kr 
 


X