반응형

| ※ 이 과정은 외부와 격리된 독립적인 가상 네트워크 내에서 실습하였습니다. 주제 OSI 7계층 중 **6계층(표현 계층)**의 데이터 암호화 프로토콜 결함을 이용한 SSL/TLS 취약점(POODLE/BEAST) 공격 분석 목적 데이터의 인코딩과 암호화를 담당하는 6계층에서 보안 수준이 낮은 구버전 프로토콜(SSL 3.0)을 강제로 사용하게 만드는 **다운그레이드 공격(Downgrade Attack)**을 수행하고, 이를 통해 암호화된 통신 내용을 복호화하여 기밀성을 파괴하는 과정을 실증함 공격 메커니즘 1. 프로토콜 다운그레이드: 서버와 클라이언트 사이의 통신을 방해하여, 최신 TLS 방식 대신 보안이 취약한 SSL 3.0으로 통신하도록 유도함 2.Padding Oracle 공격 (POODLE): SSL 3.0의 CBC 암호화 방식에서 발생하는 블록 패딩(Padding)의 허점을 이용, 암호화된 패킷을 반복 주입하여 한 바이트씩 평문 데이터를 추출함 네트워크 구성도 1. Attacker (Router 1): 192.168.11.13 (중간자 공격을 통한 패킷 감청 및 암호 해독 주체) 2. Victim (WAS): 192.168.11.12 (HTTPS 접속을 시도하는 피해 사용자 역할) 3. Target (WEB): 192.168.11.11 (취약한 구버전 SSL 설정을 허용하는 웹 서버) |
| WEB 서버 먼저 취약한 6계층 환경을 구축하기 위해, 현대적인 암호화 방식을 끄고 구식 SSL 3.0 을 허용하도록 설정 한다 # vi /app/apache/conf/extra/httpd-ssl.conf ![]() 기존 설정 주석 처리 (#) #SSLProtocol all -SSLv2 -SSLv3 #SSLProxyProtocol all -SSLv2 -SSLv3 # SSLCipherSuite PROFILE=SYSTEM 6계층 취약점 공격용 설정 주입 SSLProtocol -all +TLSv1 +TLSv1.1 SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW P ![]() 암호화된 인증서, 키 생성 6계층은 데이터를 암호화/복호화하는 계층이다. HTTPS 통신을 하려면 서버가 데이터를 잠글 때 쓸 **키(Key)**와, 자기가 누구인지 증명할 **신분증(인증서)**이 있어야 한다 # mkdir -p /etc/httpd/conf/ - 인증서를 보관할 디렉토리 생성 # openssl req -new -x509 -nodes -newkey rsa:2048 \ -keyout /etc/httpd/conf/server.key \ -out /etc/httpd/conf/server.crt \ -subj "/C=KR/ST=Seoul/L=Seoul/O=Test/OU=Test/CN=192.168.11.11" * openssl: 암호화 도구 실행 * req -x509: 자가 서명 인증서(Self-signed)를 만들겠다는 뜻 * -nodes: 키에 비밀번호를 걸지 않음 (실습 편의상) * -days 365: 1년 유효기간 ![]() ![]() # vi /etc/httpd/conf.d/ssl.conf 파일 수정 기존 내용에서 SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key 아래 내용으로 수정 SSLCertificateFile /etc/httpd/conf/server.crt SSLCertificateKeyFile /etc/httpd/conf/server.key 서버 재시작 # /app/apache/bin/apachectl restart netstat 패키지 설치 # dnf install -y net-tools # dnf install -y mod_ssl 보안 정책 낮추기 # update-crypto-policies --set LEGACY WAS 서버 똑같이 보안 정책 낮추기 # update-crypto-policies --set LEGACY ![]() ROUTER 서버 공격자(ROUTER)는 서버가 암호화 통신 시 어떤 계층 프로토콜을 사용하는지 스캔하고 패킷 덤프를 준비 한다 # dnf install -y nmap - SSL/TLS 버전 및 암호화 목록 스캔용 # dnf install -y tcpdump - 6계층 암호화 패킷 수집용 # dnf install -y wireshark-cli - wireshark-cli 설치 (터미널에서 패킷 분석 시 유용) * NMAP: WEB서버가 우리가 설정한 대로 정말 취약한 SSL 3.0만 열려 있는지 공격 전에 최종 확인 하는 용도. 서버자 제시하는 데이터 표현 방식(암호화 프로토콜) 목록을 조회함 * TCPDUMP: 클라이언트(WAS)와 서버(WEB) 사이의 통신을 가로채서 파일(.pcap)로 저장함. 암호화된 데이터가 실제로 6계층 구조 내에서 어떻게 흘러가는지 원본 데이터를 확보함 ![]() ![]() 1) # nmap --script ssl-enum-ciphers -p 443 192.168.11.11 - 명령어 사용 이유: 서버의 6계층 취약점(구버전 TLS) 탐지 * --script ssl-enum-ciphers: 대상 서버(11.11)가 지원하는 모든 SSL/TLS 암호화 방식(Ciphers) 을 일일이 대조해서 목록화하라는 특수 스크립트 * -p 443: HTTPS 통신 포트인 443번만 확인하겠다는 뜻 * 192.168.11.11: 공격 대상인 WEB 서버의 주소 * 공격자가 본격적인 공격 전에 이 서버가 6계층에서 어떤 암호화 언어를 구사하는지 탐색하는 단계 이다. 아까 설정한 SSLv3이 목록에 뜨는지 확인해서, "아, 이 서버는 취약한 암호화를 쓰고 있구나!"라고 판단하는 근거가 된다 * **TLSv1.0**과 **TLSv1.1**만 남음. 64-bit block cipher 3DES, IDEA vulnerable to SWEET32 attack 등급도 최고 보안 A에서 C로 떨어짐 - 프로토콜 다운 그레이드 성공 ![]() ![]() 2) # tcpdump -r presentation_layer_final.pcap -X | head -n 20 * 이제 서버가 취약해졌으니, 실제로 데이터를 주고받는 과정을 가로채서 6계층 데이터를 확인해보면 됨. 공격자 서버에서 tcpdump를 실행해 패킷 수집을 시작함 |
| 보안 대책 1. 취약 프로토콜 비활성화: 웹 서버 설정에서 SSL/TLS 구버전(SSL 2.0~3.0, TLS 1.0~1.1)을 완전히 제거하고, TLS 1.2 이상만 사용하도록 강제 합니다 2. HSTS(HTTP Strict Transport Security) 도입: 브라우저가 강제로 최신 HTTPS로만 접속하게 하여, 암호화되지 않은 구간이나 다운그레이드 시도를 원천 차단합니다 3. 안전한 Cipher Suite 선택: 보안이 취약한 CBC 방식 대신 **GCM(Galois/Counter Mode)**과 같은 검증된 암호화 방식을 우선 사용하도록 설정합니다 실증 결과 분석 1. 다운그레이드 성공: 서버 보안 정책이 미비할 경우, 공격자가 클라이언트의 접속 환경을 조작하여 보안 수준을 **취약한 하위 버전(TLS 1.0)**으로 떨어뜨릴 수 있음을 확인 하였습니다 2. 기밀성 위협: 6계층에서 암호화를 수행 하더라도, 취약한 알고리즘을 사용하게 되면 공격자의 컴퓨팅 자원으로 복호화가 가능해져 데이터 기밀성이 상실될 수 있음을 실증하였습니다 결론 1. 표현 계층 보안의 핵심: 6계층은 데이터를 어떻게 인코딩하고 암호화하느냐의 문제이며, 단순히 "암호화 여부"보다 **"어떤 안전한 표준을 사용하는가"**가 보안의 핵심임을 확인하였습니다 2. 하위 호환성의 위험성: 오래된 환경 지원을 위해 취약 프로토콜을 열어두는 것이 시스템 전체에 얼마나 큰 보안 구멍을 만드는지 입증하였으며, 최신 암호화 표준 준수의 중요성을 도출하였습니다 |
'Infra & Security Eng > Semi Project' 카테고리의 다른 글
| 세미 프로젝트 - OSI 7계층 취약점 분석: 7계층(응용 계층) - SQL Injection공격 - 공부용 (0) | 2026.02.25 |
|---|---|
| 세미 프로젝트 - OSI 7계층 취약점 분석: 5계층 Session Fixing(세션 고정) (보고서작성용x, 공부용) (0) | 2026.02.25 |
| 세미 프로젝트 - OSI 7계층 취약점 분석: 4계층 TCP RST(Reset) Attack 공격 실증 (0) | 2026.02.24 |
| 세미 프로젝트 - OSI 7 Layer 단계별 취약점 분석: 3계층 IP Spoofing을 이용한 데이터 탈취 실증 (0) | 2026.02.24 |
| 세미 프로젝트 - OSI 7 Layer 단계별 취약점 분석: 2계층 ARP Spoofing을 이용한 데이터 탈취 실증 (0) | 2026.02.23 |








