중간자 공격(MITM; Man In The Middle Attack) 이란?

백신 프로그램들은 웹을 통해 바이러스나 멜웨어 감염되는 것을 차단하기 위해 브라우저가 주고 받는 컨텐츠를 검사하는 기능을 갖고 있습니다.

 

하지만 SSL/TLS 로 연결할 경우 모든 컨텐츠가 암호화되므로 백신 프로그램이 컨텐츠를 검사할 수 없게 됩니다.

 

avast 백신의 2015 버전부터는 이런 문제를 해결하기 위해 SSL/TLS 를 통해 주고 받는 컨텐츠도 검사할 수 있는 기능이 추가되었습니다.

 

그런데 과연 어베스트같은 백신 프로그램들은 어떻게 TLS 를 사용하여 암호화된 컨텐츠를 검사할까요?

 

사실 백신이 TLS 를 통해 오가는 컨텐츠를 검사하는 방법은 중간자 공격(MITM; Man In The Middle Attack) 이라는해킹 기법의 일종입니다.

 

중간자 공격은 아래 그림처럼 두 개의 커넥션 사이에 위치하여 서로 오가는 패킷을 전달(감청?)하는 방법으로 ZenMate 같은 웹 프록시들이 동작하는 방법이기도 합니다.

하지만 SSL/TLS 에서 중간자 공격을 실행하려면 브라우저가 연결하려는 도메인에 대한 인증서가 있어야 합니다.

아베스트는 이를 위해 사용자 PC의 브라우저에 "avast! Web/Mail Shield Root" 라는 루트 인증서를 신뢰하는 인증기관으로 추가하고 브라우저가 연결하는 사이트가 https 일 경우 해당 도메인에 맞는 SSL 를 발급한 후에 중간자 공격을 실행합니다.

 

그러므로 브라우저가 연결하는 사이트가 https://google.com 일 경우 아베스트 백신은 DNS 를 spoofing하여 google.com 의 DNS 주소를 로컬 호스트로 변조합니다.

그리고 사용자의 네트워크 패킷을 가로채서  "avast! Web/Mail Shield Root" 가 발급한 google.com 도메인 인증서를  설치한 로컬 프록시에 연결하도록 조작하여 사용자의 요청을 받은 후에 브라우저인척 https://google.com 에 연결하여 사용자의 요청을 전달하고 받은 요청을 다시 사용자에게 전달합니다.

 

이렇게 중간자 공격이 가능한 점은 SSL/TLS 의 가장 큰 취약점중에 하나이며 사용자의 PC 가 멜웨어나 바이러스를 통해 장악당했을 경우 TLS 를 사용해도 모든 패킷이 감청되는 문제가 있습니다.

MITM 중지

HTTPS 로 서비스를 개발할 경우 avast 가 설치된 PC 에서는 위 기능때문에 TLS 인증서 관련 이슈(만기가 지났거나 검증이 안 되는등)를 감지하지 못할 수 있습니다.

이럴 경우 다음 설정을 통해 avast 의 MITM 을 중지할 수 있습니다.

  1. 아베스트의 사용자 UI 에서 설정(Settings) 메뉴 클릭.
  2. 보호활성(Active protection) → 웹감시(Web Shield)의 사용자 지정 클릭
     
  3. https 검사 사용(Enable HTTPS scanning) 체크 박스 해제.
     

 

Ref