Skip to content
Recommended Alerts

Recommended Alerts

Overview

Once Britive audit events flow into your SIEM (see SIEM overview), the next step is turning them into detections. This guide is a starter catalog of alerts worth configuring, organized by category. Each alert lists the Britive event types that drive it, why it matters, and a suggested trigger.

The event types referenced here are the actual event.eventType values Britive emits — use them as the primary filter field in your correlation rules.

The examples below were derived from a real Britive tenant audit export. All tenant-specific values — usernames, IP addresses, application names, transaction IDs — are intentionally excluded. Build your rules on event types and patterns, not on any single actor or resource.

Audit Event Schema

Every Britive audit record carries these fields. Map them in your SIEM parser before writing rules.

FieldUse in detections
timestampTime window / rate logic
actor.typeUser, ServiceIdentity, System User, SharedKey — pivot human vs. machine
actor.username, actor.display_namePer-identity correlation (treat as sensitive)
client.ipAddress, client.device, client.browser, client.platformGeo / impossible-travel / new-device logic
event.eventType, event.displayNamePrimary rule filter
event.additionalInfoEvent-specific context
target.applicationName, target.environmentNameScope alerts to sensitive apps/envs
result.success (true/false)Failure-rate and denial detections
result.messageReason text (e.g. step-up required, invalid credentials)

Severity Model

SeverityMeaning
🔴 HighLikely compromise, privilege abuse, or destructive config change — page on-call
🟠 MediumSuspicious or policy-relevant — review same day
🟡 LowInformational / baseline for hunting and trend dashboards

Authentication & MFA

AlertEvent typesTriggerSeverity
Repeated login failures (credential stuffing / brute force)authentication.login with result.success=false≥ 5 failures per actor.username or client.ipAddress in 10 min🟠 Medium
Successful login after repeated failuresauthentication.login failures followed by authentication.login / authentication.login.sso success, same actorSuccess within 15 min of a failure burst🔴 High
MFA factor lockedmfa.totp.factor.lockedAny occurrence🟠 Medium
Admin removed an MFA registrationmfa.registration.admin.deletedAny occurrence — possible MFA-reset social engineering🟠 Medium
Forced password update / forgot-password validation failuresauthentication.login.password.force.update, authentication.login.forgot.password.validation (success=false)Spike per actor🟡 Low
Login from new IP / geo for an actorauthentication.login, authentication.login.sso, cli.authentication.loginFirst-seen client.ipAddress or country for that actor.username🟠 Medium
CLI login spikecli.authentication.loginAnomalous volume per identity vs. 30-day baseline🟡 Low

result.message values like “Invalid username or password” and “Step up authentication required” are reliable signals — parse them, but alert on the event type + success flag, not free-text alone (messages can change between releases).


Privileged Access — Checkout / Checkin

Profile (access.*) and resource (resource.*) checkouts are the core of just-in-time access. Watch volume, failures, and off-hours patterns.

AlertEvent typesTriggerSeverity
Checkout request denied / step-up requiredaccess.checkout.request, resource.checkout.request (success=false)Repeated denials per actor (e.g. ≥ 5 / 15 min)🟠 Medium
Off-hours privileged checkoutaccess.checkout, resource.checkoutSuccessful checkout outside business hours / maintenance window🟠 Medium
Checkout of a high-value profile or environmentaccess.checkout, resource.checkouttarget.applicationName / target.environmentName in a crown-jewel watchlist🔴 High
Checkout volume anomalyaccess.checkout, resource.checkoutPer-actor count > N× 30-day baseline🟠 Medium
Repeated checkin failures (access not revoked)access.checkin, resource.checkin (success=false)Any sustained failures — JIT access may persist beyond intent🔴 High
Excessive access extensionsaccess.extend≥ 3 extensions on one session, or extensions concentrated on one actor🟡 Low
Admin profile checkinadmin.access.checkin, admin.resource.checkin.requestAny — admin-level sessions warrant tracking🟠 Medium
Approval withdrawn or repeatedly failingapproval.update (success=false), profile.access.approvalFailed/withdrawn approvals clustering on one approver or requester🟡 Low

Secrets

Secret reads are high-signal — they expose credential material.

AlertEvent typesTriggerSeverity
Bulk secret reads (possible exfiltration)secret.read≥ N reads per actor in a short window, or many distinct secrets read by one actor🔴 High
Secret file downloadsecret.read (displayName “Download secret file”)Any download of secret files; alert on volume🟠 Medium
Secret read failuressecret.read (success=false)Spike — probing for unauthorized secrets🟠 Medium
Secret deletedsecret.deleteAny — confirm change ticket🟠 Medium
Secret rotation failedsecret.rotate.failedAny failure — rotation gap leaves stale credentials🟠 Medium
Secret created / updatedsecret.create, secret.updateTrack for change correlation🟡 Low

Policy & Configuration Changes

Changes to who-can-access-what. Destructive ones are high severity.

AlertEvent typesTriggerSeverity
Policy deletedpolicy.deleteAny — especially bursts (bulk teardown)🔴 High
Policy created or updatedpolicy.create, policy.updateAny change to access policy; correlate to a change request🟠 Medium
Profile (PAP) permission grantspap.permissions.add, pap.update.scope, resource.profile.permission.addNew permission/scope added to a profile🟠 Medium
Identity added to a profilepap.identities.add, pap.tag.addNew principal granted profile access🟠 Medium
Profile deletedpap.delete, resource.profile.deleteAny — loss of access control object🟠 Medium
Resource permission changed/removedresource.permission.update, resource.permission.delete, resource.profile.permission.removeBursts or off-hours edits🟠 Medium
Managed permission changesmanaged.permission.create, managed.permission.deleteAny🟡 Low
Application or environment property changeapplication.update.properties, environment.update.properties, environments.disable, environments.deleteDisable/delete of an environment🔴 High
Broker pool / response template / resource-type changesbroker.pool.create, response.template.*, resource-type.create/update/deleteTrack infrastructure-level edits🟡 Low

Identity & Tag Lifecycle

AlertEvent typesTriggerSeverity
User created / deleted / disableduser.create, user.delete, user.disableBulk user deletion, or off-hours creation🟠 Medium
Tag membership changetag.add.identity, tag.remove.identityMembership change on a privileged tag (watchlist)🟠 Medium
Tag created / deletedtag.create, tag.deleteDeletion of a privileged tag🟠 Medium
Identity provider changedidentity.provider.create, identity.provider.deleteAny — IdP changes affect the whole trust chain🔴 High
SCIM attribute mapping changeuser.attribute.scim.mapping.add, scim.token.createAny🟡 Low

Service Identities & API Tokens

Non-human identities and tokens are common abuse paths — actor.type of ServiceIdentity or SharedKey deserves its own dashboards.

AlertEvent typesTriggerSeverity
Service identity created or updatedservice.identity.create, service.identity.update, service.identity.access.updateAny creation or privilege change🟠 Medium
Service identity deletedservice.identity.deleteAny🟡 Low
API token createdapi.token.createAny — new long-lived credential; correlate to owner🟠 Medium
API token revokedapi.token.revokeTrack; spike may indicate incident response or token churn🟡 Low
Service identity activity anomalyany access.* / resource.* / secret.read where actor.type = ServiceIdentityCheckout/secret access outside the SI’s normal pattern or hours🟠 Medium
Shared key usageany event where actor.type = SharedKeyBaseline and alert on unexpected use🟠 Medium

Scans & Operational Health

Mostly low-severity, but useful for hunting and to catch monitoring blind spots.

AlertEvent typesTriggerSeverity
Scan failures / timeoutsenvironment.scan (success=false), resource.scan.timed_outSustained failures — stale entitlement data🟡 Low
Account mapping changesenvironment.accounts.users.mapping, environment.accounts.users.unmappingBulk unmapping (access loss) or unexpected mapping🟡 Low
Scan settings changedresource.scan.settings.updateAny🟡 Low

Implementation Tips

Normalize the event type field

Map event.eventType to a single indexed field. All rules above key off it — consistent parsing is the foundation.

Build watchlists, not hardcoded values

Maintain lookup lists for crown-jewel target.applicationName / target.environmentName, privileged tags, and business hours. Reference the lists in rules so you never embed a specific tenant value in detection logic.

Pair failure spikes with the follow-on success

The highest-value detections chain a failure burst to a later success by the same actor.username (e.g. brute force → login, denied checkout → step-up → checkout). Use your SIEM’s sequence/correlation primitive, not two independent rules.

Baseline per identity

Volume alerts (checkouts, secret reads, CLI logins) need a per-actor baseline. Compute a rolling 30-day mean and alert on multiples, separating User from ServiceIdentity.

Keep actor and target values out of rule definitions

Treat usernames, IPs, and resource names as data, not config. This keeps detections portable across tenants and avoids leaking sensitive identifiers into rule exports.

Next Steps

Last updated on