Proofpoint Targeted Attack Protection (TAP)
Overview
Proofpoint TAP is the core threat detection engine in the Proofpoint email security stack. It analyzes email messages, URLs, and attachments in real time using sandboxing, behavioral analysis, and threat intelligence. The TAP SIEM API provides programmatic access to all threat events, click activity, and message disposition data.
TAP identifies three primary threat vectors:
- URL threats - Malicious links in email bodies
- Attachment threats - Malicious files attached to messages
- Message-level threats - Threats classified at the message level (e.g., BEC, impostor)
Anti-triggers
- Anything older than 24 hours — the SIEM API's maximum lookback is
24 hours and it answers an out-of-range window with an empty result,
not an error. "Did we see this last week?" needs
proofpoint-forensics for a specific message or
proofpoint-threat-intel for a campaign.
- Acting on a message — TAP is a read-only event feed. Release and
delete are
proofpoint-quarantine; removing delivered mail is
proofpoint-forensics.
- Which people are most targeted — TAP returns per-event rows; the
per-user rollup, Attack Index, and VAP list are
proofpoint-people.
- Another vendor's threat events — Checkpoint Harmony is
avanan-threats, Abnormal is abnormal-security-threats,
and Mimecast message-level delivery tracking is
mimecast-message-tracking.
- A rewritten link and what happened when it was clicked — URL
Defense rewriting, click verdicts, and decoding a
urldefense.proofpoint.com target are proofpoint-url-defense;
TAP reports the click event without explaining the rewrite.
Key Concepts
Threat Classifications
| Classification |
Description |
Typical Action |
malware |
Known or sandboxed malware payload |
Block and quarantine |
phish |
Credential harvesting or phishing |
Block and quarantine |
spam |
Unsolicited bulk email |
Quarantine or tag |
impostor |
Business Email Compromise (BEC) |
Quarantine or warn |
Threat Dispositions
| Disposition |
Description |
allowed |
Message was delivered to the recipient |
blocked |
Message was blocked before delivery |
quarantined |
Message was placed in quarantine |
Click Verdicts
| Verdict |
Description |
permitted |
Click was allowed (URL was clean at time of click) |
blocked |
Click was blocked (URL was malicious at time of click) |
Time Windows
TAP SIEM API supports relative and absolute time windows:
| Parameter |
Format |
Example |
Max Window |
sinceSeconds |
Integer (seconds) |
3600 (1 hour) |
86400 (24 hours) |
sinceTime |
ISO 8601 |
2024-02-15T00:00:00Z |
24 hours from now |
interval |
ISO 8601 duration |
PT1H (1 hour) |
1 hour |
Important: The maximum lookback window is 24 hours. For historical data beyond 24 hours, use the forensics or campaign APIs instead.
Field Reference
Message Event Fields
| Field |
Type |
Description |
GUID |
string |
Unique message identifier |
QID |
string |
Queue ID from the mail server |
sender |
string |
Envelope sender address |
recipient |
string[] |
List of recipient addresses |
subject |
string |
Message subject line |
messageTime |
datetime |
When the message was processed |
threatsInfoMap |
object[] |
Array of threat details |
malwareScore |
int |
0-100 malware confidence score |
phishScore |
int |
0-100 phishing confidence score |
spamScore |
int |
0-100 spam confidence score |
impostorScore |
int |
0-100 impostor/BEC confidence score |
cluster |
string |
Proofpoint cluster that processed the message |
messageParts |
object[] |
Breakdown of message MIME parts |
completelyRewritten |
boolean |
Whether all URLs were rewritten by URL Defense |
policyRoutes |
string[] |
Policy rules that matched |
Threat Info Map Fields
| Field |
Type |
Description |
threat |
string |
The threat indicator (URL, hash, etc.) |
threatID |
string |
Unique threat identifier |
threatStatus |
string |
active, cleared, falsePositive |
threatTime |
datetime |
When the threat was first identified |
threatType |
string |
url, attachment, messageText |
classification |
string |
malware, phish, spam, impostor |
threatUrl |
string |
URL to threat detail in TAP dashboard |
Click Event Fields
| Field |
Type |
Description |
campaignId |
string |
Associated campaign identifier |
clickIP |
string |
IP address of the clicker |
clickTime |
datetime |
When the click occurred |
GUID |
string |
Message GUID containing the URL |
recipient |
string |
Who clicked |
sender |
string |
Who sent the message |
threatID |
string |
Threat identifier for the URL |
threatTime |
datetime |
When URL was classified as threat |
threatURL |
string |
The malicious URL that was clicked |
url |
string |
The original URL before rewrite |
userAgent |
string |
Browser user agent of the clicker |
classification |
string |
malware, phish |
MCP Tools
| Tool |
Description |
Key Parameters |
proofpoint_tap_get_all_threats |
Retrieve all TAP events (messages + clicks) |
sinceSeconds, sinceTime, interval, threatStatus, format |
proofpoint_tap_get_messages_blocked |
Get messages blocked by TAP |
sinceSeconds, sinceTime, interval, threatStatus |
proofpoint_tap_get_messages_delivered |
Get messages delivered despite threats |
sinceSeconds, sinceTime, interval, threatStatus |
proofpoint_tap_get_clicks_permitted |
Get clicks that were permitted |
sinceSeconds, sinceTime, interval, threatStatus |
proofpoint_tap_get_clicks_blocked |
Get clicks that were blocked |
sinceSeconds, sinceTime, interval, threatStatus |
Top clickers is not a TAP tool. The ranked list of users who click
threats lives in the People domain as proofpoint_people_get_top_clickers
(window, page, size) — see the proofpoint-people skill. There is no
threatType filter on any of the SIEM tools either; filter the returned
events client-side by classification.
Common Workflows
Check Recent Threats (Last Hour)
- Call
proofpoint_tap_get_all_threats with sinceSeconds=3600
- Separate results into messages blocked, messages delivered, clicks permitted, clicks blocked
- Prioritize any delivered threats or permitted clicks for immediate investigation
- Group threats by classification (malware, phish, impostor)
Investigate a Specific Time Window
- Call
proofpoint_tap_get_messages_blocked with sinceTime set to start of window
- Call
proofpoint_tap_get_messages_delivered with same time window
- Cross-reference delivered messages against click data
- Identify any users who received and clicked on threats
Monitor for Business Email Compromise
- Call
proofpoint_tap_get_messages_delivered with sinceSeconds=3600
- Filter for
impostorScore > 50 in results
- Check if any impostor messages were delivered without quarantine
- Alert on high-confidence impostor messages that reached users
Daily Threat Summary
- Call
proofpoint_tap_get_all_threats with sinceSeconds=86400
- Aggregate by classification: malware, phish, spam, impostor counts
- Identify top targeted recipients
- List any permitted clicks with threat details
- Generate summary report with trend comparison
Click Investigation
- Call
proofpoint_tap_get_clicks_permitted with relevant time window
- For each permitted click, note the
recipient, threatURL, and clickTime
- Cross-reference
campaignId to find related threats
- Check if the user's credentials may be compromised
- Initiate password reset if phishing click was to a credential harvester
Error Handling
Common API Errors
| Code |
Message |
Resolution |
| 400 |
Invalid time range |
Ensure sinceSeconds <= 86400 or sinceTime is within 24 hours |
| 400 |
Invalid threatType |
Use url, attachment, or messageText |
| 401 |
Authentication failed |
Verify service principal and secret |
| 403 |
Insufficient permissions |
Ensure TAP API access is enabled for your service principal |
| 404 |
No data available |
No events in the specified time window |
| 429 |
Rate limit exceeded |
Implement backoff; TAP API allows ~1000 requests/hour |
Empty Results
If no events are returned:
- The time window may be too narrow - expand to full 24 hours
- The organization may not have had any threat events in the window
- Check that the service principal has access to the correct organization
Best Practices
- Poll regularly - Set up periodic polling (every 5-15 minutes) for near-real-time threat awareness
- Focus on delivered threats - Blocked threats are handled; delivered threats need human review
- Track permitted clicks - These indicate users who interacted with threats and may need remediation
- Correlate with campaigns - Use
campaignId to connect individual events to broader threat campaigns
- Monitor impostor scores - BEC attacks are high-value and may bypass traditional filters
- Use threatID for dedup - The same threat may appear in multiple events; deduplicate by
threatID
- Export to SIEM - Forward TAP events to your SIEM for long-term retention and correlation
- Check message parts - Inspect
messageParts for multi-vector attacks (URL + attachment)
Related Skills
1---2name: proofpoint-tap3description: Proofpoint Targeted Attack Protection (TAP) fundamentals: threat events across URL, attachment, and message-level vectors, click tracking, message disposition, SIEM integration feeds, and campaign correlation.4---56# Proofpoint Targeted Attack Protection (TAP)78## Overview910Proofpoint TAP is the core threat detection engine in the Proofpoint email security stack. It analyzes email messages, URLs, and attachments in real time using sandboxing, behavioral analysis, and threat intelligence. The TAP SIEM API provides programmatic access to all threat events, click activity, and message disposition data.1112TAP identifies three primary threat vectors:13- **URL threats** - Malicious links in email bodies14- **Attachment threats** - Malicious files attached to messages15- **Message-level threats** - Threats classified at the message level (e.g., BEC, impostor)1617## Anti-triggers1819- **Anything older than 24 hours** — the SIEM API's maximum lookback is20 24 hours and it answers an out-of-range window with an empty result,21 not an error. "Did we see this last week?" needs22 `proofpoint-forensics` for a specific message or23 `proofpoint-threat-intel` for a campaign.24- **Acting on a message** — TAP is a read-only event feed. Release and25 delete are `proofpoint-quarantine`; removing delivered mail is26 `proofpoint-forensics`.27- **Which people are most targeted** — TAP returns per-event rows; the28 per-user rollup, Attack Index, and VAP list are `proofpoint-people`.29- **Another vendor's threat events** — Checkpoint Harmony is30 `avanan-threats`, Abnormal is `abnormal-security-threats`,31 and Mimecast message-level delivery tracking is32 `mimecast-message-tracking`.33- **A rewritten link and what happened when it was clicked** — URL34 Defense rewriting, click verdicts, and decoding a35 `urldefense.proofpoint.com` target are `proofpoint-url-defense`;36 TAP reports the click event without explaining the rewrite.3738## Key Concepts3940### Threat Classifications4142| Classification | Description | Typical Action |43|---------------|-------------|----------------|44| `malware` | Known or sandboxed malware payload | Block and quarantine |45| `phish` | Credential harvesting or phishing | Block and quarantine |46| `spam` | Unsolicited bulk email | Quarantine or tag |47| `impostor` | Business Email Compromise (BEC) | Quarantine or warn |4849### Threat Dispositions5051| Disposition | Description |52|-------------|-------------|53| `allowed` | Message was delivered to the recipient |54| `blocked` | Message was blocked before delivery |55| `quarantined` | Message was placed in quarantine |5657### Click Verdicts5859| Verdict | Description |60|---------|-------------|61| `permitted` | Click was allowed (URL was clean at time of click) |62| `blocked` | Click was blocked (URL was malicious at time of click) |6364### Time Windows6566TAP SIEM API supports relative and absolute time windows:6768| Parameter | Format | Example | Max Window |69|-----------|--------|---------|------------|70| `sinceSeconds` | Integer (seconds) | `3600` (1 hour) | 86400 (24 hours) |71| `sinceTime` | ISO 8601 | `2024-02-15T00:00:00Z` | 24 hours from now |72| `interval` | ISO 8601 duration | `PT1H` (1 hour) | 1 hour |7374**Important:** The maximum lookback window is 24 hours. For historical data beyond 24 hours, use the forensics or campaign APIs instead.7576## Field Reference7778### Message Event Fields7980| Field | Type | Description |81|-------|------|-------------|82| `GUID` | string | Unique message identifier |83| `QID` | string | Queue ID from the mail server |84| `sender` | string | Envelope sender address |85| `recipient` | string[] | List of recipient addresses |86| `subject` | string | Message subject line |87| `messageTime` | datetime | When the message was processed |88| `threatsInfoMap` | object[] | Array of threat details |89| `malwareScore` | int | 0-100 malware confidence score |90| `phishScore` | int | 0-100 phishing confidence score |91| `spamScore` | int | 0-100 spam confidence score |92| `impostorScore` | int | 0-100 impostor/BEC confidence score |93| `cluster` | string | Proofpoint cluster that processed the message |94| `messageParts` | object[] | Breakdown of message MIME parts |95| `completelyRewritten` | boolean | Whether all URLs were rewritten by URL Defense |96| `policyRoutes` | string[] | Policy rules that matched |9798### Threat Info Map Fields99100| Field | Type | Description |101|-------|------|-------------|102| `threat` | string | The threat indicator (URL, hash, etc.) |103| `threatID` | string | Unique threat identifier |104| `threatStatus` | string | `active`, `cleared`, `falsePositive` |105| `threatTime` | datetime | When the threat was first identified |106| `threatType` | string | `url`, `attachment`, `messageText` |107| `classification` | string | `malware`, `phish`, `spam`, `impostor` |108| `threatUrl` | string | URL to threat detail in TAP dashboard |109110### Click Event Fields111112| Field | Type | Description |113|-------|------|-------------|114| `campaignId` | string | Associated campaign identifier |115| `clickIP` | string | IP address of the clicker |116| `clickTime` | datetime | When the click occurred |117| `GUID` | string | Message GUID containing the URL |118| `recipient` | string | Who clicked |119| `sender` | string | Who sent the message |120| `threatID` | string | Threat identifier for the URL |121| `threatTime` | datetime | When URL was classified as threat |122| `threatURL` | string | The malicious URL that was clicked |123| `url` | string | The original URL before rewrite |124| `userAgent` | string | Browser user agent of the clicker |125| `classification` | string | `malware`, `phish` |126127## MCP Tools128129| Tool | Description | Key Parameters |130|------|-------------|----------------|131| `proofpoint_tap_get_all_threats` | Retrieve all TAP events (messages + clicks) | `sinceSeconds`, `sinceTime`, `interval`, `threatStatus`, `format` |132| `proofpoint_tap_get_messages_blocked` | Get messages blocked by TAP | `sinceSeconds`, `sinceTime`, `interval`, `threatStatus` |133| `proofpoint_tap_get_messages_delivered` | Get messages delivered despite threats | `sinceSeconds`, `sinceTime`, `interval`, `threatStatus` |134| `proofpoint_tap_get_clicks_permitted` | Get clicks that were permitted | `sinceSeconds`, `sinceTime`, `interval`, `threatStatus` |135| `proofpoint_tap_get_clicks_blocked` | Get clicks that were blocked | `sinceSeconds`, `sinceTime`, `interval`, `threatStatus` |136137**Top clickers is not a TAP tool.** The ranked list of users who click138threats lives in the People domain as `proofpoint_people_get_top_clickers`139(`window`, `page`, `size`) — see the `proofpoint-people` skill. There is no140`threatType` filter on any of the SIEM tools either; filter the returned141events client-side by classification.142143## Common Workflows144145### Check Recent Threats (Last Hour)1461471. Call `proofpoint_tap_get_all_threats` with `sinceSeconds=3600`1482. Separate results into messages blocked, messages delivered, clicks permitted, clicks blocked1493. Prioritize any delivered threats or permitted clicks for immediate investigation1504. Group threats by classification (malware, phish, impostor)151152### Investigate a Specific Time Window1531541. Call `proofpoint_tap_get_messages_blocked` with `sinceTime` set to start of window1552. Call `proofpoint_tap_get_messages_delivered` with same time window1563. Cross-reference delivered messages against click data1574. Identify any users who received and clicked on threats158159### Monitor for Business Email Compromise1601611. Call `proofpoint_tap_get_messages_delivered` with `sinceSeconds=3600`1622. Filter for `impostorScore > 50` in results1633. Check if any impostor messages were delivered without quarantine1644. Alert on high-confidence impostor messages that reached users165166### Daily Threat Summary1671681. Call `proofpoint_tap_get_all_threats` with `sinceSeconds=86400`1692. Aggregate by classification: malware, phish, spam, impostor counts1703. Identify top targeted recipients1714. List any permitted clicks with threat details1725. Generate summary report with trend comparison173174### Click Investigation1751761. Call `proofpoint_tap_get_clicks_permitted` with relevant time window1772. For each permitted click, note the `recipient`, `threatURL`, and `clickTime`1783. Cross-reference `campaignId` to find related threats1794. Check if the user's credentials may be compromised1805. Initiate password reset if phishing click was to a credential harvester181182## Error Handling183184### Common API Errors185186| Code | Message | Resolution |187|------|---------|------------|188| 400 | Invalid time range | Ensure `sinceSeconds` <= 86400 or `sinceTime` is within 24 hours |189| 400 | Invalid threatType | Use `url`, `attachment`, or `messageText` |190| 401 | Authentication failed | Verify service principal and secret |191| 403 | Insufficient permissions | Ensure TAP API access is enabled for your service principal |192| 404 | No data available | No events in the specified time window |193| 429 | Rate limit exceeded | Implement backoff; TAP API allows ~1000 requests/hour |194195### Empty Results196197If no events are returned:198- The time window may be too narrow - expand to full 24 hours199- The organization may not have had any threat events in the window200- Check that the service principal has access to the correct organization201202## Best Practices2032041. **Poll regularly** - Set up periodic polling (every 5-15 minutes) for near-real-time threat awareness2052. **Focus on delivered threats** - Blocked threats are handled; delivered threats need human review2063. **Track permitted clicks** - These indicate users who interacted with threats and may need remediation2074. **Correlate with campaigns** - Use `campaignId` to connect individual events to broader threat campaigns2085. **Monitor impostor scores** - BEC attacks are high-value and may bypass traditional filters2096. **Use threatID for dedup** - The same threat may appear in multiple events; deduplicate by `threatID`2107. **Export to SIEM** - Forward TAP events to your SIEM for long-term retention and correlation2118. **Check message parts** - Inspect `messageParts` for multi-vector attacks (URL + attachment)212213## Related Skills214215- [Proofpoint Quarantine](../quarantine/SKILL.md) - Manage quarantined messages216- [Proofpoint Threat Intelligence](../threat-intel/SKILL.md) - Campaign and IOC data217- [Proofpoint Forensics](../forensics/SKILL.md) - Deep threat investigation218- [Proofpoint People](../people/SKILL.md) - Very Attacked People reports219- [Proofpoint API Patterns](../api-patterns/SKILL.md) - Authentication and rate limits