토큰 도난 플레이북

이 문서와 그에 수반되는 의사 결정 트리는 보안 분석가 및 인시던트 응답자가 조직의 토큰 도난 공격을 식별하고 조사하기 위한 지침을 제공합니다. 조직이 보안 태세를 강화함에 따라 위협 행위자가 보다 정교한 기술을 사용하여 리소스를 손상합니다. 토큰 도난 공격으로 인한 손상을 조사, 포함 및 수정하려면 빠른 대응이 필요합니다.

토큰 도난 공격은 위협 행위자가 다단계 인증을 충족한 경우에도 사용자에게 발급된 토큰을 손상시키고 재생할 때 발생합니다. 인증 요구 사항이 충족되므로 위협 행위자는 도난당한 토큰을 사용하여 조직 리소스에 대한 액세스 권한을 부여합니다.

자세히 보기:

필수 조건

  • 사용자 및 서비스 주체에 대한 Microsoft Entra ID(이전의 Azure AD) 로그인감사 로그에 대한 액세스
  • 다음 Microsoft Entra 역할 중 하나가 할당된 계정:
    • 보안 관리자
    • 전역 관리자
    • 보안 읽기 권한자
    • 전역 판독기
    • 보안 운영자

권장 사항

필수는 아니지만 다음을 수행하는 것이 좋습니다.

요구 사항

SIEM 구성

Microsoft Sentinel과 같은 SIEM(보안 정보 및 이벤트 관리) 도구에는 중앙 집중식 로그 표시 유형이 있습니다. 다음을 위해 위험 이벤트를 수집하도록 SIEM을 구성합니다.

  • 로그인 로그 및 감사 로그
  • Microsoft Sentinel 통합(미리 보기)에서는 경고 및 검색 데이터를 중앙 집중식으로 모니터링할 수 있도록 클라우드용 Microsoft Defender 앱을 Microsoft Sentinel(확장 가능한 클라우드 네이티브 SIEM 및 SOAR)과 통합하는 방법을 설명합니다.
  • Office 로그인 로그 및 감사 로그
  • 관련 경고 구성

자세히 보기:

위협 탐지의 지침 에 따라 위협 탐지 및 대응에 대한 Microsoft Sentinel(또는 타사 SIEM) 규칙을 구성합니다.

자세히 보기:

  • Microsoft Entra ID Protection 경고를 설정합니다. 방법: 위험 데이터 내보내기에서는 Microsoft Entra ID의 진단 설정을 변경하여 RiskyUsers, UserRiskEvents, RiskyServicePrincipals 및 ServicePrincipalRiskEvents 데이터를 Log Analytics 작업 영역으로 보내거나, 스토리지 계정에 데이터를 보관하고, 이벤트 허브로 데이터를 스트리밍하거나, 파트너 솔루션으로 데이터를 보내도록 하여 장기간 데이터를 저장하는 방법을 설명합니다.

클라우드용 Microsoft Defender 앱과 SIEM 통합

클라우드용 Microsoft Defender 앱과 Microsoft Sentinel은 기본적으로 연결됩니다. Microsoft Sentinel을 사용하지 않는 경우 MICROSOFT Sentinel, ArcSight by Open Text 및 일반 CEF(일반 이벤트 형식)를 지원하는 클라우드용 Microsoft Defender 앱에 SIEM을 연결합니다.

자세히 보기:

Microsoft Graph API와 SIEM 통합

Microsoft Graph 보안 API 사용하여 SIEM을 커넥트.

  • 지원되는 통합 옵션 - 인사이트를 파생하기 위해 애플리케이션을 연결하는 코드를 작성합니다. Microsoft Graph 보안 API 개요주요 기능을 설명하고 코드 샘플을 제공합니다.
  • 네이티브 통합 및 커넥터 - Microsoft 파트너가 빌드
  • 커넥트ors - SIEM 솔루션을 통한 API, SOAR(보안 오케스트레이션 자동화 응답), ITSM(인시던트 추적 및 서비스 관리), 보고 등

조사

트리거, 조사 검사 목록 등에 대한 지침은 다음 섹션을 검토하세요. 토큰 도난 워크플로 의사 결정 트리 를 사용하여 조사 및 의사 결정을 지원합니다.

조사 트리거

모든 조직에는 일반적인 시나리오와 비정형 시나리오가 있습니다. 다음 조사 검사 목록을 사용하여 트리거 또는 비정상적인 활동을 확인합니다.

  • ID
  • 로그인 로그
  • 감사 로그
  • Office 앱
  • 영향을 받는 사용자와 연결된 디바이스

이러한 사용자 활동이 유효한 것으로 확인되면 위반이 없습니다. 유효한지 확인할 수 없는 경우 위반을 가정하고 완화 작업을 진행합니다. Microsoft Sentinel 포털 또는 SIEM에서 이벤트 유형을 검색하고 조사하여 토큰 도난 시도를 검색합니다.

자세히 보기:

토큰 도난 공격을 나타낼 수 있는 다음 이벤트에 대한 경고를 수신해야 합니다.

Microsoft Entra ID Protection 기능에는 다음과 같은 트리거가 있습니다.

  • 비정상적인 토큰(오프라인 검색) - 검색된 비정형 토큰 특성 또는 익숙하지 않은 위치에서 사용되는 토큰입니다. 이 동작을 감지하는 알고리즘은 Microsoft 365 속성과 함께 Microsoft Entra ID의 데이터를 사용합니다. 이 검색은 공격자가 토큰을 재생하고 있는지를 나타냅니다.

  • 익숙하지 않은 로그인 속성 - 로그인 기록은 로그인 기록과 비교할 때 비정상입니다. 이 이벤트는 사용자 로그인 속성이 익숙하지 않은 경우에 발생합니다.

  • 익숙하지 않은 로그인 – 비대화형 로그인이 발생합니다. 특히 의심스러운 디바이스에서 감지된 경우 익숙하지 않은 로그인에 대한 감시를 강화합니다. 비대화형 로그인에 대한 검색에 즉시 주의를 기울이는 것이 좋습니다.

  • PRT(기본 새로 고침 토큰) 액세스 시도 - Windows 10 및 11에서 엔드포인트용 Microsoft Defender PRT 및 관련 아티팩트에 대한 의심스러운 액세스를 검색합니다. 검색은 리소스 조건부 액세스를 제어하는 Microsoft Entra 위험 점수에 공급됩니다. 이 검색은 볼륨이 적고 드물게 발생합니다.

  • Microsoft Defender XDR 검색 – Microsoft Entra ID Protection 및 Microsoft Defender XDR을 통합하여 한 포털에서 검색을 확인합니다.

    • 기본적으로 SOC(보안 운영 센터)에 대한 가장 관련성이 큰 경고가 사용하도록 설정됩니다. 모든 Microsoft Entra IP 위험 검색 또는 통합을 해제하려면 Microsoft Defender XDR 경고 서비스 설정을 변경합니다.

    Screenshot of the Show high impact alerts only option.

  • 의심스러운 URL – 사용자가 피싱 전자 메일 링크를 클릭했을 수 있습니다. 의심되는 이메일은 악의적인 AiTM(중간) 피싱 키트와 공격의 시작일 수 있습니다.

    Screenshot of a list of suspicious activity.

  • 기타 의심스러운 동작 - Defender for Microsoft 365 고급 헌터 경고 증거 및 경고 테이블에는 토큰 도난을 나타내는 작업이 표시됩니다. 로그를 검토하여 다음을 확인합니다.

    • 사용자가 대량 파일 다운로드
    • 사용자가 비정상적인 파일 다운로드
    • 계정에 다단계 인증 또는 암호 없는 자격 증명 추가
    • 사서함 전달 규칙 추가 또는 편집

조사 시작

시작하기 전에: 필수 구성 요소를 완료하고 사용하도록 설정합니다. 또한 이 플레이북에서는 Microsoft 고객 및 조사 팀이 Microsoft 365 E5 또는 Microsoft Entra ID P2 라이선스 제품군을 사용하거나 구성하지 않았을 수 있다고 가정합니다. 따라서 제공된 자동화 지침을 확인합니다.

이 조사를 위해 다음과 같은 잠재적인 토큰 도난 손상이 있다고 가정합니다.

  • 사용자 보고서
  • Microsoft Entra 로그인 로그 예제
  • Microsoft Entra ID Protection 검색

조사 검사 목록

일반적인 시나리오에 대한 지식으로 다음의 변칙 또는 비정상적인 활동을 결정합니다.

  • ID
  • 로그인 로그 - 예기치 않은 위치 또는 디바이스
  • 감사 로그 - 새로 등록된 디바이스, 추가 다단계 인증 옵션 또는 자격 증명 변경
  • Office 앱 - 트리거가 발생한 이후 변경
  • 디바이스 - 영향을 받는 사용자와 연결됩니다. 인시던트 트리거 이후 경고를 평가합니다.

손상 또는 토큰 도난의 증거: 사용자 확인

잠재적으로 손상된 사용자 계정을 식별한 후 의심스러운 활동을 확인합니다. 이 프로세스는 모든 조직에 따라 다릅니다.

자세히 보기:

사용자 및/또는 디바이스 조사

계정 또는 여러 사용자 계정이 손상되었다고 생각되는 경우 조사 활동을 사용자 세션과 컴퓨터 디바이스의 두 컨텍스트로 구분합니다.

사용자 조사 검사 목록

사용자 동작이 있는 로그를 조사합니다. 다음과 같은 경우 의심스러운 사용자 활동이 있습니다.

  • Microsoft Entra ID 보호 또는 유사한 기능에서 경고는 토큰 도난을 제안합니다.
  • 사용자에게 추가된 추가 자격 증명 또는 디바이스
    • 해지할 ID 목록을 기록합니다.
  • 영향을 받는 사용자는 의심스러운 이메일을 받습니다.
    • 피싱 또는 악성 전자 메일의 경우 Microsoft Defender XDR을 사용하여 영향을 받는 다른 사용자를 조사하고 확인합니다.
    • Microsoft 365 에서 배달된 악성 전자 메일을 조사하면 의심스러운 전자 메일 메시지를 찾고 조사하는 방법을 설명합니다.
  • 피싱 조사는 조직 내에서 피싱 공격을 식별하고 조사하는 지침을 제공합니다.
  • 영향을 받는 권한 있는 계정
    • 손상 후 권한 있는 계정 변경 내용 검토
  • 받은 편지함 규칙 만들기
    • 의심스러운 사서함 규칙 기록
    • 손상된 사용자
    • 문서 IP 주소 및 사용자 계정
    • 잠재적으로 손상될 수 있는 다른 계정 확인
    • 의심되는 IP 주소 또는 사용자 에이전트 문자열에서 추가 인증 식별

피싱 또는 악성 전자 메일

피싱 또는 기타 악의적인 전자 메일 의 표시가 있는 경우 Microsoft 365 에서 배달된 악성 전자 메일 조사를 통해 의심스러운 전자 메일 메시지를 찾고 조사하는 방법을 설명합니다.

공격자 IP 주소 또는 사용자 에이전트 문자열 인증

다음 쿼리는 Sentinel의 테이블을 참조합니다. 다단계 인증 등록, 디바이스 등록, 사서함 전달 규칙 또는 받은 편지함 규칙과 같은 지속성의 징후를 찾습니다.

Microsoft Entra 보안 작업 가이드규칙에 대해 알아봅니다.

AADUserRiskEvents
| where RiskEventType contains "unfamiliar" or RiskEventType contains "anomalous"
| where IpAddress == "x"

또는 로그인 로그를 사용하여 동일한 IP 주소를 가진 사용자를 가져옵니다.

SigninLogs
| where IPAddress == "x"

권한 있는 사용자의 경우 시간 창의 변경 내용을 확인합니다.

AuditLogs
| where TimeGenerated between (datetime(2023-03-01) .. datetime(2023-03-15))
| where InitiatedBy == "x"

권한 있는 계정에 대한 인증 방법 변경

다음 쿼리를 사용하여 권한 있는 관리자 역할이 할당된 사용자의 보안 정보의 변경 내용을 찾습니다.

Query
  let queryperiod = 14d;
  let queryfrequency = 2h;
  let security_info_actions = dynamic(["User registered security info", "User changed default security info", "User deleted security info", "Admin updated security info", "User reviewed security info", "Admin deleted security info", "Admin registered security info"]);
  let VIPUsers = (
      IdentityInfo
      | where TimeGenerated > ago(queryperiod)
      | mv-expand AssignedRoles
      | where AssignedRoles matches regex 'Admin'
      | summarize by tolower(AccountUPN));
  Audit logs
  | where TimeGenerated > ago(queryfrequency)
  | where Category =~ "UserManagement"
  | where ActivityDisplayName in (security_info_actions)
  | extend Initiator = tostring(InitiatedBy.user.userPrincipalName)
  | extend IP = tostring(InitiatedBy.user.ipAddress)
  | extend Target = 
tolower(tostring(TargetResources[0].userPrincipalName))
  | where Target in (VIPUsers)

의심스러운 ID 및 변칙

Log Analytics 또는 Sentinel(Microsoft Entra ID에서 원본으로 제공된 로그)을 사용하여 의심스러운 ID 및 변칙을 검색합니다.

SigninLogs
    | where UserId == "x"
    | extend deviceId_ = tostring(DeviceDetail.deviceId)
    | extend displayName_ = tostring(DeviceDetail.displayName)
    | extend city_ = tostring(LocationDetails.city)
    | extend countryOrRegion_ = tostring(LocationDetails.countryOrRegion)
    | summarize min(TimeGenerated), max(TimeGenerated) by IPAddress, ResultDescription, deviceId_, displayName_, city_, countryOrRegion_, AppDisplayName

참고 항목

비정상적인 토큰 검색에서 볼 수 있듯이 모든 Microsoft Entra 활동 생성 경고에 SigninLogs에 해당 항목이 있는 것은 아닙니다. OfficeActivity 및 AuditLogs같은 다른 테이블을 확인하는 것이 좋습니다.

OfficeActivity
    | where UserId == "x"
    | summarize min(TimeGenerated), max(TimeGenerated) by ClientIP, OfficeWorkload

Microsoft Defender XDR의 CloudAppEvents 테이블 활동

이 메서드의 사용은 로깅 설정에 따라 달라집니다.

M365D AH
CloudAppEvents
| where AccountId == "x"
| summarize min(Timestamp), max(Timestamp) by IPAddress, CountryCode, City, Application

CloudAppEvents는 클라우드용 Microsoft Defender 앱에서 다루는 다양한 클라우드 앱 및 서비스의 활동에 대한 정보를 포함하는 고급 헌팅 스키마를 설명합니다.

AuditLogs, AzureActivity, AzureDevOpsAuditing 및 CloudAppEvents의 악의적인 작업

공격자가 액세스한 ID 문서, 코드, 리포지토리 등을 확인합니다. 다음 SharePoint 예제에 설명된 대로 중요한 정보 또는 하드 코딩된 자격 증명에 대한 항목을 검토합니다.

OfficeActivity
    | where OfficeWorkload contains "SharePoint" (or other)
    | where ClientIP == "bad IP"
    | project TimeGenerated, Operation, OfficeObjectId

디바이스 조사 검사 목록

디바이스 동작을 기록하는 로그를 조사합니다. 다음과 같은 경우 의심스러운 디바이스 활동이 있습니다.

  • Microsoft Defender 포털:
    • 디바이스에 토큰 도난 관련 경고가 있습니다. 디바이스 ID 검색: AlertId에서 AlertInfo 조인| 여기서 DeviceId는 x입니다.
    • PRT(기본 새로 고침 토큰)에 액세스하려고 시도합니다.
    • 사용자가 의심스러운 앱, 확장을 설치했거나 최근에 의심스러운 웹 사이트로 검색했습니다. 의심스러운 프로세스 또는 파일에 대한 엔드포인트용 Microsoft Defender 경고를 검색합니다. 경고에는 의심스러운 작업이 포함될 수 있습니다. 알려진 새로운 위협의 이식 프로세스, 프로세스 이름, 프로세스 동작, 서비스 시작 또는 예약된 작업 활동. 가능한 C2 통신의 경우 가능한 명령 및 제어 작업을 사용합니다.
    • 엔드포인트용 Microsoft Defender 경고 조사에서는 네트워크에 영향을 주는 경고를 조사하고, 경고의 의미를 이해하고, 해결하는 방법을 설명합니다.
  • 고급 헌팅:
    • 디바이스에 의심스러운 프로세스에서 나가는 네트워크 연결이 있습니다. 트리거 창에서 비정상적인 나가는 활동을 찾습니다.
    • 의심스러운 활동을 수행한 로컬 계정

자세히 보기:

네트워크에서 디바이스 격리

디바이스를 포함합니다. 디바이스에서 응답 작업을 수행하는 엔드포인트용 Microsoft Defender 디바이스를 격리하거나 조사 패키지를 수집하여 감지된 공격에 신속하게 대응하는 방법을 설명합니다.

공격자가 액세스하는 데이터

데이터 손실은 데이터 파기 또는 누출입니다. 공격자가 액세스한 내용과 데이터 민감도를 알아보세요. SharePoint, OneNote, Azure DevOps를 조사합니다. 자격 증명을 회전합니다.

데이터 손실 절차

회사 데이터에 대한 공격자 액세스에 대한 재해 복구 계획의 지침을 사용합니다. 다음 지침을 사용하여 데이터 손실을 방지하고 재해 복구 계획을 개선하거나 만들 수 있습니다.

영향을 받는 기타 사용자 또는 디바이스: 전체 환경

전체 환경에 대한 손상 지표를 쿼리합니다. 예를 들어 영향을 받는 디바이스가 더 많이 있습니다. 영향을 받는 사용자 및 디바이스를 검색하도록 반복합니다.

포함 상태

하나 이상의 사용자, 디바이스, 애플리케이션 또는 워크로드 ID가 악의적이거나 손상된 것으로 확인되면 공격자를 포함하기 위한 조치를 취해야 합니다. 손상된 경우 애플리케이션의 자격 증명을 즉시 롤하거나 삭제하지 않을 수 있습니다.

경우에 따라 공격에 즉시 대응하는 것보다 공격자 세부 정보를 수집하는 것이 더 중요합니다. 다음 지침의 순서를 고려하는 것이 좋습니다. 이 예제에서 포함 또는 완화는 정보 수집보다 우선 순위가 지정됩니다.

Important

사용자 또는 디바이스 계정을 사용하지 않도록 설정하여 보안 및 비즈니스 효과를 확인합니다. 너무 큰 경우 복구 스테이지로 이동하는 것이 좋습니다.

포함 작업 목록

  1. 위반이 의심되는 계정 또는 계정 암호가 검색된 경우 암호를 변경합니다.

  2. 사용자를 차단합니다. Microsoft Entra ID 에서 사용자 액세스 취소는 손상된 계정, 직원 종료 및 기타 내부자 위협을 포함하는 시나리오에서 사용자에 대한 모든 액세스를 취소하는 방법을 설명합니다.

  3. Microsoft Entra ID 보호 또는 유사한 기능에서 관련 계정을 손상됨으로 표시합니다.

  4. 공격자 IP 주소를 차단합니다.

    공격자는 합법적인 VPN(가상 사설망)을 사용할 수 있으므로 IP 주소를 변경할 때 더 많은 위험을 초래할 수 있습니다. 클라우드 인증을 사용하는 경우 클라우드용 Defender 앱 또는 Microsoft Entra ID에서 IP 주소를 차단합니다. 페더레이션된 경우 ADFS(Active Directory Federation Services) 앞의 방화벽 수준에서 IP 주소를 차단합니다.

  5. MFA 사용. Microsoft Entra 다단계 인증 을 사용하도록 설정하면 로그인 이벤트 중에 사용자에게 추가 형식의 식별을 요청하는 방법을 설명합니다.

  6. 사용자 및 로그인 위험에 대해 Microsoft Entra ID Protection을 사용하도록 설정합니다. 위험 정책: Microsoft Entra ID Protection 은 위험에 대한 응답을 자동화하고 사용자가 감지된 위험을 자체 수정할 수 있도록 하는 Microsoft Entra 조건부 액세스의 위험 정책을 설명합니다.

  7. 손상된 데이터 확인: 전자 메일, SharePoint, OneDrive, 앱 클라우드용 Microsoft Defender 앱 활동 필터는 활동을 검색하고 새 활동을 업데이트할 수 있습니다.

  8. 암호 위생을 유지 관리합니다. 암호 지침 백서는 최종 사용자 및 ID 관리자를 위한 암호 관리에 대한 권장 사항을 제공합니다.

  9. 영향을 받는 계정 및 디바이스를 검색하고 공격이 중지될 때까지 반복합니다.

복구

조사 및 포함 후 지침은 다음 섹션을 사용합니다.

수정 작업 목록

조사 및 봉쇄를 완료한 후 피해를 수정합니다.

  • 영향을 받는 사용자 및 디바이스 계정 사용 안 함
    • 현재 토큰 해지
    • 암호 재설정
  • 추가된 자격 증명 및/또는 디바이스 사용 안 함
    • 감염된 디바이스 수정
  • 의심스러운 전자 메일 규칙 사용 안 함
  • 손상된 권한 있는 계정의 변경 내용 롤백

추가된 자격 증명 및 디바이스 삭제

영향을 받는 계정을 다시 사용하도록 설정하기 전에 다음 지침을 사용합니다. Microsoft Entra 인증 방법 Graph API를 사용하여 추가된 자격 증명을 삭제합니다.

사용자 전자 메일 인증 방법을 삭제하려면 다음 Graph 호출을 실행합니다.

DELETE /users/{id | userPrincipalName}/authentication/emailMethods/{id}

또는 추가된 인증자 인증 방법 실행을 삭제합니다.

DELETE /users/{id | userPrincipalName}/authentication/microsoftAuthenticatorMethods/{microsoftAuthenticatorAuthenticationMethodId}

자세히 보기:

식별된 사용자 계정으로 등록된 디바이스를 삭제합니다. 다음 Graph API 호출을 사용합니다.

DELETE /devices/{id}
DELETE /devices(deviceId='{deviceId}')

공격자 액세스 데이터에 더 많은 자격 증명이 포함되어 있습니다.

Microsoft Purview를 사용하도록 설정한 경우 환경을 검색합니다. 손상된 계정과 함께 모든 자격 증명 엔터티 정의를 사용합니다. 다음 자격 증명 롤링 섹션에 설명된 대로 식별된 자격 증명을 롤합니다.

자세히 보기:

유출된 비밀 만료 및 회전

식별된 사용자 또는 디바이스 자격 증명과 연결된 비밀을 회전합니다.

사용자 환경에서 ID 보호

다음 문서에서는 ID 보안에 대한 자세한 정보를 제공합니다.

토큰 도난 근본 원인

경우에 따라 근본 원인을 검색할 수 없습니다. 근본 원인을 표시할 수 있는 세부 정보를 파생하려면 조사를 완료하는 것이 좋습니다. 복구 후에는 더 많은 조사 단계를 수행하여 근본 원인을 확인할 수 있습니다.

Microsoft 365 에서 배달된 악성 전자 메일을 조사하면 의심스러운 전자 메일 메시지를 찾고 조사하는 방법을 설명합니다.

다음 단계

*토큰 도난 wokflow 의사 결정 트리