규칙에 항목 위험 점수 지정

다음에서 지원:

이 문서에서는 규칙에서 항목 위험 점수를 사용하는 방법을 설명합니다. 규칙에서 항목 위험 점수는 항목 컨텍스트와 비슷한 방식으로 작동합니다. YARA-L 2.0 규칙을 작성하여 위험 점수를 기본 감지 방법으로 사용할 수 있습니다. 위험 분석 규칙에 대한 자세한 내용은 위험 분석 규칙 만들기를 참조하세요. 더 많은 위험 기반 컨텍스트에 대한 자세한 내용은 컨텍스트 인식 분석 만들기를 참조하세요.

항목 위험 점수를 검색하려면 항목을 UDM 이벤트에 조인하고 EntityRisk에서 지정된 필드를 검색합니다.

다음 예시에서는 위험 점수가 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, risk window, and score across a 4 hour window.
    $hostname, $rwindow, $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
}