Detection rules › Panther
Box event triggered by unknown or external user
An external user has triggered a box enterprise event.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Exfiltration | T1567 Exfiltration Over Web Service |
Rule body yaml
AnalysisType: rule
Filename: box_event_triggered_externally.py
RuleID: "Box.Event.Triggered.Externally"
DisplayName: "Box event triggered by unknown or external user"
Enabled: false
LogTypes:
- Box.Event
Tags:
- Box
- Exfiltration:Exfiltration Over Web Service
- Configuration Required
Reports:
MITRE ATT&CK:
- TA0010:T1567
Severity: Medium
Description: >
An external user has triggered a box enterprise event.
Reference: https://support.box.com/hc/en-us/articles/8391393127955-Using-the-Enterprise-Event-Stream
Runbook: >
Investigate whether this user's activity is expected.
SummaryAttributes:
- ip_address
Threshold: 10
DedupPeriodMinutes: 60
Tests:
- Name: Regular Event
ExpectedResult: false
Log:
{
"type": "event",
"additional_details": '{"key": "value"}',
"created_by":
{
"id": "12345678",
"type": "user",
"login": "cat@example.com",
"name": "Bob Cat",
},
"event_type": "DELETE",
}
- Name: Previewed Anonymously
ExpectedResult: true
Log:
{
"created_by": { "id": "2", "type": "user", "name": "Unknown User" },
"event_type": "PREVIEW",
"type": "event",
"ip_address": "1.2.3.4",
}
- Name: Missing Created By
ExpectedResult: false
Log: { "event_type": "PREVIEW", "type": "event", "ip_address": "1.2.3.4" }
Detection logic
Condition
event_type not in ["FAILED_LOGIN", "SHIELD_ALERT"]
created_by.id eq "2" or created_by.login is_not_null
This rule also runs imperative logic the parser cannot express as a filter; the conditions above are the structured part it could extract.
Exclusions
Top-level NOT(...) conjuncts: predicates this rule actively suppresses.
| Field | Kind | Excluded values |
|---|---|---|
event_type | in | FAILED_LOGIN, SHIELD_ALERT |
Indicators
Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.
| Field | Kind | Values |
|---|---|---|
created_by.id | eq |
|
created_by.login | is_not_null |
Output fields
Fields the rule emits when it matches. Chronicle authors list these in the outcome block; they appear on the detection and $risk_score drives alerting. Sentinel / Defender XDR rules build them up through project / summarize / extend stages. Sentinel maps these into alert fields via entityMappings and customDetails; Defender XDR custom detections surface them as alert fields directly.
| Field | Source |
|---|---|
login | created_by.login |