관리 메뉴

ARTIFEX ;)

HTTPS Renegotiation 취약점 리뷰 본문

# Security/WEB, APP Vulnerabilities

HTTPS Renegotiation 취약점 리뷰

Artifex_Ethan_ 2024. 4. 1. 16:54
반응형

게시글 이동 등을 위해 재게시하고자 함이다. ( 본 글은 2022년에 작성되었음을 밝힙니다.)
전자금융기반시설 항목 내 존재하는 취약점이지만 현재는 실상 대부분의 웹 사이트에서 크게 식별되지는 않는다.
큰 취약점이라기보단 하나의 공격벡터를 찾기위한 행위 및 Config 문제에 관련된 항목이라 알고만 넘어가도 될 듯함이다.

HTTPS Renegotiation 취약점 Review

How to Secure Server and Client-Initiated SSL Renegotiation

전자금융기반 취약점 점검 항목에는 HTTPS 관련 항목들이 존재함.
암호화된 통신 내용이 노출될 가능성이 존재하는 취약한 방식의 HTTPS 재협상 허용 여부를 점검.
취약한 방식의 HTTPS 재협상 허용을 점검하기 위해 4가지 재협상 방법 중 Client-initiated insecure renegotiation 값을 점검

  • Client-initiated secure renegotiation
  • Client-initiated insecure renegotiation(CVE-2009-3555)
  • Server-initiated secure renegotiation
  • Server-initiated insecure renegotiation

OpenSSL ~~~~~

openssl S_client -connect URL(ip):port

# 명령어 수행(스캔) 이후 R을 입력하여 진행
R

S_Client :

→ SSL/TLS Client Program
→ OpenSSL 명령으로 운영중인 웹서버의 SSL인증서 정보를 살펴볼 수 있다.
→ s_client는 SSL/TLS를 사용하는 원격 호스트에 접속하기 위한 일반적인 SSL/TLS Client를 구현하는 명령어이다.

s_client - option

  1. -connect host:port → 접속 정보 // Default 값은 localhost:4433.
  2. -tls1, tls1_2 … → 명시해준 프로토콜만 통신하겠다는 의미. // no를 앞에 붙여주면 해당 옵션을 제외하고 통신하겠다는 의미
  3. -state → SSL 세션의 state를 print.
  4. -msg → 프로토콜 메시지 print.
  5. -showcerts → 전체 서버 certificate chain을 display

옵션은 Port 뒤에 붙여주면 됨.


OpenSSL(0.9.8k 이하)


금융권 홈페이지 결과 
위 명령어를 입력하고 잠시 후 콘솔 창이 멈춘다.

그 후 ‘R’ 을 입력하고 Enter.
verify Return 값이 =1일 경우 정상적인 인증서임을 뜻함

보통은 ‘R’을 입력하면 Error 구문이나 아무런 동작을 하지 않아 재협상 관련 항목은 양호하게 나오는데 간혹 이런 케이스들도 나오거나 대놓고 미설정도 나오기에 점검 시 확인해야할 부분이다.


아래 이미지는 이러하다. Renegotiation is Suported = 재협상을 지원함
verify error - 인증서가 잘못된 인증서임을 뜻함
또한 Verify reture : 0임을 확인.

반응형