OpenSSL 취약점(HeartBleed) 대응 방안 권고
- ‘2014.4.14(월) / KISA 취약점분석팀 /인터넷침해대응센터
□ 개요
o 통신 구간 암호화를 위해 많이 사용하는 OpenSSL 라이브러리에서 서버에 저장된 중요 메모리 데이터가 노출되는 HeartBleed라고 명명된 심각한 버그가 발견되어 시스템 및 소프트웨어에 대한 신속한 취약점 조치를 권고
□ 취약점 정보
o 시스템 메모리 정보 노출 취약점
- CVE-2014-0160 (2014.04.07.)
o 영향 받는 버전
- OpenSSL 1.0.1 ~ OpenSSL 1.0.1f
- OpenSSL 1.0.2-beta, OpenSSL 1.0.2-beta1
o 영향 받는 시스템 및 소프트웨어
- 취약한 OpenSSL 버전이 탑재된 시스템
※ 서버(웹서버, VPN 서버 등), 네트워크 장비, 모바일 단말 등 다양한 시스템이 해당될 수 있음
- 취약한 OpenSSL 라이브러리가 내장된 소프트웨어 제품
o 영향 받지 않는 소프트웨어
- OpenSSL 0.9.x 대 버전
- OpenSSL 1.0.0 대 버전
- OpenSSL 1.0.1g
□ 취약점 확인 절차
o 점검 대상 선정
- 서버, 네트워크, 보안 장비 등의 시스템에서 OpenSSL 설치 여부 확인
- 웹 서버의 경우 서브 도메인을 운영하는 시스템도 점검 대상에 포함 ※ 서브 도메인 : mail.example.com, blog.example.com 등 - 시스템뿐만 아니라 소프트웨어 제품 자체에 OpenSSL 라이브러리가 내장되어 있을 경우 버전 확인 후 점검 대상에 포함
o 취약점 노출 여부 확인 방법
- 명령어를 통한 OpenSSL 버전 정보 확인 ∙ openssl이 설치된 시스템에서 아래 명령어를 입력하여 취약점에 영향 받는 버전을 사용하는지 확인
root@server:~# openssl version –a
OpenSSL 1.0.1 14 May 2012
| 취약 버전 정보 |
- OpenSSL 하트비트(HeartBeat) 활성화 여부 확인
∙ 취약한 버전의 OpenSSL을 사용하는 시스템 중 HeartBeat 기능 사용 여부 확인 방법 (단, 패치된 최신 버전(1.0.1g)은 활성화 여부를 확인할 필요 없음)
∙ 취약한 버전이 HeartBeat를 사용하지 않은 경우 취약점에 영향 받지 않음
root@server:~# openssl s_client –connect domain.com:443 –tlsextdebug –debug –state | grep -i heartbeat
※ 명령어 실행 방법 : domain.com에 점검 대상 URL 정보로 수정
※ HeartBeat 기능이 활성화되어 있는 경우 heartbeat 문자열이 검색됨
TLS server extension "heartbeat" (id=15), len=1
0000 - 01 .
read from 0x95cb888 [0x95d0e33] (5 bytes => 5 (0x5))
0000 - 16 03 02 0b cc .....
read from 0x95cb888 [0x95d0e38] (3020 bytes => 3020 (0xBCC))
0000 - 0b 00 0b c8 00 0b c5 00-05 9d 30 82 05 99 30 82 ..........0...0.
0010 - 04 81 a0 03 02 01 02 02-08 11 bb ec db 00 00 39 ...............9
0020 - d0 30 0d 06 09 2a 86 48-86 f7 0d 01 01 05 05 00 .0...*.H........
0030 - 30 5e 31 0b 30 09 06 03-55 04 06 13 02 4b 52 31 0^1.0...U....KR1
0040 - 12 30 10 06 03 55 04 0a-0c 09 43 72 6f 73 73 43 .0...U....CrossC
TLS server extension "session ticket" (id=35), len=0
read from 0x9349888 [0x934ee33] (5 bytes => 5 (0x5))
0000 - 16 03 02 13 6f ....o
read from 0x9349888 [0x934ee38] (4975 bytes => 4975 (0x136F))
- OpenSSL에서 사용하는 소스코드 확인
∙ OpenSSL 취약점이 발생된 소스코드를 열람하여 아래와 같이 보안 패치 코드가 추가 되었는지 확인을 통해 취약 여부 판별
∙ 패치된 버전에서는 아래와 같이 사용자 요청 메시지에 대한 길이를 검사하도록 코드가 추가됨
※ 참고 사이트 : http://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=96db902
- KISA(한국인터넷진흥원)를 통한 취약점 여부 확인
※ 자체적인 확인이 어려울 경우 KISA 전문가로부터 점검을 요청
성명 |
연락처 |
메일주소 |
손기종 김유홍 |
02-405-5223 02-405-5488 |
skj@kisa.or.kr uhong@kisa.or.kr |
□ 해결 방안
<시스템 측면 대응 방안>
o OpenSSL 버전을 1.0.1g 버전으로 업데이트
o 서비스 운영환경에 따른 소프트웨어 의존성 문제를 고려하여 업데이트 방법을 선택하고 반드시 먼저 테스트 수행
※ 아래 보안 패치 방법은 CentOS/Fedora 및 Ubuntu의 예제로 각 운영체제 별로 업데이트 방법이 상이할 수 있음
- CentOS/Fedora
∙ 전체 시스템 업데이트(OpenSSL을 포함한 시스탬 내의 소프트웨어 전부 업데이트)
yum update
∙ OpenSSL 업데이트
sudo pacman -Syu
- Ubuntu
∙ 전체 시스템 업데이트 (OpenSSL을 포함한 시스탬 내의 소프트웨어 전부 업데이트)
sudo apt-get update
sudo apt-get dist-upgrade
∙ OpenSSL 업데이트
sudo apt-get install --only-upgrade openssl
sudo apt-get install --only-upgrade libssl1.0.0
o 운영환경의 특수성 때문에 패키지 형태의 업데이트가 어려운 경우, Heartbeat를 사용하지 않도록 컴파일 옵션을 설정하여 재컴파일 가능
- OpenSSL 소스코드를 처음 다운받아 컴파일하는 경우 라이브러리 의존성 문제가 발생하여 추가적인 작업이 필요한 경우도 존재
./config –DOPENSSL_NO_HEARTBEATS
make depend
make
make install
<네트워크 보안 장비 측면 대응 방안>
o 취약점 공격 탐지 및 차단 패턴 적용
- 아래의 Snort 탐지 룰(rule)을 참고하여 침입탐지시스템 및 침입차단 시스템에 패턴 업데이트 적용 권고
※ 차단 패턴 적용은 서비스 및 네트워크 영향도를 고려하여 적용
[OpenSSL HeartBeat 취약점 탐지 Snort Rule]
- SSL 서비스 포트에 대해 공격 요청시 전송되는 |18 03 ??| 탐지 패턴
alert tcp any any < > any
[443,465,563,636,695,898,989,990,992,993,994,995,2083,2087,2096,2484,8443,8883,9091]
(content:"|18 03 00|"; depth: 3; content:"|01|"; distance: 2; within: 1;
content:!"|00|"; within: 1; msg: "SSLv3 Malicious Heartbleed Request V2”;
sid: 1;)
alert tcp any any < > any
[443,465,563,636,695,898,989,990,992,993,994,995,2083,2087,2096,2484,8443,8883,9091]
(content:"|18 03 01|"; depth: 3; content:"|01|"; distance: 2; within: 1;
content:!"|00|"; within: 1; msg: "TLSv1 Malicious Heartbleed Request V2";
sid: 2;)
alert tcp any any < > any
[443,465,563,636,695,898,989,990,992,993,994,995,2083,2087,2096,2484,8443,8883,9091]
(content:"|18 03 02|"; depth: 3; content:"|01|"; distance: 2; within: 1;
content:!"|00|"; within: 1; msg: "TLSv1.1 Malicious Heartbleed Request V2";
sid: 3;)
-최근 글 목록 →[클릭]
'생활정보' 카테고리의 다른 글
[제9회 UXDP] NAVER 디자인&마케팅 부문 신입 모집 안내 (0) | 2014.04.21 |
---|---|
[넥센히어로즈 채용공고] 전략 & 국제팀 인턴사원 모집 ~2014.4.28까지 (0) | 2014.04.16 |
JTBC 달콤한 정보쇼 꿀단지 2회 공식 풀영상 - 유방암 자가진단법,미세먼지 제거,여배우 봄스타일링 따라잡기, 돼지고기 요리법, DIY 직접 만드는 가구 (0) | 2014.04.11 |
JTBC 달콤한 정보쇼 꿀단지 1회 공식 풀영상 다시보기 - 남자 여유증, 봄나들이, 텃밭, 재테크, 창업, 미세먼지 해결사 마늘 해독 (0) | 2014.04.04 |
'합창' 일본군 '위안부'피해자 공모전 - 2014년 공모전 소개 - 공모기간 2014년 6월 30일 (0) | 2014.04.01 |