Skip to content

Data Protection Impact Assessment (DPIA)

Status: Draft for pilot / design-partner review
Version: 0.2 · Date: 2026-07-14
Owner: Waspada AI engineering
Scope: Edge SDK + Gateway API (Phase A–B0). Phase B1–B6 durable store controls are designed; writers not yet live.
Related: Advisory contract · abuse resistance · ADV-005 quarantine


1. Summary

Waspada AI processes scam evidence (bank/e-wallet receipts) on the user device, extracts threat indicators (mule account, BIC, scammer alias, malicious URLs), and submits advisory telemetry to a gateway for bank FMS formatting. Victim identity documents (NRIC, phone) are stripped before egress. The pilot disposition is always advisory — no automated freeze.

Residual risk (honest): scammer alias may be a real person’s name used on a receipt; alias exposure is governed by SCAMMER_ALIAS_POLICY (hash / omit / clear). mule_key is a keyed HMAC of account|BIC under a consortium pepper (an unkeyed hash of an 8–16 digit account was GPU-enumerable, hence re-identifiable); it remains pseudonymous data under PDPA, with the residual that a holder of both the graph and the pepper can enumerate it — tenant-scoped queries and erasure apply. Fairness: the alleged mule-account holder is not a data subject we notify at ingest; wrongful flags are mitigated by advisory-only output, distinct-partner corroboration design, and a partner-led appeals/reversal path — see abuse resistance.


2. Processing purposes

PurposeLegal basis (pilot framing)Notes
Extract mule / scam indicators from user-submitted evidenceLegitimate interest / consent of reporting userOn-device processing
Submit advisory telemetry to partner bank FMSContract with partner platformAlways disposition: advisory in pilot; partner_signed only
Quarantine anonymous public / WhatsApp triage indicatorsLegitimate interest / consent of reporting usersource_tier: public_triagenever FMS/corroboration without promotion; see ADV-005
Analyst review via SSE dashboardPartner operational needAuth via analyst API key / tickets
Retention for RMiT evidenceRegulatory expectation (design)90-day partner default; 30-day quarantine default; B6 purge

3. Data flows (high level)

See Data Flow Diagrams.

  1. Evidence (client): File → OCR/PDF → regex/NER → indicators → optional encrypted IndexedDB store.
  2. Telemetry egress: Indicators + JWT (RS256) → Gateway. Raw receipt text does not leave the device.
  3. Gateway: Verify JWT → optional RDAP enrich → FMS alert → webhook / SSE.
  4. Durable store (B0 schema, B3+ writers): Encrypted alert blob (per-row DEK), tenancy, retention columns.

4. PII / personal data inventory

DataWhere processedEgress?Retention
Raw receipt image/PDFClient memory / OCRNoVolatile; user-controlled if stored in IndexedDB
NRIC / phone in receipt textClient stripperNo (stripped)N/A
Mule account numberClient → Gateway (encrypted at rest in B3+)Yes (threat intel)90 days (design)
Mule account number (public_triage)Client → triage_quarantine (when public ingest ships)Analyst queue only until promotion30 days
Scammer aliasClient → Gateway (policy: hash/omit/clear)Conditional90 days
mule_key (keyed HMAC + mule_key_epoch)Gateway / DB — alerts, corroboration, dispositionsYes (join key)Erasure-scoped
mule_key in audit_events.payloadGateway / DBYesAppend-only audit trail — not re-keyed by an epoch rotation, so entries written before a rotation retain the earlier key (including, for entries predating 24 Aug 2026, the retired unkeyed digest). Ages out on the audit retention schedule.
Partner JWT claims (iss, jti)Gateway Redis/memoryInternaljti ≈ token lifetime
Analyst API keyAuth onlyNever logged as identitySecret rotation

PII stripper: regex-based NRIC + MY phone + email redaction before egress. Measured via unit tests; not a substitute for a formal DPIA sign-off.


5. Risks and mitigations

RiskLikelihoodImpactMitigation
Wrong mule account extractedMedHigh (bad intel / wrongful-freeze shape)Noisy corpus characterizes wrong-account vs miss; soft+hard CI gates; advisory-only + corroboration threshold before actionable
Anonymous public-triage poisoning of FMS / corroborationMed (if public ingest)HighADV-005 source_tier quarantine — structural nevers at UPSERT / outbox / advisory / STIX
Griefing / noise flood (partner or public)MedMed–High (fatigue / wrongful attention)JWT + rate limits today; behavioural per-mule_key / per-iss anomaly layer not yet shipped
Analyst promotion social-engineeringLow–MedHighDual-review / provenance UI / accountable analyst_idprocess residual
Wrongful flag of innocent account holderMedHighAdvisory-only; corroboration design; appeals/reversal (partner-led); erasure runbook
Fabricated / GenAI payment slip (false assertion)Med–HighHigh if bank auto-actsExtraction cannot authenticate images; ADV-005 + advisory + distinct-tenant corroboration + FI ledger join; see evidential integrity
Alias is victim nameMedMedAlias policy hash/omit; advisory notice
Cross-tenant linkage via mule_keyLow (pilot)HighSchema CHECK (reporting_tenant_id = tenant_id) until Phase C legal basis
DB compromise of cleartext accountMedHighApp-level AES-GCM + AAD; no plaintext signed JSONB
Replay / JWT abuseMedMedjti store, payload binding, rate limits
FMS delivery dropMedMedOutbox writer + poller shipped; delivery no-ops until FMS_WEBHOOK_URL is configured; dead-letter after retries (no auto-replay / page yet)

6. Retention and erasure

StoreDefault retentionErasure
Client IndexedDB evidenceUser-controlledApp delete / clear site data
Gateway JTI / tickets~1h (token-bound)TTL expiry
Postgres alerts (B3+)90 days (retention_expires_at)Crypto-shred row + purge mule_key from corroboration
Postgres triage_quarantine (when shipped)30 daysCrypto-shred row + purge quarantine indexes; never in corroboration
Logs90 days (ops target)Rotate / delete

Crypto-shred limits: PITR/WAL backups may retain ciphertext longer — bound backup retention ≤ product retention.


7. International transfers

Pilot: gateway hosted on Railway (region TBD). Document region and SCCs/adequacy before production bank onboard.


8. Consultation and review

  • [ ] Internal security review
  • [ ] Independent VAPT letter
  • [ ] Design-partner bank DPIA review
  • [ ] Re-assess when Phase C cross-tenant corroboration is enabled

9. Decision

Proceed with pilot under advisory-only disposition, measured extraction gates, B0 encryption/tenancy schema, ADV-005 quarantine doctrine, and the abuse-resistance / appeals framing. Do not claim “BNM-compliant” until RMiT control mapping is accepted by the FI and independent VAPT is complete. Do not treat Waspada output as adjudicated evidence of guilt for an account holder.

Edge tools for citizens. Threat feeds for banks.