07 · 웹 침해가 클라우드 권한 악용으로 어떻게 이어지는가? — 공격과 재검증 (1)

핵심: 웹에서 실행된 코드가 서버의 AWS 권한까지 사용할 수 있는지, 그 흔적과 차단 효과를 함께 확인했다.

한눈에 보는 흐름

웹 서비스 침해에서 AWS 민감정보 조회까지의 네 단계, 관련 로그와 코드 수정 후 결과웹 서비스 침해에서 AWS 민감정보 조회까지의 네 단계, 관련 로그와 코드 수정 후 결과
웹 서비스 침해에서 AWS 민감정보 조회까지의 네 단계, 관련 로그와 코드 수정 후 결과

왜 배웠는가?

취약점 하나의 성공 여부만 보는 대신, 침해가 어디까지 이어지고 어떤 로그에 남는지 이해하기 위해 공격 실습을 구성했다.

핵심 개념

  • SSRF: 서버가 공격자가 지정한 곳에 대신 요청하게 되는 취약점.
  • RCE / Command Injection: 원격 코드 실행 / 입력이 시스템 명령에 섞여 실행되는 취약점.
  • IMDS: EC2의 메타데이터를 제공하는 서비스. 실습에서는 서버 역할의 임시 자격증명과 연결되는 지점을 다뤘다.
  • Workload Role: 서버나 애플리케이션이 AWS 작업을 할 때 쓰는 권한.
  • Hardening: 취약한 코드·설정·권한을 보완하는 작업.

학습한 공격 경로

박윤하의 시나리오 글은 유출 자격증명·SSRF 및 Log4Shell을 출발점으로 AWS 권한과 S3 데이터 접근이 이어지는 실습을 다뤘다.
이재원의 글은 JWT 우회 → 명령 실행 → 서버 Role 사용 → Secrets Manager 접근을 재현하고 Host·Cloud 기록을 함께 확인했다.
여기서 공통 질문은 “서버를 침해한 뒤 그 서버의 권한으로 어디까지 갈 수 있는가?”였다.

가장 의미 있는 검증 사례

단계
원문에 남긴 결과
취약 코드에서 실행
응답에서 SecretString 반환을 확인했다고 기록.
AWS 사용 흔적 확인
CloudTrail의 GetSecretValue 이벤트 확인.
서버 실행 흔적 확인
Falco의 Python 프로세스에서 Shell 실행 경고. 첨부 로그에도 해당 경고가 보임.
코드 수정 후 같은 공격 재실행
위조 JWT는 401, 명령 삽입 입력은 400으로 차단됐다고 기록.
확인 수준: 위 결과는 해당 코드와 실습 조건에 대한 재검증이다.

실제 Falco 탐지 화면

Python 프로세스가 Shell을 실행한 Falco 경고Python 프로세스가 Shell을 실행한 Falco 경고
Python 프로세스가 Shell을 실행한 Falco 경고
화면의 핵심: Python3 spawned a shell, parent=python3, command=sh. 웹 프로세스에서 시스템 명령 실행으로 이어진 흔적이다.
출처: 이재원의 공격·Hardening 재검증 글에 첨부된 화면.

후속 검증 범위

코드 수정과 재시험 결과를 남긴 뒤, Wazuh 상관분석과 WAF·IAM·네트워크 통제의 효과는 후속 검증 과제로 정리했다.

배운 점

공격 성공 캡처 하나보다 성공 조건 → 남은 증거 → 수정 이유 → 같은 공격의 재시험을 연결하는 과정이 중요했다.

원문과 작성자