Claude Platform Docs
관리Security posture

Security posture 변경 사항 감지하기

SIEM에서 Security posture 활동에 대한 샘플 감지 규칙으로 시작하세요. 위험 수용, 실패로 진술된 통제, 예상치 못한 편집자, 단시간에 집중된 변경, 자동으로 종료되는 진술을 다룹니다.

이 샘플 규칙은 Compliance API Activity Feed가 기록하는 활동을 사용하여 조직의 Security posture에서 발생한 변경 사항에 대해 경보를 보냅니다. 이 규칙들은 SIEM으로 이벤트 전송하기에서 설명하는 대로 “security information and event management”(보안 정보 및 이벤트 관리), 즉 SIEM 시스템에 이러한 활동이 저장되어 있다고 가정합니다.

규칙을 작성하기 전에

각 규칙은 평이한 설명과, 특정 쿼리 언어에 국한되지 않은 쿼리로 구성됩니다.

  • 쿼리는 Activity Feed의 필드 이름과 함께, 활동을 저장한 시점을 가리키기 위해 이 페이지에서 사용하는 이름인 stored_at을 사용합니다. 그 밖의 이름은 어떤 이름이든 직접 관리하는 목록이나 별칭입니다.
  • 규칙이 활동 수를 세기 전에 id 기준으로 활동의 중복을 제거하세요.
  • 활동은 늦게 도착할 수 있으므로, 규칙에 달리 명시되어 있지 않은 한 각 규칙은 마지막으로 완료된 실행 이후의 기간에 걸쳐 created_at이 아닌 stored_at 기준으로 실행하세요. 쿼리에서는 이 기간이 생략되어 있습니다.
  • 규칙은 저장한 활동을 근거로 발동하도록 작성하고, 저장하지 않은 활동을 근거로 발동하도록 절대 작성하지 마세요. 그러한 활동은 늦게 도착하는 중일 수도 있고, 피드가 기록하지 않는 변경일 수도 있습니다. 저장된 활동을 현재 결과와 비교하려면 이벤트를 결과와 대조하기를 참조하세요.

진술 규칙

이 다섯 가지 규칙은 org_security_control_attestation_updated 활동을 읽습니다.

위험이 수용됨

누군가 보안 통제를 충족하지 못하는 위험을 수용(accepted_risk)하면, 두 번째 사람이 그 결정을 검토할 수 있도록 경보를 보냅니다.

type == "org_security_control_attestation_updated"
AND status == "accepted_risk"
AND actor.type != "system_actor"

이 규칙은 system_actor를 제외합니다. 종료된 진술(lapsed)과 같은 자동 변경은 status를 유지하지만 수용은 아니기 때문입니다.

통제가 실패로 진술됨

누군가 통제를 실패(control_failed)로 진술하면, 누군가 해당 통제에 대해 후속 조치를 할 수 있도록 경보를 보냅니다.

type == "org_security_control_attestation_updated"
AND status == "control_failed"
AND actor.type != "system_actor"

이 규칙은 위험이 수용됨과 같은 이유로 system_actor를 제외합니다.

허용 목록에 없는 사람이 진술을 변경함

진술을 관리하는 사람의 목록에 없는 사람이 진술을 기록, 변경, 다시 저장 또는 해제하면 경보를 보냅니다. 이 사람들의 user_id 값(allowed_user_ids)은 SIEM에 보관하세요.

type == "org_security_control_attestation_updated"
AND actor.type != "system_actor"
AND NOT (actor.type == "user_actor" AND actor.user_id IN allowed_user_ids)
  • 목록에 있는 user_actor 또는 system_actor가 아닌 행위자라면 누구든 규칙을 발동시킵니다.
  • 목록의 고유 식별 기준으로 actor.user_id를 사용하세요. actor.email_address는 활동이 기록될 당시 해당 사람이 사용하던 주소입니다(SIEM과 상관 분석하기).

한 사람이 진술을 여러 번 변경함

한 사람이 짧은 시간 안에 조직에서 일반적인 수준보다 많은 진술 변경을 하면 경보를 보냅니다. 임계값 10과 1시간 기간은 예시입니다. 두 값 모두 조직의 실제 활동을 바탕으로 정하세요.

type == "org_security_control_attestation_updated"
AND actor.type == "user_actor"
| group by organization_uuid, actor.user_id over a sliding 1 hour of created_at
| where count(distinct id) >= 10
  • 규칙의 마지막 실행 이후 저장된 활동이 있는 그룹에 대해서만 경보를 보내고, 저장한 모든 활동을 대상으로 세세요. 그래야 늦게 도착한 활동이, 나머지 활동이 앞서 저장된 집중 변경 묶음에 합류할 수 있습니다.
  • created_at 기준으로 세면 수집 속도가 아니라 그 사람의 변경 속도를 측정하게 됩니다.

진술이 자동으로 종료됨

lapsed 활동은 해당 활동이 가리키는 통제를 검토하라는 신호로 취급하세요.

type == "org_security_control_attestation_updated"
AND action == "lapsed"

lapsed 활동은 통제의 검사 결과 또는 현재 값이 진술이 저장될 당시의 값과 달라졌다는 의미이며, 만료일(review_date)이 지났다는 의미가 아닙니다. 이 활동은 늦게 도착할 수 있습니다.

값이 바뀌어도 규칙이 계속 작동하도록 유지하기

이러한 필드 중 어느 필드에든 새로운 값이 나타날 수 있습니다.

  • 자동 변경은 actor.service의 값이 아니라 actor.type으로 식별하세요.
  • 규칙에 나열되지 않은 control, action 또는 status 값을 가진 활동을 버리지 마세요. 새로운 action 값이 수용을 기록할 수도 있습니다. 이벤트 참조를 참조하세요.

규칙 테스트하기

허용 목록 규칙이 발동하는 것을 확인하려면, 진술할 수 있으면서 목록에 없는 사람을 선택하세요. 그 사람에게 진술이 없고 그 결과에 아무도 의존하지 않는 통제에 진술하게 한 다음, 그 진술을 해제하게 하세요. 해제되기 전까지는 이 진술이 해당 통제의 결과를 바꿀 수 있습니다. 두 활동 모두 Activity Feed에 도달하기까지 시간이 걸릴 수 있습니다.

이러한 활동을 “Open Cybersecurity Schema Framework”(개방형 사이버 보안 스키마 프레임워크), 즉 OCSF 이벤트로 저장한다면, Security posture 이벤트를 OCSF에 매핑하기에서 해당 필드를 매핑합니다.

이 페이지가 도움이 되었나요?