OpenSSL 취약점(HeartBleed)_FAQ

IT 정보|2014. 7. 25. 12:59

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 라이브러리에 포함이 되었으며 클라이언트와 서버 간의 연결 상태를 체크하는 확장 모듈입니다.

댓글()