반응형

**SSRF(Server-Side Request Forgery)**를 실무 중심으로 정리해줄게.


🔥 1. SSRF(Server-Side Request Forgery)란?

정의:
SSRF는 공격자가 서버 내부에서 임의의 URL로 요청을 보내도록 강제하는 공격이야.

쉽게 말하면:

👉 “사용자 대신 서버가 요청을 보내게 만들어 내부망을 공격하는 기술

외부에서 직접 접근할 수 없는 내부 네트워크(127.0.0.1, 10.x.x.x 등) 또는 **메타데이터 서버(클라우드 계정 정보)**를 공격할 수 있다는 점에서 매우 위험해.


🔹 2. 공격 원리

 
[사용자 입력: URL][서버가 이를 요청][검증 미비] → 내부망 공격 성공

예시:

 
GET /fetch?url=http://example.com

공격자가:

 
http://target.com/fetch?url=http://127.0.0.1:3306

서버가 내부 MySQL에 접근 → 내부 정보 노출 가능.


🔹 3. 실무 공격 예시

1) 내부망 스캔

 
url=http://10.0.0.5:8080

→ 내부 서비스가 열려있는지 탐지

2) 클라우드 메타데이터 서버 접근 (매우 위험)

AWS:

 
http://169.254.169.254/latest/meta-data/iam/security-credentials/

GCP:

→ 클라우드 계정 권한 탈취 → 인스턴스 제어 가능

3) Redis, Memcached 등 비인증 포트 공격

 
url=http://127.0.0.1:6379

→ 데이터 삽입/삭제 → RCE까지 이어질 수 있음

4) File:// 프로토콜 악용

 
url=file:///etc/passwd

→ 로컬 파일 읽기

5) DNS Rebinding

공격자가 만든 도메인을 요청하게 하여 내부 IP로 바뀌게 만듦


🔹 4. 공격자가 할 수 있는 일

  • 내부망 스캔 (포트 스캐닝)
  • DB 공격 (MySQL, Redis 등)
  • 내부 관리 페이지 접근
  • 민감파일 읽기 (file:///)
  • 클라우드 자격 증명 탈취
  • RCE로 확장 (Cloud API 조작)

즉 → 외부에서 절대 접근하면 안 되는 내부망을 직접 공격 가능


🔹 5. WAF / 보안관제 대응 포인트

✔ 1) 위험 URL 패턴 차단

  • 127.0.0.1, localhost
  • 10.*, 172.16.*, 192.168.*
  • 169.254.*
  • file://, gopher://, ftp://

✔ 2) URL 인코딩 우회 탐지

  • %2f, %5c, %31%32%37%2e%30%2e%30%2e%31 등

✔ 3) 서버 내부망으로의 아웃바운드 요청 모니터링

  • 갑자기 내부 IP로 HTTP 요청 발생 시 이상행위로 감지

✔ 4) DNS Rebinding 탐지

  • 동일 도메인인데 IP가 급격히 변할 때 알림

🔹 6. 개발 단계 방어

  1. URL 화이트리스트 방식
    • 지정된 도메인만 요청 가능
  2. 로컬/내부 IP 대역 차단
  3. file://, gopher:// 등 위험 프로토콜 금지
  4. Redirect 방어
    • 공격자가 외부 URL → 내부URL로 Redirect하는 경우 차단
  5. 서버가 내부망에 요청할 때 반드시 프록시 사용
  6. DNS 핀닝(DNS 고정 검증)

🎯 한 문장 요약

SSRF = 서버가 공격자의 명령대로 내부망이나 메타데이터 서버로 요청을 보내게 되는 공격으로, 내부 네트워크 공격 및 클라우드 계정 탈취까지 이어지는 매우 위험한 취약점이다.

반응형

+ Recent posts