Skip to content

Commit 51fe49d

Browse files
[island_browser][compromised_credential] Add island_browser compromised credential datastream (#15372)
The release includes compromised credential data stream, associated dashboards and visualizations. Island Browser fields are mapped to their corresponding ECS fields where possible. Test samples were derived from documentation.
1 parent 4e4f2b9 commit 51fe49d

File tree

46 files changed

+2502
-24
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+2502
-24
lines changed

packages/island_browser/_dev/build/docs/README.md

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,24 @@ The Island Browser integration is compatible with `v1` version of Island Browser
1212

1313
### How it works
1414

15-
This integration periodically queries the Island Browser API to retrieve details for devices and users, and audit events.
15+
This integration periodically queries the Island Browser API to retrieve details for devices, users and compromised credentials, and to log audit events.
1616

1717
## What data does this integration collect?
1818

1919
This integration collects log messages of the following types:
2020

2121
- `Audit`: Collects all timeline audits from the Island Browser via [Audit API endpoint](https://documentation.island.io/apidocs/get-all-timeline-audits-that-match-the-specified-simple-filter).
22+
- `Compromised Credential`: Collects a list of all compromised credentials from the Island Browser via [Compromised Credential API endpoint](https://documentation.island.io/apidocs/get-a-list-of-all-compromised-credentials).
2223
- `Device`: Collects a list of all devices from the Island Browser via [Device API endpoint](https://documentation.island.io/apidocs/get-a-list-of-all-devices-1).
2324
- `User`: Collects all the users from the Island Browser via [User API endpoint](https://documentation.island.io/apidocs/get-all-browser-users-that-match-the-specified-simple-filter).
2425

25-
>**Note:** Device and user data streams currently do not have an ILM policy applied. A policy will be introduced in an upcoming release. Until then, full sync will be performed, which may result in higher storage costs.
26-
2726
### Supported use cases
2827

29-
Integrating Island Browser User, Device, and Audit endpoint data with Elastic SIEM provides unified visibility into identity activity, device posture, and security events across the environment.
28+
Integrating Island Browser User, Device, Audit, and Compromised Credential endpoint data with Elastic SIEM provides unified visibility into identity activity, device posture, account exposure, and security events across the environment. This integration enables analysts to correlate user behavior, device health, and credential risks within a single view, strengthening both detection and response capabilities.
3029

31-
Dashboards track total and active users, login trends, and group distributions, alongside device insights such as active, archived, and jailbroken states, OS platform distribution, policy updates, browser update status, Windows license status, and MDM provider compliance.
30+
Dashboards track total and active users, login trends, and group distributions, alongside device insights such as active, archived, and jailbroken states, OS platform distribution, policy updates, browser update status, Windows license status, and MDM provider compliance. Compromised Credential visualizations highlight account risks with timelines of exposed records, unresolved credential counts, breach source breakdowns, and distributions by status. Additional charts surface top impacted domains and most affected users, enabling security teams to quickly assess exposure, prioritize remediation, and mitigate identity-based threats.
3231

33-
Audit visualizations further enhance oversight by showing event activity over time, verdicts and reasons, top rules, users, source IPs, event types, geographic distributions, and compatibility modes. Saved searches and tables consolidate essential attributes—including verified emails, device and host IDs, IPs, MACs, users, and organizations—adding valuable investigative context. Together, these insights enable analysts to monitor user behavior, track device health, analyze audit activity, detect anomalies, and strengthen compliance, identity management, and endpoint security oversight.
32+
Audit dashboards further enhance oversight by showing event activity over time, verdicts and reasons, top rules, users, source IPs, event types, geographic distributions, and compatibility modes. Saved searches and tables consolidate essential attributes—including verified emails, device and host IDs, IPs, MACs, users, and organizations—adding valuable investigative context. Together, these insights allow organizations to monitor user behavior, track device health, detect compromised accounts, analyze audit activity, and strengthen compliance, identity management, and endpoint security oversight.
3433

3534
## What do I need to use this integration?
3635

@@ -123,6 +122,10 @@ For more information on architectures that can be used for scaling this integrat
123122

124123
{{fields "audit"}}
125124

125+
#### Compromised Credential
126+
127+
{{fields "compromised_credential"}}
128+
126129
### Example event
127130

128131
#### User
@@ -137,6 +140,10 @@ For more information on architectures that can be used for scaling this integrat
137140

138141
{{event "audit"}}
139142

143+
#### Compromised Credential
144+
145+
{{event "compromised_credential"}}
146+
140147
### Inputs used
141148

142149
These inputs can be used in this integration:
@@ -150,3 +157,8 @@ This integration dataset uses the following APIs:
150157
- `User`: [Island Browser API](https://documentation.island.io/apidocs/get-all-browser-users-that-match-the-specified-simple-filter).
151158
- `Device`: [Island Browser API](https://documentation.island.io/apidocs/get-a-list-of-all-devices-1).
152159
- `Audit`: [Island Browser API](https://documentation.island.io/apidocs/get-all-timeline-audits-that-match-the-specified-simple-filter).
160+
- `Compromised Credential`: [Island Browser API](https://documentation.island.io/apidocs/get-a-list-of-all-compromised-credentials).
161+
162+
#### ILM Policy
163+
164+
To facilitate user and device data, source data stream-backed indices `.ds-logs-island_browser.user-*` and `.ds-logs-island_browser.device-*` are allowed to contain duplicates from each polling interval. ILM policy `logs-island_browser.user-default_policy` and `logs-island_browser.device-default_policy` is added to these source indices, so it doesn't lead to unbounded growth. This means that in these source indices data will be deleted after `30 days` from ingested date.

packages/island_browser/_dev/deploy/docker/files/config.yml

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -835,3 +835,130 @@ rules:
835835
"events": []
836836
}
837837
`}}
838+
- path: /api/external/v1/compromised-credentials
839+
methods: ['POST']
840+
request_body: /.*"limit":2,"offset":0,"sortBy":"CompromisedDate","sortDirection":"Asc".*/
841+
request_headers:
842+
Content-Type:
843+
- "application/json"
844+
Api-Key:
845+
- "xxxx"
846+
responses:
847+
- status_code: 200
848+
body: |
849+
{{ minify_json `
850+
{
851+
"compromisedCredentials": [
852+
{
853+
"breachSource": "Ransomware Attack - April 2025",
854+
"compromisedDate": "2024-09-13T00:00:00Z",
855+
"createdDate": "2024-09-21T09:46:00Z",
856+
"email": "john.doe364@enterprise.io",
857+
"id": "cc-10364-ae99d-20364",
858+
"impactedDomain": "enterprise.io",
859+
"status": "Unresolved",
860+
"tenantId": "tenant-005-tech",
861+
"updatedDate": "2024-09-21T14:40:00Z",
862+
"username": "john.doe364"
863+
},
864+
{
865+
"breachSource": "Data Leak - January 2025",
866+
"compromisedDate": "2024-09-14T00:00:00Z",
867+
"createdDate": "2024-10-03T04:41:00Z",
868+
"email": "emily.mitchell363@business.net",
869+
"id": "cc-10363-edb53-20363",
870+
"impactedDomain": "business.net",
871+
"status": "Investigating",
872+
"tenantId": "tenant-004-biz",
873+
"updatedDate": "2024-10-03T09:25:00Z",
874+
"username": "emily.mitchell363"
875+
}
876+
]
877+
}
878+
`}}
879+
- path: /api/external/v1/compromised-credentials
880+
methods: ['POST']
881+
request_body: /.*"limit":2,"offset":2,"sortBy":"CompromisedDate","sortDirection":"Asc".*/
882+
request_headers:
883+
Content-Type:
884+
- "application/json"
885+
Api-Key:
886+
- "xxxx"
887+
responses:
888+
- status_code: 200
889+
body: |
890+
{{ minify_json `
891+
{
892+
"compromisedCredentials": [
893+
{
894+
"breachSource": "Phishing Campaign - March 2025",
895+
"compromisedDate": "2024-09-15T00:00:00Z",
896+
"createdDate": "2024-09-18T15:36:00Z",
897+
"email": "joseph.carter362@mycompany.org",
898+
"id": "cc-10362-9cee6-20362",
899+
"impactedDomain": "mycompany.org",
900+
"status": "In Progress",
901+
"tenantId": "tenant-003-corp",
902+
"updatedDate": "2024-09-18T19:28:00Z",
903+
"username": "joseph.carter362"
904+
},
905+
{
906+
"breachSource": "Corporate Breach - Q2 2025",
907+
"compromisedDate": "2024-09-16T00:00:00Z",
908+
"createdDate": "2024-10-12T03:43:00Z",
909+
"email": "abigail.nelson361@testcorp.com",
910+
"id": "cc-10361-1758b-20361",
911+
"impactedDomain": "testcorp.com",
912+
"status": "Resolved",
913+
"tenantId": "tenant-002-secure",
914+
"updatedDate": "2024-10-12T11:05:00Z",
915+
"username": "abigail.nelson361"
916+
}
917+
]
918+
}
919+
`}}
920+
- path: /api/external/v1/compromised-credentials
921+
methods: ['POST']
922+
request_body: /.*"limit":2,"offset":4,"sortBy":"CompromisedDate","sortDirection":"Asc".*/
923+
request_headers:
924+
Content-Type:
925+
- "application/json"
926+
Api-Key:
927+
- "xxxx"
928+
responses:
929+
- status_code: 200
930+
body: |
931+
{{ minify_json `
932+
{
933+
"compromisedCredentials": [
934+
{
935+
"breachSource": "DarkWeb Dump - May 2025",
936+
"compromisedDate": "2024-09-17T00:00:00Z",
937+
"createdDate": "2024-09-23T16:47:00Z",
938+
"email": "christopher.gonzalez360@example.com",
939+
"id": "cc-10360-08b91-20360",
940+
"impactedDomain": "example.com",
941+
"status": "Unresolved",
942+
"tenantId": "tenant-001-island",
943+
"updatedDate": "2024-09-24T16:06:00Z",
944+
"username": "christopher.gonzalez360"
945+
}
946+
]
947+
}
948+
`}}
949+
- path: /api/external/v1/compromised-credentials
950+
methods: ['POST']
951+
request_body: /.*"limit":2,"offset":5,"sortBy":"CompromisedDate","sortDirection":"Asc".*/
952+
request_headers:
953+
Content-Type:
954+
- "application/json"
955+
Api-Key:
956+
- "xxxx"
957+
responses:
958+
- status_code: 200
959+
body: |
960+
{{ minify_json `
961+
{
962+
"compromisedCredentials": []
963+
}
964+
`}}

packages/island_browser/changelog.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
# newer versions go on top
2+
- version: 0.4.0
3+
changes:
4+
- description: Add compromised credential data stream and add ILM policy for user and device data streams.
5+
type: enhancement
6+
link: https://github.com/elastic/integrations/pull/15372
27
- version: 0.3.1
38
changes:
49
- description: Remove ILM policy from user and device data streams.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
fields:
2+
tags:
3+
- preserve_duplicate_custom_fields
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{"breachSource":"Ransomware Attack - April 2025","compromisedDate":"2024-09-13T00:00:00Z","createdDate":"2024-09-21T09:46:00Z","email":"john.doe364@enterprise.io","id":"cc-10364-ae99d-20364","impactedDomain":"enterprise.io","status":"Unresolved","tenantId":"tenant-005-tech","updatedDate":"2024-09-21T14:40:00Z","username":"john.doe364"}
2+
{"breachSource":"Data Leak - January 2025","compromisedDate":"2024-09-14T00:00:00Z","createdDate":"2024-10-03T04:41:00Z","email":"emily.mitchell363@business.net","id":"cc-10363-edb53-20363","impactedDomain":"business.net","status":"Investigating","tenantId":"tenant-004-biz","updatedDate":"2024-10-03T09:25:00Z","username":"emily.mitchell363"}
3+
{"breachSource":"Phishing Campaign - March 2025","compromisedDate":"2024-09-15T00:00:00Z","createdDate":"2024-09-18T15:36:00Z","email":"joseph.carter362@mycompany.org","id":"cc-10362-9cee6-20362","impactedDomain":"mycompany.org","status":"In Progress","tenantId":"tenant-003-corp","updatedDate":"2024-09-18T19:28:00Z","username":"joseph.carter362"}
4+
{"breachSource":"Corporate Breach - Q2 2025","compromisedDate":"2024-09-16T00:00:00Z","createdDate":"2024-10-12T03:43:00Z","email":"abigail.nelson361@testcorp.com","id":"cc-10361-1758b-20361","impactedDomain":"testcorp.com","status":"Resolved","tenantId":"tenant-002-secure","updatedDate":"2024-10-12T11:05:00Z","username":"abigail.nelson361"}
5+
{"breachSource":"DarkWeb Dump - May 2025","compromisedDate":"2024-09-17T00:00:00Z","createdDate":"2024-09-23T16:47:00Z","email":"christopher.gonzalez360@example.com","id":"cc-10360-08b91-20360","impactedDomain":"example.com","status":"Unresolved","tenantId":"tenant-001-island","updatedDate":"2024-09-24T16:06:00Z","username":"christopher.gonzalez360"}

0 commit comments

Comments
 (0)