OpenSSL 다중취약점 보안업데이트
2015.04.02 02:06
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
□ 개요
o 취약한 OpenSSL 버전을 사용하는 서버와 클라이언트 사이에서 공격자가
암호화된 데이터를 복호화할 수 있는 취약점, 서비스 거부 취약점 등 14개의
취약점을 보완한 보안업데이트를 발표
□ 설명
o NULL 포인터 역참조에 의한 서비스 거부 공격에 악용될 수 있는 취약점
(CVE-2015-0291)
o OpenSSL RSA 암호화 키를 512비트로 다운그레이드 시키는 취약점
(FREAK, CVE-2015-0204)
o 멀티 블록 포인터 손상에 의한 서비스 거부 공격에 악용될 수 있는 취약점
(CVE-2015-0290)
o DTLSv1_listen 함수에서 잘못된 메모리 접근으로 인해 서비스 거부 공격에
악용될 수 있는 취약점(CVE-2015-0207)
o ASN1_TYPE_cmp 함수에서 잘못된 메모리 접근으로 인해 서비스 거부 공격에
악용될 수 있는 취약점(CVE-2015-0286)
o PSS 파라미터에서 잘못된 메모리 접근으로 인해 서비스 거부 공격에 악용될
수 있는 취약점(CVE-2015-0208)
o 메모리 재사용 시 발생할 수 있는 메모리 손상 취약점(CVE-2015-0287)
o PKCS#7 NULL 포인터 역참조에 의한 데이터의 조작이 가능한 취약점
(CVE-2015-0289)
o base64로 인코딩된 데이터 처리 중 발생하는 메모리 충돌 취약점
(CVE-2015-0292)
o SSLv2 서버를 대상으로 한 서비스 거부 취약점(CVE-2015-0293)
o ClientKeyExchange 전송 중 서비스 거부 공격에 악용될 수 있는 취약점
(CVE-2015-1787)
o 난수 생성을 위해 핸드쉐이크 메시지 처리 중 서비스 거부 공격이 발생할
수 있는 취약점(CVE-2015-0285)
o d2i_ECPrivateKey 함수 에러로 인해 발생하는 use-after-free 취약점
(CVE-2015-0209)
문화체육관광 사이버안전센터
o X509_to_X509_REQ 함수 NULL 포인터 역참조에 의한 서비스 거부 공격에
악용될 수 있는 취약점(CVE-2015-0288)
□ 해당 시스템
o 영향 받는 제품 및 버전
- OpenSSL 0.9.8 대 버전
- OpenSSL 1.0.0 대 버전
- OpenSSL 1.0.1 대 버전
- OpenSSL 1.0.2 대 버전
□ 해결 방안
o 해당 취약점에 영향 받는 버전의 사용자는 아래 버전으로 업데이트[2]
- OpenSSL 0.9.8 사용자 : 0.9.8zf로 업데이트
- OpenSSL 1.0.0 사용자 : 1.0.0r로 업데이트
- OpenSSL 1.0.1 사용자 : 1.0.1m로 업데이트
- OpenSSL 1.0.2 사용자 : 1.0.2a로 업데이트
□ 용어 정리
o PSS : RSA 암호화를 기반으로 동작 전자서명 알고리즘
o PKCS#7 : RSA사가 제시한 공개 키 암호 표준의 하나로 암호학적 메시지
구문 표준
참고사이트
https://www.openssl.org/news/secadv_20150319.txt
https://www.openssl.org
1. 다운로드
https://www.openssl.org/source/openssl-0.9.8zf.tar.gz
https://www.openssl.org/source/openssl-1.0.0r.tar.gz
https://www.openssl.org/source/openssl-1.0.1m.tar.gz
http://www.openssl.org/source/openssl-1.0.2a.tar.gz
또는 그외 업데이트를 원하는 버전을 선택하여 다운로드
https://www.openssl.org/source/
2. 기존 바이너리 백업
### 기존 위치 및 버전 확인
# which openssl
/bin/openssl
# openssl version
OpenSSL 1.0.1k-fips 26 Jan 2017
### 백업
# cp /bin/openssl /bin/openssl-1.0.1k
3. 서버 업로드 및 설치
# cd /install/openssl
# wget http://www.openssl.org/source/openssl-1.0.2a.tar.gz
# tar zxf openssl-1.0.2a.tar.gz
# cd openssl-1.0.2a
# ./config
# make
# make test
# make install
4. 기존 바이너리 대체
# rm /bin/openssl
# ln -s /usr/local/ssl/bin/openssl /bin/openssl
# openssl version
OpenSSL 1.0.2a 19 Mar 2015
==================================
for 1.0.2 -> 1.1.1 upgrade
1. 신규 설치
./config --prefix=/usr/local/openssl-1.1.1t --openssldir=/usr/local/openssl-1.1.1t shared zlib
make
make install
/usr/local/openssl-1.1.1t/bin/openssl version
2. library 복사
cp /usr/local/openssl-1.1.1t/lib/libssl.so.1.1 /usr/lib64
cp /usr/local/openssl-1.1.1t/lib/libcrypto.so.1.1 /usr/lib64
3. 현재 link 확인
[root@kribb bin]# which openssl
/usr/bin/openssl
[root@kribb bin]# ll /usr/bin/openssl
lrwxrwxrwx. 1 root root 37 2022-05-23 10:06 /usr/bin/openssl -> /usr/local/openssl-1.0.2u/bin/openssl
4.link 변경
# rm /usr/bin/openssl;ln -s /usr/local/openssl-1.1.1t/bin/openssl /usr/bin/openssl
or
# mv /bin/openssl /bin/openssl-1.0.2k
# ln -s /usr/local/openssl-1.1.1t/bin/openssl /bin/openssl
5. 확인
# openssl version
for 1.0.2 -> 1.1.1 upgrade
1. 신규 설치
./config --prefix=/usr/local/openssl-1.1.1t --openssldir=/usr/local/openssl-1.1.1t shared zlib
make
make install
/usr/local/openssl-1.1.1t/bin/openssl version
2. library 복사
cp /usr/local/openssl-1.1.1t/lib/libssl.so.1.1 /usr/lib64
cp /usr/local/openssl-1.1.1t/lib/libcrypto.so.1.1 /usr/lib64
3. 현재 link 확인
[root@kribb bin]# which openssl
/usr/bin/openssl
[root@kribb bin]# ll /usr/bin/openssl
lrwxrwxrwx. 1 root root 37 2022-05-23 10:06 /usr/bin/openssl -> /usr/local/openssl-1.0.2u/bin/openssl
4.link 변경
# rm /usr/bin/openssl;ln -s /usr/local/openssl-1.1.1t/bin/openssl /usr/bin/openssl
or
# mv /bin/openssl /bin/openssl-1.0.2k
# ln -s /usr/local/openssl-1.1.1t/bin/openssl /bin/openssl
5. 확인
# openssl version