보안 / 프라이버시

국가 검열에 저항하는 해킹 방법과 TLS 공격 시연…데프콘

Cynthia Brumfield | CSO 2020.08.25
중국 정부가 검열 도구인 만리방화벽(Great Firewall of China)를 업데이트해 최신 전송 계층 보안(Transport Layer Security, TLS) 버전으로 HTTPS 트래픽을 차단하고 나서면서 정보보안 업계의 관심은 온통 TLS 프로토콜에 쏠렸다. 게다가 '데프콘: 세이프 모드(DEF CON: Safe Mode)'에서 보안 연구진이 TLS를 사용하는 검열을 우회하는 방법을 제안하고 잠재적인 TLS 기반 공격을 시연하면서 관심도는 더욱 높아졌다.
 
ⓒ Getty Images Bank

TLS는 주로 웹 애플리케이션과 서버 간의 통신을 암호화하는 방법으로 인터넷 통신에서 개인정보보호와 데이터 보안을 실현하기 위해 광범위하게 사용되는 프로토콜이다. 최신 버전인 TLS 1.3은 2018년에 출시됐다. TLS는 더 보편적으로 알려진 HTTPS 기술의 기반이며, 초대하지 않은 서드파티로부터 통신을 숨기지만 통신을 하는 사용자의 ID 숨김은 보장하지 않는다.

TLS 1.3에는 암호화된 서버 이름 표시(Encrypted Server Name Indication, ESNI)라는 기능이 도입됐다. ESNI가 적용되면 HTTPS 통신을 국가 주도의 검열을 하기가 어렵다. 8월 초, 아이유포트(iYouPort)와 매릴랜드 대학, 만리방화벽 리포트(Great Firewall Report), 3개 단체는 ESNI 확장을 사용한 TLS 연결을 차단하는 중국의 조치에 대한 공동 보고서를 발행했다.
 
이 단체들은 간단한 파이썬 프로그램을 사용해 만리방화벽이 클라이언트에서 서버로의 ESNI 연결을 차단하고 관련된 IP 주소를 일시적으로 금지한다는 사실을 발견했다. 3개 단체는 앱이나 소프트웨어 또는 서버에서 사용해 중국의 검열 차단을 무력화할 수 있는 여러 우회 기법을 발견했지만 그 효력은 일시적일 것으로 예상했다.

 
도메인 숨기기로 중국 검열 우회

사이버보안 솔루션 업체 식스젠(SixGen)의 CTO이자 대항 에뮬레이션 책임자인 에릭 헌스태드는 “도메인 프론팅은 죽었다, 도메인 프론팅 만세(Domain Fronting is Dead, Long Live Domain Fronting)”라는 제목으로 진행한 데프콘의 한 발표에서 중국 검열을 우회하는데 더 효과적일 수 있는 다른 방법을 제안했다. 도메인 프론팅의 경우, 규모가 큰 인증서 및 호스팅 제공업체를 사용해 HTTPS의 서로 다른 통신 계층에 서로 다른 도메인 이름을 배포하는 방법으로 인터넷 검열을 우회할 수 있다.

헌스태드는 “도메인 프론팅에서 클라이언트는 실제 목적지 도메인이 아닌 프론트 도메인에 연결된다. 도메인 프론팅은 봉투 안의 엽서와 같다. 클라이언트는 봉투 겉면에 CDN(Content Delivery Network)의 주소를 쓰지만, 실제 목적지 도메인은 그 안의 엽서에 있다”라고 설명했다.

CDN은 봉투를 열고 실제 목적지로 엽서를 보낸다. 도메인 프론팅 사용은 2018년 들어 크게 줄었다. 인기 있는 메시징 앱인 텔레그램(Telegram)이 구글과 아마존 클라우드 서비스를 도메인 프론팅에 사용한다는 이유로 러시아 정부가 클라우드 제공업체에 도메인 프론팅 사용을 중지할 것을 종용했기 때문이다. 현재는 마이크로소프트의 애저, 그 외의 일부 소규모 업체에서만 여전히 도메인 프론팅을 허용하고 있다.

도메인 프론팅이 막히자 헌스태드는 검열을 피하기 위한 “도메인 숨기기(Domain Hiding)”라는 새로운 기법을 개발했다. 헌스태드는 이 방법이 “도메인 프론팅과 같은 목표를 달성하지만 사용하는 방법은 다르다”라고 말했다. 헌스태드가 도메인 숨기기를 구현하는 방법은 CDN 분야의 선두 업체인 클라우드플레어(Cloudflare)를 활용하고, 앱에 도메인 DNS 기록 관리를 클라우드플레어에 맡기도록 하는 것이다. 

헌스태드는 “TLS 1.3과 실제 목적지 ESNI 간의 연결은 임의의 클라우드플레어 IP로 실행되며, 기반 HTTPS 요청에도 실제 목적지의 호스트 헤더가 있다. 이를 통해 클라우드플레어가 소유한 모든 IP는 클라우드플레어 DNS에 의해 호스팅되는 도메인의 프론트 역할을 하게 된다”라고 설명했다. 헌스태드는 데프콘에서 이 새로운 방법을 사용해 도메인을 숨기는 과정을 자동화하는 녹틸루선트(Noctilucent)라는 새로운 도구를 공개했다.

헌스태드는 “무엇보다 좋은 점은 클라우드플레어 DNS에 가입하기 위한 요건이 최소한이며 무료라는 것이다. 어떤 도메인을 숨기기에 사용할 수 있는가? 많다. 상위 10만 개 사이트의 21% 이상이 클라우드플레어 도메인 뒤에 위치하고, 따라서 이 방법을 사용할 수 있다. 이 10만 개 사이트 목록에는 보안 관련 사이트, 은행, 스포츠, 고등 교육 스트리밍 서비스, 정부 사이트, 그리고 막대한 수의 포르노 사이트까지 매우 다양한 사이트가 포함된다”라고 덧붙였다. 


공격 벡터로서의 TLS

보안업체 라타코르타(Latacorta)의 조슈아 매덕스는 “TLS가 해킹할 때(When TLS Hacks You)”라는 제목의 데프콘 발표에서 TLS를 공격 벡터로 사용하는 경우를 주의해야 한다고 경고했다. 매덕스는 SSRF(Server-Side Request Forgery)라는 기존 취약점을 활용해 웹 기반 시스템을 공격하기 위한 메커니즘으로 TLS를 사용할 수 있음을 시연했다.

매덕스는 TLS 세션을 어떻게 캐시해 악용할 수 있는지를 설명하면서 “대상을 속여 이상한 도메인 이름을 수락하고 이를 잘못 파싱하도록 유도하는 방법으로 임의의 바이트 등을 집어넣어 SMTP(Simple Mail Transfer Protocol) 명령 등을 몰래 들여보낼 수 있다. Jmaddox.com과 세션을 설정할 때 이 주소가 인터넷 상에 있는 무언가로 해석되든, 자체 시스템으로 해석되든 HTTPS 클라이언트는 그 차이를 알지 못한다”라고 주장했다.

매덕스는 “공격자인 내가 jmaddox.com을 소유하므로 이런 모든 TLS 요소와 DNS 리바인딩이라는 개념을 결합해 새 행을 포함한 임의의 문자가 전송되도록 할 수 있다. 이렇게 하면 공격자는 로컬 서비스와 상호작용할 수 있게 된다. DNS 리바인딩은 도메인 이름 확인을 조작하기 위한 방법이다”라고 설명했다. 

매덕스가 발견한 문제의 해결책 가운데 하나는 서버 간 세션을 제거하는 것으로, 매덕스는 올해 초에 크로미엄(Chromium) 팀에 이 방법을 알렸다. 크로미엄은 이 방법을 받아들이진 않았지만 주소가 로컬 주소인지 여부를 기준으로 서버를 분할하는 해결책을 제안했다. 매덕스는 “성능에 영향을 미치지 않으면서 내가 생각할 수 있는 대부분의 공격 시나리오에 대해 보호 효과가 있을 것”이라고 말했다.

매덕스는 그 외에 “이런 부분에 신경이 쓰이는 사용자라면 파이어폭스를 선택해 세션 식별자를 비활성화할 수 있다”라고 조언했다. 웹 애플리케이션의 경우 프록시를 통해 아웃바운드 요청을 실행하고 인프라에 대해 내린 결정을 재검토하는 것이 좋다.

매덕스는 “대부분의 브라우저에서 TLS를 통해 일반 SSRF를 허용하고 이미지 태그를 통해 CSRF(Cross-Site Request Forgery)를 허용하는 TLS 포이즌(TLS Poison)이라는 도구를 발표했다. TLS 포이즌의 모든 부분을 제대로 설정하면 TLS 세션 중독(session poisoning) 및 DNS 리바인딩 단계가 모두 완전히 기능하게 된다. 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.