figma guide

Designing threat intelligence feeds and IOC management UI in Figma: feeds, blocklists, and handoff

Design threat intelligence feed and IOC management UI in Figma with feed connectors, indicator tables, blocklist sync, expiry rules, and Dev Mode specs for enterprise Security admin.

Published
Updated
Jul 24, 2026
Read time
8 min
Level
Intermediate

Quick answer

Threat intelligence UI helps security teams ingest, review, and enforce indicators (IPs, domains, file hashes) from trusted feeds—without blocking legitimate traffic by accident. Design a feed catalog with source, format, freshness, and sync status; IOC table with type, severity, confidence, expiry, and enforcement action; review queue for new indicators before auto-block; blocklist sync to firewalls, IP allowlist, and automation workflows; and false-positive reporting tied to audit log. Start from the Figma guides hub and pair with SIEM ingestion, alerting, DLP, and Dev Mode handoff.


Who this is for

  • Product designers building Threat Intel platforms, feed connectors, and IOC enforcement panels for enterprise Security admin consoles.
  • Design system teams aligning indicator chips with badges, tables, and severity color tokens from color systems.
  • Engineers implementing STIX/TAXII parsers, deduplication, TTL expiry, and idempotent blocklist pushes to edge devices.

Feed catalog (admin hub)

FeedCatalog
├── Header: Threat intelligence · [ Add feed ] [ Sync all ] [ IOC search ]
├── Summary: 8 feeds active · 14,204 IOCs · 312 pending review · Last sync 6m ago
├── Filters: Feed source · IOC type · Confidence · Enforcement status
└── Row: CrowdStrike Intel · STIX 2.1 · 2,841 IOCs · Synced · 12 pending review
ColumnContent
Feed name”AlienVault OTX”, “MISP community”, “Internal honeypot”
FormatSTIX 2.1, TAXII 2.1, CSV, JSON, custom webhook
IOC typesIP, domain, URL, file hash (MD5/SHA256), email
FreshnessLast successful sync, next scheduled pull
Confidence policyAuto-enforce High+ only; Medium → review queue
StatusConnected / Auth error / Paused / Deprecated
OwnerThreat intel team or SOC lead

Verdict: catalog separates community feeds (always review) from vendor-signed feeds (auto-enforce with confidence threshold).

Link feed health to SIEM connectors—shared OAuth and webhook patterns reduce admin confusion.


IOC table and detail drawer

IOCTable
├── Search: 185.220.* · Filter: IP · Confidence ≥ Medium · Active only
├── Bulk: [ Approve ] [ Extend TTL ] [ Whitelist ] [ Export STIX ]
└── Row: 185.220.101.42 · IP · High · Block outbound · Expires 7d · Source: FS-ISAC
FieldUI detail
Indicator valueMonospace; copy button; link to investigation workspace
Type chipIP / Domain / URL / Hash / Email
ConfidenceLow / Medium / High / Critical with color token
SeverityMapped from feed or overridden by analyst
EnforcementMonitor only / Alert / Block / Quarantine file
TTL / expiryCountdown badge; auto-archive when expired
First seen / Last seenFrom feed metadata or internal sightings
Related alertsCount link to alerting
False positive flagAnalyst override with reason

Detail drawer: STIX raw snippet (redacted), feed lineage, enrichment (geo, ASN, WHOIS), linked automation workflows that reference this IOC.

Use tables with sticky bulk-action bar; expandable rows for STIX context.


Review queue (human gate)

ReviewQueue
├── Pending: 312 new IOCs from 3 feeds · Sort: Confidence desc
├── Row: evil-cdn.example · Domain · Medium · Proposed: Block DNS
├── Context: 0 internal sightings · 2 other feeds agree · Similar to allowlisted CDN
├── Actions: [ Approve block ] [ Monitor only ] [ Reject ] [ Whitelist pattern ]
└── SLA: Auto-expire unreviewed Low confidence after 72h
PatternUI detail
Confidence gateHigh+ auto-enforce; Medium/Low land in queue
Multi-feed agreementBadge when 2+ feeds report same indicator
Conflict warningIndicator overlaps IP allowlist or partner domain
Bulk approveFilter by feed + type; require second analyst for Critical
Reject reasonFalse positive, stale, duplicate, out of scope
AuditEvery decision writes audit event

Pair with team roles—Threat Analyst vs Threat Admin for approve vs configure feeds.


Blocklist sync and enforcement

EnforcementTargets
├── Cloud WAF — Synced 4m ago · 12,044 rules · 3 push errors
├── Identity proxy — Synced 12m ago · Domain blocklist
├── Email gateway — Manual export · CSV last downloaded yesterday
└── [Automation hook](/designing-security-automation-and-response-workflows-ui-in-figma/) — Trigger on new Critical IP
TargetSync behavior
Edge / WAFPush IP/domain lists; show diff since last sync
DNS filterDomain + wildcard patterns with TTL
Endpoint EDRHash block via API; large batches queued
SIEMEnrichment lookup table—not block, but tag events
Custom webhookPOST new Critical IOCs to automation trigger

Show sync diff preview before push: “+42 new, -18 expired, 2 conflicts with allowlist.”

Rollback: one-click revert to previous blocklist snapshot—critical after bad feed day.


Whitelist, overlap, and false positives

OverlapWarning
├── IOC: 203.0.113.0/24 · Block proposed
├── Conflicts: IP allowlist "Partner VPN egress" · 3 active admin sessions
├── Recommendation: Monitor only until allowlist exception filed
└── [ Open allowlist ] [ Create exception ticket ]
PatternPurpose
Global whitelistCorporate domains, CDN ranges, scanner IPs
Temporary exceptionTime-boxed allow with expiry and owner
False positive reportMember or analyst flags block; feeds into feed tuning
Suppression linkTie to alerting suppression for related rules
Feedback to feedExport FP list to vendor (no PII)

Surface FP rate per feed on posture dashboard—high FP feeds get paused automatically.


Feed configuration wizard

AddFeedWizard
├── Step 1: Source — TAXII collection URL or upload STIX bundle
├── Step 2: Auth — API key · OAuth · mTLS cert · Link [API keys](/designing-api-keys-and-personal-access-tokens-ui-in-figma/)
├── Step 3: Mapping — IOC type fields · Confidence scale normalization
├── Step 4: Policy — Auto-enforce threshold · Review queue rules · Default TTL
├── Step 5: Targets — WAF · DNS · SIEM enrichment · Webhook
└── Test pull: Preview 50 IOCs without enforcing
StepHandoff note
AuthStore credentials in vault reference—not plain text
MappingDocument STIX path → internal schema in Dev Mode
PolicyDefault TTL prevents stale blocks (e.g., 30d IP, 90d domain)
Test pullRequired before “Enable enforcement” toggle unlocks

Use progress stepper for wizard; modals for destructive “Disable feed and remove IOCs.”


Prebuilt feed templates

TemplateFormatDefault policyPairs with
Commercial TI (STIX/TAXII)TAXII 2.1High+ auto-blockSIEM enrichment
ISAC community feedSTIX bundleAll → review queueVendor risk
Internal honeypot exportJSON webhookCritical auto-blockAutomation lock workflow
Phishing domain listCSV dailyDomain block + alertingEmail gateway
Known-bad file hashesSTIXEDR quarantineDLP
Tor exit nodesPublic listMonitor onlyIP allowlist tune

Template gallery uses cards with enforcement badge and estimated IOC volume.


Posture and feed hygiene

Feed into security posture dashboard:

PostureGapCard — Threat intel hygiene
├── 1 feed auth token expires in 3 days
├── 8% of active IOCs past recommended TTL
├── Feed "Community X" false positive rate 22% (threshold 10%)
└── [ Review queue ] [ Rotate feed credentials ]

Metrics: IOCs added/removed per day, blocks triggered, FP reports, mean time in review queue.

Pair with incident runbooks—“Mass false block from feed” playbook linked from feed error banner.


Common mistakes

MistakeWhy it hurtsFix
Auto-block all feed IOCsBlocks partner VPN or CDNConfidence gate + review queue
No TTL on indicatorsStale blocks years laterDefault expiry per IOC type
Allowlist not checked at syncProduction outageOverlap warning before push
Plain-text feed API keysLeak in admin exportVault reference
No sync diff previewAccidental mass unblockShow +/- diff with confirm
Missing audit on approveCannot prove SOC2 controlAudit every enforce decision
Hash-only block without contextWrong file variant blockedShow hash algorithm + file name pattern
Community feed auto-enforcedLow-quality intel blocks usersNever auto-enforce unvetted community feeds
No rollback snapshotBad push takes hours to fixVersioned blocklist snapshots
IOC search without normalizationMisses punycode/domain variantsNormalize in search UX

  1. Design feed catalog with format, freshness, confidence policy, and sync status.
  2. Build IOC table with type chips, confidence, enforcement, TTL, and detail drawer.
  3. Add review queue with multi-feed agreement, overlap warnings, and bulk actions.
  4. Wire enforcement targets with sync diff, error retry, and rollback snapshot.
  5. Create feed wizard with test pull, vault auth, and mapping documentation.
  6. Surface whitelist overlap and false-positive reporting with feed-level metrics.
  7. Link posture gaps and annotate STIX mapping in Dev Mode.

FAQ

STIX/TAXII vs custom CSV feeds?

STIX/TAXII preserves confidence, relationships, and expiry—prefer for commercial feeds. CSV works for simple domain lists with explicit column mapping in the wizard.

IOC vs IP allowlist?

Allowlist is explicit permit; IOC blocklist is deny. Allowlist wins on conflict—show overlap warning, never silent override.

Feed triggers automation?

Yes—webhook on new Critical IOC can run enrichment or notify SOC; destructive blocks still need approval if workflow touches accounts.

Member-visible blocks?

Rarely explain IOC source—generic “connection blocked for security” with link to IT status; no threat actor attribution to end users.

Retention for expired IOCs?

Archive, don’t delete—align with data retention (typically 1–3 years for enforce decisions); include in compliance export.


Next steps

Share on X

§ Keep reading

Related guides.