SSL/TLS vs 웹 공격 - 이해하기

웹 보안 한눈에 정리: SSL/TLS vs 웹 공격

1) SSL/TLS (HTTPS) — 핵심 특징 & 실무 팁

항목 특징(핵심) 실무 팁/주의
목적/효과 기밀성(암호화), 무결성(MAC/AEAD), 서버 인증서 기반 신뢰 HTTPS 전면 적용, 평문 HTTP 301/308 리다이렉트 금지 → HSTS 권장
버전 TLS 1.3 권장(핸드셰이크 단순화·보안강화), 1.2은 현대 스위트만 SSLv2/3, TLS 1.0/1.1 폐기
핸드셰이크 ClientHello ↔ ServerHello, 키 합의(EC/DH), 인증서 검증, 키 확립 ALPN(HTTP/2,3) 협상, OCSP Stapling
인증서 X.509, CA 체인, 유효기간/도메인 일치 검증 자동갱신(ACME), 핀닝은 신중(운영 난이도↑)
암호 스위트 AEAD(AES-GCM/CHACHA20-POLY1305), ECDHE 키교환 CBC/RC4/3DES 금지, 취약 스위트 제거
세션 재개 세션 티켓/레쥬메(0-RTT는 재전송 위험 고려) 고성능 환경에서 재개 활용, 0-RTT 재실행 주의
HSTS 브라우저가 HTTPS만 사용하도록 강제 Strict-Transport-Security: max-age=...; includeSubDomains; preload
혼합 콘텐츠 HTTPS 페이지 내 HTTP 리소스 포함 시 위험 모든 리소스 HTTPS로 통일, CSP로 차단
쿠키 보안 Secure/HttpOnly/SameSite Set-Cookie: ...; Secure; HttpOnly; SameSite=Lax(또는 Strict)
로깅/가시성 암호화로 패킷 내용 비가시 WAF/리버스프록시에서 TLS 종료 후 보안 분석(프라이버시 고려)

2) 웹 공격 — 유형별 특징 & 핵심 방어

공격 특징(무엇/어떻게) 핵심 방어(짧게)
XSS 사용자 입력이 스크립트로 반사/저장/DOM 실행 출력 인코딩, CSP, 템플릿 자동 이스케이프, 신뢰되지 않은 HTML 금지
SQL Injection 입력이 쿼리 구조를 변조 Prepared Statement(매개변수화), ORM 바인딩, 최소 권한 계정
CSRF 사용자의 의도치 않은 요청 유도 CSRF 토큰, SameSite 쿠키, Referer/Origin 검증
파일 업로드 악용 웹셸/실행파일 업로드·경로 조작 확장자·MIME·매직넘버 검증, 서버 외부 저장, 실행권한 제거
디렉터리 트래버설 ../ 등으로 상위 경로 접근 경로 정규화, 고정 루트(Chroot/BASE), 블랙리스트 대신 화이트리스트
SSRF 서버가 내부망/메타데이터에 요청 내부 주소 차단(169.254.169.254 등), URL 스킴/리디렉트 검증, 아웃바운드 ACL
Command Injection 쉘 명령에 입력 삽입 OS 명령 미사용/라이브러리 사용, 인자 화이트리스트, 쉘 이스케이프
XXE XML 외부 엔티티로 파일/요청 유출 XML 파서에서 외부 엔티티 비활성화, 최신 라이브러리
Clickjacking 투명 프레임으로 오동작 유도 X-Frame-Options: DENY/SAMEORIGIN, CSP frame-ancestors
세션 하이재킹/고정 세션ID 탈취·고정 TLS 필수, Secure/HttpOnly/SameSite, 세션 재발급/만료
HTTP Request Smuggling 프록시간 요청 경계 불일치 악용 일관된 파서, CL/TE 혼용 금지, 최신 프록시/서버 설정

빠른 암기 포인트

  • 통신 보안은 TLS 1.3 + HSTS + 안전 스위트 + 쿠키 보안

  • 입력은 바인딩·출력은 인코딩·정책은 CSP

  • 업로드/경로/리디렉트/내부요청(SSRF)은 화이트리스트·격리가 핵심


댓글 쓰기

새 댓글을 작성할 수 없습니다.*

다음 이전