Skip to content

Conversation

@brijesh-elastic
Copy link
Collaborator

@brijesh-elastic brijesh-elastic commented Nov 21, 2025

Proposed commit message

proofpoint_essentials: Initial Release of Proofpoint Essentials

The Proofpoint Essentials integration with Elastic enables the
collection of threats for monitoring and analysis. This valuable data
can be leveraged within Elastic to analyze potential threat signals,
including spam, phishing, business email compromise (BEC), imposter
emails, ransomware, and malware.

The integration collects threats using the (Essentials Threat API)
[1], after which they are rerouted to different data streams based on
their types.
- clicks_blocked
- clicks_permitted
- message_blocked
- message_delivered

Sanitized test case inputs were obtained from live Proofpoint Essentials
instance using the Essentials Threat API.

[1] https://help.proofpoint.com/Essentials/Additional_Resources/API_Documentation/Essentials_Threat_API

Note

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.
  • I have verified that any added dashboard complies with Kibana's Dashboard good practices

How to test this PR locally

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

elastic-package test

Related issues

Screenshots

Clicks Overview Messages Overview

@brijesh-elastic brijesh-elastic self-assigned this Nov 21, 2025
@brijesh-elastic brijesh-elastic requested a review from a team as a code owner November 21, 2025 07:10
@brijesh-elastic brijesh-elastic added documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. enhancement New feature or request dashboard Relates to a Kibana dashboard bug, enhancement, or modification. New Integration Issue or pull request for creating a new integration package. Team:Security-Service Integrations Security Service Integrations team [elastic/security-service-integrations] Team:Sit-Crest Crest developers on the Security Integrations team [elastic/sit-crest-contractors] labels Nov 21, 2025
@elasticmachine
Copy link

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

@brijesh-elastic brijesh-elastic requested a review from a team November 21, 2025 07:14
@elastic-vault-github-plugin-prod

🚀 Benchmarks report

To see the full report comment with /test benchmark fullreport

@elasticmachine
Copy link

💚 Build Succeeded

cc @brijesh-elastic

description: The rewrite status of the message.
- name: customer_eid
type: keyword
description: The customers entity ID.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
description: The customers entity ID.
description: The customer's entity ID.

(throughout)

fields:
- name: content_type
type: keyword
description: The true, detected Content-Type of the messagePart. This may differ from the oContentType value.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
description: The true, detected Content-Type of the messagePart. This may differ from the oContentType value.
description: The true, detected Content-Type of the messagePart. This may differ from the `o_content_type` value.

(throughout)

I think probably that generally the camelCase names in the descriptions should be converted to snake_case to avoid confusion since all the fields have been converted to snake_case.

Copy link
Contributor

Choose a reason for hiding this comment

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

Currently the filters are acting at the dashboard level. Can they be moved to the visualisation level so that users are not able to accidentally remove them?

if (ctx.proofpoint_essentials.threat.threats_info_map instanceof List) {
for (item in ctx.proofpoint_essentials.threat.threats_info_map) {
if (item?.threat_time instanceof String && Instant.parse(item.threat_time).isAfter(ts)) {
ctx['@timestamp'] = item.threat_time;
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
ctx['@timestamp'] = item.threat_time;
ts = item.threat_time;

}
if (ctx.proofpoint_essentials?.threat?.event_type == 'clicks_blocked' || ctx.proofpoint_essentials?.threat?.event_type == 'clicks_permitted') {
if (ctx.proofpoint_essentials.threat.threat_time instanceof String && Instant.parse(ctx.proofpoint_essentials.threat.threat_time).isAfter(ts)) {
ctx['@timestamp'] = ctx.proofpoint_essentials.threat.threat_time;
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
ctx['@timestamp'] = ctx.proofpoint_essentials.threat.threat_time;
ts = ctx.proofpoint_essentials.threat.threat_time;

if (ctx.proofpoint_essentials.threat.threat_time instanceof String && Instant.parse(ctx.proofpoint_essentials.threat.threat_time).isAfter(ts)) {
ctx['@timestamp'] = ctx.proofpoint_essentials.threat.threat_time;
}
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
}
}
ctx['@timestamp'] = ts;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dashboard Relates to a Kibana dashboard bug, enhancement, or modification. documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. enhancement New feature or request New Integration Issue or pull request for creating a new integration package. Team:Security-Service Integrations Security Service Integrations team [elastic/security-service-integrations] Team:Sit-Crest Crest developers on the Security Integrations team [elastic/sit-crest-contractors]

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[New Integration] Proofpoint Essentials

3 participants