다음을 통해 공유


암호 스프레이 공격에 대한 경고 분류

적용 대상:

  • Microsoft Defender XDR

위협 행위자가 혁신적인 방법을 사용하여 대상 환경을 손상합니다. 견인력을 얻는 한 가지 유형의 공격은 공격자가 최소한의 노력으로 네트워크 내의 많은 계정에 액세스하는 것을 목표로 하는 암호 스프레이 공격입니다. 위협 행위자가 단일 계정에서 많은 암호를 시도하는 기존 무차별 암호 대입 공격과 달리 암호 스프레이 공격은 일반적으로 사용되는 암호 집합이 제한된 많은 계정의 올바른 암호를 추측하는 데 중점을 줍니다. 이 공격은 약하거나 쉽게 추측할 수 있는 암호를 가진 조직에 특히 효과적이며, 이로 인해 조직에 심각한 데이터 위반과 재정적 손실이 초래됩니다.

공격자는 자동화된 도구를 사용하여 일반적으로 사용되는 암호 목록을 사용하여 특정 계정 또는 시스템에 대한 액세스를 반복적으로 시도합니다. 공격자는 암호 스프레이 공격을 시작하기 위해 많은 VM(가상 머신) 또는 컨테이너를 만들어 합법적인 클라우드 서비스를 남용하는 경우가 있습니다.

이 플레이북은 의심스러운 동작이 암호 스프레이 공격을 나타내는 것으로 관찰되는 경우를 조사하는 데 도움이 됩니다. 이 가이드는 경고를 검토, 처리/관리하고 분류하는 SOC(보안 운영 센터) 및 IT 관리자와 같은 보안 팀을 위한 것입니다. 이 가이드는 경고를 TP(참 긍정) 또는 FP(가양성) 로 신속하게 분류하는 데 도움이 되며, TP의 경우 공격을 수정하고 보안 위험을 완화하기 위해 권장되는 조치를 취합니다.

이 가이드를 사용하는 의도된 결과는 다음과 같습니다.

  • 암호 스프레이 시도와 관련된 경고를 악의적인(TP) 또는 FP(가양성) 활동으로 식별했습니다.

  • 공격을 수정하는 데 필요한 조치를 취했습니다.

조사 단계

이 섹션에는 경고에 대응하고 추가 공격으로부터 organization 보호하기 위해 권장되는 조치를 취하는 단계별 지침이 포함되어 있습니다.

1. 보안 경고 조사

  • 경고가 표시된 로그인 시도가 의심스러운 위치에서 오는가요? 영향을 받는 사용자 계정에 대해 일반적인 위치가 아닌 다른 위치에서 로그인 시도를 확인합니다. 하나 이상의 사용자의 여러 로그인 시도가 유용한 지표입니다.

2. 의심스러운 사용자 활동 조사

  • 일반적이지 않은 속성이 있는 비정상적인 이벤트가 있나요? 비정상적인 ISP, 국가/지역 또는 도시와 같이 영향을 받은 사용자의 고유 속성은 의심스러운 로그인 패턴을 나타낼 수 있습니다.

  • 전자 메일 또는 파일 관련 활동이 눈에 띄게 증가합니까? 메일 액세스 시도 증가 또는 활동 보내기 또는 영향을 받는 사용자에 대한 SharePoint 또는 OneDrive에 파일 업로드 증가와 같은 의심스러운 이벤트는 검색할 몇 가지 징후입니다.

  • 실패한 로그인 시도가 여러 차례 있나요? 영향을 받는 사용자가 다양한 IP 및 지리적 위치에서 실패한 로그인 시도가 많으면 암호 스프레이 공격을 나타낼 수 있습니다.

  • 영향을 받은 사용자의 로그인 활동에서 ISP를 식별합니다. 동일한 ISP의 다른 사용자 계정에서 로그인 활동을 확인합니다.

  • 사용자 환경에서 최근 수정 사항을 검사합니다.

    • Exchange Online 권한, 메일 자동 전달, 메일 리디렉션과 같은 Office 365 애플리케이션의 변경 내용
    • PowerAutomate를 통한 자동화된 데이터 전송 구성과 같은 PowerApps 수정
    • Azure Portal 구독 변경과 같은 Azure 환경의 수정 사항
    • 중요한/기밀/회사 전용 콘텐츠가 있는 여러 사이트 또는 파일에 액세스하는 영향을 받는 사용자 계정과 같은 SharePoint Online 변경 내용
  • 여러 플랫폼 및 앱에서 짧은 시간 내에 발생하는 영향을 받은 계정의 활동을 검사합니다. 사용자의 계정 또는 다른 계정에 리소스를 할당한 후 전자 메일을 읽거나 보내는 데 소요된 사용자의 시간을 대조하는 것과 같은 활동 타임라인 검사 이벤트를 감사합니다.

3. 가능한 후속 공격 조사

공격자가 암호 스프레이 공격에 성공한 후 악의적인 활동을 수행하는 경우가 많기 때문에 영향을 받는 사용자 계정과 관련된 다른 공격에 대해 환경을 검사합니다. 다음과 같은 의심스러운 활동을 조사하는 것이 좋습니다.

  • MFA(다단계 인증) 관련 공격

    • 공격자는 MFA 피로 를 사용하여 조직이 시스템을 보호하기 위해 채택하는 이 보안 조치를 우회합니다. 영향을 받는 사용자 계정에 의해 발생한 여러 MFA 요청을 확인합니다.
    • 공격자는 테넌트 내의 다른 계정에 대해 MFA 보호를 사용하지 않도록 설정하여 상승된 권한으로 영향을 받는 사용자 계정을 사용하여 MFA 변조 를 수행할 수 있습니다. 영향을 받는 사용자가 수행한 의심스러운 관리자 활동을 확인합니다.
  • 내부 피싱 공격

고급 헌팅 쿼리

고급 헌팅 은 네트워크에서 이벤트를 검사하고 위협 지표를 찾을 수 있는 쿼리 기반 위협 헌팅 도구입니다.

이러한 쿼리를 사용하여 경고와 관련된 자세한 정보를 수집하고 활동이 의심스러운지 여부를 확인합니다.

다음 테이블에 액세스할 수 있는지 확인합니다.

이 쿼리를 사용하여 암호 스프레이 작업을 식별합니다.

IdentityLogonEvents
| where Timestamp > ago(7d)
| where ActionType == "LogonFailed"
| where isnotempty(RiskLevelDuringSignIn)
| where AccountObjectId == <Impacted User Account Object ID>
| summarize TargetCount = dcount(AccountObjectId), TargetCountry = dcount(Location), TargetIPAddress = dcount(IPAddress) by ISP
| where TargetCount >= 100
| where TargetCountry >= 5
| where TargetIPAddress >= 25

이 쿼리를 사용하여 경고된 ISP에서 다른 활동을 식별합니다.

CloudAppEvents
| where Timestamp > ago(7d)
| where AccountObjectId == <Impacted User Account Object ID>
| where ISP == <Alerted ISP>
| summarize count() by Application, ActionType, bin(Timestamp, 1h)

이 쿼리를 사용하여 영향을 받은 사용자의 로그인 패턴을 식별합니다.

IdentityLogonEvents
| where Timestamp > ago(7d)
| where AccountObjectId == <Impacted User Account Object ID>
| where ISP == <Alerted ISP>
| where Application != "Active Directory"
| summarize SuccessCount = countif(ActionType == "LogonSuccess"), FailureCount = countif(ActionType == "LogonFailed") by ISP

이 쿼리를 사용하여 MFA 피로 공격을 식별합니다.

AADSignInEventsBeta
| where Timestamp > ago(1h)
//Error Code : 50088 : Limit on telecom MFA calls reached
//Error Code : 50074 : Strong Authentication is required.
| where ErrorCode in  ("50074","50088")
| where isnotempty(AccountObjectId)
| where isnotempty(IPAddress)
| where isnotempty(Country)
| summarize (Timestamp, ReportId) = arg_max(Timestamp, ReportId), FailureCount = count() by AccountObjectId, Country, IPAddress
| where FailureCount >= 10

이 쿼리를 사용하여 MFA 재설정 활동을 식별합니다.

let relevantActionTypes = pack_array("Disable Strong Authentication.","system.mfa.factor.deactivate", "user.mfa.factor.update", "user.mfa.factor.reset_all", "core.user_auth.mfa_bypass_attempted");
CloudAppEvents
AlertInfo
| where Timestamp > ago(1d)
| where isnotempty(AccountObjectId)
| where Application in ("Office 365","Okta")
| where ActionType in (relevantActionTypes)
| where RawEventData contains "success"
| project Timestamp, ReportId, AccountObjectId, IPAddress, ActionType



CloudAppEvents
| where Timestamp > ago(1d)
| where ApplicationId == 11161 
| where ActionType == "Update user." 
| where isnotempty(AccountObjectId)
| where RawEventData has_all("StrongAuthenticationRequirement","[]")
| mv-expand ModifiedProperties = RawEventData.ModifiedProperties
| where ModifiedProperties.Name == "StrongAuthenticationRequirement" and ModifiedProperties.OldValue != "[]" and ModifiedProperties.NewValue == "[]"
| mv-expand ActivityObject = ActivityObjects
| where ActivityObject.Role == "Target object"
| extend TargetObjectId = tostring(ActivityObject.Id)
| project Timestamp, ReportId, AccountObjectId, ActivityObjects, TargetObjectId

이 쿼리를 사용하여 영향을 받는 사용자가 만든 새 전자 메일 받은 편지함 규칙을 찾습니다.

CloudAppEvents
| where AccountObjectId == <ImpactedUser>
| where Timestamp > ago(21d)
| where ActionType == "New-InboxRule"
| where RawEventData.SessionId in (suspiciousSessionIds)

이 경고와 연결된 활동이 악의적인 것으로 확인되면 해당 경고를 TP로 분류하고 수정을 위해 다음 작업을 수행합니다.

  1. 사용자의 계정 자격 증명을 다시 설정합니다.
  2. 손상된 계정의 액세스 토큰을 취소합니다.
  3. Microsoft Authenticator에서 숫자 일치를 사용하여 MFA 피로 공격을 완화합니다.
  4. 최소 권한 원칙을 적용합니다. 작업을 완료하는 데 필요한 최소 권한이 있는 계정을 Create.
  5. 아티팩트가 전자 메일과 관련된 경우 보낸 사람의 IP 주소 및 도메인에 따라 차단을 구성합니다.
  6. 조사 중에 악성으로 식별된 URL 또는 IP 주소(네트워크 보호 플랫폼)를 차단합니다.

참고 항목

더 자세히 알아보고 싶으신가요? 기술 커뮤니티: Microsoft Defender XDR Tech Community의 Microsoft 보안 커뮤니티와 Engage.