Wins blog

글로벌 정보보안 파트너! Global Security  No.1 윈스는 국가대표 정보보안 기업에서 글로벌 강소기업으로 도약합니다.

보안 정보

앞 내용 보기 다음 내용 보기
취약점 정보[EFAIL Attack] PGP, S/MIME 복호화 취약점
작성일 2018-05-15 조회 194

 

EFAIL이라 명명된, PGP암호화 메시지를 복호화할 수 있는 취약점이 발견되었습니다. 취약점은 일부 이메일 클라이언트가 PGP와 S/MIME로 암호화된 메시지를 다루는 방식에 의해 발생합니다. 응용프로그램들이 이 메시지들의 HTML 컨텐츠를 다루는 방식에서, 공격자가 암호화된 메시지를 평문으로 볼 수 있는 가능성이 존재합니다.

 

이 취약점을 발견한 연구팀에서는 EFAIL을 방지하기 위한 유일한 방법은 현재로서는 이메일 클라이언트에서 PGP 와 S/MIME 복호화를 중단하는 것이며 완전한 패치는 암호화 표준 자체를 업데이트 할 필요가 있다고 말했습니다.

 

HTML 컨텐츠의 미리보기를 비활성화 하는 것도 도움이 되며, 메시지를 평문으로 전환하여 오프라인 텍스트 에디터에서 읽도록 하는것이 해당 공격을 막을 수 있는 확실한 방법입니다.

 

 

취약점 원인

암호화 된 이메일 클라이언트가 외부 URL의 이미지 로드, 스타일 로드와 같은 HTML 이메일 및 외부 리소스를 처리하는 방식에서 취약점이 발생합니다.

 

 

취약점 공격 방법

EFAIL 공격에는 두 가지 방법이 있습니다. 먼저 살펴 볼 사항은 Direct Exfiltration 공격으로 이는 Apple Mail, iOS Mail 및 Mozila Thunderbird의 취약점을 악용하여 암호화된 전자 메일의 일반 텍스트를 직접 추출합니다. 이 취약점의 경우, 해당 전자 메일 클라이언트에서 취약점을 해결 할 수 있습니다. 두 번째는 OpenPGP 및 S/MIME의 취약점을 악용하여 텍스트를 추출하는 CBC/CFB 가젯 공격입니다. 이제 각 공격이 어떻게 진행되는지 살펴보도록 하겠습니다.

 

1. Direct Exfiltration 공격

 1) 공격자가 암호화된 전자 메일에 접근 해야 함

- 네트워크 트래픽을 도청하거나 전자 메일 계정, 전자 메일 서버, 백업 시스템 또는 클라이언트 컴퓨터를 손상시키는 등의 방법 사용

 

2) 공격자는 암호화 된 전자 메일을 특정 방식으로 변경함(multi part 전자 메일로)

- 첫 번째 부분, HTML 이미지 태그를 포함하는 본문 부분으로 src 속성은 따옴표로 시작하지만 닫는 따옴표가 없음

- 두 번째 부분, PGP 또는 S/MIME 암호문 포함

- 세 번째 부분, 첫 번째 본문 부분의 src 속성을 닫는 HTML 본문 부분

 

3) 변경된 암호화 된 전자 메일을 공격 대상자에게 보냄

 

4) 공격 대상자의 전자 메일 클라이언트는 전자 메일을 암호 해독함

- 공격 대상자의 전자 메일 클라이언트에서, 암호화된 두 번째 부분(PGP 또는 S/MIME암호문)을 해독함

- 아래 그림과 같이 하나의 HTML 이메일로 결합

 

5) 외부 컨텐츠를 로드하여 일반 텍스트를 공격자에게 넘김

- 아래 그림과 같이 해당 URL에서 이미지를 요청

- URL의 경로에는 암호화 된 전자 메일의 일반 텍스트가 포함되어 있으므로 공격 대상자의 전자 메일 클라이언트는 일반 텍스트를 공격자에게 보내게 됨

 

 

2. CBC/CFB Gadget 공격

CBC 작동 모드의 특성 때문에 공격자가 일반 텍스트를 알고 있으면 일반 텍스트 블록을 정확하게 수정 할 수 있습니다. S/MIME 암호화 전자 메일은 일반적으로 "Content-type:multipart/signed"로 시작하므로 공격자는 (a)와 같이 적어도 하나의 전체 텍스트 블록을 알고 있습니다. 다음으로, (b)와 같이 내용이 모두 0인 표준 평문 블록을 만들 수 있습니다. 여기에서 블록 쌍 X와 C0를 CBC 가젯이라 부릅니다.

 

(c) 단계에서 CBC 가젯을 반복적으로 추가하여 암호화된 일반 텍스트에 이미지 태그를 삽입합니다. 이렇게 하면 사용자가 공격자 전자 메일을 열 때, 자신의 일반 텍스트를 추출하는 단일 암호화 본문 부분이 만들어집니다.

 

 

취약점 대응 방안

1. 이메일 클라이언트에서 암호 복호화 하지 말 것

이메일 클라이언트 외부의 별도 응용 프로그램에서 S/MIME 또는 PGP 전자 메일 암호를 복호화 해야 합니다. 먼저 이메일 클라이언트에서 S/MIME 및 PGP 개인 키를 제거한 다음, 암호문을 복사하여 암호 복호화를 수행하는 별도의 응용 프로그램에 붙여 넣어 복호화를 진행합니다.

 

2. HTML Rendering 비활성화

EFAIL 공격은 주로 HTML 이미지, 스타일 등의 형태로 활성 컨텐츠를 악용합니다. 그러므로 HTML 이메일의 표시를 비활성화 시키면 공격을 방어 할 수 있습니다.

 

3. 패치 적용

EFAIL 과 관련된 취약점을 제공하는 벤더사에서 패치 제공 시, 그 즉시 적용합니다.

ex) Thunderbird with Enigmail, Apple Mail with GPGTools, Outlook with Gpg4win

 

4. OpenPGP 및 S/MIME 표준 업데이트

EFAIL 공격은 MIME, S/MIME 및 OpenPGP 표준의 결함 및 정의되지 않은 동작을 악용하는 것이므로, 이와 관련된 내용을 업데이트 해야 합니다. 이 해결 방안이 완전한 패치이지만, 이 부분은 시간이 오래 걸릴 수 있는 부분입니다.

 

참고 자료

https://efail.de/
https://efail.de/efail-attack-paper.pdf

첨부파일 첨부파일이 없습니다.
태그 EFAIL ATTACK