kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

Cyber Security

[정보보안] SSL MITM ATTACK VULNERABILITY

까마기 2020. 1. 6. 13:14
728x90
반응형
 
SSL MITM은 SSL 연결을 통해서 Client-Server 간 통신하기 전에 공격자가 보통은 Client의 패킷을 전부 가로채서 MITM공격을 하게 되는데, 가짜 인증서를 통해서 MITM공격을 하게되면 SSL Sniff이고, Https를 Http로 속이게 되면 SSL Strip이 된다.
 
1. Openssl FREAK 취약점
 This server supports 512-bit export suites and might be vulnerable to the FREAK attack. Grade set to F.   
 Freak 공격 : SSL 통해 강제로 취약한 RSA 다운그레이드 시킬 있는 취약점(CVE-2015-0204)
-> OpenSSL s3_clnt.c ssl3_get_key exchange 함수에서 발생하는 취약점으로 공격자가 MITM(Man In The Middle Attack) 통해 512비트 RSA 다운 그레이드 시켜 정보를 유출시킬 있는 취약점
-> OpenSSL 버전 업그레이드 또는 OpenSSL 'RSA_EXPORT Cipher Suites' 지원하거나, 클라이언트로 'RSA_EXPORT Suite' 전송할 있는 모든 기능을 비활성화
 
1) openssl 명령어를 통한 취약점 테스트 (Certificate 코드 노출 확인)
 
 
 
2) 조치 방안 (업데이트 또는 web server 설정 파일 수정)
- openssl 업데이트
# openssl version -a      //openssl 버전 확인
#  yum update -y openssl     //openssl 업데이트
# rpm -q --changelog openssl | grep CVE-2015-0204     // non-export로 변경된 것 확인
 
 
- apache web server의 경우
# vi 아파치경로/extra/httpd-ssl.conf 
SSLCipherSuite!EXPORT 추가를 해서 막는다.
-> web 서버 설정 reload 또는 재시작
 
======================================================================
2. Openssl Logjam 취약점 This server supports weak Diffie-Hellman (DH) key exchange parameters. Grade capped to B.
-> 취약한 Diffie-Hellman Longjam 취약점 : MITM공격을 통해 사용자와 , 또는 이메일 서버 간의 암호화 통신을 다운그레이드 시킬 수있는 취약점(CVE-2015-4000)
 
1) 취약점 확인
 
 
Server Temp Key 값이 1024bit 임을 확인
 
2) 조치 방안
- openssl dhparameter 설정 변경
# openssl dhparam -out dhparams.pem 2048
 
- apache web server 일 경우 : SSL Parameter 수정
httpd.conf 편집
 
- nginx web server 일 경우
nginx.conf에 다음 추가 
ssl_dhparam /path/to/dhparam.pem; 
 
 
======================================================================
3. SSLv3 Poodle 취약점This server uses SSL 3, which is obsolete and insecure. Grade capped to B.  
OpenSSL에서 발생한 메모리 고갈 취약점, 푸들(Poodle, Padding Oracle On Downloaded Legacy Encryption) 취약점 4개의 취약점을 보완한 보안업데이트를 발표
CVE-2014-3513 : DTLS SRTP 핸드쉐이크 메시지를 처리하는 발생하는 메모리 고갈
CVE-2014-3567 : SSL/TLS/DTLS 서버에서 session ticket 값을 받을 발생하는 메모리
CVE-2014-3566 : SL3.0에서 다운 그레이드를 통해 MITM(man-in-the-middle)공격을 가능하게 하는 Poodle(Padding Oracle On Downloaded Legacy Encryption)
CVE-2014-3568 : OpenSSL build option no-ssl3에서 발생한 취약점
 
1) 조치 방안 : SSL 3.0 비활성화로 해결
 
 
INTERNET INFORMATION SERVICES (IIS)
 
Microsoft Windows NT Server 다음에 프로토콜 정보 저장: HKey_Local_Machine\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols registry key.
이 키는 PCT 1.0, SSL 2.0, SSL 3.0 와 TLS 1.0를 위한 서브 키 포함. 새로운 DWORD 값을 프로토콜을 차단하기 위한 서버 서브키 내에 “00 00 00 00” 값으로 생성하여 이 프로토콜들을 전부 비활성화 할 수 있다.
IIS의 crypto 설정정보 상세: 링크
 
APACHE HTTP SERVER
 
서버 환경설정 파일에 다음 열을 포함:
SSLProtocol All -SSLv2 -SSLv3. sudo service apache2 restart 로 서비스 재시작 (리눅스에서 실행시)
 
NGINX SERVER
 
Nginx 환결설정 파일에 다음 포함:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; sudo service nginx restart 로 서비스 재시작 (리눅스에서 실행시)
 
POSTFIX SMTP
 
다음과 같이smtpd_tls_mandatory_protocols 명령 추가/변경:
smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3
Postfix를 sudo postfix restart로 재시작하여 변경사항 반영
 
HAPROXY SERVER
 
/etc/haproxy.cfg 파일 편집하여 바인드라인 검색. 아래 예시처럼 no-sslv3 명령 첨부:
bind :443 ssl crt ciphers no-sslv3
리눅스 웹서버 설정정보 상세: 링크
 
JBOSS WEB
 
https 커넥터를 환경설정 파일 내 “TLS”로 설정된 sslProtocol 속성을 갖도록 설정:
< Connector protocol="HTTP/1.1" SSLEnabled="true"
port="8443" address="${jboss.bind.address}"
scheme="https" secure="true" clientAuth="false"
keystoreFile="${jboss.server.home.dir}/conf/keystore.jks"
keystorePass="rmi+ssl" sslProtocol = "TLS" />
TOMCAT
 
사용될 SSL 프로토콜은 $TOMCAT_HOME/conf/server.xml를 통해 설정 가능:
< Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"/>
 
TOMCAT APR
 
Tomcat과 유사하게, 사용될 프로토콜은 $TOMCAT_HOME/conf/server.xml 파일 내에 규정됨:
< Connector port="443" maxHttpHeaderSize="8192"
maxThreads="150"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
SSLEnabled="true"
SSLProtocol="TLSv1"
SSLCertificateFile="${catalina.base}/conf/localhost.crt"
SSLCertificateKeyFile="${catalina.base}/conf/localhost.key" />
 
 
======================================================================
4. RC4 취약점This server uses RC4 with modern protocols. Grade capped to C.
-> RC4 암호화 알고리즘 취약점
관련 URL : http://blog.alyac.co.kr/419    (Google,Mozilla, Microsoft 2016 RC4 지원 종료 예정에 대한 내용)
 
1) 조치 방안
# vi /etc/httpd/conf.d/ssl.conf
 
SSL Cipher Suites 에서 RC4 Cipher 제거
 

 

반응형