unawareness
Unawareness Analysis (LINDDUN U)
Analyze source code for unawareness threats where users do not know how their personal data is collected, processed, or shared. Failing to inform users violates transparency and may invalidate consent. This category has no STRIDE equivalent and is unique to privacy threat modeling.
Supported Flags
Read ../../shared/schemas/flags.md for full flag
documentation. This skill supports all cross-cutting flags.
| Flag | Unawareness-Specific Behavior |
|---|---|
--scope |
Default changed. Focuses on files containing data collection, consent management, third-party integrations, analytics, and user data endpoints. |
--depth quick |
Grep patterns only: scan for analytics initialization, missing consent checks, and third-party scripts. |
--depth standard |
Full code read, verify consent flows precede data collection, check for undisclosed data sharing. |
--depth deep |
Trace all data collection points and verify each has corresponding consent and disclosure. Map undisclosed data flows. |
--depth expert |
Deep + transparency gap analysis: compare actual data practices against typical privacy policy claims. |
--severity |
Filter output. Data collection before consent is high; missing disclosure is medium. |
--fix |
Generate consent gates, privacy notice references, and data dashboard implementations. |
Framework Context
LINDDUN U -- Unawareness
Unawareness occurs when data subjects do not know how their personal data is
collected, processed, or shared. Read
../../shared/frameworks/linddun.md for the
full framework reference including transparency obligations and consent requirements.
Privacy Property Violated: Transparency / Informed Consent | STRIDE Mapping: No equivalent | OWASP: A04:2021 (Insecure Design)
Workflow
Step 1 -- Determine Scope
- Parse
--scopeflag (default:changed). - Resolve to a concrete file list.
- Filter to relevant files: data collection handlers, consent management modules, third-party SDK integrations, analytics initialization, user preference storage, data export/deletion endpoints, and privacy policy references.
- Prioritize files containing: form submissions, registration flows, analytics setup, cookie management, third-party script loading, and user data APIs.
Step 2 -- Analyze for Unawareness Threats
Read each scoped file and assess whether users are informed about data practices:
- Check consent flow ordering: Verify that consent is obtained before data collection begins -- not after or simultaneously.
- Audit third-party integrations: Identify all third-party scripts, SDKs, and APIs that receive user data and verify disclosure.
- Examine analytics initialization: Check whether analytics and telemetry start before the user has consented.
- Look for data subject rights: Verify implementation of access, export, correction, and deletion endpoints.
- Assess consent granularity: Check whether consent is all-or-nothing or granular by purpose.
At --depth deep or --depth expert, map every data collection point and
verify each has a corresponding consent mechanism and privacy policy disclosure.
Step 3 -- Report Findings
Output findings per ../../shared/schemas/findings.md.
Each finding needs: UNAWR-NNN id, title, severity (based on whether users are
unaware of collection, sharing, or both), location with snippet, description of
what data practice users are unaware of, impact (uninformed consent consequences),
fix (consent gate, privacy notice, or user control), and CWE/LINDDUN references.
Analysis Checklist
- Is analytics or telemetry initialized before the user consents to tracking?
- Are there third-party scripts that receive user data without privacy policy disclosure?
- Does a consent management system exist with granular opt-in/opt-out controls?
- Can users access, export, and delete their personal data (data subject rights)?
- Is there consent version tracking to prove what each user agreed to?
- Are data collection purposes explained at the point of collection?
- Are cookies set before the user interacts with a cookie consent banner?
- Do dark patterns pressure users into accepting broader data collection?
What to Look For
- Analytics before consent: Tracking scripts initialized before consent check.
- Grep:
gtag\(|analytics\.init|mixpanel\.init|segment\.load|amplitude\.init|posthog\.init
- Grep:
- Missing consent management: No consent storage or preference system.
- Grep:
consent|cookie.consent|gdpr.consent|privacy.preference|opt.in|opt.out
- Grep:
- Third-party scripts without disclosure: External services receiving user data.
- Grep:
<script.*src=.*third.party|import.*analytics|require.*tracking|facebook.*pixel|intercom
- Grep:
- Missing data export endpoint: No user data portability implementation.
- Grep:
export.*data|download.*my.*data|data.portability|DSAR|subject.*access|getMyData
- Grep:
- Missing data deletion endpoint: No right-to-erasure implementation.
- Grep:
delete.*account|erase.*data|remove.*user.*data|right.*forgotten|deleteMyData|purgeUser
- Grep:
- Cookies set before consent: Cookie writes that execute before consent flow.
- Grep:
document\.cookie.*=|res\.cookie\(|setCookie|set-cookie|cookie\.set
- Grep:
- Hidden data collection: Data gathered without visible user-facing disclosure.
- Grep:
navigator\.geolocation|getCurrentPosition|deviceId|device_id|collectTelemetry|beacon
- Grep:
- Missing consent versioning: No tracking of what consent version users agreed to.
- Grep:
consent.*version|policy.*version|terms.*version|consent.*timestamp|consent.*date
- Grep:
Regulatory Mapping
| Regulation | Provision | Relevance |
|---|---|---|
| GDPR Art. 7 | Conditions for consent | Consent must be freely given, specific, informed, unambiguous |
| GDPR Art. 12-15 | Transparency, right of access | Clear information about processing; access to held data |
| GDPR Art. 17, 20 | Erasure, portability | Deletion on request; export in portable format |
| CCPA 1798.100, .105, .120 | Know, delete, opt-out | Consumer rights to know, delete, and opt out of sale |
| ePrivacy Directive Art. 5(3) | Cookie consent | Prior consent required for non-essential cookies |
Output Format
Use finding ID prefix UNAWR (e.g., UNAWR-001, UNAWR-002).
All findings follow the schema in
../../shared/schemas/findings.md with:
references.cwe:CWE-1021(Improper Restriction of Rendered UI Layers)references.owasp:A04:2021(Insecure Design -- missing privacy by design)metadata.tool:"unawareness"metadata.framework:"linddun"metadata.category:"U"
Summary table after all findings:
| Unawareness Pattern | Critical | High | Medium | Low |
|------------------------------|----------|------|--------|-----|
| Analytics before consent | | | | |
| Missing consent management | | | | |
| Undisclosed third-party data | | | | |
| Missing data export | | | | |
| Missing data deletion | | | | |
| Pre-consent cookies | | | | |
| Hidden data collection | | | | |
Followed by: top 3 priorities, transparency gap map, and overall assessment.