Skip to content

Add OCSF pipelines#22267

Merged
orenma-dd merged 23 commits intomasterfrom
oren.margalit/SCI2-5670-cisco-umbrella-ocsf-mapping
Jan 26, 2026
Merged

Add OCSF pipelines#22267
orenma-dd merged 23 commits intomasterfrom
oren.margalit/SCI2-5670-cisco-umbrella-ocsf-mapping

Conversation

@orenma-dd
Copy link
Copy Markdown
Contributor

Create OCSF mappings for Cisco Umbrella pipeline

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: da32c6c597

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread cisco_umbrella_dns/assets/logs/cisco-umbrella-dns.yaml Outdated
Comment thread cisco_umbrella_dns/assets/logs/cisco-umbrella-dns.yaml Outdated
@orenma-dd orenma-dd added assets/no-dry-run Run asset publishing github checks in staging and removed assets/no-dry-run Run asset publishing github checks in staging labels Jan 7, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jan 8, 2026

⚠️ Recommendation: Add qa/skip-qa label

This PR does not modify any files shipped with the agent.

To help streamline the release process, please consider adding the qa/skip-qa label if these changes do not require QA testing.

@orenma-dd
Copy link
Copy Markdown
Contributor Author

image

@orenma-dd orenma-dd removed the assets/no-dry-run Run asset publishing github checks in staging label Jan 8, 2026
@orenma-dd
Copy link
Copy Markdown
Contributor Author

image

Comment thread cisco_umbrella_dns/assets/logs/cisco-umbrella-dns.yaml
Comment thread cisco_umbrella_dns/assets/logs/cisco-umbrella-dns.yaml
className: HTTP Activity
classUid: 4002
extensions: []
profiles: []
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should probably have the network proxy and security control profiles. If you had the security_control profile, you could map info on malware, DLS prevention, etc.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point will add it

targetFormat: string
preserveSource: true
overrideOnConflict: true
type: schema-remapper
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you're using the Network Proxy Profile, you could map externalip to proxy_endpoint.ip

Comment thread cisco_umbrella_dns/assets/logs/cisco-umbrella-dns.yaml
Comment thread cisco_umbrella_dns/assets/logs/cisco-umbrella-dns.yaml
Comment thread cisco_umbrella_dns/assets/logs/cisco-umbrella-dns.yaml
preserveSource: true
overrideOnConflict: true
type: schema-remapper
- name: Map `domain` to `ocsf.query.hostname`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could map info in the identities array to additional fields in ocsf.src_endpoint (like hw_info). Not required though, so up to you and not blocking

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure how consistent is hw_info

preserveSource: true
overrideOnConflict: true
type: schema-remapper
- name: Map `internalip` to `ocsf.src_endpoint.ip`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should map destination IP as well as source IP

targetFormat: string
preserveSource: true
overrideOnConflict: true
type: schema-remapper
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could map various file attributes to ocsf.file as well, it would extract indicators that could be useful for threat intel matching

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This logs for proxy is kinda weird since they have field blockedfilename\responsefilename which I am not sure is what the ocsf.file is looking for
The File object represents the metadata associated with a file stored in a computer system
https://schema.ocsf.io/1.3.0/objects/file

@orenma-dd orenma-dd added the assets/no-dry-run Run asset publishing github checks in staging label Jan 8, 2026
@orenma-dd orenma-dd removed the assets/no-dry-run Run asset publishing github checks in staging label Jan 11, 2026
@orenma-dd orenma-dd added the assets/no-dry-run Run asset publishing github checks in staging label Jan 14, 2026
@orenma-dd orenma-dd removed the assets/no-dry-run Run asset publishing github checks in staging label Jan 14, 2026
jbfeldman-dd
jbfeldman-dd previously approved these changes Jan 14, 2026
Copy link
Copy Markdown
Contributor

@jbfeldman-dd jbfeldman-dd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non-blocking comments. LGTM

targetType: attribute
targetFormat: integer
preserveSource: false
overrideOnConflict: false
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The preferred design here I think is to have OCSF sub pipeline for HTTP Activity [4002] malware transformations come before the other 4002 sub pipeline, and then map ocsf.disposition_id to itself in the schema-processor. This will ensure it's always mapped to the correct type based on the OCSF schema, and you don't have to map it yourself. But ultimately a stylistic choice so up to you

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the query that specifically has service:proxy not enough to ensure that?

source: ocsf.malware.classification_id
target: ocsf.malware.classification_ids
preserveSource: false
type: append
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

similar to above comment - mapping ocsf.malware.classification_ids to itself in the schema-processor is a slightly more elegant way of doing this

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Issue is if there is not malware its an issue since I cant remove a field/

@temporal-github-worker-1 temporal-github-worker-1 Bot dismissed jbfeldman-dd’s stale review January 15, 2026 10:19

Review from jbfeldman-dd is dismissed. Related teams and files:

  • logs-integrations-reviewers
    • cisco_umbrella_dns/assets/logs/cisco-umbrella-dns.yaml
@orenma-dd orenma-dd added this pull request to the merge queue Jan 26, 2026
Merged via the queue into master with commit 9a3216f Jan 26, 2026
46 checks passed
@orenma-dd orenma-dd deleted the oren.margalit/SCI2-5670-cisco-umbrella-ocsf-mapping branch January 26, 2026 07:43
lukepatrick pushed a commit to lukepatrick/integrations-core that referenced this pull request Mar 17, 2026
* Add OCSF pipelines

* update test file

* update processor name

* remove metadata placeholder and cahnge test file

* chnage schema processor name

* add facets

* remove conflicting facets

* update activity id mapping

* update activity id mapping

* preserve source

* update test file

* add is_ocsf flag

* address feedback

* fix test file

* add malware sub pipeline

* fix test file

* add endpoint proxy to dns

* Bring back ocsf.metadata field

* add ocsf.metadata

Signed-off-by: lukepatrick <lukephilips@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants