Add Cyble IOC workflow - #320
Conversation
Signed-off-by: Prasad Boke <prasad.boke@cyble.com>
Signed-off-by: Prasad Boke <prasad.boke@cyble.com>
|
Hi @ChrisCollinsIBM please review this PR |
|
Hi @ChrisCollinsIBM it would be very helpfull if you review and merge this PR. |
ChrisCollinsIBM
left a comment
There was a problem hiding this comment.
Please review the namespace and possible source tag conflicts and comment on whether the concerns are valid.
Thanks!
| high-water mark has already been ingested in a previous run.--> | ||
| <ForEach item="/current_ioc" items="/get_iocs/body/data/iocs"> | ||
| <If condition="${/current_ioc/last_seen} > ${/highWater_${/type}}"> | ||
| <PostEvent path="/current_ioc" source="${/hostname}" /> |
There was a problem hiding this comment.
This workflow is still using the V1 namespace which requires a source tag.
There is another Cyble workflow at https://github.com/IBM/IBM-QRadar-Universal-Cloud-REST-API/tree/master/Community%20Developed/Cyble%20Threat%20Intel also using the V1 namespace and using the API host as the source
Would that workflow and this workflow be using the same API endpoint for the same customer? If so there will be a conflict here with the customer trying to setup to Universal REST API log sources with the same identifier.
Give the API path in the CallEndpoint command in each I suspect that will be the case, but please confirm.
| @@ -0,0 +1,141 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <Workflow name="Cyble IOC" version="2.0" | |||
| xmlns="http://qradar.ibm.com/UniversalCloudRESTAPI/Workflow/V1"> | |||
There was a problem hiding this comment.
Any new workflows should really be using the V2_1 namespace to ensure access to the latest features, but especially the Postevent changes around not needing to specify a source attribute, more details below.
Add Cyble IOC workflow (Universal Cloud REST API)
Summary
Adds a new community log source workflow that ingests Indicators of Compromise (IOCs) from Cyble Vision into QRadar via the Universal Cloud REST API protocol. This complements the existing Cyble Threat Intel (alerts) workflow.
New files under
Community Developed/Cyble IOC/:Cyble-IOC-Workflow.xml— the workflowCyble-IOC-Workflow-Parameter-Values.xml— parameter values template (no secrets)README.md— setup, parameters, filter discovery, and versioning notesWhat it does
POST /engine/api/v4/y/iocs(JSON body,Bearerauth), onePostEventper IOC into Universal DSM.ioc_type,risk_gte/risk_lte(risk rating range), and optionalregionsandindustries.Splits a comma-separatedioc_typeand runs one paginated pass per type.fetch_since, thenfromDate = last toDate + 1), formatted to the date-only (yyyy-MM-dd) window the IOC API expects.last_seenhigh-water mark and posts only newer IOCs, stopping pagination as soon as it reaches already-ingested ones.limit=100) to avoid upstream504: Gateway Timeout.Design decisions validated against the live API
iocType/regions/industries(JSON arrays return500);riskRatingis a JSON object.regions/industriesare ignored by the API (equivalent to no filter), so they're always sent and safe to leave blank.GET /engine/api/v2/y/iocs/filtersendpoint to discover valid filter values, with the current enumerations (IOC types, regions, industries, confidence ratings).