[2026 주요정보통신기반시설] CI-08 서버사이드요청위조(Server-Side Request Forgery, SSRF)

입력값을 통해 외부에서 직접적인 접근이 제한된 내부 서버 자원에 접근하여 악의적인 요청을 처리하거나 중요정보의 유출 여부 점검

·

서버사이드요청위조(Server-Side Request Forgery, SSRF)

가이드라인 원문

항목내용
항목코드CI-08
점검내용입력값을 통해 외부에서 직접적인 접근이 제한된 내부 서버 자원에 접근하여 악의적인 요청을 처리하거나 중요정보의 유출 여부 점검
점검대상웹 애플리케이션 소스코드, 웹 애플리케이션서버, 웹방화벽, API서버
양호기준외부 입력값이 화이트리스트 방식으로 검증되어, 허용된 URL 또는 IP 범위내에서만 처리될 경우
취약기준외부 입력값이 검증이 이루어지지 않고 처리되어 허용되지 않는 자원에 임의적인 접근 및 요청이 가능한 경우
조치방법입력값 검증 및 화이트리스트를 적용하여 허용된 URL과 IP주소만 접근 가능하도록 설정하며, 네트워크를 분리하여 내부자원에 대한 비인가 접근을 차단

상세 설명

1. 판단 기준

기본 판단 기준

  • 양호: 외부 입력값이 화이트리스트 방식으로 검증되어, 허용된 URL 또는 IP 범위 내에서만 처리될 경우
  • 취약: 외부 입력값이 검증이 이루어지지 않고 처리되어 허용되지 않는 자원에 임의적인 접근 및 요청이 가능한 경우

경계 케이스 (Edge Case) 처리 방법

  • 일반적인 경우 영향 없음
  • URL 필터링 시 비즈니스 로직에 필요한 모든 URL을 화이트리스트에 등록
  • 내부 서비스 간 통신에도 동일한 검증 적용

권장 설정값

  • 서버가 요청할 대상은 가능한 한 사전에 승인된 호스트·포트·프로토콜로 제한
  • IP는 검증된 IPv4/IPv6 파서로 정규화해 허용 목록과 비교하고, DNS 응답·리다이렉트·실제 연결 대상도 정책과 일치하는지 확인
  • 링크 로컬 및 클라우드 메타데이터, 루프백, 내부 주소에 대한 비인가 egress 차단

2. 점검 방법

Step 1: 내부 서버 접근 테스트

1
사용자 입력을 통해 서버 간 통신이 이루어지는 지점에서 허용되지 않은 주소값을 입력하여 응답, 지연 시간 등을 분석해 취약점 가능성 확인

테스트 패턴:

1
2
3
4
5
http://localhost/admin
http://127.0.0.1:8080
http://192.168.1.1
http://169.254.169.254/latest/meta-data/  // AWS
http://metadata.google.internal  // GCP

Step 2: 우회 기법 테스트

1
습득한 정보를 바탕으로 우회 기법, 포트 스캔, 내부 정보 탈취 등 익스플로잇 시도 및 영향 평가

3. 조치 방법

1. 허용 대상 검증과 네트워크 차단

외부 입력을 URL 전체로 받아 그대로 요청하지 마세요. 가능한 경우 서비스가 승인한 호스트·포트·프로토콜을 내부 설정에서 선택하고 경로를 직접 구성합니다. 불가피하게 사용자 입력을 받는다면 검증된 URL/IP 라이브러리로 IPv4·IPv6와 대체 표기를 정규화하고, DNS 조회 결과와 실제 연결 IP가 승인된 대상으로 유지되는지 확인해야 합니다. 리다이렉트는 비활성화하거나 매 단계에서 같은 검증을 반복해야 합니다. 문자열 접두어만 비교하는 사설 IP 필터는 우회가 가능하므로 방어책이 아닙니다.

애플리케이션의 요청 대상 제한과 별개로 방화벽/네트워크 정책에서 내부 서비스와 메타데이터 엔드포인트로의 비인가 발신을 차단하세요.

2. 프로토콜 제한

차단해야 할 프로토콜:

  • file:// - 로컬 파일 접근
  • ftp:// - FTP 파일 전송
  • gopher:// - 임의 데이터 전송
  • dict:// - 사전 프로토콜
  • http:// 내부 IP - 내부 네트워크 접근

3. PHP 설정

php.ini 설정:

1
2
allow_url_fopen=Off      ; 원격 URL 파일 접근 비활성화
allow_url_include=Off    ; 원격 URL include 비활성화

4. 네트워크 분리

  • 웹 서버와 데이터베이스 서버를 별도 네트워크에 배치
  • DMZ 구성으로 인터넷과 내부망 분리
  • 방화벽 규칙으로 서버 간 통신 제한

4. 참고 자료

클라우드 메타데이터 엔드포인트:

클라우드메타데이터 URL
AWShttp://169.254.169.254/latest/meta-data/
GCPhttp://metadata.google.internal/computeMetadata/v1/
Azurehttp://169.254.169.254/metadata/instance?api-version=2021-02-01
DigitalOceanhttp://169.254.169.254/metadata/v1/

OWASP SSRF Prevention Cheat Sheet:

  1. URL 입력값 화이트리스트 검증
  2. 내부 네트워크 대역 차단
  3. 프로토콜 제한 (HTTP/HTTPS만 허용)
  4. 네트워크 분리
  5. DNS 리바인딩 방지

5. 스크립트

  • 취약점 점검 스크립트
    • 이 스크립트는 KISA 주요정보통신기반시설 기술적 취약점 분석·평가 가이드라인(2026)을 준수하여 제작된 자동 점검 도구입니다. 복잡한 단일 파일 방식이 아닌 모듈화된 구조로 설계되어 유지보수가 쉽고 확장이 용이합니다.
    • 다양한 환경에서 테스트를 진행했으나, 혹시 점검 로직에 이슈가 발견되거나 개선이 필요한 경우 적극적인 제보를 부탁드립니다.
마지막 수정: 2026년 9월 23일 수요일
이 글은 AI를 사용해 생성 또는 보조 작성되었습니다. 보안·기술 정보는 인용된 원문과 공식 자료에서 다시 확인하세요.