| OpenSSL 이메일 주소 버퍼 오버플로 취약점 2건 발견, 사용자 주의 | 2022.11.03 |
영향 받는 버전은 OpenSSL 3.0.0~3.0.6 버전...OpenSSL 홈페이지에서 업데이트 가능
업데이트 이전에는 TLS 클라이언트 인증 비활성화로 빠른 임시 조치 필요 [보안뉴스 김영명 기자] 오픈SSL(OpenSSL)에서 특수하게 제작된 이메일 주소를 통해 X.509 인증서 확인 과정 중 트리거될 수 있는 버퍼 오버런(buffer overrun) 취약점 2건이 발견됐다. ![]() ▲OpenSSL 로고[이미지=OpenSSL] OpenSSL은 웹브라우저와 웹 서버 간 데이터를 안전하게 주고받기 위한 네트워크 프로토콜을 오픈소스로 구현한 보안 라이브러리로 보안이 필요한 대부분의 통신에서 널리 사용되고 있다. 이스트시큐리티 시큐리티대응센터(이하 ESRC)는 오픈SSL에서 이번에 발견된 △CVE-2022-3786 △CVE-2022-3602 등 2개의 취약점은 현재 X.509 인증서에서 이메일 주소 이름 제약을 처리하는데 사용되는 Punycode 해독 기능의 일부에 존재하며, 이는 OpenSSL 3.0.0에서 도입됐다고 밝혔다. OpenSSL팀은 지난달 말 OpenSSL에 심각한 제로데이 취약점이 발견됐으며 11월 1일 패치를 공개하겠다고 사전에 공지했다. 하지만 공개된 내용에는 취약점의 심각도가 ‘심각(Critical)’에서 ‘높음(High)’으로 하향 조정됐다. 이는 OpenSSL 내부 보안정책에서 일반적인 상황에서 원격코드 실행이 되는 경우를 ‘심각(Critical)’으로 분류하는데, 이번 취약점의 경우 제한된 일부 상황에서만 가능하며 최신 플랫폼에서는 오버플로 관련 보호조치가 존재해 심각도를 ‘높음(High)’으로 하향 조정했다고 밝혔다. CVE-2022-3602 취약점은 ossl_punycode_decode 함수가 퓨니코드(Punycode)를 디코딩할 때 4바이트가 오버플로 되며 원격코드 실행이 가능하도록 허용한다. 해당 기능은 클라이언트 혹은 서버가 x.509 인증서의 유효성을 검사하도록 구성될 때 호출된다. 공격자는 이메일 주소 필드에 도메인에 퓨니코드가 포함된 특수하게 조작된 인증서를 통해 해당 취약점을 악용할 수 있다. 퓨니코드(Punycode)란 DNS 이름을 이해하고 관리할 수 있도록 하기 위해 모든 IDN(Integrated Digital Network)이 인코딩되는 ASCII 문자의 시퀀스다. 퓨니코드의 목적은 비 ASCII 문자를 포함한 웹 주소를 분석할 수 있도록 하는 것으로, DNS는 아스키 문자만 취급할 수 있는데, 이러한 한계를 극복하기 위해 만들어졌다. IDN은 비 ASCII 문자로 구성된 최소 1개 이상의 라벨을 지닌 FQDN(Fully Qualified Domain Name)으로, 영어 중심의 도메인 이름을 보완해 비 영어권 국가의 자국어를 인터넷 주소 체계에 도입한 것을 의미한다. 공격자가 해당 취약점을 악용하기 위해서는 두 가지 과정을 거쳐야 한다. 첫 번째는 악성 Punycode 문자열로 ‘nameConstraints’ 필드를 포함하는 CA(인증기관) 인증서 또는 중개 인증서를 만들어야 한다. 이때 Punycode 문자열은 ‘xn--’를 제외하고 최소 512바이트를 포함해야 한다. 두 번째는 SmtpUTF8Mailbox 문자열을 지정하는 SubjectAlternateName(SAN) otherName 필드가 포함된 leaf 인증서를 만들어야 한다. CVE-2022-3786 취약점은 x.509 인증서 확인 및 이름 제약 검사에서 buffer overrun이 트리거될 수 있다. 이 취약점은 인증서 체인 서명 확인 후 발생하며, CA가 악의적인 인증서에 서명했거나 신뢰할 수 있는 발급자에 대한 경로를 구성하지 못했더라도 응용 프로그램이 인증서를 지속적으로 확인해야 한다. 공격자는 인증서의 이메일 주소를 조작해 스택에 있는 ‘.’ 문자(10진수 46)를 포함하는 임의의 바이트 수를 오버플로할 수 있으며, 이로 인해 서비스 거부가 발생할 수 있다. 이번 취약점은 신뢰할 수 없는 출처에서 받은 X.509 인증서를 확인하는 모든 OpenSSL 3.0 응용 프로그램은 취약한 것으로 간주돼야 한다. 여기에는 TLS 클라이언트 및 TLS 클라이언트 인증을 사용하도록 구성된 TLS 서버가 포함된다. 이번 취약점으로 영향을 받는 오픈SSL 버전은 OpenSSL 3.0.0~3.0.6 버전이다. 다만 OpenSSL 1.0.2와 OpenSSL 1.1.1 및 기타 이전 버전은 영향을 받지 않는다. 이스트시큐리티는 이번 취약점에 대해 OpenSSL 3.0.7 버전으로 업데이트를 하면 해결할 수 있다고 밝히며. OpenSSL 업데이트 주소를 안내했다. 또한, 업데이트 이전에 TSL 서버를 운영하는 사용자는 사용자 스스로가 홈페이지 업데이트를 통한 수정사항을 적용할 때까지 TLS 클라이언트 인증 비활성화를 통해 임시조치할 수 있다. [김영명 기자(boan@boannews.com)] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|