[Vulnerability] OpenSSL 취약점(heartbleed) (2014/04/10)
2014년 4월 7일 부터 현재까지 이슈가 되었던 OpenSSL 취약점 정리본
■ Test for SSL heartbeat vulnerability (CVE-2014-0160) 2014/04/07 - Open SSL 취약점
서버의 Heartbeat 기능을 우회하여 서버가 다른 사용자와 통신 중인 암호화 되기 전 민감정보를 공격자에게 전달
설명 :
클라이언트와 서버가 SSL 인증을 통해 세션을 맺은 후 OpenSSL을 사용중인 서버는 Heartbeat 라는 규약을 통해 세션이 끊어지지 않기 위해 서로 상태를 체크
ex)
1. 클라이언트 hello -> 서버
2. 서버 hello -> 클라이언트 : 이때 hello는 클라이언트가 보내온 동일한 문자열로 인증
상세정보 :
hello 문자열을 클라이언트에서 서버로 보내올때 length 부분을 문자열과 사이즈가 동일한지 체킹하는 부분이 없어서 서버 Memory(cache)상에 존재하는 다른 사용자와 통신중인 암호화되기전 민감정보를 무작위로 공격자에게 length 만큼 전달
■ SSL/TLS MITM (CVE-2014-0224) 2014/06/05 중요
- CCS 메세지 적용 전 종종 동작함
- 마스터 길이가 0으로 설정될 때 나타날 수 있음
공격자 Flow :
1) 클라이언트와 서버 사이에서 ClientHello/ServerHello 핸드쉐이크 메세지가 발생하는 새로운 TLS 연결이 맺어질 때까지 기다린다.
2) 정상적인 CCS 패킷을 서버로 전송했을 때 서버에서 특정오류가 발생하여 마스터키가 0으로 생성된다. 세션키는 0 마스터키를 통해 이루어지고, 다음 세션에서도 0 마스터키를 통해 이루어진 세션키를 사용하기 때문에 취약점이 존재한다.
3) 핸드쉐이크가 재협상을한다.
4) 공격자는 0 Master secret key를 통해 민감정보의 복호화가 가능하며, 패킷을 수정하여 전송한다.
■ DTLS recursion DoS (CVE-2014-0221) 2014/06/05 그닥
- DTLS handshake 과정중 클라이언트를 crash
■ DTLS invalid Fragment Code Exec.(CVE-2014-0195) 2014/06/05 위험
- 첫번째 플래그먼트와 두번째 플래그먼트의 length, Fragment Size를 체크하는 부분이 없고, 단순 "Length>Fragment Size" 만 체크함에 따라 유효하지 않는 코드가 실행되는 버그 발생
■ SSL_MODE_RELEASE_BUFFERS DoS (CVE-2014-0198) 2014/04/21 중요
영향 : 비인증 데이타의 DoS 또는 인젝션을 야기함
- SSL_MODE_RELEASE_BUFFERS 를 메모리에 저장해 사용하는 경우 발생(유효연결수당 32K)
- DTLS/SSL2 통신엔 영향 없음
■ Anonymous ECDH DoS (CVE-2014-3470) 2014/05/30 그닥
- 상세정보는 없으며, 익명 cipher 패키지(anonymous cipher suites)를 사용하지 않으면 됨
■ 선행지식 :
CCS(Change Cipher Spec) : Handshake로 협상된 압축, MAC, 암호화 방식 등이 이후부터 적용됨을 상대방에 알림
■ DTLS
DTLS 란 : UDP 기반 TLS, DTLS 1.0은 OpenSSL 에서 구현되었음
- 사용중인 서비스
VPNs, VoIP(Cisco), WebRTC, LDAP over SSL, SNMPv3, 대부분의 video/voice에 사용되는 SSL
DTLS Flow
1. 프로토콜버전, 암호화 방식 등 협상
2. 서버인증 또는 키 교환
3. 클라이언트 인증 또는 키교환
4. 협상된 압축, MAC, 압호화 방식 등 적용 되었음을 서버에 알림(CCS)
4. 협상된 보안 알고리즘에 따른 메세지 교환
DTLS 플래그먼트 속성
– Total message length (Length)
– Fragment Offset (Offset)
– Fragment Length
DTLS 플래그먼트 Process
1. 플래그먼트를 받는다(체크 : Length>Fragment Length)
2. OpenSSL 서버는 Length를 수렴
3. 카피된 fragments를 버퍼에 저장
'IT Security > Tech' 카테고리의 다른 글
[malware] QakBot 뱅킹 악성코드 - 수많은 AD(Active Directory)계정의 강제 잠금 (4) | 2017.06.06 |
---|---|
[스팸봇] 웹사이트 애널리틱스(분석기) 분석 데이타 필터링 및 Spam bot 차단법 (6) | 2017.05.28 |
[랜섬웨어] 워너크라이 랜섬웨어 복구 방법(Wannacry Decrypting tip XP, 7 environment) (9) | 2017.05.19 |
[Vulnerability] EnCase Forensic Imager BoF(Buffer overflow) (May 2017) (0) | 2017.05.14 |
[보안업데이트] 랜섬웨어(wanacrypt) Update(March 2017) MS link (0) | 2017.05.13 |
댓글
이 글 공유하기
다른 글
-
[스팸봇] 웹사이트 애널리틱스(분석기) 분석 데이타 필터링 및 Spam bot 차단법
[스팸봇] 웹사이트 애널리틱스(분석기) 분석 데이타 필터링 및 Spam bot 차단법
2017.05.28 -
[랜섬웨어] 워너크라이 랜섬웨어 복구 방법(Wannacry Decrypting tip XP, 7 environment)
[랜섬웨어] 워너크라이 랜섬웨어 복구 방법(Wannacry Decrypting tip XP, 7 environment)
2017.05.19 -
[Vulnerability] EnCase Forensic Imager BoF(Buffer overflow) (May 2017)
[Vulnerability] EnCase Forensic Imager BoF(Buffer overflow) (May 2017)
2017.05.14 -
[보안업데이트] 랜섬웨어(wanacrypt) Update(March 2017) MS link
[보안업데이트] 랜섬웨어(wanacrypt) Update(March 2017) MS link
2017.05.13