JadePuffer, 프록시 공격으로 7분 만에 Azure 리소스 파괴
마이크로소프트는 2026년 6월에 코드명 JadePuffer인 공격자가 탈취된 서비스 주체를 이용해 단 7분 만에 Azure 여러 리소스에 대해 100회 이상의 삭제 시도를 진행했으며, 일부 리소스는 잠금 및 보호 메커니즘 덕분에 손상되지 않았다고 공개했습니다. 이 사건은 클라우드 환경에서 서비스 주체 자격 증명의 관리 부실이 초래할 수 있는 위험을 구체적으로 보여주며, 자동화된 프록시 공격이 짧은 시간 안에 대규모 파괴를 일으킬 수 있음을 강조합니다.

사건 개요
2026년 6월, 마이크로소프트 보안팀은 공식 블로그인 Microsoft Security Blog에 두 건의 Azure 공격 사례를 상세히 공개했습니다. 공개된 내용에 따르면, 공격자는 침해된 서비스 주체(서비스 프린시플)를 악용해 클라우드 환경에 직접 접근했으며, 내부 추적용 코드명은 'Storm‑3168'으로 지정되었습니다. 공격자는 'JadePuffer'라는 별칭으로 알려졌으며, 두 사건 모두 서로 다른 Azure 테넌트에서 동시에 발생했습니다. 첫 번째 테넌트에서는 서비스 주체 인증 정보를 장시간에 걸쳐 수집하고 정찰했으며, 두 번째 테넌트에서는 짧은 시간 안에 대량의 파괴 명령을 실행했습니다. 이러한 공개는 서비스 주체 자격 증명의 보안 관리가 클라우드 보안의 핵심 요소임을 다시 한 번 강조하고, 조직이 인증 정보 유출에 대비해야 할 필요성을 부각시켰습니다.
공격 방법 및 타임라인
첫 번째 사건에서는 침해된 서비스 주체가 약 15시간 30분 동안 지속적인 정찰 활동을 수행했습니다. 이 기간 동안 공격자는 300회가 넘는 읽기 작업을 수행해 대상 테넌트의 리소스 메타데이터와 구성 정보를 수집했습니다. 정찰 단계에서 수집된 정보는 이후 파괴 단계에서 정확한 타깃을 지정하는 데 활용되었습니다. 두 번째 사건은 훨씬 짧은 시간 안에 진행되었으며, 35분 이내에 150회 이상의 파괴 시도와 인증 정보 수집 활동이 이루어졌습니다. 특히 핵심 파괴 단계는 약 7분 동안 지속되었고, 이 짧은 구간에 100개가 넘는 스토리지 계정을 삭제하려는 시도가 연속적으로 전송되었습니다.
7분간의 파괴 단계에서 공격자는 먼저 목표 리소스를 열거한 뒤, Delete API를 반복 호출했습니다. 이 과정에서 자동화된 스크립트가 높은 호출 빈도로 동시에 여러 스토리지 계정 및 기타 서비스에 삭제 요청을 전송했으며, 일부 리소스는 이미 잠금 또는 삭제 보호가 활성화돼 있었기 때문에 실제 삭제가 차단되었습니다. 그러나 차단되지 않은 다수의 요청은 여전히 Azure API 서버에 도달했으며, 이는 공격자가 매우 높은 속도로 API를 호출할 수 있는 자동화 수준을 갖추고 있음을 보여줍니다. 스크립트는 동시에 여러 엔드포인트에 접근하도록 설계돼 있어, 단시간에 대규모 파괴를 시도할 수 있었습니다.
- 100건 이상의 스토리지 계정 삭제 시도
- 150건 이상의 파괴 또는 인증 정보 수집 작업
- 300건 이상의 읽기 정찰 요청 (첫 번째 사건)
- 30건 이상의 ListKeys 호출 (약 30분 후)
증거 및 출처
마이크로소프트는 이러한 공격 패턴을 'Storm‑3168'으로 분류하고, 침해된 서비스 주체 인증 정보를 이용해 프록시 방식으로 작업을 수행했다고 밝혔습니다. iThome 보도에 따르면, 일부 서비스 주체 인증 정보가 공개된 GitHub 이슈에 나타났지만, 마이크로소프트는 해당 인증 정보가 실제 침해 출처인지 여부를 확인하지 않았습니다. 이와 같은 증거는 공격자가 사전에 확보한 인증 정보를 활용해 신속하게 행동했음을 시사합니다. 또한, 마이크로소프트는 공격 로그와 API 호출 기록을 분석해 정확한 타임라인을 재구성했으며, 이를 통해 공격자의 자동화 스크립트가 어떤 순서로 명령을 전송했는지 확인했습니다.
조사 과정에서 마이크로소프트는 랜섬 메일이나 명확한 데이터 유출 징후를 발견하지 못했습니다. 대신, 약 30분 후에 공격자가 30회가 넘는 ListKeys 요청을 성공적으로 전송한 것이 확인되었습니다. ListKeys 요청은 스토리지 계정의 접근 키를 반환하는 API이며, 이를 통해 공격자는 추가적인 비밀 키를 확보하려는 의도를 보였습니다. 지속적인 ListKeys 호출은 공격자가 초기 파괴 단계 이후에도 추가적인 권한 상승을 시도하고 있었음을 의미합니다. 이러한 행동은 단순히 파괴에 그치지 않고, 장기적인 접근 권한 확보를 목표로 했을 가능성을 보여줍니다.
영향 및 방어 효과
리소스 잠금(resource lock)과 삭제 보호(delete protection)는 이번 공격에서 핵심적인 방어 역할을 수행했습니다. 잠금이 적용된 스토리지 계정은 삭제 요청이 차단돼 실제 데이터 손실을 방지했으며, 삭제 보호가 활성화된 Azure SQL 인스턴스는 사용된 API 버전이 지원되지 않아 삭제 시도가 자동으로 실패했습니다. 이러한 방어 메커니즘은 공격자가 대량의 삭제 요청을 전송하더라도, 사전에 설정된 정책에 의해 대부분의 요청이 무효화되도록 설계되었습니다. 결과적으로, 실제로 손상된 리소스는 제한적이었으며, 대부분의 스토리지 계정은 보호 메커니즘 덕분에 안전하게 유지되었습니다.
하지만 방어 메커니즘이 일부 파괴를 차단했음에도 불구하고, 공격자는 여전히 리소스를 열거하고 키를 획득하는 데 성공했습니다. 이는 리소스 잠금만으로는 프록시 방식 침입을 완전히 방지할 수 없으며, 서비스 주체 인증 정보 자체가 노출될 경우 공격 표면이 크게 확대된다는 점을 보여줍니다. 마이크로소프트는 영향을 받은 테넌트에 대해 즉시 모든 서비스 주체의 인증 사용 상황을 점검하고, 조건부 액세스와 최소 권한 원칙을 활성화할 것을 권고했습니다. 조건부 액세스는 로그인 위치, 디바이스 상태 등 다양한 조건을 기반으로 접근을 제한하고, 최소 권한 원칙은 각 서비스 주체가 수행해야 할 작업에 필요한 최소한의 권한만 부여하도록 설계되었습니다.
앞으로의 보안 변화로는 마이크로소프트가 Azure 모니터링 서비스에 서비스 주체의 비정상적인 행동에 대한 실시간 경고 기능을 추가하고, API 버전 호환성 검사를 강화하여 오래된 API를 이용한 공격을 감소시킬 계획이라고 발표했습니다. 또한 기업들은 정기적으로 서비스 주체 키를 교체하고, 민감한 리소스를 보다 엄격한 삭제 보호 정책에 포함시킬 것을 강조했습니다. 정기적인 키 교체는 장기적으로 인증 정보 유출 위험을 낮추고, 강화된 정책 적용은 의도치 않은 삭제나 변경을 사전에 차단하는 데 중요한 역할을 합니다. 이러한 권고 사항을 실천함으로써 조직은 향후 유사한 프록시 기반 공격에 대한 대비 태세를 크게 향상시킬 수 있을 것입니다.
출처
- JadePuffer借助AI代理攻擊Azure,微軟揭露兩起雲端資料破壞事件iThome · 2026년 9월 30일
- Storm-3168: Agentic-driven cloud attacks using compromised service principalsMicrosoft Security Blog · 2026년 9월 25일



