복합 감지

다음에서 지원:

복합 감지를 사용하면 한 규칙의 출력이 다른 규칙의 입력으로 작동하도록 규칙을 상호 연결할 수 있습니다. 이 기능을 사용하면 더 복잡하고 유연한 규칙을 만들 수 있습니다. 여러 데이터 소스와 기간에 걸쳐 이벤트를 상관 분석하고 분석함으로써 복합 감지는 격리된 이벤트 감지의 한계를 극복합니다.

복합 감지의 이점

  • 다단계 공격의 마스크 해제: 사이버 공격은 다면적이고 상호 연결되어 있는 경우가 많습니다. 복합 감지는 고립된 것으로 보이는 사고를 연결하여 공격 내러티브를 파악하는 데 도움이 됩니다. 예를 들어 복합 규칙은 초기 침해, 권한 에스컬레이션, 데이터 유출과 같은 전체 공격 시퀀스를 식별할 수 있습니다.

  • 경보 피로 완화: 소비자 규칙을 구현하여 중요 위협의 우선순위를 정하고 경보 피로를 완화합니다. 이러한 규칙은 입력 규칙에서 생성된 노이즈가 많은 알림을 통합하고 필터링하여 더 집중적인 대응을 지원하므로 영향력이 큰 인시던트의 우선순위를 정하고 알림 피로를 최소화하는 데 도움이 됩니다.

  • 감지 정확도 향상: UDM 이벤트, 기타 규칙 감지, 항목 정보, UEBA 발견 항목, 데이터 표의 통계를 결합하여 정확한 감지 로직을 만듭니다.

  • 복잡한 로직 간소화: 복잡한 감지 시나리오를 관리 가능하고, 상호 연결되어 있으며, 재사용 가능한 규칙으로 분류하여 개발 및 유지관리를 간소화합니다.

복합 감지 용어 및 개념

  • 감지: 규칙의 결과이며 알림이라고도 합니다.

  • 컴포지트: 하나의 규칙의 출력이 다음 규칙의 입력으로 사용되는 상호 연결된 규칙의 시리즈입니다. 예를 들어 복합 규칙 시퀀스 rule1 -> rule2 -> rule3에서 rule1에 의해 생성된 감지는 rule2에 전달되며, rule2은 이를 처리하여 새로운 감지를 생성합니다. 그런 다음 이러한 감지는 rule3에서 최종 출력을 생성하는 데 사용됩니다.

  • 입력 규칙: 감지가 다른 규칙의 입력으로 사용되는 규칙입니다. 모든 규칙은 입력 규칙으로 작동할 수 있으며, 특별한 지정이 필요하지 않습니다. 입력 규칙은 엔티티와 이벤트를 입력으로 사용합니다. 감지를 입력으로 사용하지 않습니다.

  • 컴포지트 규칙: 규칙 텍스트에서 감지를 입력으로 사용하는 규칙입니다. 복합 규칙에는 match 섹션이 있어야 합니다.

고급 개념

단일 이벤트 감지 규칙

Google SecOps에서는 단일 이벤트 복합 규칙을 허용하지 않습니다. 즉, 감지를 입력 소스로 사용하는 규칙에는 match 섹션이 있어야 합니다.

감지 지연 시간

일정 동작으로 인해 단일 이벤트 입력 규칙에만 복합 규칙을 작성하는 것이 좋습니다. 단일 이벤트 규칙은 거의 실시간으로 실행되므로 복합 규칙이 실행될 때 감지가 일반적으로 제공됩니다. 복합 규칙이 멀티 이벤트 규칙을 입력으로 사용하는 경우 입력 규칙이 복합 규칙의 예약된 실행 후에 실행될 위험이 있습니다. 이로 인해 복합 규칙에서 감지가 지연되거나 누락될 수 있습니다.

TestRule 및 Retrohunt

기존 감지를 사용하여 선택한 특정 규칙만 복합 규칙에서 테스트하거나 복합 규칙에 대해 RetroHunt를 실행합니다. 전체 컴포지트를 실행하려면 시퀀스의 첫 번째 규칙에서 retrohunt를 수동으로 시작하고 각 실행이 완료될 때까지 기다린 후 다음 규칙으로 진행해야 합니다.

규칙에 대한 테스트를 실행해도 감지가 데이터베이스에 유지되거나 기록되지 않으며, 복합 규칙에는 데이터베이스에 입력 감지가 있어야 합니다.

규칙에 대한 테스트를 실행해도 탐지가 데이터베이스에 유지되거나 기록되지 않습니다. 복합 규칙은 작동하려면 입력 감지가 데이터베이스에 있어야 하므로 TestRule을 사용하여 복합 규칙을 검증할 수 없습니다.

복합 규칙 구성

입력 규칙과 복합 규칙의 조합을 사용하여 복합 규칙을 만듭니다.

입력 규칙

입력 규칙은 복합 규칙의 기초입니다. 이러한 센서는 결합될 때 악의적인 활동을 나타내는 특정 이벤트나 조건을 감지합니다. 입력 규칙을 구성하려면 다음 단계를 따르세요.

  1. 새 규칙을 만들거나 기존 규칙을 재사용합니다.

  2. 알림을 사용 중지합니다. 이렇게 하면 이러한 입력 규칙에서 개별 알림이 생성되지 않습니다. 이 구성을 사용하면 전체 이벤트 체인을 평가하는 복합 규칙에서 생성된 더 중요한 알림의 우선순위를 지정할 수 있습니다.

  3. outcome 섹션을 사용하여 연결 규칙에 액세스할 수 있는 변수를 정의합니다.

다음 생산자 규칙 예시는 로그인 실패를 감지합니다.

rule failed_login {
  meta:

  events:
    $e.metadata.event_type = "USER_LOGIN"
    any $e.security_result.action = "BLOCK"

  outcome:
   $target_user = $e.target.user.userid

  condition:
    $e
}

이 규칙은 차단된 로그인을 식별하고 연결된 사용자를 제공합니다.

복합 규칙

감지를 사용하는 규칙을 작성하는 것은 소스와 사용 가능한 필드가 다르다는 점을 제외하고 UDM을 사용하는 규칙과 거의 동일합니다. 감지 필드를 참조하려면 detection 키워드를 소스로 사용하세요($eventname.detection.field1.field2).

detection 소스에서 사용할 수 있는 하위 필드는 컬렉션 리소스에서 확인할 수 있습니다.

다음은 컬렉션의 일반적인 필드입니다.

  • $d.detection.detection.rule_id

  • $d.detection.detection.detection_fields["match_var_name"]

  • $d.detection.detection.outcomes["outcome_name"]

다음 예시 규칙은 MFA가 없는 로그인, 열거, 유출을 감지합니다.

rule login_enumeration_exfiltration {
    meta:
description = "Detects when a user logs in without multifactor authentication (MFA) and then performs enumeration and exfiltration"
        rule_name = "Login Without MFA, Enumeration, Exfiltration"
        severity = "High"

    events:
     // Detection with name "Console Login Without MFA"
        // The affected user is saved as $target_user
        $login_without_mfa.detection.detection.rule_name = /Console Login Without MFA/
        $target_user = $login_without_mfa.detection.detection.outcomes["target_user"]

     // Any detection with a rule name containing 'enumeration'
     // The user performing enumeration is the user that logged in without mfa
        $enumeration.detection.detection.rule_name = /enumeration/ nocase
        $enumeration.detection.detection.outcomes["principal_users"] = $target_user

     // Any detection with the mitre tactic 'TA0010' (Exfiltration)
     // The user performing exfiltration is the user that logged in without mfa
        $exfiltration.detection.detection.rule_labels["tactic"] = "TA0010"
        $exfiltration.detection.detection.outcomes["principal_users"] = $target_user

    match:
     // Looks for detections over a 24 hour period
        $target_user over 24h

    condition:
     // All 3 must occur for a single user
        $login_without_mfa and $enumeration and $exfiltration
}

계층적 감지

복합 감지를 사용하면 계층적 감지 시스템을 만들 수 있습니다. 하위 수준 입력 규칙은 격리된 의심스러운 이벤트를 식별합니다. 그런 다음 상위 수준의 복합 규칙이 이러한 입력 규칙의 출력을 사용하여 시간, 항목, 데이터 소스 간에 상관관계를 파악합니다. 이 접근 방식을 사용하면 이 정보를 다른 소스의 데이터와 연관시켜 단일 이벤트 규칙에서 놓칠 수 있는 다단계 공격 패턴을 감지할 수 있습니다.

Google Security Operations는 최대 3단계의 구성을 지원하여 심층 감지 로직과 관리 가능한 복잡성 간의 균형을 제공합니다.

예를 들면 다음과 같습니다.

  • 수준 1: 입력 규칙이 개별 의심스러운 이벤트를 감지합니다. 예를 들어 로그인 실패 이벤트, 비정상적인 파일 액세스 등이 있습니다.

  • 수준 2: 복합 규칙이 수준 1 감지를 상호 연관시킵니다. 예를 들어 로그인 실패 이벤트 후 의심스러운 파일 액세스가 발생합니다.

  • 3단계: 고급 합성 규칙은 2단계 감지 및 기타 데이터를 결합하여 더욱 정교한 감지를 제공합니다. 예를 들어 인증에 관한 수준 2 감지와 사용 중인 기기의 보안 상태에 관한 수준 2 감지가 있습니다.

복합 규칙 작성 시 고려사항

하나 이상의 복합 규칙에 사용되는 입력 규칙을 업데이트하면 시스템에서 해당 입력 규칙의 새 버전을 자동으로 만듭니다. 이는 논리 업데이트 (condition, events, outcomes)와 메타데이터 업데이트 (이름, 설명, 심각도) 모두에 적용됩니다. 복합 규칙은 새 버전을 사용하여 계속 작동합니다. 업데이트된 입력 규칙과 다운스트림 복합 규칙을 테스트하여 의도한 동작을 확인하는 것이 좋습니다.

제한사항

복합 규칙에는 다음과 같은 제한사항이 있습니다.

감지 전용 규칙 및 항목 위험 점수

감지 전용 규칙 (감지 데이터만 소스로 사용하고 이벤트 또는 항목 데이터는 사용하지 않는 규칙)은 항목 위험 점수에 영향을 미치지 않습니다. 감지 전용 규칙에 설정된 위험 점수는 해당 규칙으로 생성된 감지에만 적용됩니다. 집계된 항목 위험 점수에 반영되지 않습니다.

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.