Vulnerability Findings Cron
Retrieves vulnerability data and associated metadata for assets from Crowdstrike Falcon Spotlight, including details like CVE identifiers, CVSS scores, descriptions, solution information, and affected systems.
Sync Type: Full Synchronization
Requirements
- Before you connect Monad to CrowdStrike, you need a Client ID and Client Secret. Log in to your CrowdStrike portal, and under Support & Resources, click on 'API Client and Keys' to create your credentials.
- Enter a Client Name, Description and API Scopes to define the API client. Ensure read roles for User Management are enabled.
- Click Done.
- Copy the ClientID and ClientSecret key. You'll need them when you set up the Monad connector.
Details
The same vulnerabilities from crowdstrike-vulnerabilities are returned but a full sync is performed based on a set cron schedule.
Configuration
The following configuration defines the input parameters. Each field's specifications, such as type, requirements, and descriptions, are detailed below.
Settings
| Setting | Type | Required | Description |
|---|---|---|---|
| Cron | string | Yes | Cron string for scheduling tasks. Ex: '0 0 * * *' for daily execution at midnight. |
| Cloud Type | string | No | Your cloud type for CrowdStrike. Ex: 'autodiscover', 'us-1', 'us-2', 'eu-1', 'us-gov-1'. |
Secrets
| Secret | Type | Required | Description |
|---|---|---|---|
| Client ID | string | Yes | Client ID for the CrowdStrike API. This is required to authenticate requests. |
| Client Secret | string | Yes | Client Secret for the CrowdStrike API. This is required to authenticate requests. |
OCSF Conversion
The following JQ transformation converts Crowdstrike Vulnerability data to OCSF Version 1.1 compliant format.
JQ Transformation
Code
OCSF Mapping Details
Helper Functions
-
safe_timestamp
- Safely converts ISO8601 timestamps to Unix epoch
- Returns null for any invalid or missing timestamps
- Used consistently across all timestamp fields
-
severity_to_id
- Maps Crowdstrike severity levels to OCSF enumerated values:
- CRITICAL → 5
- HIGH → 4
- MEDIUM → 3
- LOW → 2
- Others → 99 (Unknown)
- Maps Crowdstrike severity levels to OCSF enumerated values:
-
status_to_id
- Maps vulnerability status to OCSF enumerated values:
- open → 1
- closed → 2
- in_progress → 3
- Others → 99 (Unknown)
- Maps vulnerability status to OCSF enumerated values:
Core Fields
- Category UID: 2 (Findings)
- Class UID: 2002 (Vulnerability Finding)
- Activity ID: 1 (Detection)
- Type UID: 200201 (Vulnerability Finding type)
- Time: Maps from created_timestamp using safe_timestamp function
- Severity: Maps from cve.severity with "UNKNOWN" fallback
- Severity_id: Maps from cve.severity using severity_to_id function
Finding Information
- Title: Maps from vulnerability_id with "UNKNOWN" fallback
- UID: Maps from record id with "UNKNOWN" fallback
- Description: Maps from cve.description with "No description available" fallback
- Timestamps:
- created_time: Maps from created_timestamp using safe_timestamp
- modified_time: Maps from updated_timestamp using safe_timestamp
Vulnerabilities Array
Each vulnerability entry contains:
- Title and description from CVE data
- Severity information with fallbacks
- CVE details including:
- UID: Maps from vulnerability_id with "UNKNOWN" fallback
- Description: Maps from cve.description with "No description available" fallback
- Base score from cve.base_score (defaults to 0)
- Vector string from cve.vector with "UNKNOWN" fallback
- References from cve.references (defaults to empty array)
- Modified time from updated_timestamp
- Remediation information:
- Description: Combines actions from remediation.entities
- References: Maps from links in remediation.entities
- KB articles: Maps from reference field in remediation.entities
- Each with empty string/array fallbacks if data is missing
- Timestamp fields using safe conversion
Raw Data
Simplified version of raw data containing:
- id
- vulnerability_id
- status
- timestamp from created_timestamp
Status and Confidence
- Status: Maps from status field with "unknown" fallback
- Confidence: Maps from confidence field with "UNKNOWN" fallback
- Both use enumerated ID mappings with unknown (99) fallback
Resource Details
- Type: Fixed as "host"
- Name: Maps from hostname with "unknown" fallback
- UID: Maps from aid with "unknown" fallback
- Criticality: Maps from asset_criticality with "Unassigned" fallback
- Groups: Combines all group names, filtering empty values
- Labels: Array including:
- OS version
- Platform
- Product type All with "unknown" fallbacks
Cloud Context
Only included when service_provider exists, containing: All fields have "unknown" fallbacks
- Provider: Maps from host_info.service_provider with "unknown" fallback
- Account_uid: Maps from host_info.service_provider_account_id with "unknown" fallback
- Instance_uid: Maps from host_info.instance_id with "unknown" fallback
Metadata
- Version: Fixed at "1.1.0"
- Product Information:
- Name: "Crowdstrike Spotlight"
- Vendor: "Crowdstrike"
- Version: "1.0"
- UID: Maps from id with "UNKNOWN" fallback
Error Handling
The transformation implements comprehensive error handling:
-
Timestamp Handling
- No artificial timestamps created
- Explicit null for invalid/missing dates
- Consistent handling across all date fields
-
Missing Data
- String fields: "UNKNOWN" or "unknown" fallbacks
- Numeric fields: 0 fallback
- Arrays: Empty array fallback
- Objects: Null fallback with conditional inclusion
-
Array Processing
- Safe mapping with null element handling
- Filtering of empty/null values
- Join operations with empty string fallbacks
-
Object Safety
- Null checks before accessing nested fields
- Default values for all required fields
- Conditional object inclusion