{
  "capsule": {
    "schema": "apk-scanner.proof/v2",
    "issuer": "apk-scanner.com",
    "issued_at": "2026-10-14T14:23:46.915Z",
    "app": {
      "app_id": "com.brave.browser",
      "title": "Brave Private Web Browser, VPN",
      "version": "1.97.56"
    },
    "analysis": {
      "issues": [],
      "stages": {
        "pii": "complete",
        "sbom": "complete",
        "signing": "certificate_parsed",
        "strings": "complete",
        "manifest": "complete"
      },
      "status": "complete",
      "grading": {
        "policy": "static-coverage-v1",
        "blockers": [],
        "eligible": true
      },
      "timings_ms": {
        "total": 32696.087,
        "harvest": 15357.553999999996,
        "detectors": 13512.156000000059
      },
      "bytes_total": 276829083,
      "bytes_scanned": 276829083,
      "bytes_skipped": 0,
      "files_processed": 4956,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "9a71eec0c727496b0ffaadd872e37ec57418fd954211b2b271f948d17c4c445f"
        },
        {
          "name": "chrome.apk",
          "sha256": "66c1ea536ff6fc8d782d9f62ffaac9060343592ebb7eb34977e55ec651b9630a"
        },
        {
          "name": "config.en.apk",
          "sha256": "0362cb2589a8914887af2327d3a8c6e401ff2cd249892361d42e6322c8ea212b"
        },
        {
          "name": "on_demand.apk",
          "sha256": "bcbf3c542edea2dd68aef11a7aeb838f38d10a65f3868fb18527a4146c9a2479"
        }
      ],
      "ruleset_sha256": "3bb79cc3710b0fb021feaa322578f4cffe08396a97c51b34df092b5a05891d5e"
    },
    "apk_sha256": "9a71eec0c727496b0ffaadd872e37ec57418fd954211b2b271f948d17c4c445f",
    "scan": {
      "scan_id": "9061a30d-ca19-4175-9dbb-82cf776a537b",
      "scanned_at": "2026-10-11T17:52:35.485Z",
      "grade": "A",
      "score": 97
    },
    "apk_signer": {
      "scheme": "v3",
      "subject_o": "Digital Ashes",
      "subject_cn": "Chris Lacy",
      "sha256": "9c2db70513515fdbfbbc585b3edf3d7123d4dc67c94ffd306361c1d79bbf18ac",
      "not_after": "2041-07-12T22:34:32+00:00"
    },
    "counts": {
      "critical": 0,
      "high": 0,
      "medium": 0,
      "low": 5
    },
    "findings": [
      {
        "finding_type": 20,
        "severity": "low",
        "title": "Google API key (client-shipped; restriction unverified)",
        "redacted_display": "AIza•••••••• (21–40 chars, redacted)",
        "fingerprint": "f260fb585ce3acf5abdef20486a53dd972d45d65d039ec8dcd9999f68f3eca1e",
        "verified": false,
        "cwe": [
          "CWE-798"
        ],
        "masvs": [
          "MASVS-STORAGE-1"
        ],
        "remediation": "Restrict the API key (application + API restrictions in Google Cloud Console); a client-shipped key is public, so restriction is the control."
      },
      {
        "finding_type": 35,
        "severity": "low",
        "title": "Exported content provider with path-restricted permissions (third-party library artifact, shared across 8 unrelated developers)",
        "redacted_display": "ChromeBrowserProvider (exported, some paths guarded)",
        "fingerprint": "090922ee5466e7b95463be573118a7930318436b2f97e4f8846ab461d2179401",
        "verified": false,
        "cwe": [
          "CWE-926",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-PLATFORM-1"
        ],
        "remediation": "Set android:exported=false, or require a signature-level android:permission, and scope grantUriPermissions narrowly."
      },
      {
        "finding_type": 35,
        "severity": "low",
        "title": "Exported content provider without permission (third-party library artifact, shared across 7 unrelated developers)",
        "redacted_display": "AutofillThirdPartyModeContentProvider (exported, no permission)",
        "fingerprint": "a23c6dad0c3a3e32c4729537faf8a93e3b8b4a54de063147b54dedf1d59d8b3f",
        "verified": false,
        "cwe": [
          "CWE-926",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-PLATFORM-1"
        ],
        "remediation": "Set android:exported=false, or require a signature-level android:permission, and scope grantUriPermissions narrowly."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "████████████",
        "fingerprint": "ceda304f9ef0fc376f75b3a7f9f9ab8d18e6b69b5b342b7f1a834e0c4a0115ce",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "████████████",
        "fingerprint": "f30a0834b270b39ddc2a907939295bc3f3efd803b0dc02c4dab5f28963eea09f",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      }
    ],
    "live_verification": {
      "verified_count": 0,
      "items": []
    },
    "trackers_count": 0,
    "pii": {
      "sources": 6,
      "identifiers": [
        "Android ID",
        "Device ID / IMEI"
      ],
      "destinations": 0
    },
    "sbom": {
      "component_count": 0,
      "vuln_count": 0,
      "components": []
    },
    "control_coverage": {
      "schema": "apk-scanner.coverage/v1",
      "framework": "OWASP MASVS v2",
      "disclaimer": "Static, metadata-only analysis. Each control is scored evidence-for / gap-signal / requires-manual-testing. This is evidence toward a MASVS assessment, NOT a certification — apk-scanner.com is not an authorized assessment lab. Absence of a static finding does not prove a control passes.",
      "rows": [
        {
          "control": "MASVS-STORAGE-1",
          "category": "STORAGE",
          "title": "The app securely stores sensitive data.",
          "static": "partial",
          "status": "gap-detected",
          "count": 1,
          "findings": [
            {
              "finding_type": 20,
              "key": "google_api_key",
              "title": "Google API key (client-shipped; restriction unverified)",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                798
              ]
            }
          ]
        },
        {
          "control": "MASVS-STORAGE-2",
          "category": "STORAGE",
          "title": "The app prevents leakage of sensitive data.",
          "static": "partial",
          "status": "gap-detected",
          "count": 2,
          "findings": [
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            }
          ]
        },
        {
          "control": "MASVS-CRYPTO-1",
          "category": "CRYPTO",
          "title": "The app employs current strong cryptography and uses it according to best practices.",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CRYPTO-2",
          "category": "CRYPTO",
          "title": "The app performs key management according to best practices.",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-AUTH-1",
          "category": "AUTH",
          "title": "The app uses secure authentication and authorization protocols.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-AUTH-2",
          "category": "AUTH",
          "title": "The app performs local authentication securely.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-AUTH-3",
          "category": "AUTH",
          "title": "The app secures sensitive operations with additional authentication.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-NETWORK-1",
          "category": "NETWORK",
          "title": "The app secures all network traffic according to current best practices.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-NETWORK-2",
          "category": "NETWORK",
          "title": "The app verifies the identity of the remote endpoint (e.g. certificate pinning).",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PLATFORM-1",
          "category": "PLATFORM",
          "title": "The app uses IPC mechanisms securely.",
          "static": "yes",
          "status": "gap-detected",
          "count": 2,
          "findings": [
            {
              "finding_type": 35,
              "key": "exported_provider",
              "title": "Exported content provider with path-restricted permissions (third-party library artifact, shared across 8 unrelated developers)",
              "severity": "low",
              "verified": false,
              "relationship": "gap-confirmed",
              "cwe": [
                926,
                284
              ]
            },
            {
              "finding_type": 35,
              "key": "exported_provider",
              "title": "Exported content provider without permission (third-party library artifact, shared across 7 unrelated developers)",
              "severity": "low",
              "verified": false,
              "relationship": "gap-confirmed",
              "cwe": [
                926,
                284
              ]
            }
          ]
        },
        {
          "control": "MASVS-PLATFORM-2",
          "category": "PLATFORM",
          "title": "The app uses WebViews securely.",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PLATFORM-3",
          "category": "PLATFORM",
          "title": "The app uses the user interface securely.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CODE-1",
          "category": "CODE",
          "title": "The app requires an up-to-date platform version.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CODE-2",
          "category": "CODE",
          "title": "The app has a mechanism for enforcing updates.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CODE-3",
          "category": "CODE",
          "title": "The app only uses software components without known vulnerabilities.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CODE-4",
          "category": "CODE",
          "title": "The app validates and sanitizes all untrusted inputs and follows secure-coding practice.",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-RESILIENCE-1",
          "category": "RESILIENCE",
          "title": "The app validates the integrity of the platform.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-RESILIENCE-2",
          "category": "RESILIENCE",
          "title": "The app implements anti-tampering mechanisms.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-RESILIENCE-3",
          "category": "RESILIENCE",
          "title": "The app implements anti-static-analysis mechanisms.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-RESILIENCE-4",
          "category": "RESILIENCE",
          "title": "The app implements anti-dynamic-analysis techniques.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PRIVACY-1",
          "category": "PRIVACY",
          "title": "The app minimizes access to sensitive data and resources.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PRIVACY-2",
          "category": "PRIVACY",
          "title": "The app prevents identification of the user.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PRIVACY-3",
          "category": "PRIVACY",
          "title": "The app is transparent about data collection and usage.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PRIVACY-4",
          "category": "PRIVACY",
          "title": "The app offers user control over their data.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        }
      ],
      "categories": [
        {
          "category": "STORAGE",
          "controls": 2,
          "gaps": 2,
          "verified": 0,
          "manual": 0
        },
        {
          "category": "CRYPTO",
          "controls": 2,
          "gaps": 0,
          "verified": 0,
          "manual": 0
        },
        {
          "category": "AUTH",
          "controls": 3,
          "gaps": 0,
          "verified": 0,
          "manual": 3
        },
        {
          "category": "NETWORK",
          "controls": 2,
          "gaps": 0,
          "verified": 0,
          "manual": 0
        },
        {
          "category": "PLATFORM",
          "controls": 3,
          "gaps": 1,
          "verified": 0,
          "manual": 1
        },
        {
          "category": "CODE",
          "controls": 4,
          "gaps": 0,
          "verified": 0,
          "manual": 1
        },
        {
          "category": "RESILIENCE",
          "controls": 4,
          "gaps": 0,
          "verified": 0,
          "manual": 4
        },
        {
          "category": "PRIVACY",
          "controls": 4,
          "gaps": 0,
          "verified": 0,
          "manual": 1
        }
      ]
    }
  },
  "proof": {
    "alg": "ed25519",
    "key_id": "IE6LeZNX4dAAPLGr",
    "digest_sha256": "0215fe80f8f8509200818a191bd07c9ad9c1ac94a08599a2ca5e319185898749",
    "signature": "7cCDgM/V47T+wFRHWr2W7//OMNIKgtmRiDHwXYM2uQrbDloou+dDfQvoRvlqBSYgbLYmWbEMjCwBi/2YaFMuBg==",
    "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAwH2fYdYB5nD0CQslDtG3FgafcJBoOX2OGoT80Woksrk=\n-----END PUBLIC KEY-----\n",
    "verify_url": "https://apk-scanner.com/verify"
  }
}