Skip to content

[checkpoint_email] Initial release of the Check Point Harmony Email & Collaboration - #11472

Merged
kcreddy merged 5 commits into
elastic:mainfrom
brijesh-elastic:package-checkpoint_email
Nov 8, 2024
Merged

[checkpoint_email] Initial release of the Check Point Harmony Email & Collaboration#11472
kcreddy merged 5 commits into
elastic:mainfrom
brijesh-elastic:package-checkpoint_email

Conversation

@brijesh-elastic

@brijesh-elastic brijesh-elastic commented Oct 18, 2024

Copy link
Copy Markdown
Contributor

Proposed commit message

Create New integration package checkpoint_email.

  • Added event data stream.
  • Added data collection logic for the data stream.
  • Added the ingest pipeline for the data stream.
  • Mapped fields according to the ECS schema and added Fields metadata in the appropriate yml files.
  • Added dashboard and visualizations.
  • Added pipeline test for the data stream.
  • Added system test cases for the data stream.

Checklist

  • I have reviewed tips for building integrations and this pull request is aligned with them.
  • I have verified that all data streams collect metrics or logs.
  • I have added an entry to my package's changelog.yml file.
  • I have verified that Kibana version constraints are current according to guidelines.

How to test this PR locally

  • Clone integrations repo.
  • Install elastic package locally.
  • Start elastic stack using elastic-package.
  • Move to integrations/packages/checkpoint_email directory.
  • Run the following command to run tests.

elastic-package test

--- Test results for package: checkpoint_email - START ---
╭──────────────────┬─────────────┬───────────┬───────────────────────────────────────────┬────────┬──────────────╮
│ PACKAGE          │ DATA STREAM │ TEST TYPE │ TEST NAME                                 │ RESULT │ TIME ELAPSED │
├──────────────────┼─────────────┼───────────┼───────────────────────────────────────────┼────────┼──────────────┤
│ checkpoint_email │ event       │ pipeline  │ (ingest pipeline warnings test-event.log) │ PASS   │   309.6712ms │
│ checkpoint_email │ event       │ pipeline  │ test-event.log                            │ PASS   │ 247.700215ms │
╰──────────────────┴─────────────┴───────────┴───────────────────────────────────────────┴────────┴──────────────╯
--- Test results for package: checkpoint_email - END   ---
Done
--- Test results for package: checkpoint_email - START ---
╭──────────────────┬─────────────┬───────────┬──────��────┬────────┬───────────────╮
│ PACKAGE          │ DATA STREAM │ TEST TYPE │ TEST NAME │ RESULT │  TIME ELAPSED │
├──────────────────┼─────────────┼───────────┼───────────┼────────┼───────────────┤
│ checkpoint_email │ event       │ system    │ default   │ PASS   │ 41.094371033s │
╰──────────────────┴─────────────┴───────────┴───────────┴────────┴───────────────╯
--- Test results for package: checkpoint_email - END   ---
Done
--- Test results for package: checkpoint_email - START ---
╭──────────────────┬─────────────┬───────────┬──────────────────────────┬────────┬──────────────╮
│ PACKAGE          │ DATA STREAM │ TEST TYPE │ TEST NAME                │ RESULT │ TIME ELAPSED │
├──────────────────┼─────────────┼───────────┼──────────────────────────┼────────┼──────────────┤
│ checkpoint_email │ event       │ static    │ Verify sample_event.json │ PASS   │ 139.139436ms │
╰──────────────────┴─────────────┴───────────┴──────────────────────────┴────────┴──────────────╯
--- Test results for package: checkpoint_email - END   ---
Done
--- Test results for package: checkpoint_email - START ---
╭──────────────────┬─────────────┬───────────┬───────────────────────────────────────────────────────────────────────────┬────────┬──────────────╮
│ PACKAGE          │ DATA STREAM │ TEST TYPE │ TEST NAME                                                                 │ RESULT │ TIME ELAPSED │
├──────────────────┼─────────────┼───────────┼───────────────────────────────────────────────────────────────────────────┼────────┼──────────────┤
│ checkpoint_email │             │ asset     │ dashboard checkpoint_email-3f1885e2-633d-4aa9-bf77-56a98d484692 is loaded │ PASS   │      1.189µs │
│ checkpoint_email │             │ asset     │ search checkpoint_email-83662506-f7ee-40ba-9f16-65da29ec7ef4 is loaded    │ PASS   │        300ns │
│ checkpoint_email │ event       │ asset     │ index_template logs-checkpoint_email.event is loaded                      │ PASS   │        273ns │
│ checkpoint_email │ event       │ asset     │ ingest_pipeline logs-checkpoint_email.event-0.1.0 is loaded               │ PASS   │        180ns │
╰──────────────────┴─────────────┴───────────┴───────────────────────────────────────────────────────────────────────────┴────────┴──────────────╯
--- Test results for package: checkpoint_email - END   ---
Done

Related issues

Screenshots

Integration Page
Overview Page

@andrewkroh andrewkroh added Crest Contributions from Crest developement team. New Integration Issue or pull request for creating a new integration package. labels Oct 18, 2024
@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

🚀 Benchmarks report

To see the full report comment with /test benchmark fullreport

@jamiehynds jamiehynds added the Team:Security-Service Integrations Security Service Integrations team [elastic/security-service-integrations] label Oct 21, 2024
@elasticmachine

Copy link
Copy Markdown

Pinging @elastic/security-service-integrations (Team:Security-Service Integrations)

@jamiehynds

Copy link
Copy Markdown

@brijesh-elastic minor nit, but Checkpoint should be Check Point to ensure alignment with their branding. Can you make sure we're using Check Point in integration title, labels, documentation, dashboards, etc?

Comment thread packages/checkpoint_email/data_stream/event/agent/stream/cel.yml.hbs Outdated
Comment thread packages/checkpoint_email/_dev/deploy/docker/files/config.yml
"end_date": now.format(time_layout.RFC3339),
})
).as(state,
has(state.events) && type(state.events) == type({}) && has(state.events.error) ? state : // Exit early due to POST failure.

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.

ISTM that we don't need to check for the existence of the error field; the only time that we will have a state.event that is an object is when there was an error. But we can simplify further…

Suggested change
has(state.events) && type(state.events) == type({}) && has(state.events.error) ? state : // Exit early due to POST failure.
type(state.?events.orValue(null)) == type({}) ? state : // Exit early due to POST failure.

I'm not a big fan of putting everything in state here. I think the preamble should be into different label so that there is some demarcation about what expected scopes are.

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.

Still not wildly happy with having everything in state.

field: event.category
tag: append_malware_into_event_category
value: malware
if: ctx.json?.type != null && ['malware', 'suspicious malware'].contains(ctx.json.type.toLowerCase())

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.

Suggested change
if: ctx.json?.type != null && ['malware', 'suspicious malware'].contains(ctx.json.type.toLowerCase())
if: >-
ctx.json?.type != null && (
ctx.json.type.equalsIgnoreCase('malware') ||
ctx.json.type.equalsIgnoreCase('suspicious malware')
)

(similar below)

on_failure:
- append:
field: error.message
value: 'Processor {{{_ingest.on_failure_processor_type}}} with tag {{{_ingest.on_failure_processor_tag}}} in pipeline {{{_ingest.on_failure_pipeline}}} failed with message: {{{_ingest.on_failure_message}}}'

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.

Suggested change
value: 'Processor {{{_ingest.on_failure_processor_type}}} with tag {{{_ingest.on_failure_processor_tag}}} in pipeline {{{_ingest.on_failure_pipeline}}} failed with message: {{{_ingest.on_failure_message}}}'
value: >-
Processor '{{{ _ingest.on_failure_processor_type }}}'
{{{#_ingest.on_failure_processor_tag}}}with tag '{{{ _ingest.on_failure_processor_tag }}}'
{{{/_ingest.on_failure_processor_tag}}}failed with message '{{{ _ingest.on_failure_message }}}'
@brijesh-elastic brijesh-elastic changed the title [checkpoint_email] Initial release of the Checkpoint Harmony Email & Collaboration Oct 23, 2024
@brijesh-elastic
brijesh-elastic requested a review from efd6 October 23, 2024 06:34

@efd6 efd6 left a comment

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.

Nits only.

field: event.type
tag: append_indicator_into_event_type
value: indicator
if: ctx.json?.type != null && ['anomaly', 'shadow_it'].contains(ctx.json.type.toLowerCase())

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.

Also here.

Comment thread packages/checkpoint_email/_dev/deploy/docker/files/config.yml
@brijesh-elastic
brijesh-elastic requested a review from efd6 October 28, 2024 10:59
@elasticmachine

Copy link
Copy Markdown

💚 Build Succeeded

History

@willemdh

Copy link
Copy Markdown

Is this based on parsing the json from the Harmony Email and Collaboration SIEM integration or for the Check Point portal logs?

@efd6

efd6 commented Oct 28, 2024

Copy link
Copy Markdown
Contributor

@jamiehynds Are you good with this now?

@brijesh-elastic

Copy link
Copy Markdown
Contributor Author

Is this based on parsing the json from the Harmony Email and Collaboration SIEM integration or for the Check Point portal logs?

It is collecting security events data from Harmony Email & Collaboration Smart API.

@jamiehynds

Copy link
Copy Markdown

LGTM

@kcreddy
kcreddy merged commit 9b5a6b4 into elastic:main Nov 8, 2024
@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Package checkpoint_email - 0.1.0 containing this change is available at https://epr.elastic.co/search?package=checkpoint_email

@andrewkroh andrewkroh added the Integration:checkpoint_email Check Point Harmony Email & Collaboration label Nov 18, 2024
harnish-crest-data pushed a commit to chavdaharnish/integrations that referenced this pull request Feb 4, 2025
… Collaboration (elastic#11472)

Create New integration package checkpoint_email.

Added event data stream.
Added data collection logic for the data stream.
Added the ingest pipeline for the data stream.
Mapped fields according to the ECS schema and added Fields metadata in the appropriate yml files.
Added dashboard and visualizations.
Added pipeline test for the data stream.
Added system test cases for the data stream.
harnish-crest-data pushed a commit to chavdaharnish/integrations that referenced this pull request Feb 5, 2025
… Collaboration (elastic#11472)

Create New integration package checkpoint_email.

Added event data stream.
Added data collection logic for the data stream.
Added the ingest pipeline for the data stream.
Mapped fields according to the ECS schema and added Fields metadata in the appropriate yml files.
Added dashboard and visualizations.
Added pipeline test for the data stream.
Added system test cases for the data stream.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Crest Contributions from Crest developement team. Integration:checkpoint_email Check Point Harmony Email & Collaboration New Integration Issue or pull request for creating a new integration package. Team:Security-Service Integrations Security Service Integrations team [elastic/security-service-integrations]

7 participants