불법 동의 허용 검색 및 수정

Microsoft Defender XDR Office 365 플랜 2의 기능을 무료로 사용해 볼 수 있다는 사실을 알고 계셨나요? Microsoft Defender 포털 평가판 허브에서 90일 Office 365용 Defender 평가판을 사용합니다. 여기에서 등록 및 평가판 조건에 대해 알아봅니 .

요약 Microsoft 365에서 불법 동의 허용 공격을 인식하고 수정하는 방법을 알아봅니다.

불법 동의 권한 부여 공격에는 공격자가 연락처 정보, 전자 메일 또는 문서 등의 데이터에 대한 액세스를 요청하는 Azure 등록 응용 프로그램을 만듭니다. 그런 다음 공격자는 최종 사용자가 피싱 공격을 통해 또는 신뢰할 수있는 웹 사이트에 불법 코드를 주입하여 해당 응용 프로그램에 데이터 액세스 권한을 부여하도록 속임수를 씁니다. 불법 애플리케이션에 동의가 부여되면 조직 계정 없이도 데이터에 대한 계정 수준 액세스 권한이 부여됩니다. 일반적인 수정 단계(예: 암호 재설정 또는 MFA(다단계 인증 필요))는 이러한 앱이 organization 외부에 있기 때문에 이러한 유형의 공격에 효과적이지 않습니다.

이러한 공격은 정보를 호출하는 엔터티가 사람이 아닌 자동화라고 가정하는 상호 작용 모델을 사용합니다.

중요

지금 앱에서 불법 동의 부여에 문제가 있다고 생각하십니까? Microsoft Defender for Cloud Apps OAuth 앱을 검색, 조사 및 수정하는 도구가 있습니다. 이 Defender for Cloud Apps 문서에는 위험한 OAuth 앱을 조사하는 방법을 간략하게 설명하는 자습서가 있습니다. OAuth 앱 정책을 설정하여 앱 요청 권한을 조사하고, 사용자가 이러한 앱에 권한을 부여하고, 이러한 권한 요청을 광범위하게 승인하거나 금지할 수도 있습니다.

감사 로그를 검색하여 이 공격의 IOC(손상 지표)라고도 하는 징후를 찾아야 합니다. 여러 Azure 등록 응용 프로그램 및 대규모 사용자를 포함하는 조직의 경우 가장 좋은 방법은 주 단위로 조직 동의 권한 부여를 검토하는 것입니다.

이 공격의 신호를 찾는 단계

  1. 에서 Microsoft Defender 포털을 https://security.microsoft.com 연 다음 감사를 선택합니다. 또는 https://security.microsoft.com/auditlogsearch에서 감사로 직접 이동하세요.

  2. 감사 페이지에서 Search 탭이 선택되어 있는지 확인한 다음, 다음 설정을 구성합니다.

    • 날짜 및 시간 범위
    • 활동: 모든 활동에 대한 결과 표시 가 선택되어 있는지 확인합니다.

    완료되면 Search 선택합니다.

  3. 활동 열을 선택하여 결과를 정렬하고 애플리케이션에 동의를 찾습니다.

  4. 목록에서 항목을 선택하여 활동의 세부 정보를 확인합니다. IsAdminConsent가 True로 설정되어 있는지 확인합니다.

참고

이벤트가 발생한 후 해당 감사 로그 항목이 검색 결과에 표시되려면 30분에서 24시간까지 걸릴 수 있습니다.

감사 로그에서 감사 레코드를 보존하고 검색할 수 있는 기간은 Microsoft 365 구독, 특히 특정 사용자에게 할당된 라이선스 유형에 따라 달라집니다. 자세한 내용은 감사 로그를 참조하세요.

값이 true이면 전역 관리자 액세스 권한이 있는 사용자가 데이터에 대한 광범위한 액세스 권한을 부여했을 수 있음을 나타냅니다. 이 값이 예기치 않은 경우 공격을 확인하는 단계를 수행합니다.

공격을 확인하는 방법

이전에 나열된 IOC 인스턴스가 하나 이상 있는 경우 추가 조사를 수행하여 공격이 발생했는지 확인해야 합니다. 다음 세 가지 방법 중 어느 것을 사용하여 공격을 확인할 수 있습니다.

  • Microsoft Entra 관리 센터 사용하여 애플리케이션 및 해당 사용 권한을 인벤토리합니다. 이 방법은 철저하지만 검사 많은 사용자가 있는 경우 한 번에 한 명의 사용자만 검사 수 있습니다.
  • PowerShell을 사용하는 인벤터리 응용 프로그램과 해당 사용 권한 이 방법은 최소한의 오버 헤드를 사용하는 가장 빠르고 철저한 방법입니다.
  • 사용자가 앱과 권한을 개별적으로 확인하고 조치를 위해 그 결과를 관리자에게 다시 보고합니다.

조직에서 액세스 권한이 있는 인벤터리 앱

사용자에 대한 앱 인벤토리를 지정하는 옵션은 다음과 같습니다.

  • Microsoft Entra 관리 센터.
  • PowerShell
  • 사용자가 자신의 애플리케이션 액세스를 개별적으로 열거하게 합니다.

Microsoft Entra 관리 센터 사용하는 단계

Microsoft Entra 관리 센터 사용하여 개별 사용자가 권한을 부여한 애플리케이션을 조회할 수 있습니다.

  1. 에서 https://entra.microsoft.comMicrosoft Entra 관리 센터 연 다음 ID>사용자 *모든 사용자>로 이동합니다. 또는 모든 사용자로> 직접 이동하려면 를 사용합니다.https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserManagementMenuBlade/~/AllUsers/menuId/
  2. 표시 이름 값을 클릭하여 검토할 사용자를 찾아 선택합니다.
  3. 열리는 사용자 세부 정보 페이지에서 애플리케이션을 선택합니다.

다음 단계에서는 사용자에게 할당된 앱과 애플리케이션에 있는 권한을 보여 줍니다.

사용자가 응용 프로그램에 액세스를 열거하도록 하는 단계

사용자가 https://myapps.microsoft.com(으)로 이동하여 해당 응용 프로그램에 대한 액세스를 검토할 수 있도록 합니다. 액세스 권한이 있는 모든 앱을 확인하고, 세부 정보를 볼 수 있습니다(액세스 범위 포함). 또는 의심스러운 앱이나 불법 앱에 대한 사용 권한을 해지할 수 있습니다.

PowerShell의 단계

불법 동의 허용 공격을 확인하는 가장 간단한 방법은 테넌시의 모든 사용자에 대한 모든 OAuth 동의 권한 부여 및 OAuth 앱을 하나의 .csv 파일에 덤프하는Get-AzureADPSPermissions.ps1실행하는 것입니다.

필수 구성 요소

  • Azure AD PowerShell 라이브러리가 설치됨
  • 스크립트가 실행되는 organization 전역 관리자 권한입니다.
  • 스크립트를 실행하는 컴퓨터에 대한 로컬 관리자 권한입니다.

중요

관리자 계정에 다단계 인증이 필요한 것이 좋습니다 . 이 스크립트는 MFA 인증을 지원합니다.

참고

Azure AD Powershell은 2024년 3월 30일에 사용 중단될 예정입니다. 자세한 내용은 사용 중단 업데이트를 참조하세요.

Microsoft Entra ID(이전의 Azure AD)와 상호 작용하려면 Microsoft Graph PowerShell로 마이그레이션하는 것이 좋습니다. Microsoft Graph PowerShell은 모든 Microsoft Graph API에 대한 액세스를 허용하며 PowerShell 7에서 사용할 수 있습니다. 일반적인 마이그레이션 쿼리에 대한 답변은 마이그레이션 FAQ를 참조하세요.

  1. 로컬 관리자 권한으로 스크립트를 실행하려는 컴퓨터에 로그인합니다.

  2. GitHub에서 찾기 쉬운 폴더로Get-AzureADPSPermissions.ps1스크립트를 다운로드하거나 복사합니다. 이 폴더는 "permissions.csv" 출력 파일을 작성해야 하는 위치이기도 합니다.

  3. 스크립트를 저장한 폴더에서 관리자 권한 PowerShell 세션을 엽니다.

  4. Connect-MgGraph cmdlet을 사용하여 디렉터리에 연결합니다.

  5. 이 PowerShell 명령을 실행합니다.

    .\Get-AzureADPSPermissions.ps1 | Export-csv -Path "Permissions.csv" -NoTypeInformation
    

스크립트가 Permissions.csv라는 파일 하나를 생성합니다. 다음 단계를 수행하여 불법 응용 프로그램 권한 부여를 찾습니다.

  1. ConsentType 열(G 열)에서 "AllPrinciples" 값을 검색합니다. AllPrincipals 권한을 사용하면 클라이언트 애플리케이션이 테넌트에서 모든 사람의 콘텐츠에 액세스할 수 있습니다. 네이티브 Microsoft 365 애플리케이션이 제대로 작동하려면 이 권한이 필요합니다. 이 권한을 가진 Microsoft가 아닌 모든 응용 프로그램은 신중하게 검토해야 합니다.

  2. 권한 열(F열)에서 위임된 각 애플리케이션이 콘텐츠에 대해 가지고 있는 권한을 검토합니다. "읽기" 및 "쓰기" 권한 또는 "모두" 권한을 찾고 적절하지 않을 수 있으므로 이러한 권한을 신중하게 검토합니다.

  3. 동의가 부여된 특정 사용자를 검토합니다. 높은 프로필 또는 높은 가치의 사용자에게 부적절한 동의가 부여된 경우 추가 조사를 수행해야 합니다.

  4. ClientDisplayName 열(C열)에서 의심스러운 앱을 찾습니다. 맞춤법이 잘못된 이름, 아주 밋밋한 이름 또는 해커 같은 이름을 사용 하는 앱은 신중하게 검토해야 합니다.

공격 범위 확인

애플리케이션 액세스 인벤토리를 완료한 후 감사 로그를 검토하여 위반의 전체 scope 확인합니다. 영향을 받는 사용자, 불법 응용 프로그램에서 조직에 액세스한 시간 프레임, 앱에 대한 사용 권한을 검색합니다. Microsoft Defender 포털에서 감사 로그를 검색할 수 있습니다.

중요

이 정보를 받으려면 공격 전에 사서함 감사관리자 및 사용자 활동에 대한 감사가 설정되어 있어야 합니다.

불법 권한이 있는 애플리케이션을 식별한 후에는 해당 액세스를 제거하는 여러 가지 방법이 있습니다.

  • 다음 단계를 수행하여 Microsoft Entra 관리 센터 애플리케이션의 권한을 취소할 수 있습니다.

    1. 에서 https://entra.microsoft.comMicrosoft Entra 관리 센터 연 다음 ID>사용자 *모든 사용자>로 이동합니다. 또는 모든 사용자로> 직접 이동하려면 를 사용합니다.https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserManagementMenuBlade/~/AllUsers/menuId/
    2. 표시 이름 값을 클릭하여 영향을 받는 사용자를 찾아 선택합니다.
    3. 열리는 사용자 세부 정보 페이지에서 애플리케이션을 선택합니다.
    4. 애플리케이션 페이지에서 이름 값을 클릭하여 불법 애플리케이션을 선택합니다.
    5. 열리는 할당 세부 정보 페이지에서 제거를 선택합니다.
  • Remove-MgOauth2PermissionGrant의 단계에 따라 PowerShell에서 OAuth 동의 부여를 취소할 수 있습니다.

  • Remove-MgServicePrincipalAppRoleAssignment의 단계에 따라 PowerShell을 사용하여 서비스 앱 역할 할당을 취소할 수 있습니다.

  • 영향을 받는 계정에 대한 로그인을 사용하지 않도록 설정하면 앱에서 계정의 데이터에 액세스할 수 없게 됩니다. 이 작업은 사용자 생산성에 적합하지는 않지만 공격 결과를 신속하게 제한하는 단기 수정이 될 수 있습니다.

  • organization 통합 애플리케이션을 끌 수 있습니다. 이 작업은 과감합니다. 사용자가 실수로 악의적인 앱에 대한 액세스 권한을 부여할 수 없더라도 모든 사용자가 모든 애플리케이션에 동의를 부여할 수 없습니다. 이 작업은 타사 애플리케이션의 사용자 생산성을 심각하게 손상하기 때문에 권장되지 않습니다. 통합 앱 설정 또는 해제의 단계에 따라 통합 앱을 끌 수 있습니다.

참고 항목