앵하니의 더 나은 보안

[CVE-2009-3555] 금취평 취약한 https 재협상 허용 관련 본문

보안 기술/WEB

[CVE-2009-3555] 금취평 취약한 https 재협상 허용 관련

앵한 2022. 7. 18. 22:49

전자금융기반시설 보안 취약점 평가 항목 중 '취약한 https 재협상 허용' 이라는 항목이 존재한다.

https(SSL/TLS) 재협상이란 기존 보안 세션 내에서 다시 핸드쉐이크를 진행함으로써 새로운 세션을 맺는 것을 뜻한다.

진단 시 기준은 insecure client-initiated renegotiation(클라이언트의 안전하지않은 재협상)을 시도했을 때

재협상이 가능할 경우 취약, 안전하지 않은 재협상을 지원을 하지않아 재협상이 불가능할 경우 양호로 판단한다.

 

취약한 https 재협상 허용 항목을 접했을 때 '그래서 이게 왜, 이게 취약하면 뭔데' 라는 생각에 한번 찾아본 것을 정리한다.

 

1. CVE-2009-3555 = 재협상 중간자 공격

클라이언트의 안전하지 않은 재협상이 이루어질 경우, 서버는 TLS 재협상 후 수신된 데이터가

재협상 전과 동일한 클라이언트에서 전송된다고 가정하기 때문에 중간자 공격에 취약하다.

그래서 클라이언트에서 TLS 재협상 시도를 한다면  ARP 스푸핑 또는 DNS 포이즈닝 같은 중간자 공격 시

해당 재협상 시도를 가로채고 공격자는 인증된 클라이언트로 가장할 수 있다.

 

내가 이해한 바로는 아래와 같은 과정으로 해당 취약점을 활용할 수 있다.

  1. 해커가 victim에게 ARP 스푸핑
  2. victim은 해커의 PC를 통해 전자 금융 서비스 관련 패킷 전송
  3. 해커의 PC는 victim으로부터 패킷을 전달 받지만 HTTPS 통신으로 암호화된 패킷을 해석하지 못한채 전달받은 패킷을 실제 전자 금융 서비스의 서버로 전송하는 forward 기능만 수행
  4. 서비스 이용 도중 insecure client-initiated renegotiation 발생 시 해커의 PC에서 가로채 HTTPS 통신의 세션을 다시 성립시킴으로써 해커의 PC에서 복호화된 데이터를 확인 가능하고 이에 따라 victim의 민감 정보 확인 가능

 

2. 해당 취약점의 진단

해당 취약점은 openssl을 통해 테스트해 볼 수 있는데, 
클라이언트가 시작한 안전하지 않은 재협상(insecure client-initiated renegotiation)을 테스트 해보면 된다.

하지만 이 안전하지 않은 재협상은 openssl의 최신버전에서 지원하지 않고 0.9.8k 버전 이하에서 지원하므로

만약 해당 항목을 진단할 경우 openssl 0.9.8k 이하의 버전을 사용해 테스트 해야한다.

 

openssl은 윈도우의 경우 https://code.google.com/archive/p/openssl-for-windows/downloads 에서 다운로드 하고

 

Google Code Archive - Long-term storage for Google Code Project Hosting.

 

code.google.com

리눅스 계열의 경우 https://www.openssl.org/source/old/0.9.x/ 에서 다운로드하면 된다.

 

/source/old/0.9.x/index.html

Old 0.9.x Releases Legalities Please remember that export/import and/or use of strong cryptography software, providing cryptography hooks, or even just communicating technical details about cryptography software is illegal in some parts of the world. So wh

www.openssl.org

 

3. 진단 시연

1) openssl version 입력으로 openssl의 버전을 확인한다.

insecure client-initiated renegotiation을 지원하는 0.9.8k 이하 버전이면 된다.

 

2) openssl s_client -connect google.com:443 명령 수행

 

3) SSL/TLS 정보 출력이 완료되면, R 입력 후 엔터

재협상 시도 시 에러가 발생한다면 양호, 재협상이 완료된다면 취약

시연 환경에서는 에러가 발생했으므로 양호로 판단한다.

'보안 기술 > WEB' 카테고리의 다른 글

CSRF 취약점과 대응방안  (0) 2022.08.22
SSL strip과 HSTS  (0) 2022.08.12
WEB Ahnlab Safe Transaction bypass  (20) 2022.08.12
X-XSS-PROTECTION bypass(X-XSS-Nightmare, XXN)  (0) 2022.07.18
JWT  (0) 2022.07.18
Comments