애플리케이션에 대한 Microsoft Entra 보안 운영 가이드
애플리케이션에는 보안 위반에 대한 공격 표면이 있으므로 애플리케이션을 모니터링해야 합니다. 사용자 계정만큼 자주 대상이 되지는 않지만 위반이 발생할 수 있습니다. 애플리케이션이 사용자 개입 없이 실행되는 경우가 많으므로 공격을 탐지하기가 더 어려울 수 있습니다.
이 문서에서는 애플리케이션 이벤트를 모니터링하고 경고하는 지침을 제공합니다. 다음을 보장하기 위해 정기적으로 업데이트됩니다.
악의적인 애플리케이션에서 부당하게 데이터에 액세스하지 못하도록 방지합니다.
악의적인 행위자가 애플리케이션을 손상시키지 못하도록 방지합니다.
새 애플리케이션을 더 안전하게 빌드하고 구성할 수 있게 인사이트를 수집합니다.
Microsoft Entra ID에서 애플리케이션이 작동하는 방식에 익숙하지 않은 경우 Microsoft Entra ID의 앱 및 서비스 주체를 참조하세요.
참고 항목
아직 Microsoft Entra 보안 운영 개요를 검토하지 않으셨다면 지금 검토해 보시기 바랍니다.
살펴볼 항목
응용 프로그램 로그에서 보안 인시던트를 모니터링할 때 다음 목록을 검토하여 정상적인 활동과 악의적인 활동을 구분합니다. 다음 이벤트에서는 보안 문제를 나타낼 수 있습니다. 각 항목은 문서에서 다룹니다.
일반 비즈니스 프로세스와 일정을 벗어나서 발생하는 모든 변경 사항
애플리케이션 자격 증명 변경
애플리케이션 권한
Microsoft Entra ID 또는 Azure RBAC(역할 기반 액세스 제어) 역할에 할당된 서비스 주체
높은 권한이 있는 권한이 부여된 애플리케이션
Azure Key Vault 변경 사항
최종 사용자의 애플리케이션 동의 부여
위험 수준에 따른 최종 사용자 동의 중지
애플리케이션 구성 변경
URI(Universal Resource Identifier) 변경 또는 비표준
애플리케이션 소유자 변경
로그아웃 URL 수정됨
살펴볼 위치
조사 및 모니터링에 사용하는 로그 파일은 다음과 같습니다.
Azure Portal에서 Microsoft Entra 감사 로그를 보고, CSV(쉼표로 구분된 값) 또는 JSON(JavaScript Object Notation) 파일로 다운로드할 수 있습니다. Azure Portal에는 모니터링과 경고를 더 효율적으로 자동화할 수 있는 다른 도구와 Microsoft Entra 로그를 통합하는 몇 가지 방법이 있습니다.
Microsoft Sentinel – SIEM(보안 정보 및 이벤트 관리) 기능을 사용하여 엔터프라이즈 수준에서 지능형 보안 분석이 가능합니다.
Sigma 규칙 - Sigma는 자동화된 관리 도구에서 로그 파일을 구문 분석하는 데 사용할 수 있는 규칙과 템플릿을 작성하기 위한 진화하는 개방형 표준입니다. 여기에 권장 검색 조건에 사용되는 Sigma 템플릿이 있는 경우 Sigma 리포지토리에 대한 링크를 추가했습니다. Microsoft에서는 Sigma 템플릿을 작성, 테스트 및 관리하지 않습니다. 대신 전 세계 IT 보안 커뮤니티에서 리포지토리와 템플릿을 만들고 수집합니다.
Azure Monitor - 다양한 조건에 대한 자동화된 모니터링 및 경고. 통합 문서를 만들거나 사용하여 다양한 원본의 데이터를 결합할 수 있습니다.
SIEM과 통합된 Azure Event Hubs- Azure Event Hubs 통합을 통해 Splunk, ArcSight, QRadar 및 Sumo Logic과 같은 다른 SIEM에 Microsoft Entra ID 로그를 통합할 수 있습니다.
클라우드용 Microsoft Defender 앱 – 앱을 검색 및 관리하고 앱과 리소스 전반에 걸쳐 관리하고 클라우드 앱의 규정 준수를 확인합니다.
Microsoft Entra ID Protection을 사용하여 워크로드 ID 보호 - 로그인 동작과 오프라인 손상 지표에서 워크로드 ID에 대한 위험을 감지합니다.
모니터링하고 경고하는 항목 대부분은 조건부 액세스 정책의 영향입니다. 조건부 액세스 인사이트 및 보고 통합 문서를 사용하여 로그인에 대한 하나 이상의 조건부 액세스 정책과 디바이스 상태를 포함한 정책 결과를 조사할 수 있습니다. 통합 문서를 사용하여 요약을 보고 일정 기간의 효과를 식별합니다. 통합 문서를 사용하여 특정 사용자의 로그인을 조사할 수 있습니다.
이 문서의 나머지 부분에서는 모니터링 및 경고와 관련된 권장 사항입니다. 위협 유형별로 구성되어 있습니다. 미리 빌드된 솔루션이 있는 경우 해당 솔루션에 연결하거나 표 다음에 샘플을 제공합니다. 그렇지 않으면 이전 도구를 사용하여 경고를 작성할 수 있습니다.
애플리케이션 자격 증명
많은 애플리케이션은 자격 증명을 사용하여 Microsoft Entra ID에서 인증합니다. 필요한 프로세스 외부에 추가된 다른 자격 증명은 해당 자격 증명을 사용하는 악의적인 행위자가 될 수 있습니다. 클라이언트 암호를 사용하는 대신 신뢰할 수 있는 기관에서 발급한 X509 인증서나 관리 ID를 사용하는 것이 좋습니다. 그러나 클라이언트 암호를 사용해야 하는 경우 예방 조치 모범 사례에 따라 애플리케이션을 안전하게 유지합니다. 애플리케이션 및 서비스 주체 업데이트는 두 개의 항목으로 감사 로그에 기록됩니다.
애플리케이션을 모니터링하여 긴 자격 증명 만료 시간을 식별합니다.
수명이 긴 자격 증명을 수명이 짧은 수명의 자격 증명으로 바꿉니다. 자격 증명이 코드 리포지토리에서 커밋되지 않고 안전하게 저장되는지 확인합니다.
모니터링 대상 | 위험 수준 | 위치 | 필터/하위 필터 | 참고 항목 |
---|---|---|---|---|
기존 애플리케이션에 추가된 자격 증명 | 높음 | Microsoft Entra 감사 로그 | Service-Core Directory, Category-ApplicationManagement 활동: Application-Certificates 및 비밀 관리 업데이트 -및- 활동: 서비스 주체 업데이트/애플리케이션 업데이트 |
자격 증명이 정상적인 업무 시간 또는 워크플로 외부에 추가되거나, 사용자 환경에서 사용되지 않는 유형으로 추가되거나, 서비스 주체를 지원하는 비SAML 흐름에 추가될 때 경고합니다. Microsoft Sentinel 템플릿 Sigma 규칙 |
수명이 정책에서 허용하는 것보다 긴 자격 증명. | 중간 | Microsoft Graph | 애플리케이션 키 자격 증명의 상태 및 종료 날짜 -및- 애플리케이션 암호 자격 증명 |
MS Graph API를 사용하여 자격 증명의 시작 및 종료 날짜를 확인하고 허용 수명보다 긴 자격 증명을 평가할 수 있습니다. 이 표 뒤에 나오는 PowerShell 스크립트를 참조하세요. |
다음과 같은 미리 빌드된 모니터링과 경고를 사용할 수 있습니다.
Microsoft Sentinel – 새 앱 또는 서비스 원칙 자격 증명이 추가되면 경고
Azure Monitor – Soligate 위험을 평가하는 데 도움이 되는 Microsoft Entra 통합 문서 - Microsoft Tech Community
클라우드용 Defender 앱 – 클라우드용 Defender 앱 이상 탐지 경고 조사 가이드
PowerShell - 자격 증명 수명을 확인하는 PowerShell 스크립트 샘플.
애플리케이션 권한
관리자 계정과 마찬가지로 권한 있는 역할을 애플리케이션에 할당할 수 있습니다. 앱에는 Microsoft Entra 역할(예: 사용자 관리자) 또는 Azure RBAC 역할(예: 청구 읽기 권한자)을 할당할 수 있습니다. 앱을 사용자 없이 백그라운드 서비스로 실행할 수 있으므로 애플리케이션에 권한이 있는 역할이나 권한이 부여할 때 면밀히 모니터링합니다.
역할에 할당된 서비스 주체
모니터링 대상 | 위험 수준 | 위치 | 필터/하위 필터 | 참고 항목 |
---|---|---|---|---|
Azure RBAC 역할 또는 Microsoft Entra 역할에 할당된 앱 | 높음에서 중간까지 | Microsoft Entra 감사 로그 | 유형: 서비스 주체 활동: "역할에 구성원 추가" 또는 "역할에 적격 구성원 추가" -또는- "역할에 범위가 지정된 구성원 추가" |
높은 권한이 있는 역할의 경우 위험이 높습니다. 낮은 권한이 있는 역할의 경우 위험은 중간입니다. 애플리케이션이 일반 변경 관리 또는 구성 절차를 벗어나서 Azure 역할 또는 Microsoft Entra 역할에 할당될 때마다 경고합니다. Microsoft Sentinel 템플릿 Sigma 규칙 |
높은 권한이 있는 권한이 부여된 애플리케이션
애플리케이션은 최소 권한 원칙을 따라야 합니다. 애플리케이션 권한을 조사하여 필요한지 확인합니다. 애플리케이션을 식별하고 권한 있는 권한을 강조 표시하는 데 도움이 되도록 앱 동의 부여 보고서를 만들 수 있습니다.
모니터링 대상 | 위험 수준 | 위치 | 필터/하위 필터 | 참고 항목 |
---|---|---|---|---|
".All"(Directory.ReadWrite.All) 권한 또는 광범위한 권한(Mail.)과 같은 높은 권한이 있는 권한이 부여된 앱 | 높음 | Microsoft Entra 감사 로그 | "서비스 주체에 앱 역할 할당 추가", - 여기서 - Target에서 중요한 데이터가 있는 API(예: Microsoft Graph) 식별 -및- AppRole.Value에서 높은 권한이 있는 애플리케이션 권한(앱 역할)을 식별합니다. |
".All"(Directory.ReadWrite.All) 권한 또는 광범위한 권한(Mail.)과 같은 광범위한 권한이 부여된 앱 Microsoft Sentinel 템플릿 Sigma 규칙 |
애플리케이션 권한(앱 역할) 또는 높은 권한이 있는 위임된 권한을 부여하는 관리자 | 높음 | Microsoft 365 포털 | "서비스 주체에 앱 역할 할당 추가", -여기서- Target에서 중요한 데이터가 있는 API(예: Microsoft Graph) 식별 "위임된 권한 부여 추가", -여기서- Target에서 중요한 데이터가 있는 API(예: Microsoft Graph) 식별 -및- DelegatedPermissionGrant.Scope에는 높은 권한이 포함됩니다. |
관리자가 애플리케이션에 동의하면 경고합니다. 특히 일반 작업 및 변경 절차를 벗어난 동의를 찾습니다. Microsoft Sentinel 템플릿 Microsoft Sentinel 템플릿 Microsoft Sentinel 템플릿 Sigma 규칙 |
Microsoft Graph, Exchange, SharePoint 또는 Microsoft Entra ID에 대한 권한이 애플리케이션에 부여됨 | 높음 | Microsoft Entra 감사 로그 | "위임된 권한 부여 추가" -또는- "서비스 주체에 앱 역할 할당 추가", -여기서- Target에서 중요한 데이터가 있는 API(예: Microsoft Graph, Exchange Online 등) 식별 |
이전 행에서와 같이 경고합니다. Microsoft Sentinel 템플릿 Sigma 규칙 |
다른 API에 대한 애플리케이션 권한(앱 역할)이 부여됨 | 중간 | Microsoft Entra 감사 로그 | "서비스 주체에 앱 역할 할당 추가", -여기서- Target에서 다른 API를 식별합니다. |
이전 행에서와 같이 경고합니다. Sigma 규칙 |
모든 사용자를 대신하여 높은 권한이 있는 위임된 권한이 부여됨 | 높음 | Microsoft Entra 감사 로그 | "위임된 권한 부여 추가", 여기서는 Target에서 중요한 데이터가 있는 API(예: Microsoft Graph) 식별, DelegatedPermissionGrant.Scope에는 높은 권한이 있는 권한이 포함됨, -및- DelegatedPermissionGrant.ConsentType은 "AllPrincipals"입니다. |
이전 행에서와 같이 경고합니다. Microsoft Sentinel 템플릿 Microsoft Sentinel 템플릿 Microsoft Sentinel 템플릿 Sigma 규칙 |
앱 권한을 모니터링하는 방법에 대한 자세한 내용은 위험한 OAuth 앱 조사 및 수정 자습서를 참조하세요.
Azure Key Vault
Azure Key Vault를 사용하여 테넌트의 비밀을 저장합니다. Key Vault 구성과 활동에 대한 변경 사항에 주의하는 것이 좋습니다.
모니터링 대상 | 위험 수준 | 위치 | 필터/하위 필터 | 참고 항목 |
---|---|---|---|---|
Key Vault에 액세스하는 방법, 시기 및 사용자 | 중간 | Azure Key Vault 로그 | 리소스 종류: Key Vault | 검색: 일반 프로세스와 시간을 벗어난 Key Vault 대한 액세스, Key Vault ACL에 대한 변경 사항. Microsoft Sentinel 템플릿 Sigma 규칙 |
Azure Key Vault를 설정한 후 로깅을 사용합니다. Key Vault에 액세스하는 방법과 시기를 참조하고 상태가 영향을 받는 경우 할당된 사용자 또는 이메일, 휴대전화, 텍스트 또는 Event Grid 알림을 통해 배포 목록에 알림을 보내도록 Key Vault에 경고를 구성합니다. 또한 Key Vault 인사이트를 사용하는 모니터링을 설정하면 Key Vault 요청, 성능, 실패 및 대기 시간의 스냅샷이 제공됩니다. Log Analytics에는 Key Vault를 선택한 다음, "모니터링" 아래에서 "로그"를 선택한 후에 액세스할 수 있는 Azure Key Vault에 대한 몇 가지 예제 쿼리도 있습니다.
최종 사용자 동의
모니터링 대상 | 위험 수준 | 위치 | 필터/하위 필터 | 참고 항목 |
---|---|---|---|---|
애플리케이션에 대한 최종 사용자 동의 | 낮음 | Microsoft Entra 감사 로그 | 활동: 애플리케이션에 동의/ConsentContext.IsAdminConsent = false | 검색: 높은 프로필 또는 높은 권한이 있는 계정, 앱에서 위험 수준이 높은 권한 요청, 의심스러운 이름(예: 일반적인 이름, 철자가 틀린 이름 등)이 있는 앱 Microsoft Sentinel 템플릿 Sigma 규칙 |
애플리케이션에 동의하는 행위는 악의적이지 않습니다. 그러나 의심스러운 애플리케이션을 찾는 새로운 최종 사용자 동의 부여를 조사합니다. 사용자 동의 작업을 제한할 수 있습니다.
동의 작업에 대한 자세한 내용은 다음 리소스를 참조하세요.
위험 기반 동의로 인해 중지된 최종 사용자
모니터링 대상 | 위험 수준 | 위치 | 필터/하위 필터 | 참고 항목 |
---|---|---|---|---|
위험 기반 동의로 인해 중지된 최종 사용자 동의 | 중간 | Microsoft Entra 감사 로그 | Core Directory/ApplicationManagement/애플리케이션에 동의 실패 상태 설명 = Microsoft.online.Security.userConsent BlockedForRiskyAppsExceptions |
위험으로 인해 동의가 중지될 때마다 모니터링하고 분석합니다. 검색: 높은 프로필 또는 높은 권한이 있는 계정, 앱에서 위험 수준이 높은 권한 요청 또는 의심스러운 이름(예: 일반적인 이름, 철자가 틀린 이름 등)이 있는 앱 Microsoft Sentinel 템플릿 Sigma 규칙 |
애플리케이션 인증 흐름
OAuth 2.0 프로토콜에는 여러 흐름이 있습니다. 애플리케이션에 권장되는 흐름은 빌드 중인 애플리케이션의 형식에 따라 달라집니다. 경우에 따라 애플리케이션에 제공되는 흐름 중에서 선택할 수 있습니다. 이러한 경우 일부 인증 흐름이 다른 인증 흐름보다 권장됩니다. 특히 사용자가 현재 암호 자격 증명을 애플리케이션에 노출해야 하므로 ROPC(리소스 소유자 암호 자격 증명)를 사용하지 마세요. 그런 다음, 애플리케이션은 자격 증명을 사용하여 ID 공급자에 대해 사용자를 인증합니다. 이 흐름이 권장되므로 대부분의 애플리케이션은 인증 코드 흐름 또는 PKCE(Proof Key for Code Exchange)를 사용하는 인증 코드 흐름을 사용해야 합니다.
ROPC가 제안되는 유일한 시나리오는 자동화된 애플리케이션 테스트입니다. 자세한 내용은 자동화된 통합 테스트 실행을 참조하세요.
디바이스 코드 흐름은 입력이 제한된 디바이스에 사용되는 또 다른 OAuth 2.0 프로토콜 흐름이며 모든 환경에서 사용되지는 않습니다. 디바이스 코드 흐름이 환경에 나타나고 입력 제한 디바이스 시나리오에서 사용되지 않는 경우 잘못 구성된 애플리케이션 또는 잠재적으로 악의적인 항목에 대해 더 많은 조사가 보장됩니다. 조건부 액세스에서 디바이스 코드 흐름을 차단하거나 허용할 수도 있습니다. 자세한 내용은 조건부 액세스 인증 흐름을 참조하세요.
다음 구성을 사용하여 애플리케이션 인증을 모니터링합니다.
모니터링 대상 | 위험 수준 | 위치 | 필터/하위 필터 | 참고 항목 |
---|---|---|---|---|
ROPC 인증 흐름을 사용하는 애플리케이션 | 중간 | Microsoft Entra 로그인 로그 | 상태 = 성공 Authentication Protocol-ROPC |
자격 증명을 캐시하거나 저장할 수 있으므로 이 애플리케이션에 높은 수준의 신뢰가 적용됩니다. 가능하면 더 안전한 인증 흐름으로 이동합니다. 애플리케이션의 자동화된 테스트에만 사용해야 합니다. 자세한 내용은 Microsoft ID 플랫폼 및 OAuth 2.0 리소스 소유자 암호 자격 증명을 참조하세요. Sigma 규칙 |
디바이스 코드 흐름을 사용하는 애플리케이션 | 낮음에서 중간까지 | Microsoft Entra 로그인 로그 | 상태 = 성공 Authentication Protocol-Device Code |
디바이스 코드 흐름은 일부 환경에만 있을 수 있는 입력 제한 디바이스에 사용됩니다. 성공적인 디바이스 코드 흐름이 필요 없이 표시되면 유효성을 조사합니다. 자세한 내용은 Microsoft ID 플랫폼 및 OAuth 2.0 디바이스 권한 부여 흐름을 참조하세요. Sigma 규칙 |
애플리케이션 구성 변경
애플리케이션 구성 변경 사항 모니터링 특히 URI(Uniform Resource Identifier), 소유권 및 로그아웃 URL에 대한 구성이 변경됩니다.
허상 URI 및 리디렉션 URI 변경
모니터링 대상 | 위험 수준 | 위치 | 필터/하위 필터 | 참고 항목 |
---|---|---|---|---|
허상 URI | 높음 | Microsoft Entra 로그 및 애플리케이션 등록 | Service-Core Directory, Category-ApplicationManagement 활동: 애플리케이션 업데이트 성공 – AppAddress 속성 이름 |
예를 들어 더 이상 존재하지 않거나 명시적으로 소유하지 않은 도메인 이름을 가리키는 짝이 맞지 않는 URI를 찾습니다. Microsoft Sentinel 템플릿 Sigma 규칙 |
리디렉션 URI 구성 변경 | 높음 | Microsoft Entra 로그 | Service-Core Directory, Category-ApplicationManagement 활동: 애플리케이션 업데이트 성공 – AppAddress 속성 이름 |
HTTPS*를 사용하지 않는 URI, 와일드카드가 URL의 끝 또는 도메인에 있는 URI, 애플리케이션에 고유하지 않은 URI, 제어하지 않는 도메인을 가리키는 URI를 찾습니다. Microsoft Sentinel 템플릿 Sigma 규칙 |
이러한 변경 사항이 검색되면 경고합니다.
추가, 수정 또는 제거된 AppID URI
모니터링 대상 | 위험 수준 | 위치 | 필터/하위 필터 | 참고 항목 |
---|---|---|---|---|
AppID URI 변경 | 높음 | Microsoft Entra 로그 | Service-Core Directory, Category-ApplicationManagement 작업: 업데이트 애플리케이션 활동: 서비스 주체 업데이트 |
URI 추가, 수정 또는 제거와 같은 AppID URI 수정 사항을 찾습니다. Microsoft Sentinel 템플릿 Sigma 규칙 |
승인된 변경 관리 절차를 벗어난 이러한 변경 사항이 검색되면 경고합니다.
새 소유자
모니터링 대상 | 위험 수준 | 위치 | 필터/하위 필터 | 참고 항목 |
---|---|---|---|---|
애플리케이션 소유권 변경 | 중간 | Microsoft Entra 로그 | Service-Core Directory, Category-ApplicationManagement 활동: 애플리케이션에 소유자 추가 |
일반 변경 관리 작업을 벗어나서 애플리케이션 소유자로 추가되는 사용자의 인스턴스를 찾습니다. Microsoft Sentinel 템플릿 Sigma 규칙 |
수정되거나 제거된 로그아웃 URL
모니터링 대상 | 위험 수준 | 위치 | 필터/하위 필터 | 참고 항목 |
---|---|---|---|---|
로그아웃 URL 변경 사항 | 낮음 | Microsoft Entra 로그 | Service-Core Directory, Category-ApplicationManagement 활동: 애플리케이션 업데이트 -및- 활동: 서비스 주체 업데이트 |
로그아웃 URL에 대한 수정 사항을 찾습니다. 빈 항목 또는 존재하지 않는 위치에 대한 항목이 있으면 사용자가 세션을 종료할 수 없습니다. Microsoft Sentinel 템플릿 Sigma 규칙 |
리소스
GitHub Microsoft Entra 도구 키트 - https://github.com/microsoft/AzureADToolkit
Azure Key Vault 보안 개요 및 보안 지침 - Azure Key Vault 보안 개요
Solorgate 위험 정보 및 도구 - Solorigate 위험에 액세스하는 데 도움이 되는 Microsoft Entra 통합 문서
OAuth 공격 감지 지침 - OAuth 앱에 비정상적인 자격 증명 추가
SIEM에 대한 Microsoft Entra 모니터링 구성 정보 - Azure Monitor 통합이 포함된 파트너 도구