UEBA 카테고리의 위험 분석 개요
이 문서에서는 UEBA 카테고리의 위험 분석에 있는 규칙 집합, 필요한 데이터, 각 규칙 집합에서 생성된 알림을 조정하는 데 사용할 수 있는 구성에 대해 간략하게 설명합니다. 이러한 규칙 집합은 Google Cloud 데이터를 사용하여 Google Cloud환경에서 위협을 식별하는 데 도움이 됩니다.
규칙 집합 설명
다음 규칙 집합은 UEBA 카테고리의 위험 분석에서 사용할 수 있으며 감지된 패턴 유형에 따라 그룹화됩니다.
인증
- 기기에 대한 사용자의 신규 로그인: 사용자가 새 기기에 로그인했습니다.
- 사용자별 인증 이벤트 이상: 단일 사용자 항목에 이전 사용과 비교해서 최근에 이상 인증 이벤트가 발생했습니다.
- 기기별 인증 실패: 단일 기기 항목에 이전 사용과 비교해서 최근에 실패한 로그인 시도가 많습니다.
- 사용자별 인증 실패: 단일 사용자 항목에 이전 사용과 비교해서 최근에 실패한 로그인 시도가 많습니다.
네트워크 트래픽 분석
- 기기별 인바운드 바이트 이상: 이전 사용과 비교해서 최근에 단일 기기 항목에 상당한 양의 데이터가 업로드되었습니다.
- 기기별 아웃바운드 바이트 이상: 이전 사용과 비교해서 최근에 단일 기기 항목에서 상당한 양의 데이터가 다운로드되었습니다.
- 기기별 총 바이트 이상: 이전 사용과 비교해서 최근에 기기 항목이 상당한 양의 데이터를 업로드 및 다운로드했습니다.
- 사용자별 인바운드 바이트 이상: 이전 사용과 비교해서 최근에 단일 사용자 항목이 상당한 양의 데이터를 다운로드했습니다.
- 사용자별 총 바이트 이상: 이전 사용과 비교해서 최근에 사용자 항목이 상당한 양의 데이터를 업로드 및 다운로드했습니다.
- 사용자별 무차별 입력 공격 후 로그인 성공: 하나의 IP 주소에서 단일 사용자 항목이 특정 애플리케이션에 대해 인증 시도를 여러 번 실패한 후 성공적으로 로그인했습니다.
피어 그룹 기반 감지
새로 생성된 사용자의 로그인 이상 또는 과다: 최근에 생성된 사용자의 인증 활동에 이상이 있거나 활동이 과다합니다. 여기에는 AD 컨텍스트 데이터의 생성 시간이 사용됩니다.
새로 생성된 사용자의 의심스러운 활동 이상 또는 과다: 최근에 생성된 사용자의 활동에 이상이 있거나 활동이 과다합니다(HTTP 원격 분석, 프로세스 실행, 그룹 수정 등). 여기에는 AD 컨텍스트 데이터의 생성 시간이 사용됩니다.
의심스러운 작업
- 기기별 계정 생성 과다: 기기 항목에서 새 사용자 계정이 여러 개 생성되었습니다.
- 사용자별 알림 과다: 사용자 항목에 대해 바이러스 백신 또는 엔드포인트 기기의 보안 알림 수가 이전 패턴에 비해 상당히 많이 보고되었습니다(예: 연결 차단, 멀웨어 감지).
security_result.action
UDM 필드가BLOCK
으로 설정된 이벤트입니다.
데이터 손실 방지 기반 감지
- 데이터 무단 반출 기능의 프로세스 이상 또는 과다: 키로거, 스크린샷, 원격 액세스와 같은 데이터 무단 반출 기능과 관련된 프로세스의 활동에 이상이 있거나 활동이 과다합니다. 여기에는 VirusTotal의 파일 메타데이터 보강이 사용됩니다.
UEBA 카테고리의 위험 분석에 필요한 필수 데이터
이 섹션에서는 최적의 성능을 위해 각 규칙 집합 카테고리에 필요한 데이터를 자세히 설명합니다. UEBA 감지는 지원되는 모든 기본 파서와 함께 작동하도록 설계되었지만 다음 특정 데이터 유형을 사용하면 이점을 극대화할 수 있습니다. 지원되는 기본 파서의 전체 목록은 지원되는 로그 유형 및 기본 파서를 참고하세요.
인증
이러한 규칙 집합을 사용하려면 Azure AD 디렉터리 감사(AZURE_AD_AUDIT
) 또는 Windows 이벤트(WINEVTLOG
)에서 로그 데이터를 수집합니다.
네트워크 트래픽 분석
이러한 규칙 집합을 사용하려면 네트워크 활동을 캡처하는 로그 데이터를 수집합니다.
예를 들어 FortiGate(FORTINET_FIREWALL
), Check Point(CHECKPOINT_FIREWALL
), Zscaler(ZSCALER_WEBPROXY
), CrowdStrike Falcon(CS_EDR
), Carbon Black(CB_EDR
)과 같은 기기에서 수집합니다.
피어 그룹 기반 감지
이러한 규칙 집합을 사용하려면 Azure AD 디렉터리 감사(AZURE_AD_AUDIT
) 또는 Windows 이벤트(WINEVTLOG
)에서 로그 데이터를 수집합니다.
의심스러운 작업
이 그룹의 규칙 집합에는 각각 서로 다른 유형의 데이터가 사용됩니다.
기기 규칙 집합의 계정 생성 과다
이 규칙 집합을 사용하려면 Azure AD 디렉터리 감사(AZURE_AD_AUDIT
) 또는 Windows 이벤트(WINEVTLOG
)에서 로그 데이터를 수집합니다.
사용자 규칙 집합별 알림 과다
이 규칙 집합을 사용하려면 CrowdStrike Falcon(CS_EDR
), Carbon Black(CB_EDR
), Azure AD 디렉터리 감사(AZURE_AD_AUDIT
)에서 기록된 것과 같은 엔드포인트 활동 또는 감사 데이터를 캡처하는 로그 데이터를 수집합니다.
데이터 손실 방지 기반 감지
이러한 규칙 집합을 사용하려면 CrowdStrike Falcon(CS_EDR
), Carbon Black(CB_EDR
), SentinelOne EDR(SENTINEL_EDR
)에서 기록된 것과 같은 프로세스 및 파일 활동을 캡처하는 로그 데이터를 수집합니다.
이 카테고리의 규칙 집합은 metadata.event_type
값이 PROCESS_LAUNCH
, PROCESS_OPEN
, PROCESS_MODULE_LOAD
인 이벤트에 따라 달라집니다.
이 카테고리의 규칙 집합으로 반환된 알림 조정
규칙 제외를 사용해서 규칙 또는 규칙 집합으로 생성되는 감지 수를 줄일 수 있습니다.
규칙 제외 항목은 규칙 집합 또는 규칙 집합의 특정 규칙에서 이벤트 평가를 제외하는 데 사용되는 기준을 정의합니다. 감지 볼륨을 줄이는 데 도움이 되는 규칙 제외 항목을 하나 이상 만듭니다. 이를 수행하는 방법은 규칙 제외 항목 구성을 참조하세요.
UEBA 카테고리의 위험 분석 규칙의 예
다음 예시에서는 위험 점수가 100
보다 큰 항목 호스트 이름에서 감지를 생성하는 규칙을 만드는 방법을 보여줍니다.
rule EntityRiskScore {
meta:
events:
$e1.principal.hostname != ""
$e1.principal.hostname = $hostname
$e2.graph.entity.hostname = $hostname
$e2.graph.risk_score.risk_window_size.seconds = 86400 // 24 hours
$e2.graph.risk_score.risk_score >= 100
// Run deduplication across the risk score.
$rscore = $e2.graph.risk_score.risk_score
match:
// Dedup on hostname and risk score across a 4 hour window.
$hostname, $rscore over 4h
outcome:
// Force these risk score based rules to have a risk score of zero to
// prevent self feedback loops.
$risk_score = 0
condition:
$e1 and $e2
}
이 예시 규칙도 일치 섹션을 사용하여 자체 중복 삭제를 수행합니다. 규칙 감지가 트리거될 수 있지만 호스트 이름과 위험 점수가 4시간 이내에 변경되지 않으면 새 감지가 생성되지 않습니다.
항목 위험 점수 규칙에 사용 가능한 유일한 위험 기간은 24시간 또는 7일(각각 86,400 또는 604,800초)입니다. 규칙에 위험 기간 크기를 포함하지 않으면 규칙이 부정확한 결과를 반환합니다.
항목 위험 점수 데이터는 항목 컨텍스트 데이터와 별개로 저장됩니다. 규칙에서 둘 다 사용하려면 다음 예시에 표시된 것처럼 항목 컨텍스트와 항목 위험 점수 각각에 대해 하나씩 2개의 개별 항목 이벤트가 있어야 합니다.
rule EntityContextAndRiskScore {
meta:
events:
$log_in.metadata.event_type = "USER_LOGIN"
$log_in.principal.hostname = $host
$context.graph.entity.hostname = $host
$context.graph.metadata.entity_type = "ASSET"
$risk_score.graph.entity.hostname = $host
$risk_score.graph.risk_score.risk_window_size.seconds = 604800
match:
$host over 2m
outcome:
$entity_risk_score = max($risk_score.graph.risk_score.normalized_risk_score)
condition:
$log_in and $context and $risk_score and $entity_risk_score > 100
}
다음 단계
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.