Last Updated on 1월 18th, 2024, By
 In 앱실링 블로그, AppSealing News

2017년에 인증서 피닝 기술의 한 취약점으로 인해 주요 은행의 고객들이 중간자 공격을 받는 일이 있었습니다. 이 결함은 HSBC, Santander, Allied Irish Bank, NatWest 등의 은행 앱에서 발견되었으며 이로 인해 공격자들은 피해자들과 같은 네트워크에서 간단하게 중간자(MiTm) 공격을 수행할 수 있었습니다. 공격을 감지하는 일반적 시험은 제대로 작동하지 않았습니다. 당시 은행들은 앱의 보안을 강화하고 그러한 공격을 막아내기 위해 조치를 취했습니다. 이 사건은 금융계에 큰 충격을 준 대규모 중간자 공격이었습니다.

중간자(MiTm) 공격이란?

이 방법은 공격자가 2명의 사용자 사이에 자리잡고 대화를 엿듣거나 데이터 전송을 가로채는 공격입니다. 일반적인 사이버공격에 해당하며 말 그대로 공격자가 2개 당사자 사이에 ‘말없는 관찰자’이자 ‘조작자’로 끼어들어 통신 및 메시지 교환 내용을 가로챕니다. 

사용자가 서버나 웹사이트와 상호작용할 시마다 세션 ID가 생성됩니다. 공격자는 중간자 공격을 통해 이 세션 ID를 몰래 탈취하여 불법 거래에 악용하거나 암호를 절도 또는 자신이 원하는 것으로 변경하고자 로그인 정보, 금융 데이터, 개인정보 등을 탈취할 의도로 세션의 내용을 가로채서 조작합니다. 또한 이 방법은 지능형 지속 공격(APT)에도 사용할 수 있습니다. 이 공격에는 피해자, 피해자가 상호작용하는 자/애플리케이션, 그리고 공격자 등 3개 당사자가 존재합니다. 

중간자 공격의 방식

중간자 공격은 공격자가 먼저 대화에 대한 접근권을 확보하고 도청을 개시하는 직관적 방식을 따릅니다. 그리고 공격자는 중간자가 되어 2개 당사자들 간에 공유되는 메시지를 가로챕니다. 그 다음으로 공격자는 원하는 데이터를 탈취하거나 메시지를 조작하여 대화를 장악하고 금융 거래 등을 실시합니다. 이러한 공격의 유형은 두 가지로 나뉩니다:

네트워크 트래픽 차단: 

이 유형은 누군가 ‘무료 Wi-Fi’에 접속할 때 발생할 수 있습니다. Wi-Fi 제공자가 뒤에 숨어 데이터를 탈취하는 것입니다.

모바일 앱 네트워크 보안: 

이는 HTTPS의 부정확한 사용에 기인합니다. HTTP보다는 HTTPS를 이용하는 것이 일반적이며 대부분 애플리케이션도 이를 사용하지만 현실에서는 놀랍게도 많은 개발자들이 구성 오류를 저질러 보안 결함을 일으키고 있습니다. 

모바일 앱과 중간자 공격

모바일 앱의 중간자 공격은 부정확한 인증서 검증, HTTPS 외에 제한적인 표준 인증 방식, 비보안 프로토콜 등으로 인해 자주 일어납니다. 인증서 피닝을 이용하면 앱의 인증서를 목적지의 호스트명과 연동하여 안정적인 인증이 가능합니다. 이러한 조치는 앱 자체 내에서 실시해야 합니다. 이 공격은 개인정보, 금융 데이터, 위치, 메시지, 대화 등에 대한 불법 접근을 일으키며, HTTPS의 사용과 인증서 매칭에 기반한 호스트명 검증이 안전한 연결에 도움이 됩니다. 

중간자 공격의 유형

다양한 유형의 중간자 공격이 발생할 수 있습니다. 그 중 일부는 다음과 같습니다:

이메일 탈취: 

공격자는 피해자의 이메일주소를 목표로 하여 은행 등 목표 기관과 피해자 간의 통신 내용에 접근하려 시도합니다. 공격자는 이들 사이의 거래에 초점을 맞춥니다. 한쪽 또는 양쪽 모두 스푸핑하여 특정 명령을 전송합니다. 이를테면 은행의 이메일 ID를 스푸핑하여 민감성 정보를 요청함으로써 피해자의 계정을 해킹하거나 불법 거래를 실시할 수 있습니다. 

세션 탈취: 

이는 크로스 사이트 스크립팅(XSS) 공격이나 세션 브라우저 쿠키를 탈취하여 일어납니다. 사용자가 은행 계정에 로그인하면 이를 지켜보던 공격자가 세션 진행 중에 세션 쿠키를 탈취할 수 있습니다. 이제 공격자는 이 계좌의 금액을 모두 자신의 계좌로 이체할 수 있습니다. 

Wi-Fi 도청:

공격자는 정상으로 보이는 Wi-Fi 네트워크명이나 암호가 필요없는 공용 Wi-Fi 망을 구성합니다. 사용자는 무료로 인터넷을 쓸 수 있다고 생각하여 이 망을 사용하려 합니다. 이를테면 ‘공항’이라는 이름의 Wi-Fi 망을 보고 이것이 정상적 네트워크라고 판단할 수 있습니다. 이 악성 망에 접속하면 공격자는 접속자의 활동에 접근할 수 있게 됩니다. 

IP 스푸핑: 

공격자가 IP 주소의 패킷 헤더를 수정합니다. 사용자가 정상적인 전자상거래 사이트에 접근하려 시도하는 중에 이렇게 패킷 헤더가 조작되면 실제 사이트와 유사한 가짜 사이트로 리디렉션됩니다. 거래가 일어나면 해당 금액은 다른 계좌로 이체됩니다. 

DNS 스푸핑: 

DNS 캐시 포이즈닝이라고도 하며 해커가 DNS 서버를 침입하고 웹사이트 주소 기록을 자신의 기록에 맞춰 조작합니다. 사용자가 정상적인 웹사이트에 접근하려는 중에 DNS 스푸핑이 일어나면 해커가 조작한 DNS 기록을 통해 사용자는 가짜 주소로 리디렉션됩니다. 이제 사용자는 민감성 정보를 해당 사이트에 보낸다고 생각하여 전송하지만 실제로는 공격자로 전송됩니다. 

HTTPS 스푸핑: 

원래 HTTPS와 동일해 보이면서 비 ASCII 문자만 일부 수정된 도메인을 이용하여 자신이 정상 웹사이트에 접속한다고 생각하는 피해자들을 유혹합니다.

SSL 탈취:

보안 소켓 레이어(SSL)는 2개 장치들 간의 보안 접속에 사용됩니다. 이 때 SSL 탈취를 당하면 통신 내용이 암호화되며 공격자는 이를 이용할 수 있게 됩니다. 

브라우저 쿠키 탈취:

쿠키를 탈취하여 사용자의 암호, 개인정보, 거래정보에 접근합니다. 

ARP 스푸핑: 

주소 변환 프로토콜(ARP)은 MAC 값을 로컬 IP 주소로 변환하는 데 사용합니다. ARP 스푸핑에서 공격자는 가짜 ARP 메시지를 통해 자신의 MAC을 정상 사용자의 IP 주소와 연동합니다. 이제 사용자가 전송하는 데이터는 모두 공격자에게 전송됩니다. 

불량 액세스 포인트: 

이름 그대로 공격자는 무선 기기나 네트워크 카드들이 자동으로 가까운 액세스 포인트에 접속하려 한다는 판단으로 자신의 불량 무선 액세스 포인트를 만들어 놓습니다. 인접성 원칙을 바탕으로 하는 공격입니다. 

mDNS 스푸핑: 

DNS 스푸핑에서 파생한 이 방법에서 공격자는 LAN을 통해 정상 요청에 가짜 데이터로 반응하여 사용자를 비정상 불법 사이트로 리디렉션합니다.

중간자 공격의 감지

이러한 공격은 배경에서 많은 일들이 일어나는 관계로 감지가 쉽지 않습니다. 하지만 아래와 같은 경우에 주의하면 중간자 공격에 효과적으로 대응할 수 있습니다:

  • 알 수 없는 원인으로 페이지나 애플리케이션 로딩이 오래 걸리는 경우
  • URL이 HTTPS가 아닌 HTTP로 시작하는 경우
  • 앱에서 연결이 반복하여 끊기거나 장애가 일어날 시
  • 애플리케이션 URL에 기묘한 주소나 문자가 있는 경우

중간자 공격의 방지

애플리케이션 데이터를 보호하고자 하는 기업은 아래와 같은 조치로 중간자 공격을 방지할 수 있습니다.

액세스 포인트에 WAP 암호화 실시:

강력한 무선 애플리케이션 프로토콜(WAP) 암호화는 공격자의 시스템 해킹을 방지합니다. 

VPN 사용: 

엔드포인트와 서버 간 모니터링을 위한 VPN은 중간자 공격을 제한할 수 있습니다. 키에 기반한 암호화를 사용하므로 인접한 공유 네트워크의 공격자가 시스템에 침투할 수 없습니다.

HTTPS만 사용: 

이를 통해 공격자가 정보를 탈취하지 못하게 막을 수 있습니다. 이 규칙을 강제하여 HTTP 주소를 절대 사용하지 못하게 막는 브라우저 플러그인도 있습니다.

모든 통신에 종단간 암호화 실시:

이는 이메일, 채팅, 웹사이트, 동영상 등 모든 통신 시스템을 보호하는 것을 의미합니다.

임직원 교육: 

임직원이 언제든지 이상 징후를 찾아내서 보안팀에 신고하도록 교육합니다.

강력한 인증 프로토콜에 대한 투자: 

공용 키 기반 인증이나 RSA는 공용 및 개인별 키를 이용하는 비대칭 암호화 알고리즘을 통해 암호를 강화하는 데 도움이 됩니다. 사용자가 시스템에 로그인할 시마다 서버는 인증을 위해 접근하려는 곳에 저장된 공용 키를 입력하도록 요청합니다. 이후 사용자 컴퓨터에 저장된 개인별 키를 입력해야 합니다.

기본에 충실하기:

항상 최신 보안 패치를 실시하고 가능하면 암호 관리자를 사용하며 정기 모니터링을 실시하고 다단계 인증에 투자하십시오.

RASP에 투자하기: 

공격 벡터의 복잡성과 지금도 일어나는 엄청난 수의 사고는 실시간으로 애플리케이션 보안이 얼마나 중요한지 보여줍니다. 인간의 개입만으로는 이러한 공격을 감지, 방지하기에 부족합니다. 특히 주로 백그라운드에서 일어나며 피해 발생 전까지 징후가 없는 중간자 공격의 경우 런타임 애플리케이션 자가 보호(RASP)가 반드시 필요합니다. RASP는 기업들이 실시간으로 애플리케이션을 보호하고 공격을 감지하며 취약점을 파악하는 데 도움이 됩니다. 또한 공격을 주도적으로 찾아나서고 막아낼 조치를 제안하기도 합니다. 이것이 RASP가 웹 애플리케이션 방화벽보다 효과적인 이유입니다.

아래와 같은 방법으로 보호의 강도와 프로토콜을 시험하는 것도 중요합니다.

  • 인증 테스트: 앱 개발자는 프록시를 통해 엔드포인트 보안 외에 인증서의 유형도 검사할 수 있습니다.
  • 위양성(false positive) 극복: IP 테이블 규칙을 이용하여 데이터를 수집하고 트래픽을 원하는 프록시로 포워딩하는 인터페이스를 구성합니다. 이를 통해 앱이 장치가 아닌 인터페이스의 프록시를 이용할 수 있습니다.
  • 탈옥이나 루트 권한이 수정된 장치의 보호: 인증서 피닝에서는 동적 측정 도구로 규칙 우회에 대해 확인해야 합니다.

결론

시스코에 따르면 2021년에 270억대에 달할 정도로 수많은 장치들이 인터넷을 통해 접속하고 있으며 이를 악용할 중간자 공격 역시 급증할 것으로 예상됩니다. 위와 같은 일반적 징후를 통해 이 공격을 감지하는 것이 좋은 출발점입니다. 이는 피해 대응도 용이하게 만들어 줍니다. 신속한 조직은 RASP와 같은 장기적 솔루션을 이용하여 문제가 심각해지기 전에 적극적으로 파악해야 할 것입니다. AppSealing의 완벽한 인앱 보안 솔루션은 귀사가 실시간으로 이러한 공격을 파악, 방지하도록 도와드립니다. 


appsealing contact

Dustin Hong
Dustin Hong
Dustin은 잉카엔트웍스의 앱실링 비즈니스 개발을 이끌고 있습니다. 그는 사이버 보안, IT, 컨텐츠 및 애플리케이션 보안 분야의 소프트웨어 개발과 혁신에 많은 관심을 가지고 있습니다. 또한 사이버 보안 세계에서 주요 사건의 대상, 이유 및 방법에 대해 다양한 사람들에게 공유하고 토론하는 것을 좋아합니다. 업계 동향 및 모범 사례에 대한 그의 견해는 기사, 백서에 실려있으며, 여러 보안 행사에서 유사 주제로 발표를 하였습니다.