2019.06.05

이중 인증을 우회하는 피싱 공격, "실행하기 더 쉬워졌다"…핵인더박스

Lucian Constantin | CSO
연구원은 이중 인증(two-factor authentication, 2FA)을 우회할 수 있는 피싱 공격을 자동화하는 2가지 툴인 무레나(Muraena)과 네크로브라우저(NecroBrowser)를 발표했다. 대부분의 방어체계가 이를 막을 수 없다. 
 
ⓒ Getty Images Bank 

침투 테스터 및 공격자는 2FA를 회피하는 방식으로 피싱 공격을 자동화하는 데 사용할 수 있으며, 탐지와 차단이 쉽지 않은 새로운 도구를 보유하고 있다. 이 도구를 사용하면 공격을 훨씬 쉽게 배포할 수 있으므로 조직은 안티 피싱 교육을 적절하게 채택해야 한다. 

지난 달 네덜란드 암스테르담에서 개최된 핵인더박스(Hack In The Box) 컨퍼런스에서 새로운 툴킷이 발표됐으며 이는 며칠 만에 깃허브(GitHub)에 출시됐다. 이 툴킷에는 2가지 구성요소가 있다. '무레나'라는 쉬운 리버스 프록시(Reverse Proxy)와 '네크로브라우저'라는 헤드리스 크로미움(Chromium) 인스턴스 자동화를 위한 도커 컨테이너다. 

 
중간자(man-in-the-middle) 유형의 공격

대부분의 사람이 잘 알고 있는 기존 피싱 공격은 공격자가 제어하는 웹 서버에서 호스팅되고 대상 웹 사이트의 이름과 비슷한 이름으로 된 도메인에서 제공하는 가짜 로그인 페이지로 구성된다. 

그러나 이런 정적 공격은 이중 인증을 사용하는 온라인 서비스에 대해서는 효과적이지 않다. 합법적인 웹 사이트와의 상호작용이 없기 때문에 일회용 코드 생성을 촉발시키지 않기 때문이다. 이런 코드가 없으면 공격자는 피싱한 자격 증명으로 로그인을 할 수 없다. 

2FA를 극복하기 위해 공격자는 피싱 웹사이트를 프록시로 사용하고 피해자를 대신해 합법적인 웹 사이트에 요청을 전달하고 실시간으로 응답을 제공해야 한다. 최종 목표는 사용자 이름과 비밀번호만 얻는 것이 아니라 실제 웹 사이트가 로그인한 계정과 연결하는 세션 쿠키(session cookies)라고 하는 활성 세션 토큰을 얻는 것이다. 이런 세션 쿠키는 브라우저와 연결되어 인증할 필요없이 직접 연결된 계정에 액세스할 수 있다. 

이 프록시 기반 기술은 새로운 것이 아니며, 오랫동안 알려져 왔지만 이런 공격을 설정하려면 기술 지식이 필요했으며, 엔진X(NGINX) 웹 서버와 같은 여러 독립적 도구를 리버스 프록시로 실행하도록 구성해야 했다. 그런 다음 공격자는 훔친 세션 쿠키가 만료되기 전에 이를 수동으로 악용해야 한다. 또한 일부 웹 사이트에서는 프록시를 방지하기 위해 SRI(Subresource Integrity) 및 CSP(Content Security Policy)와 같은 기술을 사용하고 일부는 헤더를 기반으로 자동화된 브라우저를 차단한다. 

무레나와 네크로브라우저는 이런 보호 기능을 없애고 대부분의 프로세스를 자동화하기 위해 만들어졌다. 즉, 2FA를 물리칠 수 있는 피싱 공격을 시작하면 더 많은 수의 공격자가 공격을 수행할 수 있다. 이 도구는 BeEF(Browser Exploitation Framework Project)의 전 핵심 개발자였던 미켈레 오루(Michele Orrù) 연구원과 베터캡(Bettercap) 프로젝트의 회원인 주세페 트로타가 만들었다. 


무레나와 네크로브라우저의 작동 원리 

무레나는 고(Go) 프로그래밍 언어로 작성됐기 때문에 고를 사용할 수 있는 모든 플랫폼에서 컴파일하고 실행할 수 있다. 배포가 완료되면 공격자는 피싱 도메인을 구성하고 이에 대한 합법적인 인증서를 얻을 수 있다. 예를 들어, 비영리기관인 렛츠 인크립트(Let's Encrypt)의 인증서를 사용한다. 

이 도구에는 리버스 프록시로 작동하는 최소화된 웹 서버와 합법적인 웹 사이트에서 프록시할 자원을 자동으로 결정하는 크롤러(crawler)가 포함되어 있다. 프록시는 피해자가 전달한 요청을 투명하게 재작성해 전달한다. 

크롤러는 자동으로 JSON 구성 파일을 생성한다. 이 파일은 더 복잡한 웹 사이트에서 다양한 방어 수단을 우회해 수동으로 조정할 수 있다. 이 패키지에는 구글, 깃허브, 드롭박스의 구성 파일 예제가 포함되어 있다. 

무레나가 제공하는 피싱 사이트에 피해자가 도착하면 로그인 프로세스는 실제 웹 사이트에서와 똑같이 작동한다. 사용자에게 2FA 코드를 요청한다. 그들은 이를 제공하고 인증이 완료되면 프록시는 세션 쿠키를 훔친다. 

세션 토큰은 일반적으로 브라우저에서 파일 내에 저장되며 이후 요청시 제공된다. 이를 통해 웹 사이트는 로그인 비밀번호를 다시 묻지 않고 특정 시간(세션 길이) 동안 계정에 대한 액세스 권한을 브라우저에 자동으로 제공할 수 있다. 무레나는 수집된 세션 쿠키를 두 번째 구성 요소인 네크로브라우저로 자동 전달해 즉시 악용할 수 있다. 

네크로브라우저는 API를 통해 제어할 수 있으며, 도커 컨테이너에서 실행되는 크로미움 헤드리스 인스턴스를 통해 작업을 수행하도록 구성된 마이크로 서비스다. 사용 가능한 서버 리소스에 따라 공격자는 수십, 또는 수백 개의 컨테이너를 동시에 생성할 수 있으며, 각각은 피해자로부터 세션 쿠키를 도용한다. 

좀비 브라우저 인스턴스가 수행하는 작업은 완전히 자동화될 수 있다. 예를 들어, 계정 유형에 따라 이메일 스크린 샷 찍기, 비밀번호 재설정 시작, 악의적인 키를 깃허브에 업로드 또는 악의적인 전달 주소를 사서함에 추가하는 것들을 의미한다. 브라우저 인스턴스는 소셜 네트워크의 연락처와 친구에 대한 정보를 수집하고 심지어 웜과 같은 공격으로 친구에게 피싱 메일을 보내는데 사용할 수도 있다. 


자동 피싱 공격으로부터 보호하는 방법 

불행히도 서버 측에서 이런 피싱 공격을 완전히 차단하는 해결책은 거의 없다. 무레나는 SRI 및 CSP와 같은 기술이 제한적인 효과를 가지며 자동화된 방식으로 우회할 수 있음을 보여주기 위해 개발됐다. 또한 2FA는 방탄 솔루션이 아니다. 

프록시 기반 피싱은 유니버셜 이중 인증(Universal 2nd Factor, U2F) 표준을 지원하는 USB 하드웨어 토큰을 사용하는 일부 2FA 구현을 무력화시킬 수 없다. 이런 USB 토큰은 공격자의 리버스 프록시를 통과하지 않는 브라우저를 통해 합법적인 웹 사이트에 대한 비밀번호로 확인된 연결을 설정하기 때문이다. 

반면, SMS를 통해 수신되거나 모바일 인증 프로그램으로 생성된 코드를 기반으로 하는 솔루션은 피해자가 수동으로 입력해야 하는데, 이는 피싱 웹 사이트에서도 할 수 있기 때문에 취약하다.   

또 다른 기술적인 해결책은 사용자가 올바른 웹 사이트에 자격 증명을 입력했는지 확인하는 브라우저 확장이다. 구글은 비밀번호 경고(Password Alert)라는 크롬용 확장 프로그램을 개발해 사용자가 구글에 속하지 않은 웹 사이트에서 구글 자격 증명을 입력하려고 할 때 이를 경고한다. 

주의를 기울여 정확한 도메인 이름을 사용해 올바른 웹 사이트에서 사용자를 인증하도록 사용자를 교육하는 것은 매우 중요한 일이다. TLS/SSL 표시기와 유효한 인증서가 있으면 웹 사이트가 합법적이라고 생각하기에 충분하지 않다. 이제 인증서를 무료로 쉽게 얻을 수 있으므로 대부분의 피싱 사이트는 HTTPS를 사용할 수 있다. editor@itworld.co.kr 


2019.06.05

이중 인증을 우회하는 피싱 공격, "실행하기 더 쉬워졌다"…핵인더박스

Lucian Constantin | CSO
연구원은 이중 인증(two-factor authentication, 2FA)을 우회할 수 있는 피싱 공격을 자동화하는 2가지 툴인 무레나(Muraena)과 네크로브라우저(NecroBrowser)를 발표했다. 대부분의 방어체계가 이를 막을 수 없다. 
 
ⓒ Getty Images Bank 

침투 테스터 및 공격자는 2FA를 회피하는 방식으로 피싱 공격을 자동화하는 데 사용할 수 있으며, 탐지와 차단이 쉽지 않은 새로운 도구를 보유하고 있다. 이 도구를 사용하면 공격을 훨씬 쉽게 배포할 수 있으므로 조직은 안티 피싱 교육을 적절하게 채택해야 한다. 

지난 달 네덜란드 암스테르담에서 개최된 핵인더박스(Hack In The Box) 컨퍼런스에서 새로운 툴킷이 발표됐으며 이는 며칠 만에 깃허브(GitHub)에 출시됐다. 이 툴킷에는 2가지 구성요소가 있다. '무레나'라는 쉬운 리버스 프록시(Reverse Proxy)와 '네크로브라우저'라는 헤드리스 크로미움(Chromium) 인스턴스 자동화를 위한 도커 컨테이너다. 

 
중간자(man-in-the-middle) 유형의 공격

대부분의 사람이 잘 알고 있는 기존 피싱 공격은 공격자가 제어하는 웹 서버에서 호스팅되고 대상 웹 사이트의 이름과 비슷한 이름으로 된 도메인에서 제공하는 가짜 로그인 페이지로 구성된다. 

그러나 이런 정적 공격은 이중 인증을 사용하는 온라인 서비스에 대해서는 효과적이지 않다. 합법적인 웹 사이트와의 상호작용이 없기 때문에 일회용 코드 생성을 촉발시키지 않기 때문이다. 이런 코드가 없으면 공격자는 피싱한 자격 증명으로 로그인을 할 수 없다. 

2FA를 극복하기 위해 공격자는 피싱 웹사이트를 프록시로 사용하고 피해자를 대신해 합법적인 웹 사이트에 요청을 전달하고 실시간으로 응답을 제공해야 한다. 최종 목표는 사용자 이름과 비밀번호만 얻는 것이 아니라 실제 웹 사이트가 로그인한 계정과 연결하는 세션 쿠키(session cookies)라고 하는 활성 세션 토큰을 얻는 것이다. 이런 세션 쿠키는 브라우저와 연결되어 인증할 필요없이 직접 연결된 계정에 액세스할 수 있다. 

이 프록시 기반 기술은 새로운 것이 아니며, 오랫동안 알려져 왔지만 이런 공격을 설정하려면 기술 지식이 필요했으며, 엔진X(NGINX) 웹 서버와 같은 여러 독립적 도구를 리버스 프록시로 실행하도록 구성해야 했다. 그런 다음 공격자는 훔친 세션 쿠키가 만료되기 전에 이를 수동으로 악용해야 한다. 또한 일부 웹 사이트에서는 프록시를 방지하기 위해 SRI(Subresource Integrity) 및 CSP(Content Security Policy)와 같은 기술을 사용하고 일부는 헤더를 기반으로 자동화된 브라우저를 차단한다. 

무레나와 네크로브라우저는 이런 보호 기능을 없애고 대부분의 프로세스를 자동화하기 위해 만들어졌다. 즉, 2FA를 물리칠 수 있는 피싱 공격을 시작하면 더 많은 수의 공격자가 공격을 수행할 수 있다. 이 도구는 BeEF(Browser Exploitation Framework Project)의 전 핵심 개발자였던 미켈레 오루(Michele Orrù) 연구원과 베터캡(Bettercap) 프로젝트의 회원인 주세페 트로타가 만들었다. 


무레나와 네크로브라우저의 작동 원리 

무레나는 고(Go) 프로그래밍 언어로 작성됐기 때문에 고를 사용할 수 있는 모든 플랫폼에서 컴파일하고 실행할 수 있다. 배포가 완료되면 공격자는 피싱 도메인을 구성하고 이에 대한 합법적인 인증서를 얻을 수 있다. 예를 들어, 비영리기관인 렛츠 인크립트(Let's Encrypt)의 인증서를 사용한다. 

이 도구에는 리버스 프록시로 작동하는 최소화된 웹 서버와 합법적인 웹 사이트에서 프록시할 자원을 자동으로 결정하는 크롤러(crawler)가 포함되어 있다. 프록시는 피해자가 전달한 요청을 투명하게 재작성해 전달한다. 

크롤러는 자동으로 JSON 구성 파일을 생성한다. 이 파일은 더 복잡한 웹 사이트에서 다양한 방어 수단을 우회해 수동으로 조정할 수 있다. 이 패키지에는 구글, 깃허브, 드롭박스의 구성 파일 예제가 포함되어 있다. 

무레나가 제공하는 피싱 사이트에 피해자가 도착하면 로그인 프로세스는 실제 웹 사이트에서와 똑같이 작동한다. 사용자에게 2FA 코드를 요청한다. 그들은 이를 제공하고 인증이 완료되면 프록시는 세션 쿠키를 훔친다. 

세션 토큰은 일반적으로 브라우저에서 파일 내에 저장되며 이후 요청시 제공된다. 이를 통해 웹 사이트는 로그인 비밀번호를 다시 묻지 않고 특정 시간(세션 길이) 동안 계정에 대한 액세스 권한을 브라우저에 자동으로 제공할 수 있다. 무레나는 수집된 세션 쿠키를 두 번째 구성 요소인 네크로브라우저로 자동 전달해 즉시 악용할 수 있다. 

네크로브라우저는 API를 통해 제어할 수 있으며, 도커 컨테이너에서 실행되는 크로미움 헤드리스 인스턴스를 통해 작업을 수행하도록 구성된 마이크로 서비스다. 사용 가능한 서버 리소스에 따라 공격자는 수십, 또는 수백 개의 컨테이너를 동시에 생성할 수 있으며, 각각은 피해자로부터 세션 쿠키를 도용한다. 

좀비 브라우저 인스턴스가 수행하는 작업은 완전히 자동화될 수 있다. 예를 들어, 계정 유형에 따라 이메일 스크린 샷 찍기, 비밀번호 재설정 시작, 악의적인 키를 깃허브에 업로드 또는 악의적인 전달 주소를 사서함에 추가하는 것들을 의미한다. 브라우저 인스턴스는 소셜 네트워크의 연락처와 친구에 대한 정보를 수집하고 심지어 웜과 같은 공격으로 친구에게 피싱 메일을 보내는데 사용할 수도 있다. 


자동 피싱 공격으로부터 보호하는 방법 

불행히도 서버 측에서 이런 피싱 공격을 완전히 차단하는 해결책은 거의 없다. 무레나는 SRI 및 CSP와 같은 기술이 제한적인 효과를 가지며 자동화된 방식으로 우회할 수 있음을 보여주기 위해 개발됐다. 또한 2FA는 방탄 솔루션이 아니다. 

프록시 기반 피싱은 유니버셜 이중 인증(Universal 2nd Factor, U2F) 표준을 지원하는 USB 하드웨어 토큰을 사용하는 일부 2FA 구현을 무력화시킬 수 없다. 이런 USB 토큰은 공격자의 리버스 프록시를 통과하지 않는 브라우저를 통해 합법적인 웹 사이트에 대한 비밀번호로 확인된 연결을 설정하기 때문이다. 

반면, SMS를 통해 수신되거나 모바일 인증 프로그램으로 생성된 코드를 기반으로 하는 솔루션은 피해자가 수동으로 입력해야 하는데, 이는 피싱 웹 사이트에서도 할 수 있기 때문에 취약하다.   

또 다른 기술적인 해결책은 사용자가 올바른 웹 사이트에 자격 증명을 입력했는지 확인하는 브라우저 확장이다. 구글은 비밀번호 경고(Password Alert)라는 크롬용 확장 프로그램을 개발해 사용자가 구글에 속하지 않은 웹 사이트에서 구글 자격 증명을 입력하려고 할 때 이를 경고한다. 

주의를 기울여 정확한 도메인 이름을 사용해 올바른 웹 사이트에서 사용자를 인증하도록 사용자를 교육하는 것은 매우 중요한 일이다. TLS/SSL 표시기와 유효한 인증서가 있으면 웹 사이트가 합법적이라고 생각하기에 충분하지 않다. 이제 인증서를 무료로 쉽게 얻을 수 있으므로 대부분의 피싱 사이트는 HTTPS를 사용할 수 있다. editor@itworld.co.kr 


X