Data Theorema case study
Threat Visibility · application security

Data
Theorem

One legible view of the attacks hitting a customer’s entire ecosystem — and the shortest path from seeing to acting.

The platform continuously discovers, tests, and protects the APIs, mobile apps, web, and cloud services in a company’s stack. This project lived inside the API-protection product: specifically, how to show the attacks hitting a customer’s APIs.

ecosystem — attacks by type (sample data)
APAPI ProtectDashboardAttacksAPIsAnomaliesHistoryCatalog
APIs by attack volume
212 monitored · sorted by most attacked
Filter Search endpoints… Go
EndpointAttack volumeRequestsSeverity
/v2/payments9,340Critical
/v2/auth7,280Critical
/v2/orders4,860High
/v1/users3,180High
/v2/search1,760Medium
/v1/catalog820Medium
Senior product / UX designerData visualizationDashboard designInformation designMUI design systemData Theorem · API security
01The problem

Teams don’t lack data. They drown in it.

A platform watches a customer’s whole ecosystem — mobile, APIs, cloud, web — and every surface streams security signal: attempted exploits, suspicious traffic, schema mismatches. The raw material is all there. What’s missing is a way to stand back and read it.

WARNsqli attempt · POST /v2/login
WARNbola · GET /users/{id} · token low-entropy
INFOschema mismatch · GET /orders · svc-billing
WARNxss · query · /search?q=…

“What’s hitting us right now, where’s it coming from — and what do I deal with before lunch?”

02The goal

Readable in seconds. Actionable in one move.

I designed toward five questions a security lead asks on sight. Every chart had to answer one — and encode severity so attention lands in the right place first.

What attacks are most common?

By request volume.

Where do they come from?

Source location.

How severe are they?

Severity encoding.

What's my attack surface?

Affected endpoints.

What are the trends?

Change over time.

03Competitive landscape

Everyone showed a piece. No one showed the shape.

Three benchmarks — each useful, each partial. The opening was a view that reads the whole landscape at a glance.

A feed of attacks

Useful OWASP-type breakdowns — strong on events, weak on shape.

Organized by attacker

Most-attempted endpoints and types — a different lens, not the first question.

A blocked-request log

Precise, but a wall of rows to read line by line — precision without the vantage point.

04Directions considered

Three forks that shaped the frame.

Each was a live option, not a strawman. The design is the sum of choosing the right side of all three.

Considered

A live feed

Individual attacks — the market’s default.

Chose

Aggregate by type & origin

The shape reads in seconds.

Considered

Everything on the front page

Every stakeholder’s signal.

Chose

Only the five questions

Earn the glanceable layer.

Considered

A static overview

A poster to look at.

Chose

A working surface

Scan, filter, drill in, act.

attack history → detail drawer (recreation, sample data)
APAPI ProtectDashboardAttacksAPIsAnomaliesHistoryCatalog
SQL Injection — attack history
Sorted by date, descending
Critical
IDEndpointDateLocation
d4efa123POST /loginSep 4Brazil
a91c07f2POST /loginSep 4Netherlands
7b2e5d90GET /orders/{id}Sep 3Singapore
e0f4a6b1POST /checkoutSep 3United States
SQL Injection (Attack)
Attack detail
Critical
Affected assetPOST /login
Location in requestBody · Query
DescriptionSQL query inserted via input, letting an attacker read or alter data.
View remediationAssign
THE DESIGNFrom seeing to acting

Lead with type & origin. Rank by volume. Encode severity.

The ecosystem dashboard answers the five questions at a glance, then gets out of the way. A selected attack opens a detail drawer — reusing the platform’s existing policy-violation pattern, so there’s nothing new to learn — carrying the payload, the path, and the one clear next action.

Restraint is the design

A chart that’s interesting but ambiguous is worse than none. A critical attack can never read as safe.

05The real work was editorial

Decide what earns the glanceable layer — and what gets demoted.

Promote

Volume, severity, attack surface — the glanceable layer.

Demote

Payloads, request internals — on-demand, in the drawer.

Encode

Severity by color; a critical attack can’t read as safe.

Restrain

A few chart types, used consistently — no novelty for its own sake.

Promoted ↑

Attacks up front — the glanceable layer.

SQL InjectionBOLAXSSSSRFPath traversalExposed credentials
Demoted ↓

Anomalies folded in on demand — same drawer, nothing new to learn.

Schema conflictsRate limitingBot detectionLow-entropy tokens
The learning

In a data-dense, high-stakes domain, editing is the design.

The hard part isn’t drawing the charts — it’s deciding what earns a place in the glanceable layer, how to encode severity so attention lands correctly, and how to keep the path from “I see a problem” to “I’m doing something about it” short and unbroken. Anyone can add another widget; the value is in what you leave off, and why.

Honest framing: the surviving record documents the plan — validate legibility with real users, refine the encoding, partner with engineering on rollout — not a committed KPI or measured outcome. Every figure shown is placeholder sample data; the screens are MUI recreations, not the production UI.

The takeaway

The visualization is the front door. The value is the handoff.

Lead with type and origin. Encode severity so the important thing is the visible thing. Then get out of the way — scan, drill in, act, without ever leaving the view.