상세 컨텐츠

본문 제목

암호화 툴에 존재하는 GnuPG 결점, 공격자들이 모든 서명을 스푸핑하도록 허용해

국내외 보안동향

by 알약(Alyac) 2018. 6. 19. 13:31

본문

GnuPG Flaw in Encryption Tools Lets Attackers Spoof Anyone's Signature


한 보안 연구원이 세계에서 가장 널리 사용 되는 이메일 암호화 클라이언트에서 심각한 취약점을 발견했습니다. 이는 OpenPGP 표준을 사용하고, 메시지 암호화 및 디지털 서명을 위해 GnuPG를 사용합니다.


이는 연구원들이 PGP 및 S/Mime 암호화 툴에 존재하는 eFail이라는 결점을 발견한 지 약 1달 후 공개 되었습니다. 공격자들이 이를 악용할 경우 암호화 된 이메일을 순수 텍스트 형태로 사용할 수 있으며, Thunderbird, Apple Mail, Outlook을 포함한 다양한 이메일 프로그램에 영향을 미칩니다.


소프트웨어 개발자인 Marcus Brinkmann은 공격자들이 개인 또는 공개 키가 없이도, 누군가의 공개 키나 키 ID를 이용해 디지털 서명을 위조할 수 있는 입력 검사 취약점(input sanitization)을 발견해 SigSpoof라 명명했습니다.


이 취약점은 CVE-2018-12020으로 등록 되었으며, GnuPG, Enigmail, GPGTools, python-gnupg을 포함한 인기있는 이메일 응용 프로그램에 영향을 미칩니다. 이는 현재 최신 소프트웨어 업데이트를 통해 수정이 가능합니다.


연구원에 따르면, OpenPGP 프로토콜은 서명 되었거나 암호화 된 메시지에 오리지널 입력 파일의 “filename” 파라미터를 포함하도록 허용합니다. 이들을 구분하기 위해 미리 정의 된 키워드를 추가함으로써 싱글 데이터 파이프 내에서 GnuPG 상태 메시지와 결합합니다.


GnuPG는 금일 발행 된 권고문에서 “프로그램들은 gpg에서 서명 및 다른 파라미터의 유효성에 대한 정보를 얻기 위해 이 상태 메시지들을 파싱합니다.”라고 밝혔습니다.


수신자 측에서 이 메시지를 복호화 하는 동안, 클라이언트 프로그램은 이 키워드를 사용해 정보를 분할하고 사용자가 gpg.conf파일에서 verbose 옵션을 활성화 한 경우 유효한 서명이 있는 메시지를 표시합니다.


하지만, 이 연구원은 영향을 받는 툴들이 포함 된 파일명(최대 255자)을 적절하게 검사하지 않아 공격자들이 “줄바꿈 또는 다른 제어 문자를 포함할 수 있도록” 허용한다는 사실을 발견했습니다.


그는 서명 확인 및 메시지 복호화 결과를 스푸핑하기 위해 이 취약점을 악용해 임의의 (가짜) GnuPG 상태 메시지를 프로그램 파서에 주입하는 방법을 시연했습니다.


“이 공격은 매우 강력하며, 메시지는 암호화 될 필요조차 없습니다. 단일 문자 데이터(순수 텍스트) 패킷은 완벽히 유효한 OpenPGP 메시지이며, 암호화가 되어 있지 않음에도 이미 공격에 사용 된 ‘암호화 된 파일의 이름’을 포함하고 있습니다.”


또한 연구원은 이 취약점이 암호화 된 이메일을 훨씬 뛰어넘는 “핵심 인프라의 상당 부분”에 영향을 줄 가능성이 있다고 밝혔습니다. “GnuPG는 이메일 보안 뿐만 아니라 배포본의 백업, 소프트웨어 업데이트, Git과 같은 버전 제어 시스템의 소스코드 등을 안전하게 보호하는데도 사용되기 때문입니다.”


또한, 연구원은 Enigmail과 GPGTools에서 서명이 스푸핑 되는 방법, Enigmail에서 서명 및 암호화가 스푸핑 되는 방법, 명령어 라인에서 서명이 스푸핑 되는 방법을 보여주는 PoC 3개를 공개했습니다.


인기있는 이메일 클라이언트 3곳의 운영자들이 이 문제를 해결했습니다. 따라서 사용자들은 소프트웨어를 최신 버전으로 업그레이드 하는 것이 좋습니다.


패치방법 


GnuPG 2.2.8 또는 GnuPG 1.4.23으로 업그레이드

Enigmail 2.0.7 으로 업그레이드

GPGTools 2018.3 으로 업그레이드


개발자일 경우, GPG의 모든 호출에 --no-verbose”를 추가하고 python-gnupg 0.4.3으로 업그레이드 할 것을 권고합니다.


암호화 엔진으로 GPGME를 사용하는 프로그램들은 안전합니다. 또한, --status-fd 컴파일 플래그 세트와 –verbose 플래그가 설정 되지 않은 GnuPG는 안전합니다.


출처 :

https://thehackernews.com/2018/06/gnupg-encryption-signature.html

https://neopg.io/blog/gpg-signature-spoof/#proof-of-concept-ii-signature-and-encryption-spoof-enigmail



관련글 더보기

댓글 영역