SpyCloud
With the SpyCloud integration data from breaches can be pulled and further processed in Playbooks. Filtering parameters can be used to filter the data set.
Analytics & SIEM · SpyCloud
Details
| ID | SpyCloud |
|---|---|
| Provider | SpyCloud |
| Category | Analytics & SIEM |
| From Version | 6.2.0 |
| Docker Image | demisto/python3:3.12.8.3296088 |
| Supported Modules | Agentix XSIAM |
README
With the SpyCloud integration, data from breaches can be pulled and further processed in Playbooks. Filtering parameters can be used to filter the data set
This integration was integrated and tested with version 2 of SpyCloud
Configure SpyCloud in Cortex
| Parameter | Required |
|---|---|
| Base URL of SpyCloud | True |
| API Key of SpyCloud | True |
Commands
You can execute these commands from the CLI, as part of an automation, or in a playbook.
After you successfully execute a command, a DBot message appears in the War Room with the command details.
spycloud-list-breaches
Lists the breaches identified. By default this lists all breaches known in Spycloud. With the arguments it’s possible to scope the results on date and keywords.
Base Command
spycloud-list-breaches
Input
| Argument Name | Description | Required |
|---|---|---|
| query | Give a keyword to search for in the dataset. Default is empty. | Optional |
| since | Search the dataset since this date. Format is yyyy-mm-dd and default value is 2010-01-01. Default is 2010-01-01. | Optional |
| until | Search the dataset until this date. Format is yyyy-mm-dd and default value is 2100-01-01 (aka get everything). Default is 2100-01-01. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| SpyCloud.Breaches.uuid | String | unique ID |
| SpyCloud.Breaches.title | String | Breach title |
| SpyCloud.Breaches.type | String | Type of breach |
| SpyCloud.Breaches.description | String | Summary of the breach/threat |
| SpyCloud.Breaches.acquisition_date | Date | When the breach data was acquired |
| SpyCloud.Breaches.site | String | The website that was breached |
| SpyCloud.Breaches.spycloud_publish_date | Date | Publication date |
| SpyCloud.Breaches.num_records | Number | Number of records in the breach |
| SpyCloud.Breaches.id | Number | Unique breach ID |
Command example
#### Context Example
```json
{
"SpyCloud": {
"Breaches": [
{
"acquisition_date": "2021-01-22T00:00:00Z",
"description": "In x time, site Y was breached",
"id": 11111,
"num_records": 45810,
"site": "examplers.com",
"spycloud_publish_date": "2021-05-19T00:00:00Z",
"title": "Cool title",
"type": "PRIVATE",
"uuid": "1111111-2222-34567-aaaa-9282829dddde"
},
]
}
}
Human Readable Output
Results
acquisition_date description id num_records site spycloud_publish_date title type uuid 2021-05-19T00:00:00Z In x time, site Y was breached 35911 45810 examplers.com 2022-05-19T00:00:00Z Cool title PRIVATE 1111111-2222-34567-aaaa-9282829dddde
spycloud-get-breach-data
Retrieves the breach details. While very similar to list-breaches, this command obtains one specific breach, which is easier for automation tasks
Base Command
spycloud-get-breach-data
Input
| Argument Name | Description | Required |
|---|---|---|
| id | The breach ID to filter on. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| SpyCloud.Breaches.uuid | String | Unique ID |
| SpyCloud.Breaches.title | String | Breach title |
| SpyCloud.Breaches.type | String | Type of breach |
| SpyCloud.Breaches.description | String | Summary of the breach |
| SpyCloud.Breaches.acquisition_date | Date | Acquired date |
| SpyCloud.Breaches.site | String | Title of the breach |
| SpyCloud.Breaches.spycloud_publish_date | Date | Publication date |
| SpyCloud.Breaches.num_records | Number | Number of records in breach |
| SpyCloud.Breaches.id | Number | Unique breach ID |
Command example
!spycloud-get-breach-data id=37666
Context Example
{
"SpyCloud": {
"Breaches": {
"acquisition_date": "2020-05-13T00:00:00Z",
"description": "Cool description of the threat",
"id": 37666,
"num_records": 802751,
"site": "n/a",
"spycloud_publish_date": "2021-05-18T00:00:00Z",
"title": "Cool title",
"type": "PRIVATE",
"uuid": "11111111-2222-3333-4444-555555555555"
}
}
}
Human Readable Output
Results
acquisition_date description id num_records site spycloud_publish_date title type uuid 2021-05-13T00:00:00Z Cool description of the threat 37666 802751 n/a 2021-05-18T00:00:00Z Cool title PRIVATE 11111111-2222-3333-44444444444444444
spycloud-domain-data
Get all the data from a monitored domain and the breaches occurred that relates with it. Can be scoped by domain, type and severity
Notice: Submitting indicators using this command might make the indicator data publicly available. See the vendor’s documentation for more details.
Base Command
spycloud-domain-data
Input
| Argument Name | Description | Required |
|---|---|---|
| domain | The domain to search for in the data. | Required |
| type | Allowed values: corporate, infected. Default is corporate. Infected returns the infected employees and customers. Default is corporate. | Optional |
| severity | Allowed values: 2, 5, 10, 15, 20, 25. Default is 2. Default is 2. | Optional |
| since | The starting point for a date range query on the spycloud_publish_date. The value provided must follow the standard ISO 8601 date format (yyyy-mm-dd). | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| SpyCloud.Domain.document_id | String | The unique ID of the identified record |
| SpyCloud.Domain.spycloud_publish_date | Date | The date SpyCloud has found the data record |
| SpyCloud.Domain.username | String | The username that was found in the breach dataset |
| SpyCloud.Domain.email | String | The email that was found in the breach dataset |
| SpyCloud.Domain.infected_time | String | The date the user got infected |
| SpyCloud.Domain.target_url | String | Which URL the credentials are for |
| SpyCloud.Domain.source_id | String | breach source ID |
| SpyCloud.Domain.password_plaintext | String | Plaintext password identified |
Command example
!spycloud-domain-data domain=example.com since=2022-05-01
Context Example
{
"SpyCloud": {
"Results": [
{
"document_id": "11111111-2222-3333-4444-555555555555",
"email": "sales@example.com",
"infected_time": "empty",
"password_plaintext": "empty",
"source_id": 37666,
"spycloud_publish_date": "2021-01-12T00:00:00Z",
"target_domain": "empty",
"username": "empty"
},
{
"document_id": "11111111-2222-3333-4444-555555555555",
"email": "support@example.com",
"infected_time": "empty",
"password_plaintext": "empty",
"source_id": 37666,
"spycloud_publish_date": "2022-01-12T00:00:00Z",
"target_domain": "empty",
"username": "empty"
}
]
}
}
Human Readable Output
Results
document_id infected_time password_plaintext source_id spycloud_publish_date target_domain username 11111111-2222-3333-4444-555555555555 sales@example.com empty empty 37518 2022-01-12T00:00:00Z empty empty 11111111-2222-3333-4444-555555555555 support@example.com empty empty 37518 2022-01-12T00:00:00Z empty empty
spycloud-email-data
Get all the data from a monitored email address and the breaches occurred that relates with it. Can be scoped by date, severity and breach
Base Command
spycloud-email-data
Input
| Argument Name | Description | Required |
|---|---|---|
| emailaddr | Email address to search for. | Required |
| severity | Allowed values: 2, 5, 10, 15, 20, 25. Default is 2. Default is 2. | Optional |
| breach_id | The breach ID to search in. Default is empty. | Optional |
| since | The starting point for a date range query on the spycloud_publish_date. The value provided must follow the standard ISO 8601 date format (yyyy-mm-dd). | Required |
| until | The until date for a date range query on the spycloud_publish_date. The value provided must follow the standard ISO 8601 date format (yyyy-mm-dd). Default is 2100-01-01. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| SpyCloud.Emails.document_id | String | The unique ID of the identified record |
| SpyCloud.Emails.spycloud_publish_date | Date | The date SpyCloud has found the data record |
| SpyCloud.Emails.username | String | The username that was found in the breach dataset |
| SpyCloud.Emails.email | String | The email that was found in the breach dataset |
| SpyCloud.Emails.source_id | String | breach source ID |
| SpyCloud.Emails.domain | String | The domain that the user/pass is used on |
| SpyCloud.Emails.password | String | Password found. Can be plaintext or hashed, good to check |
| SpyCloud.Emails.user_browser | String | The browser of the user |
| SpyCloud.Emails.target_url | String | The target url of the credentials |
Command example
!spycloud-email-data emailaddr=john.doe@example.com since=2020-08-01 until=2021-02-01
Context Example
{
"SpyCloud": {
"Emails": [
{
"document_id": "11111111-2222-3333-4444-555555555555",
"domain": "example.com",
"email": "john.doe@example.com",
"password": "empty",
"source_id": 38666,
"spycloud_publish_date": "2021-10-21T00:00:00Z",
"target_url": "empty",
"user_browser": "empty",
"username": "empty"
}
]
}
}
Human Readable Output
Results
document_id domain password source_id spycloud_publish_date target_url user_browser username 11111111-2222-3333-4444-555555555555 example.com john.doe@example.com empty 38666 2021-10-21T00:00:00Z empty empty empty
spycloud-watchlist-data
Get all the data from a watchlist.
Base Command
spycloud-watchlist-data
Input
| Argument Name | Description | Required |
|---|---|---|
| watchlist_type | Allowed values are ip, domain, email. | Required |
| type | Allowed values: corporate or infected. Default is corporate. Default is corporate. | Optional |
| breach_id | The breach ID to search in. Default is empty. | Optional |
| since | The starting point for a date range query on the spycloud_publish_date. The value provided must follow the standard ISO 8601 date format (yyyy-mm-dd). | Required |
| until | The until date for a date range query on the spycloud_publish_date. The value provided must follow the standard ISO 8601 date format (yyyy-mm-dd). Default is 2100-01-01. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| SpyCloud.Watchlist.document_id | String | The unique ID of the identified record |
| SpyCloud.Watchlist.username | String | The username of the identified record |
| SpyCloud.Watchlist.target_url | String | The targeted url |
| SpyCloud.Watchlist.breach_id | String | The breach ID |
| SpyCloud.Watchlist.password | String | The password of the user being exposed |
| SpyCloud.Watchlist.spycloud_publish_date’ | String | Date when Spycloud published the breach |
| SpyCloud.Watchlist.email | String | The email address involved (if email watchlist type selected) |
| SpyCloud.Watchlist.domain | String | The domain involved of the watchlist (if that type is selected) |
Command example
!spycloud-watchlist-data watchlist_type=email since=2022-02-11
Context Example
{
"SpyCloud": {
"Watchlist": {
"breach_id": 38666,
"document_id": "11111111-2222-3333-4444-555555555555",
"domain": "hotmail.com",
"email": "john.doe@hotmail.com",
"password": "empty",
"spycloud_publish_date": "2020-03-03T00:00:00Z",
"target_url": "empty",
"username": "empty"
}
}
}
Human Readable Output
Results
breach_id document_id domain password spycloud_publish_date target_url username 38666 11111111-2222-3333-4444-555555555555 hotmail.com john.doe@hotmail.com empty 2020-03-03T00:00:00Z empty empty
Configuration parameters
url— Base URL of SpyCloud (required)apikey— API Key of SpyCloud (required)
Commands (5)
-
spycloud-domain-dataGet all the data from a monitored domain and the breaches occurred that relates with it. Can be scoped by domain, type and severity
-
spycloud-email-dataGet all the data from a monitored email address and the breaches occurred that relates with it. Can be scoped by date, severity and breach
-
spycloud-get-breach-dataRetrieves the breach details. While very similar to list-breaches, this command obtains one specific breach, which is easier for automation tasks
-
spycloud-list-breachesLists the breaches identified. By default this lists all breaches known in Spycloud. With the arguments it's possible to scope the results on date and keywords.
-
spycloud-watchlist-dataGet all the data from a watchlist.
category: Analytics & SIEM provider: SpyCloud commonfields: id: SpyCloud version: -1 configuration: - display: Base URL of SpyCloud name: url required: true type: 0 - display: API Key of SpyCloud name: apikey required: true type: 4 description: With the SpyCloud integration data from breaches can be pulled and further processed in Playbooks. Filtering parameters can be used to filter the data set. display: SpyCloud name: SpyCloud script: commands: - arguments: - name: query defaultValue: empty description: Give a keyword to search for in the dataset. - name: since defaultValue: '2010-01-01' description: Search the dataset since this date. Format is yyyy-mm-dd and default value is 2010-01-01. - name: until defaultValue: '2100-01-01' description: Search the dataset until this date. Format is yyyy-mm-dd and default value is 2100-01-01 (aka get everything). description: Lists the breaches identified. By default this lists all breaches known in Spycloud. With the arguments it's possible to scope the results on date and keywords. name: spycloud-list-breaches outputs: - contextPath: SpyCloud.Breaches.uuid description: unique ID. type: String - contextPath: SpyCloud.Breaches.title description: Breach title. type: String - contextPath: SpyCloud.Breaches.type description: Type of breach. type: String - contextPath: SpyCloud.Breaches.description description: Summary of the breach/threat. type: String - contextPath: SpyCloud.Breaches.acquisition_date description: When the breach data was acquired. type: Date - contextPath: SpyCloud.Breaches.site description: The website that was breached. type: String - contextPath: SpyCloud.Breaches.spycloud_publish_date description: Publication date. type: Date - contextPath: SpyCloud.Breaches.num_records description: Number of records in the breach. type: Number - contextPath: SpyCloud.Breaches.id description: Unique breach ID. type: Number - arguments: - name: id required: true description: The breach ID to filter on. description: Retrieves the breach details. While very similar to list-breaches, this command obtains one specific breach, which is easier for automation tasks name: spycloud-get-breach-data outputs: - contextPath: SpyCloud.Breaches.uuid description: Unique ID. type: String - contextPath: SpyCloud.Breaches.title description: Breach title. type: String - contextPath: SpyCloud.Breaches.type description: Type of breach. type: String - contextPath: SpyCloud.Breaches.description description: Summary of the breach. type: String - contextPath: SpyCloud.Breaches.acquisition_date description: Acquired date. type: Date - contextPath: SpyCloud.Breaches.site description: Title of the breach. type: String - contextPath: SpyCloud.Breaches.spycloud_publish_date description: Publication date. type: Date - contextPath: SpyCloud.Breaches.num_records description: Number of records in breach. type: Number - contextPath: SpyCloud.Breaches.id description: Unique breach ID. type: Number - arguments: - name: domain required: true description: The domain to search for in the data. - defaultValue: corporate description: 'Allowed values: corporate, infected. Default is corporate. Infected returns the infected employees and customers.' name: type - defaultValue: '2' description: 'Allowed values: 2, 5, 10, 15, 20, 25. Default is 2.' name: severity - description: The starting point for a date range query on the spycloud_publish_date. The value provided must follow the standard ISO 8601 date format (yyyy-mm-dd). name: since required: true description: Get all the data from a monitored domain and the breaches occurred that relates with it. Can be scoped by domain, type and severity name: spycloud-domain-data outputs: - contextPath: SpyCloud.Domain.document_id description: The unique ID of the identified record. type: String - contextPath: SpyCloud.Domain.spycloud_publish_date description: The date SpyCloud has found the data record. type: Date - contextPath: SpyCloud.Domain.username description: The username that was found in the breach dataset. type: String - contextPath: SpyCloud.Domain.email description: The email that was found in the breach dataset. type: String - contextPath: SpyCloud.Domain.infected_time description: The date the user got infected. type: String - contextPath: SpyCloud.Domain.target_url description: Which URL the credentials are for. type: String - contextPath: SpyCloud.Domain.source_id description: breach source ID. type: String - contextPath: SpyCloud.Domain.password_plaintext description: Plaintext password identified. type: String - arguments: - name: emailaddr description: Email address to search for. required: true - defaultValue: '2' description: 'Allowed values: 2, 5, 10, 15, 20, 25. Default is 2.' name: severity - defaultValue: empty description: The breach ID to search in. name: breach_id - description: The starting point for a date range query on the spycloud_publish_date. The value provided must follow the standard ISO 8601 date format (yyyy-mm-dd). name: since required: true - description: The until date for a date range query on the spycloud_publish_date. The value provided must follow the standard ISO 8601 date format (yyyy-mm-dd). name: until defaultValue: '2100-01-01' description: Get all the data from a monitored email address and the breaches occurred that relates with it. Can be scoped by date, severity and breach name: spycloud-email-data outputs: - contextPath: SpyCloud.Emails.document_id description: The unique ID of the identified record. type: String - contextPath: SpyCloud.Emails.spycloud_publish_date description: The date SpyCloud has found the data record. type: Date - contextPath: SpyCloud.Emails.username description: The username that was found in the breach dataset. type: String - contextPath: SpyCloud.Emails.email description: The email that was found in the breach dataset. type: String - contextPath: SpyCloud.Emails.source_id description: breach source ID. type: String - contextPath: SpyCloud.Emails.domain description: The domain that the user/pass is used on. type: String - contextPath: SpyCloud.Emails.password description: Password found. Can be plaintext or hashed, good to check. type: String - contextPath: SpyCloud.Emails.user_browser description: The browser of the user. type: String - contextPath: SpyCloud.Emails.target_url description: The target url of the credentials. type: String - arguments: - name: watchlist_type required: true description: Allowed values are ip, domain, email. - defaultValue: corporate description: 'Allowed values: corporate or infected. Default is corporate.' name: type - defaultValue: empty description: The breach ID to search in. name: breach_id - description: The starting point for a date range query on the spycloud_publish_date. The value provided must follow the standard ISO 8601 date format (yyyy-mm-dd). name: since required: true - description: The until date for a date range query on the spycloud_publish_date. The value provided must follow the standard ISO 8601 date format (yyyy-mm-dd). name: until defaultValue: '2100-01-01' description: Get all the data from a watchlist. name: spycloud-watchlist-data outputs: - contextPath: SpyCloud.Watchlist.document_id description: The unique ID of the identified record. type: String - contextPath: SpyCloud.Watchlist.username description: The username of the identified record. type: String - contextPath: SpyCloud.Watchlist.target_url description: The targeted url. type: String - contextPath: SpyCloud.Watchlist.breach_id description: The breach ID. type: String - contextPath: SpyCloud.Watchlist.password description: The password of the user being exposed. type: String - contextPath: SpyCloud.Watchlist.spycloud_publish_date' description: Date when Spycloud published the breach. type: String - contextPath: SpyCloud.Watchlist.email description: The email address involved (if email watchlist type selected). type: String - contextPath: SpyCloud.Watchlist.domain description: The domain involved of the watchlist (if that type is selected). type: String dockerimage: demisto/python3:3.12.8.3296088 runonce: false script: '' subtype: python3 type: python fromversion: 6.2.0 tests: - No tests (auto formatted)