OpenSSL 취약점(HeartBleed)_FAQ
Q1. HeartBleed 취약점에 대응하기 위해 담당자 측면에서 무엇을 어떻게 해야 하나요?
○ HeartBleed 취약점 대응 방법
1. OpenSSL이 설치된 시스템 조사
- openssl 명령어를 통해 사용 유무 확인
- SSL 기본 서비스 포트(443) 사용 유무 확인(포트를 변경하여 사용할 수 있음)
2. OpenSSL 버전 정보 확인(네트워크, 보안장비는 제조사를 통해 문의)
3. 취약한 버전을 사용하는 경우 보안 패치 적용
4. 보안 패치 후 서비스 재시작
5. 시스템의 중요도를 판단하여 SSL 인증서 업데이트 검토
Q2. 윈도우 서버를 사용하고 있습니다. OpenSSL 취약점에 영향을 받나요?
○ 윈도우 서버인 경우에도 HeartBleed 취약점에 영향받는 OpenSSL 버전을 사용하는 경우에는 취약할 수 있습니다.
(Microsoft에서 제공하는 IIS를 사용하는 경우 Secure Channel 이라는 자체 SSL을 사용하고 있어 영향받지 않음)
○ 윈도우 환경 OpenSSL 사용 여부 확인 및 보안 패치 방법
- OpenSSL 사용 및 버전 정보 확인
1. cmd 창에서 openssl version 입력
(명령어 위치는 서버 환경에 따라 상이할 수 있음)
2. "openssl version" 명령어로 확인이 되지 않을 경우
* 윈도우 익스플로러에서 대상 소프트웨어가 설치된 디렉터리로 이동한 후 검색기능을 이용하여 OpenSSL 라이브러리 파일 검색
(파일명 : ssleay32.dll, libeay32.dll, openssl.exe)
* 파일이 검색되면 우클릭 후 속성 보기에서 버전 정보를 확인
- OpenSSL 보안 패치 방법
1. 취약점에 영향받는 버전을 사용할 경우 아래 홈페이지에 접속하여 윈도우용 OpenSSL 1.0.1g 버전을 다운로드하여 업데이트를 수행하고 라이브러리를 최신버전으로 변경
(http://slproweb.com/products/Win32OpenSSL.html)
2. 파일이 최신버전으로 변경이 되었으면 서비스 재시작
※ tomcat 참고) : wiki.apache.org/tomcat/Security/Heartbleed
Q3. 서버에서 OpenSSL 버전을 확인하려면 어떻게 해야 하나요?
○ 터미널에 접속하셔서 아래의 명령어를 입력하여 버전을 확인할 수 있습니다.
# openssl version -a
# rpm -q openssl
# dpkg -l | openssl
○ OS별로 OpenSSL 버전 정보를 확인하는 방법이 상이할 수 있으니 해당되는 명령어를 통해 확인하시기 바랍니다.
Q4. 유닉스를 사용하고 있습니다. OpenSSL 명령어가 없다는 메시지가 표시되는데 어떻게 해야 하나요?
○ which openssl 또는 find 명령어를 입력하여 openssl이 설치되어 있는지 확인하시고 검색이 되면 openssl 파일의 절대경로를 입력 후 명령어를 실행하시기 바랍니다.
Ex) # /usr/local/bin/openssl version
# find /usr -name openssl
(find 문은 서버 파일 수에 따라 부하를 줄 수 있으니 검토 후 실행)
○ 솔라리스는 OS 버전에 따라 OpenSSL 명령어 위치가 상이하니 아래 사항을 참고하시기 바랍니다.
- 솔라리스 10 : /usr/sfw/bin/openssl version -a
- 솔라리스 11 : /usr/bin/openssl version -a
Q5. 보안 패치를 적용했습니다. 패치가 정상적으로 되었는지 어떻게 확인할 수 있나요?
○ 보안 패치 적용 후 버전 정보가 1.0.1g 버전이거나 아래와 같이 OS제조사 측 패치 버전과 일치하는지를 통해 확인하실 수 있습니다.
○ yum 또는 apt-get 을 통한 업데이트 시 보안 패치 결과
- CentOS/Redhat 패치 버전 : 1.0.1e-16.el6_5.7 또는 1.0.1g
- Debian 패치 버전 : 1.0.1e-2+deb7u5 또는 1.0.1g
- ubuntu 패치 버전 : 1.0.1-4ubuntu5.12 또는 1.0.1g
Q6. 보안 업데이트를 적용했지만 아직 취약한 것으로 확인됩니다. 어떻게 해야 하나요?
○ 보안 패치를 적용했지만 취약하다고 결과가 나올 경우 서비스 재시작을 추가적으로 해주시고 다시 확인해 보시기 바랍니다.
Q7. 네트워크 및 보안장비에선 HeartBleed 취약점 확인을 어떻게 할 수 있나요?
○ 명령어를 통해 OpenSSL 버전 정보 확인이 어려울 경우 제조사에 문의하시기 바랍니다.
○ 또는 제조사 홈페이지에 HeartBleed 취약점에 영향받는 제품명이 게시되었을 경우 확인하실 수 있습니다.
Q8. 보안 패치를 적용하였는데 SSL 비밀키도 변경해야 하나요?
○ 서비스 또는 시스템 환경에 따라 유출될 수 있는 정보가 다르지만 HeartBleed 취약점으로 인해 비밀키가 유출될 수 있으므로 기존에 사용하고 있는 openssl 버전이 취약한 버전을 사용하고 있는 경우였다면 시스템 중요도를 고려하여 비밀키 변경을 권고드립니다.
Q9. OpenSSL이 외부에서 접근이 안되는 내부망에 설치되어 있을 경우 조치 대상에 포함하여야 하나요?
○ 공격자가 내부에 위치할 경우 취약점에 노출될 수 있으니 보안 패치 적용을 권고드립니다.
Q10. 버전이 다른 두개의 OpenSSL이 서버에 깔려 있을 경우 실제 사용되는 버전이 무엇인지 확인할 수 있는 방법이 있나요?
○ 서버 구축 담당자가 OpenSSL 을 서버에 연동시킬 때 두개의 OpenSSL 중 어떤 버전을 포함시켰는지 확인해 주시기 바랍니다.
Q11. 취약한 OpenSSL 버전을 사용하면 무조건 중요 정보가 노출될 수 있나요?
○ 서비스 또는 시스템 종류에 따라 노출되는 정보가 상이할 수 있습니다.
○ HeartBleed를 통해 노출 가능한 정보로는 아이디/패스워드, 이메일 정보 등의 개인정보, SSL 비밀키, 세션키, 쿠키 값 등의 인증 정보입니다.
Q12. KISA 대응권고에 있는 Snort 탐지 룰에 대해 설명해주실 수 있나요?
○ Snort 탐지 룰은 HeartBleed 취약점에서 사용하고 있는 HeartBeat 라는 확장 기능에 대해 탐지하는 룰입니다.
○ 스노트 탐지 룰 설명
alert tcp any any < > any
[443,465,563,636,695,898,989,990,992,993,994,995,2083,2087,2096,2484,8443,8883,9091] -> SSL 포트정보
- 기관에 따라 포트가 한 개일 수도 있고 여러 포트를 이용할 수 있으니 서비스하는 포트를 등록
(content:"|18 03 02|"; depth: 3; content:"|01|"; distance: 2; within: 1; content:!"|00|"; within: 1;
msg: "SSLv3 Malicious Heartbleed Request V2";
sid: 1;) -> HeartBeat 요청 메시지 탐지 정책
- HeartBeat 요청 헤더에 포함된 TYPE(18) 버전정보(03 00, 03 01, 03 02)가 대상 시스템에 수신될 경우 탐지 및 차단
Q13. SSL과 OpenSSL의 차이점은 무엇인가요?
○ SSL은 프로토콜 중 하나로 통신 구간 암호화에 사용되는 프로토콜입니다. OpenSSL은 SSL프로토콜을 구현한 라이브러리입니다.
Q14. 소프트웨어에 OpenSSL이 설치되어 있는데 버전 0.9x 및 1.0.0 버전은 왜 취약점에 영향받지 않나요?
○ OpenSSL 0.9.X 및 1.0.0 버전은 HeartBeat 기능이 부재하기 때문에 취약점에 영향받지 않습니다.
Q15. HeartBeat는 OpenSSL에 언제 탑재되었나요?
○ 2012년 2월에 OpenSSL 라이브러리에 포함이 되었으며 클라이언트와 서버 간의 연결 상태를 체크하는 확장 모듈입니다.
'IT 정보' 카테고리의 다른 글
데이터 분석_게이지 차트 표시 (0) | 2020.03.20 |
---|---|
데이터 분석_움직이는 차트 표시 (0) | 2020.03.20 |
OpenSSL 취약점(HeartBleed)_대응 방안 권고 (0) | 2014.07.24 |
소프트웨어 테스터를 위한 구글 벤치마킹_문제풀이 (0) | 2014.07.23 |
MS Internet Explorer 원격코드 실행 신규 취약점 (0) | 2014.07.23 |