Loading...

Skip to main content

Risks and Failures Reference

Attack catalog, case studies, implementation mistakes checklist, and privacy testing reference. Restructured from Module 12 for quick lookup during risk assessment, client conversations ("here's why your current approach is insufficient"), and validation.

Abbreviations used throughout: SDP = Sensitive Data Protection; HMAC = keyed-hash message authentication code; FPE = format-preserving encryption; DDM = dynamic data masking; ARX = open-source structural anonymization tool; MSISDN = subscriber phone number; CDR = Call Detail Record.

For countermeasure techniques, see the techniques reference. For incident response procedures, see governance and ops.

Decision tree: what risk am I evaluating?โ€‹


Attack catalogโ€‹

Attack 1: Linkage attackโ€‹

FieldDetail
MechanismJoin anonymized dataset with external dataset on shared quasi-identifiers
PreconditionsQI combinations unique enough to narrow to single record; external dataset with overlapping QIs available
Data types at riskAny tabular data with quasi-identifiers (demographics, location, timestamps)
Countermeasuresk-anonymity (ensure every QI combination maps to โ‰ฅ k records); generalization of QIs
ExampleMassachusetts 1997 โ€” ZIP + birthdate + gender uniquely identifies 87% of US population. $20 voter roll cross-referenced to re-identify Governor Weld's health records.

Attack 2: Dictionary attack (rainbow table)โ€‹

FieldDetail
MechanismPrecompute hash of every possible input in a finite domain, match against dataset
PreconditionsFinite, enumerable input domain (phone numbers, national IDs, credit cards); non-HMAC hash function (unsalted or salted โ€” if the salt is known, which is standard practice, the domain is still enumerable per salt)
Data types at riskAny hashed finite-domain identifier
CountermeasuresHMAC-keyed hashing (precomputation impossible without key); FPE with Cloud KMS
ExampleNYC Taxi 2014 โ€” MD5 of medallion numbers reversed in minutes

Enumeration times for common identifiers:

IdentifierDomain sizeTime to enumerate
Credit card (per BIN)~10โถSeconds
MSISDN~10โธMinutes
SSN~10โนMinutes
IBAN~10โนโ€“10ยนโฐHours
IPv4~4.3ร—10โนHours

Attack 3: Fingerprinting / trajectory attackโ€‹

FieldDetail
MechanismUnique behavioral sequences (mobility traces, purchase patterns) re-identify individuals even after identifier removal
PreconditionsHigh-dimensional data with temporal/spatial components; human routine behavior
Data types at riskCDRs, GPS traces, purchase sequences, smart meter readings, clickstream
CountermeasuresStructural anonymization (k-anonymity k โ‰ฅ 50 on QIs); DP on aggregate outputs; temporal bucketing; spatial generalization
Key statistic4 spatio-temporal points identify 95% of individuals (de Montjoye 2013). Replicated across cell data, GPS, credit cards, smart meters.

Attack 4: Content-based re-identificationโ€‹

FieldDetail
MechanismFree-text content contains self-identifying information (names, addresses, medical conditions in searches, support notes)
PreconditionsUnstructured data with personal content; identifier replacement but content preserved
Data types at riskSearch queries, support tickets, chat transcripts, medical notes, delivery instructions
CountermeasuresNLP-based PII detection (Presidio / SDP text inspection); content suppression / redaction
ExampleAOL 2006 โ€” search queries contained names, addresses, medical conditions. User 4417749 identified as Thelma Arnold from her searches.

Attack 5: High-dimensional sparsityโ€‹

FieldDetail
MechanismIn high-dimensional spaces, almost every point is unique โ€” removing the label doesn't change the fingerprint
PreconditionsHigh-dimensional behavioral data (rating histories, transaction vectors); sparse individual patterns
Data types at riskMovie ratings, product reviews, transaction vectors, browsing histories
CountermeasuresDP (bounds what any attacker can learn regardless of auxiliary data); synthetic data
ExampleNetflix Prize 2006 โ€” 8 movie ratings with approximate dates enough to uniquely identify subscribers via IMDb cross-reference

Attack 6: Sparse-context aggregation failureโ€‹

FieldDetail
MechanismAggregation that provides anonymity in dense populations fails in sparse ones โ€” "aggregate" over a military base in the desert is individual-level
PreconditionsSpatially or temporally sparse populations; uniform aggregation parameters across contexts
Data types at riskLocation/heatmap data, activity tracking, any aggregate in low-population areas
CountermeasuresContext-dependent generalization parameters; sparse-cell suppression; geographic exclusion of sensitive locations
ExampleStrava 2018 โ€” aggregated exercise heatmap revealed military base outlines and patrol routes in Syria/Afghanistan

Attack 7: Composition attackโ€‹

FieldDetail
MechanismCross-referencing multiple releases about the same population narrows equivalence classes over time. Each release individually safe; cumulative risk grows.
PreconditionsRepeated releases about same population; traditional anonymization without composition tracking
Data types at riskAny repeatedly released dataset (quarterly reports, periodic data shares)
CountermeasuresDifferential privacy with composition theorem; DP budget tracking across releases
Example"The slow leak" โ€” quarterly CDR aggregates independently pass k-anonymity; a subscriber who moved mid-year appears in different clusters in Q1 and Q3, and the intersection may have effective k=1

Attack quick-reference matrixโ€‹

AttackExploitsDefended byKey indicator
LinkageQI uniquenessk-anonymity87% of US identifiable by 3 QIs
DictionaryFinite hash domainsHMAC keyed hashingEnumeration in seconds to hours
FingerprintingBehavioral uniquenessStructural anon + DP4 points โ†’ 95% unique
Content-basedSelf-identifying textNLP detection + redactionFree text in output
SparsityHigh-dimensional uniquenessDP, synthetic data8 ratings โ†’ unique
Sparse contextLow-population aggregatesContext-dependent paramsRemote/sparse locations in output
CompositionRepeated releasesDP budget trackingMultiple releases of same population

Case studiesโ€‹

CaseYearData typeAttackRoot causeLesson
Massachusetts health1997Health + demographicsLinkage (voter roll)3 QI fields โ†’ 87% uniquek-anonymity born; field combinations matter
AOL search logs2006Search queriesContent-basedFree text = self-identifyingContent IS the identifier
Netflix Prize2006Movie ratingsHigh-dim sparsityRating vectors unique in sparse spacek-anonymity can't help when data itself fingerprints
NYC Taxi2014Taxi tripsDictionary (unsalted MD5)Finite domain, no HMAC keyAlways HMAC, never plain hash
Australian Medicare2016Health claimsLinkage (temporal patterns)Temporal structure identifyingEncryption โ‰  anonymization
Strava heatmap2018Exercise GPSSparse-context aggregationUniform params across dense/sparseAnonymization is context-dependent
Mobility researchOngoingCell/GPS/transactionFingerprinting (4-point rule)Behavioral uniquenessID substitution alone is never enough

Presales use: These case studies demonstrate concrete failures to clients. The Massachusetts and NYC Taxi cases are the most compelling for explaining why dictionary-based pseudonymization is insufficient.


Implementation mistakes diagnostic checklistโ€‹

Use this as a diagnostic tool during discovery โ€” most legacy systems exhibit 3โ€“5 of these patterns.

Privacy claim unsupportedโ€‹

#MistakeWhat to look forImpact
1Pseudonymization called anonymizationRe-identification key exists; data is legally personal dataFalse compliance claim; full GDPR still applies
2Non-HMAC hashing of finite-domain inputsSHA-256 (plain or salted) on MSISDNs, IBANs, credit cards without a secret HMAC keyReversible in minutes to hours via dictionary attack (salt prevents precomputed tables but not per-salt enumeration)
3Identifier substitution treated as sufficientDirect IDs replaced but quasi-identifiers (timestamps, locations, amounts) untouchedBehavioral structure intact; fingerprinting attacks possible
4No re-identification risk assessmentTechnique named but no metric measured (prosecutor risk, k-value, ฮต budget)"We anonymized it" without evidence

Operational gapsโ€‹

#MistakeWhat to look forImpact
5Single point of failure in key storageOne compromise = bulk reversal of all pseudonymsCatastrophic exposure from single breach
6No key rotation policyCryptoperiod exceeds NIST SP 800-57 recommendationsIncreasing key exposure over time
7Missing lineage for downstream copiesAd-hoc extracts, spreadsheets, partner feeds ungovernedAnonymized data re-identified via uncontrolled copies
8No schema drift monitoringNew PII columns pass through pipeline untransformedSilent PII leakage into output

Governance erosionโ€‹

#MistakeWhat to look forImpact
9Static anonymization parametersParameters never reassessed since initial implementationChanging data landscape degrades protection
10Masking confused with data protectionDDM controls query results, but raw data is in clearData at rest fully identifiable
11No separation of dutiesSame team holds pseudonymization key and has data accessEffective pseudonymization requires domain separation
12Uniform treatment regardless of purposeSame generalization for internal BI and external sharingOver- or under-protection depending on use case

Privacy testing referenceโ€‹

Automated pipeline checksโ€‹

CheckFrequencyWhat it catchesTool
PII pattern scanningEvery runRaw PII in output (broken/missing transforms)SDP inspection on output; exclude FPE fields
k-anonymity threshold assertionEvery batchMin equivalence class size below documented thresholdARX or custom query
Distribution drift detectionEvery runTransform applied incorrectly or new subpopulationStatistical comparison vs baseline
Linkage test (pipeline change)After changesDegradation missed by other checksCustom record-linkage against proxy dataset
Linkage test (routine)MonthlyExternal landscape drift degrading guaranteesSame
Membership inference testFor synthetic dataGenerator memorized training recordsCustom train/holdout attack model (SDV covers disclosure risk and attribute inference only)
DP budget trackingContinuousCumulative epsilon approaching exhaustionPrivacy on Beam / custom tracker

Validation toolsโ€‹

ToolWhat it validatesWhen to use
SDP inspectionPII regression โ€” raw PII appearing in outputEvery pipeline run
ARX risk metricsProsecutor/journalist/marketer risk; k-anonymity verificationBefore each Zone 2 release
sdcMicroStatistical disclosure control reportsFormal risk quantification for DPAs
Custom record-linkageProbabilistic matching against held-out dataAfter pipeline changes and monthly
Custom train/holdout attack modelMembership inference attack on synthetic data (SDV metrics cover disclosure risk / attribute inference, not full MIA)Before synthetic data release

Privacy testing decisionโ€‹