서버 측 요청 위조 (SSRF)
서버 측 요청 위조(SSRF, Server-Side Request Forgery)는 공격자가 서버를 속여 서버가 대신 원하는 곳에 요청을 보내게 만드는 취약점입니다. 많은 웹 서비스에는 서버가 외부 URL에 직접 접속하는 기능이 있습니다. 사용자가 입력한 주소에서 이미지를 가져오거나 링크 미리보기를 보여주는 기능이 그 예입니다. 이때 서버가 요청할 주소와 프로토콜을 검증하지 않으면, 공격자는 임의의 주소를 입력해 서버가 그곳에 접속하게 만들 수 있습니다.
SSRF가 위험한 이유는 요청을 보내는 주체가 서버이기 때문입니다. 서버는 보통 회사 내부 네트워크 안에 있습니다. 그래서 외부 사용자는 접근할 수 없는 내부 시스템, 데이터베이스, 관리용 서비스에도 접근할 수 있습니다. 공격자가 이런 서버를 통해 요청을 보내면, 방화벽 같은 외부 차단 장치를 우회해 내부 서비스에 접근하고 내부 정보를 조회할 수 있습니다. 클라우드 환경에서는 서버 설정 정보(메타데이터)에 접근해 인증 키 같은 중요한 정보를 빼낼 수도 있습니다.
SSRF를 막으려면 서버가 요청할 수 있는 주소와 프로토콜을 허용 목록(Allowlist)으로 제한해야 합니다. 내부 IP 주소, localhost, 클라우드 메타데이터 주소처럼 외부에서 요청하면 안 되는 대상은 차단해야 합니다.
대표 사례는 다음과 같습니다. 2019년 미국 Capital One은 SSRF 공격으로 AWS 서버의 인증 정보를 탈취당해 약 1억 명의 고객 정보가 유출되었습니다.

