기타/회사 업무 관련

[전자금융] 취약 HTTPS 점검(수정중)

forgetissimo 2024. 7. 23. 15:17
728x90

 

SSL(Secure Socket Layer)이란?

 : 

 

 

 

 - ssl 통신을 안할 경우 평문 노출되어 

 

 

SSL Handshake 통신과정

: SSL Handshake과정(CloudfFlare)

 

 

암호(ecdhe, rsa 등) 설명 - 보안기사 수준으로 

 

 

취약 판단기준

 

 

 

 

  • 취약한 HTTPS 항목
WEB-SER-034 - 취약한  HTTPS 프로토콜 이용

o 취약한 버전의 암호 프로토콜 사용 시 MITM 등의 공격에 의해 암호화된 통신 내용이 유출될 수 있어 취약한 버전의 암호 프로토콜(SSL 3.0 이하, TLS 1.2 미만) 사용 여부를 점검
* (평가 예시) 
- 취약한 버전(SSL 3.0 이하, TLS 1.2 미만)의 암호 프로토콜 사용 가능 여부 점검 등

 

WEB-SER-035 - 취약한  HTTPS 암호 알고리즘 이용

o 보안강도가 낮은 암호 알고리즘을 사용할 경우, 중간자 공격 등에 의해 암호화된 통신 내용이 유출 될 수 있는 위협이 발생될 수 있으므로, 암호 알고리즘의 보안 강도의 적절성 여부를 점검

평가예시

A. 짧은 키길이(112비트 미만)를 사용하는 블록 암호 알고리즘

B. 스트림 암호(RC2, RC4) 사용

C. 암호 알고리즘 미사용(NULL)

D. 취약한 암호 알고리즘(DES, 3DES)

*금융부문 암호기술 활용 가이드

(https://www.fsec.or.kr/bbs/detail?bbsNo=6158&menuNo=222)

 

WEB-SER-036 - 취약한 HTTPS 컴포넌트 사용

o 취약한 HTTPS 확장 모듈 사용 시 암호화된 정보 노출 등의 위협이 존재함에 따라 이에 대한 취약점 존재 유무 점검

평가예시

A. Heartbleed(CVE-2014-0160)

: TLS 'heartbeat' 확장에서 발견된 취약점으로 , 'heartbeat' 메시지를 악용하여 서버의 메모리에 접근 가능(OpenSSL1.0.1 - 1.0.1f)

B. OpenSSL CCS Injection Vulnerability(CVE-2014-0224)

: SSL/TLS 핸드셰이크 프로세스에서 ChangeCipherSpec(CCS) 메시지를 악용하여 통신 내용에 대한 위변조 가능(OpenSSL 1.0.1h, 1.0.0~1.0.0m, 0.9.8~0.9.8za)

C. FREAK(Factoring RSA Export Keys)(CVE-2015-0204)

: SSL서버가 수출용 RSA를 허용하도록 다운그레이드시킨 후, Brute-force 복호화 공격을 통하여 RSA 키를 얻어 MTIM 공격을 수행 (OpenSSL ~1.0.1~1.0.1f, 1.0.2)

D. Ticketbleed (CVE-2016-9244)

: F5 Networks BIG-IP SSL 가속기의 TLS(ticket-based) 세션 재활용 구현에서 발견되는 취약점으로, 해당 취약점을 악용하여 서버의 일부 메모리 접근 가능(F5 BIG-IP 11.6.0~13.0.0)

E. Padding Oracke Attack(CVE-2016-2107)

: OpenSSL의 AES-CBC 암호화에서 패딩 값 변경을 통해 발생하는 취약점으로 MITM공격을 수행(OpenSSL ~1.0.1h, 1.0.2)

 

WEB-SER-037 - 취약한 HTTPS 재협상 허용

o TLS 1.0 이하 버전에서 HTTPS 재협상(Renegotiation) 설정이 허용되어 있을 경우, MITM 공격을 통해 암호화된 통신 내용이 노출될 위험이 있으므로, 취약한 방식의 HTTPS 재협상을 허용하는지 여부를 점검

평가 예시

 - insecure client-initiated renegotiaition 값(No - 재협상 미허용, supported - 재협상 허용) 점검 등 (TLS 1.1 이후 버전에서는 양호)

 

1. 도구로 점검하기(도구별 결과 비교)

testssl.sh

https://github.com/drwetter/testssl.sh

 

nmap

https://github.com/nmap/nmap

 

sslyze

https://github.com/nabla-c0d3/sslyze

 

ssllabs

https://www.ssllabs.com/

 

 

 

2. 도구 없이 점검하기

 - 도구 없이 기본 환경에서만 테스트 해야할 경우 사용

 

openssl만 사용

 

 

 

 

와이어샤크로 확인

 

 

 

3. 쉘 스크립트로 제작한 ssl 버전 확인

 

 

 

 

 

참고

https://www.hahwul.com/2021/02/23/how-to-emun-cipher-suite-of-website-only-use-openssl/

https://aws-hyoh.tistory.com/39

https://steady-coding.tistory.com/512#google_vignette

https://www.cloudflare.com/ko-kr/learning/ssl/what-happens-in-a-tls-handshake/