보안

해커가 2단계 인증을 우회하는 6가지 방법과 안전한 사용을 위한 팁

Arne Arnold | PCWorld 2024.09.12
단순히 사용자 이름과 비밀번호만으로 계정을 보호하는 것은 위험하다. 이런 정보는 쉽게 도용되거나 추측되며, 심지어 해킹될 수 있다. 그렇기 때문에 모든 중요한 접근 지점에서는 2단계 인증(two-factor authentication, 2FA)이 권장된다. 온라인 뱅킹은 이미 수년 전부터 2FA를 의무화했다. 
 
ⓒ Getty Images Bank

2FA는 계정, 네트워크 또는 애플리케이션에 접근할 때 두 가지 요소를 사용한다. 이 두 요소는 다음 세 가지 카테고리 중에서 선택한다. 
 
  • 정보(비밀번호, PIN)
  • 소지품(스마트폰, 피도2(Fido2) 스틱 등)
  • 생체 인식(지문, 얼굴 인식 등)

2FA가 충분한 보안을 제공하려면 두 가지 요소를 반드시 서로 다른 카테고리에서 선택해야 한다. 두 가지 이상의 요소를 사용하는 경우에는 이를 다단계 인증(multi-factor authentication, MFA)이라고 부른다.

비록 2FA가 매우 안전하다 하더라도 완벽한 것은 아니다. 해커는 여전히 계정을 탈취하기 위한 여러 가지 방법과 허점을 이용할 수 있다.


1. 중간자 공격

사용자와 온라인 계정 간의 연결은 TLS(Transport Layer Security)로 보호되어 있어 이를 해킹하는 것은 매우 어렵다. 그럼에도 불구하고 공격자는 다양한 방법을 사용해 사용자와 계정 사이에 끼어들 수 있다. 이를 "중간자 공격(man in the middle)"이라 부른다. 

중간자 공격에는 여러 유형이 있다. 대표적인 방법은 피싱 페이지다. 피싱 공격은 2FA의 가장 큰 위협 중 하나다. 사이버 범죄자는 가짜 웹사이트를 만들어 사용자의 로그인 정보를 빼내려 한다. 주로 이메일, SMS, 또는 왓츠앱 메시지를 통해 이런 피싱 사이트로 유도한다. 이런 메시지는 신뢰할 수 있는 기업으로 가장한 경우가 많다.

일반적인 피싱 사이트는 단순히 사용자의 로그인 정보만 탈취하지만, 중간자 공격에서는 2FA 인증 코드까지 가로챌 수 있다. 공격자는 사용자가 가짜 사이트에 입력한 정보를 사용해 해당 서비스에 즉시 로그인한다. 이런 공격은 시간과의 싸움이다. 2FA의 일회용 비밀번호는 몇 초 내로 만료되기 때문이다.

따라서 중간자 공격은 시간이 많이 소요된다. 공격자는 잠재적 피해자가 가짜 사이트에 자신의 정보를 입력할 때 곧바로 로그인하기 위해 대기해야 한다. 하지만 돈을 직접적으로 훔치기 위해 종종 사용되기 때문에 범죄자는 중간자 공격을 계속 시도하고 있다.


2. 브라우저의 중간자

중간자 공격의 변형 중 하나는 피해자의 브라우저에 직접 침투하는 악성코드를 사용하는 방식이다. 악성코드는 사용자가 은행에 로그인해 2단계 인증까지 완료할 때까지 기다리다가, 백그라운드에서 피해자의 이체 내용을 조작한다. 이런 악성코드의 예로는 카버프(Carberp), 이모텟(Emotet), 스파이아이(Spyeye), 제우스(Zeus) 등이 있다.

피해자의 브라우저에는 이체 금액과 수신자의 정보가 정상적으로 표시된다. 사용자는 이를 확인하고 일회용 비밀번호로 이체를 승인한다. 하지만 실제로는 악성코드가 다른 수신자에게 더 큰 금액을 비밀리에 은행으로 전송한 것이다.

보호 방법은 간단하다. 대부분 은행은 일회용 비밀번호 요청 시 이체 금액을 다시 한 번 확인하도록 사용자에게 전송한다. 대부분의 경우 수신자의 IBAN도 전체 혹은 부분적으로 함께 전송된다. 이런 정보를 반드시 꼼꼼히 확인해야 한다.


3. 전화 사기 

많은 경우 공격자는 이미 피해자의 온라인 계정 사용자 이름과 비밀번호를 알고 있다. 이는 다크웹에서 유출된 비밀번호 목록에서 얻었거나, 피해자의 PC에 정보 탈취 악성코드를 심어 이 정보를 빼냈을 수 있다.

그러나 공격자가 피해자의 온라인 계정에 로그인하기 위해 필요한 것은 2FA 인증 요소다. 이를 얻기 위해 공격자는 피해자에게 전화를 건다. 이들은 은행 직원을 사칭해, 새로운 보안 절차를 도입하려 한다며 2FA 인증 절차를 통해 권한을 요청한다고 주장한다. 만약 피해자가 이 시점에서 2FA를 통해 해당 작업을 승인하게 되면, 피해자는 새로운 보안 절차에 동의한 것이 아니라 자신의 돈을 공격자의 계좌로 이체한 것이다.

2FA 코드나 인증 절차는 절대 다른 사람에게 전달하거나 전화로 요구받은 경우 응하지 말아야 한다. 진짜 서비스 직원은 절대 이러한 비밀 정보를 요구하지 않는다.


4. SIM 스와핑

한동안 사용자가 온라인 계정에서 문자 메시지로 받는 일회용 비밀번호는 2FA을 위한 안전한 방법으로 여겨졌다. 하지만 범죄자는 SIM 스와핑 기법을 개발해 수백만 개의 온라인 계정을 해킹했다. 여기에는 2FA로 보호된 비트코인 거래소 계정도 포함됐다. 이 공격의 전제 조건은 공격자가 이미 피해자의 사용자 이름과 비밀번호를 알고 있다는 것이다.

SIM 스와핑(SIM swapping), 또는 SIM 하이재킹(SIM hijacking)은 공격자가 피해자의 휴대전화 번호를 통제하는 방식이다. 공격자는 통신사에 연락해 새로운 SIM 카드나 eSIM을 자신에게 발급하도록 한다. 그런 다음, 자신의 휴대전화에서 이를 활성화하고 2단계 인증 로그인을 위한 일회용 비밀번호가 담긴 문자를 받는다.

공격자는 종종 통신사에 전화를 걸어 휴대전화를 잃어버렸다고 주장하며 새로운 SIM 카드를 요청한다. 새로운 주소로 SIM 카드를 보내달라고 요청할 수도 있다. 만약 통신사가 이를 거부한다면, 공격자는 우편물이 피해자의 주소에 도착할 때까지 기다렸다가 실제 수령인이 받기 전에 우편함을 비우는 방식으로 SIM 카드를 훔칠 수 있다. 이 과정은 공격자에게 시간과 노력이 많이 드는 일이지만, 피해자의 계정에 많은 돈이 있다면 범죄자에게는 충분히 그럴 만한 가치가 있다. 

가능하다면 2단계 인증을 위해 SMS를 사용하지 않는 것이 좋다. 인증 앱에서 생성된 일회용 코드를 사용하는 것이 더 안전하다.


5. 인증 쿠키 탈취

2FA를 사용하는 많은 서비스는 사용자가 PC의 인터넷 브라우저에 로그인 정보를 기억할 수 있는 옵션을 제공한다. 이 경우, 한 번 로그인한 후에는 해당 브라우저에서 다시 로그인할 때 2단계 인증 없이 사용자 이름과 비밀번호만 입력하거나, 아예 로그인 정보가 필요 없게 된다.

이런 방법은 편리성을 크게 높여주지만, 공격에 노출될 가능성도 커진다. 이 방법으로 서비스는 사용자의 PC에 인증 쿠키를 저장하게 되며, 이 쿠키에는 암호화된 로그인 정보가 포함되어 있다. 만약 공격자가 정보 탈취 악성코드를 사용자 PC에 설치하는 데 성공하면, 쿠키에 저장된 로그인 정보를 훔칠 수 있다. 공격자는 이 쿠키를 자신의 PC에서 사용하여 로그인 절차나 2단계 인증 없이 온라인 서비스에 접속할 수 있다.

이런 정보 탈취 악성코드의 예로는 루마(Lumma)가 있다. 루마 악성코드는 2022년부터 PC를 공격해왔으며, 러시아어로 운영되는 지하 포럼에서 "서비스형 악성코드(malware as a service)"로 판매되고 있다.

보호 방법은 당연히 백신 프로그램을 설치하는 것이다. 이는 정보 탈취 악성코드를 차단하는 데 도움을 줄 수 있다. 또한 2단계 인증을 사용하는 계정은 매번 로그인할 때마다 2단계 인증을 요구하도록 설정하는 것이 좋다. 일반적으로는 2FA가 기본 활성화 상태다. 


6. 안전하지 않은 2FA 인증 요소

2FA에서 흔히 발생하는 실수는 안전하지 않은 요소를 선택하는 것이다. 많은 사용자가 여전히 더 나은 2FA 방법이 제공됨에도 불구하고 SMS를 2FA 요소로 사용한다. 하지만 SMS는 SIM 스와핑 같은 공격에 취약하다. 이메일을 2FA 요소로 사용하는 것도 제한적인 경우에만 권장된다. 이메일 계정을 스스로 안전한 2단계 인증으로 보호하지 않은 경우에는 특히 그렇다.

백업용으로만 사용하더라도 약한 인증 요소는 위험할 수 있다. 많은 온라인 서비스가 한 계정에 여러 로그인 요소를 저장할 수 있는 옵션을 제공하는데, 이는 한 가지 인증 요소가 작동하지 않을 때 다른 요소로 전환할 수 있어 유용하다.

그러나 공격자도 언제든지 다른 로그인 옵션을 사용할 수 있다. "가장 약한 고리가 전체 체인의 강도를 결정한다"라는 말은 여기서도 적용된다.인증 앱의 일회용 비밀번호로 계정을 보호하면서 동시에 이메일을 통해 일회용 비밀번호를 로그인 옵션으로 활성화하면 공격자가 이를 악용할 수 있다.

따라서 서비스 로그인 시에는 여러 인증 요소를 저장하는 것이 좋다. 예를 들어, 인증 앱의 일회용 비밀번호와 패스키를 사용할 수 있다. 하지만 SMS와 이메일 같은 안전하지 않은 인증 요소는 피해야 한다.


2FA, 어떤 방법이 안전할까?

2단계 인증을 사용하여 로그인할 때는 안전한 방법과 덜 안전한 방법이 있다.

1. 일회용 비밀번호(OTP)
  • SMS 기반 OTP : SMS를 통해 사용자의 휴대폰으로 일회용 비밀번호( One-time password, OTP)가 전송된다. 안전한가? SMS 기반 OTP는 SIM 스와핑 공격 및 중간자 공격에 취약하여 상대적으로 안전하지 않다.
  • 앱 기반 OTP : 구글 어센티케이터(Google Authenticator)와 같은 인증 앱이 일회용 비밀번호를 생성한다. 안전한가? 앱 기반 OTP는 외부 네트워크를 통해 전송되지 않기 때문에 SMS 기반 OTP보다 더 안전하다. 그러나 피싱 공격에 취약할 수 있다.
  • 이메일 기반 OTP : 일회용 비밀번호가 사용자의 이메일로 전송된다. 안전한가? 이메일 기반 OTP는 다른 방법보다 덜 안전하다. 이메일은 가로챌 수 있고, 종종 덜 안전한 네트워크를 통해 전송되며, 이메일 계정 자체가 피싱 공격의 표적이 되기도 한다.
  • 푸시 알림 : 푸시 알림이 사용자의 휴대폰에 설치된 인증 애플리케이션으로 전송된다. 사용자는 알림을 승인해야 한다. 안전한가? 푸시 알림은 사용자의 직접적인 상호작용을 요구하기 때문에 상대적으로 안전하지만, 사용자를 속여 알림을 승인하게 만드는 사회 공학적 공격에 취약할 수 있다.

2. 하드웨어 토큰
  • U2F/FIDO2 토큰 : U2F/FIDO2 표준을 기반으로 한 USB 또는 NFC 기반 하드웨어 토큰(예 : 유비키). 안전한가? 이런 토큰은 암호화 키를 사용해 인증하므로 피싱과 중간자 공격에 강력하며 매우 높은 수준의 보안을 제공한다.
 
하드웨어 토큰은 2FA 요소로 매우 높은 보안을 제공하며, 스마트폰에서도 작동한다. ⓒ Foundry

3. 패스키
  • 패스키 : 대부분 서비스에서 비밀번호 외에 추가 옵션으로 사용된다. 안전한가? 패스키가 진정한 2FA 요소로 설정된 경우 로그인은 매우 안전하다. 하지만 패스키가 비밀번호의 대안으로 사용될 경우, 비밀번호로 로그인을 전환할 수 있기 때문에 비밀번호보다 큰 추가 보안을 제공하지 않는다.

4. 생체 인식
  • 지문, 얼굴 인식 등 : 지문 센서나 생체 인식 카메라를 사용해 잠금을 해제하거나 로그인한다. 안전한가? 지문의 경우 피해자와 직접 접촉했을 때 생각보다 쉽게 위조될 수 있다.

결론
  • 가장 높은 보안 : 하드웨어 토큰은 물리적 특성 덕분에 가장 높은 수준의 보안을 제공한다.
  • 중간 보안 : 패스키, 앱 기반 OTP, 푸시 알림, 생체 인식은 SMS 및 이메일 기반 OTP보다 더 안전하지만, 사회 공학적 공격과 같은 일부 공격에 취약할 수 있다.
  • 가장 낮은 보안 : SMS 및 이메일 기반 OTP는 공격에 가장 취약하므로 사용을 피해야 한다.


2FA를 안전하게 사용하는 팁 4가지

여기서 웹사이트(왼쪽)는 스마트폰의 관련 앱으로 푸시 알림을 보낸다. 이제 사용자는 계정에 로그인하기 위해 표시된 번호를 입력해야 한다. ⓒ Foundry
 
  1. 비상용 코드를 생성해 출력한 후 안전한 곳에 보관하라. 여행할 때는 이런 코드 중 두세 개를 항상 소지하는 것이 좋다.
  2. 하나 이상의 2FA 방법을 활성화하라. 예를 들어, 인증 앱과 하드웨어 토큰을 함께 사용한다. 이렇게 하면 인증 앱이나 비상용 코드가 없을 경우에도 백업할 수 있다.
  3. 민감한 계정에 대해 SMS를 통한 2FA 코드는 사용하지 않는 것이 좋다. 범죄자가 SIM 카드를 훔치거나 피싱을 통해 SMS 코드를 얻을 수 있기 때문이다.
  4. 백업 기능이 있는 인증 앱을 사용하라. 그러면 앱과 모든 코드를 새로운 스마트폰으로 옮길 수 있다. 그렇지 않으면, 앱을 재설치할 때 모든 2FA 서비스를 다시 설정해야 할 것이다.

editor@itworld.co.kr

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.