Cross-App Permissions 위험: SaaS 환경의 숨겨진 공격 표면
서론
현대 기업은 수십 개의 SaaS 애플리케이션을 사용하며, 이들은 OAuth 토큰, API 키, 통합(integration)을 통해 서로 연결됩니다. 이러한 "앱 간 권한(Cross-App Permissions)"이 쌓이면, 단일 관리자도 명시적으로 승인하지 않은 신뢰 관계망이 형성됩니다. 2025년 8월 발생한 Salesloft Drift 공급망 공격은 이러한 위험을 명확히 보여줍니다.
본론
1. Salesloft Drift 공급망 공격: 실제 사례 분석
공식 출처에 의한 사실 검증:
Google Threat Intelligence Group (GTIG)의 분석에 따르면, UNC6395 위협 행위자(중국 국가 지원으로 추정)는 2025년 8월 8일부터 18일까지 Salesloft Drift 타사 애플리케이션과 연결된 OAuth 토큰을 악용하여 Salesforce 고객 인스턴스를 대상으로 대규모 데이터 유출 캠페인을 수행했습니다.
주요 사실:
- 공격 기간: 2025년 8월 8일~18일 (Google Cloud Threat Intelligence 공식 분석)
- 공격자: UNC6395 (Google GTIG 및 AppOmni 분석)
- 침해 경로: 탈취된 OAuth 토큰
- 대상: Salesforce, Google Workspace 등 연결된 SaaS 플랫폼
- 영향: 700개 이상의 조직 영향 (Google Threat Intelligence 분석)
- 공식 대응: 2025년 8월 20일 Salesloft와 Salesforce가 모든 Drift OAuth 토큰 철회
상세 내용:
공격자는 Salesforce의 Users, Accounts, Cases, Opportunities 객체에 대해 SOQL(Salesforce Object Query Language) 쿼리를 실행하여 체계적으로 데이터를 수집했습니다. 주요 수집 대상은 AWS 액세스 키(AKIA), 비밀번호, Snowflake 관련 토큰 등 민감한 자격 증명이었습니다.
Google Cloud의 분석에 따르면, 공격자는 운영 보안에 대한 인식을 보여주며 쿼리 작업을 삭제하여 추적을 방지하려 했으나, 감사 로그는 여전히 증거를 보존하고 있습니다.
공식 보안 권고:
- FBI Cybersecurity Advisory: CSA-2025-250912
- Mandiant가 Salesloft의 조사에 참여
- Salesforce가 Drift 애플리케이션을 AppExchange에서 잠정 제거
2. "Toxic Combinations": 앱 간 권한의 위험한 조합
검증 가능한 출처:
Lifeboat News의 분석에 따르면, "toxic combinations"은 AI 에이전트, 통합, 또는 MCP 서버가 OAuth 권한 부여, API 범위, 또는 도구 사용 체인을 통해 두 개 이상의 애플리케이션을 연결할 때 발생합니다. 각 측면은 개별적으로는 정상적으로 보이지만, 연결 자체는 아무도 검토하지 않은 상태가 되어 문제가 됩니다.
이러한 "앱 간 권한 스태킹(cross-app permission stacking)"은 대부분의 SaaS 보안 프로그램의 맹점입니다. 기존 접근 방식은 개별 앱 내부의 취약점에 집중하지만, 앱 간의 신뢰 관계는 모니터링되지 않습니다.
3. 학술 연구: Cross-App OAuth 공격
Samsung Research America가 USENIX Security Symposium에 발표한 "Universal Cross-app Attacks: Exploiting and Securing OAuth 2.0 in Integration Platforms" 연구는 이 문제의 기술적 근원을 분석합니다.
연구 세부 사항:
- 저자: Adonis Fung, Julien Lecomte
- 발표: USENIX Security Symposium
- 발행일: 2024년 10월 1일
- 분석 대상: 18개의 인기 있는 통합 플랫폼
주요 발견:
- 18개 플랫폼 중 11개가 COAT(Cross-app OAuth Account Takeover) 취약
- 5개 플랫폼이 CORF(Cross-app OAuth Request Forgery) 취약
- 총 16개 플랫폼이 하나 이상의 취약점 보유
- Microsoft, Google, Amazon 등 대형 기업의 플랫폼도 영향
- 단일 클릭으로 전체 생태계가 위협받을 수 있는 취약점 (CVSS 9.6)
공격 유형:
- COAT: 앱 간 OAuth 계정 탈취
- CORF: 앱 간 OAuth 요청 위조
4. Microsoft의 보안 가이드라인
Microsoft는 Defender for Cloud Apps 문서에서 OAuth 애플리케이션 공격 경로를 분석하며, 중요한 권한을 가진 OAuth 애플리케이션을 "고가치 자산(high-value assets)"으로 분류합니다.
Microsoft의 핵심 권고:
- Critical Asset Management - Service Principals
- 특정 권한을 가진 OAuth 애플리케이션을 고가치 자산으로 식별
- 손상될 경우 공격자가 SaaS 애플리케이션에 높은 권한을 획득 가능
-
공격 경로에서 이러한 서비스 주체를 타겟으로 처리
-
Service Principals as Critical Assets
- Microsoft Defender portal에서 중요 자산 관리 페이지 제공
- OAuth 애플리케이션의 권한 확인 가능
-
권한이 활발히 사용되는지 모니터링
-
권한 감사 및 제한
- 연결된 앱에 최소 필요 권한만 부여
- 과도하게 허용적인 범위(full access 등) 회피
- 주기적인 권한 검토 및 불필요한 권한 제거
5. 공격 시나리오: 권한 체인의 위험
전형적인 공격 시나리오는 다음과 같습니다:
- 개발 도구가 Slack에 OAuth 접근 권한을 획득
- Slack이 Google Drive와 연결됨
- Drive가 프로젝트 관리 도구와 공유됨
- 해당 도구가 AI/통합 플랫폼과 통합됨
- 공격자가 AI 플랫폼의 OAuth 토큰을 탈취
- 권한 체인을 역추적하여 연결된 모든 플랫폼의 자료와 자격 증명에 접근
이 "앱 간 권한 스태킹(cross-app permission stacking)"은 대부분의 SaaS 보안 프로그램의 맹점입니다. 기존 접근 방식은 개별 앱 내부의 취약점에 집중하지만, 앱 간의 신뢰 관계는 모니터링되지 않습니다.
대응 방안
| 위협 레벨 | 즉시 대응 (24시간 이내) | 단기 대응 (1주 이내) | 장기 대응 (1개월 이내) |
|---|---|---|---|
| Critical | 모든 OAuth 토큰 강제 재발급, 고위험 권한 앱 즉시 중지 | 권한 감사 및 불필요한 앱 제거 | 앱 거버넌스 정책 수립 |
| High | 고위험 권한(이메일/파일/디렉토리)을 가진 앱 식별 및 검토 | 소유자 할당 및 검토 주기 설정 | SSPM 도구 도입 |
| Medium | 활동 로그 및 액세스 패턴 분석 | 최소 권한 원칙 적용 | 정기적인 권한 드리프트 감사 |
| Low | 사용자 교육 및 인식 제고 | 문서화 및 절차 수립 | 자동화된 검증 도구 구축 |
기업 보안 팀을 위한 실천 사항
- 인벤토리 및 감사: 개별 앱뿐만 아니라 연결된 권한 체인도 인벤토리화
- 최소 권한: AI 에이전트 도구와 토큰에 최소 권한 적용
- 리스크 확인: 위험한 작업에 대한 확인 요구 사항
- 포괄적 로깅: 에이전트가 수행하는 모든 작업 로깅
- 외부 콘텐츠 신뢰 수준: 모든 외부 콘텐츠를 적대적(hostile)으로 취급
- 사전 검토 프로세스: 배포 전 앱 간 통합 검토 및 승인 프로세스 수립
- 소유자 할당: 모든 OAuth 앱에 명확한 소유자(비즈니스 소유자, 기술 소유자) 지정
Salesloft Drift 공격에 대한 특정 대응
Google Cloud Threat Intelligence의 권고에 따르면:
- 즉시 조치:
- Drift 인스턴스와 연결된 모든 제3자 통합 검토
- 연결된 애플리케이션의 API 키, 자격 증명, 인증 토큰 폐기 및 재발급
-
연결된 모든 시스템에서 무단 접근 징후 조사
-
노출된 비밀 검사:
- Salesforce 객체 내 민감 정보 및 비밀 검색
- AKIA(AWS 장기 액세스 키 식별자) 검색
- Snowflake 또는 snowflakecomputing.com 자격 증명 검색
-
password, secret, key 키워드로 자격 증명 참조 검색
-
액세스 제어 강화:
- 연결된 앱 범위 검토 및 제한
- 연결된 앱에 IP 제한 시행
- 불필요한 권한 제거
결론
단일 앱의 취약점이 아니라, 앱 간의 권한 체인이 현대 SaaS 환경의 숨겨진 공격 표면입니다. Salesloft Drift 공격은 OAuth 토큰 탈취가 어떻게 광범위한 데이터 유출로 이어질 수 있는지 보여줍니다. "Toxic combinations" 개념과 USENIX 연구는 이 문제의 체계적 분석을 제공하며, Microsoft의 가이드라인은 실질적 거버넌스 방향을 제시합니다.
기업은 개별 앱 보안을 넘어, 연결된 SaaS 생태계 전체의 권한 관리에 집중해야 합니다. 권한 체인의 단순한 고리가 전체 생태계를 위협할 수 있음을 인지하고, 예방적인 거버넌스를 통해 위험을 완화해야 합니다.
참고문헌
- Salesloft Drift 공급망 공격 - Google Threat Intelligence
- URL: https://cloud.google.com/blog/topics/threat-intelligence/data-theft-salesforce-instances-via-salesloft-drift
- 출처: Google Cloud Threat Intelligence Group (GTIG)
-
설명: UNC6395가 2025년 8월 8일~18일 사이 Salesloft Drift OAuth 토큰을 악용하여 Salesforce 대상 데이터 유출 캠페인 수행, 700개 이상 조직 영향
-
Salesloft Drift-Salesforce Breach (UNC6395)
- URL: https://appomni.com/blog/drift-breach-salesforce-unc6395-saas-prevention/
- 출처: AppOmni
-
설명: UNC6395 위협 행위자의 Salesloft Drift 공급망 공격 분석, FBI 보안 권고(CSA-2025-250912) 인용, 대응 방안 제시
-
FBI Cybersecurity Advisory
- URL: https://www.ic3.gov/CSA/2025/250912.pdf
- 출처: FBI
-
설명: UNC6395 공격에 대한 공식 IOC 및 전술 제공, Salesforce 인스턴스 대상 데이터 도난 경고
-
Toxic Combinations: When Cross-App Permissions Stack into Risk
- URL: https://lifeboat.com/blog/2026/04/toxic-combinations-when-cross-app-permissions-stack-into-risk
- 출처: Lifeboat News
-
설명: AI 에이전트, 통합, OAuth 권한 부여가 SaaS 앱을 연결하여 형성하는 "toxic combinations" 위험 분석
-
Universal Cross-app Attacks: Exploiting and Securing OAuth 2.0 in Integration Platforms
- URL: https://sra.samsung.com/publications/universal-cross-app-attacks-exploiting-and-securing-oauth-2-0-in-integration-platforms/
- 출처: Samsung Research America
- 저자: Adonis Fung, Julien Lecomte
- 발행: USENIX Security Symposium (2024년 10월 1일)
-
설명: 통합 플랫폼에서의 다중 앱 OAuth 권한 부여 결함 설계 분석, 18개 플랫폼 중 16개 취약, COAT 및 CORF 공격 기법 제시
-
Investigate OAuth application attack paths in Defender for Cloud Apps
- URL: https://learn.microsoft.com/en-us/defender-cloud-apps/attack-paths
- 출처: Microsoft Learn
-
설명: Microsoft Defender for Cloud Apps의 OAuth 애플리케이션 공격 경로 분석, 중요 권한을 가진 OAuth 앱을 "고가치 자산"으로 분류, 서비스 주체 관리 가이드
-
Hidden Risks of OAuth Tokens & SaaS Integrations
- URL: https://appomni.com/learn/saas-security-fundamentals/oauth-token-security-risks/
- 출처: AppOmni
-
설명: OAuth 토큰 및 타사 SaaS 통합의 숨겨진 보안 위험, 모범 사례 및 완화 방안
-
OAuth Security Risks: A Guide to App Permissions
- URL: https://coaxsecurity.com/blog/oauth-security-risks-saas/
- 출처: Coax Security
-
설명: OAuth 연결 앱의 56%가 기업 데이터에 과도한 접근 권한을 가짐, 앱 권한 거버넌스 정책 구축 가이드
-
Cross-App Access (XAA): Secure App-to-App Trust with IdP
- URL: https://www.scalekit.com/blog/cross-app-access-agentic-auth-flows
- 출처: Scalekit
-
설명: 정적 API 키와 서비스 계정을 단기 범위 지정 토큰으로 대체하는 Cross-App Access(XAA) 개념 설명
-
Salesloft Trust Center Advisory
- URL: https://trust.salesloft.com/?uid=Drift%2FSalesforce+Security+Notification
- 출처: Salesloft
- 설명: Salesloft Drift 보안 공식 공지, 영향 범위 및 대응 조치
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함합니다. 내용 중 사실과 다르거나 보완이 필요한 정보가 있으시면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!