app-creator/domain-packs/ios-app/checklist-security-privacy.md
Kjell Tore Guttormsen 2011507ea1 design(app-creator): S6 — forfatt ios-app referanse-domain-pack + start claude-code-plugin-pakke
- domain-packs/ios-app/: komplett referanse-pakke (8 komponenter) — pack.json med
  components-map, conventions.md, 4 patterns/, gotchas.md, checklist.md splittet i 3
  (App Store-submission + security-privacy/MASVS 2.1 + accessibility/WCAG 2.2 AA),
  3 scaffold/-maler (PrivacyInfo.xcprivacy-plist, NSUsageDescription-inventar,
  ASC-metadata), eksempel-feature-brief i Voyage strict-mode-format, glossary.md.
  Hver teknisk påstand verifisert mot Apple Developer / W3C WAI / OWASP MAS.
- domain-packs/claude-code-plugin/: stub — pack.json + conventions.md + gotchas.md
  + checklist.md + glossary.md ferdige (ekstrahert fra ktg-privat-konvensjoner);
  patterns/scaffold/examples er stubs.
- docs/domain-pack-spec.md: § D2/D3/D4/D7 + restrisiko oppdatert — pack.json
  components-felt, core/supplementary låst til manifestet, checklist-splitt-konvensjon,
  snapshot-materialiserings-mekanikk presisert, iOS-versjons-korreksjon (iOS 26, ikke
  "iOS 18/19"), D7 → "forfattet i S6".
- prototype-run/friksjon.md: #9 (Akashic-briefen refererer "iOS 19" som ikke finnes —
  rettes i S7) + S6-prosessnotater (checklist-splitt bekreftet nødvendig, components-gap
  fylt, verifiserings-asymmetri ios-app vs claude-code-plugin notert).
- CLAUDE.md: peker til domain-packs/ under § Status.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 14:06:54 +02:00

4.5 KiB

iOS-app — sikkerhet & personvern sjekkliste

OWASP MASVS 2.1.0 (utgitt 2024-01-18) + PrivacyInfo.xcprivacy + App Privacy Details. Sub-sjekkliste av checklist.md. MASVS definerer hva som skal verifiseres; MASTG/MASWE definerer hvordan man tester. (OWASP MASVS)

OWASP MASVS 2.1 — 8 kontroll-grupper

Velg de relevante; en all-local-app uten auth/nett trenger få. Ikke-relevante grupper merkes N/A med én linjes begrunnelse i pack-overrides.md.

  • MASVS-STORAGE — sensitiv data i Keychain (ikke UserDefaults/plist/klartekst-fil); ingen sensitiv data i logger/backups/snapshots; cache ryddes ved behov.
  • MASVS-CRYPTO — kun moderne algoritmer; nøkler i Keychain/Secure Enclave; ingen hardkodede nøkler; tilfeldighet fra SecRandomCopyBytes/CryptoKit.
  • MASVS-AUTH — hvis appen har auth: sikker sesjonshåndtering, biometri som beleilighet ikke eneste faktor, riktig logout/timeout.
  • MASVS-NETWORK — TLS på all trafikk (ATS aktiv, ingen ubegrunnede unntak); sertifikat-validering ikke deaktivert; vurder pinning hvis trusselsbildet krever det.
  • MASVS-PLATFORM — minimale entitlements/capabilities; trygg IPC (App Groups, URL schemes, universal links validert); ingen sensitiv data i pasteboard/skjermbilder uten grunn; deep links validerer input.
  • MASVS-CODE — oppdaterte dependencies (kjente CVE-er sjekket); inputvalidering på alt eksternt (deep links, fildelt innhold, push-payloads); ingen debug-kode/test-endepunkter i release.
  • MASVS-RESILIENCEkun hvis appen håndterer høyverdi-data: anti-tampering/jailbreak-deteksjon, obfuskering. For en vanlig konsument-app: vanligvis N/A.
  • MASVS-PRIVACY (ny i 2.1.0) — minimer datainnsamling; vær transparent (purpose-strings, onboarding-forklaring, App Privacy Details); gi brukerkontroll (slett data, trekk samtykke); ingen tracking uten ATT.

PrivacyInfo.xcprivacy — påkrevd siden 2024-05-01

Mal: scaffold/PrivacyInfo.xcprivacy. (Apple — Privacy manifest files)

  • NSPrivacyTracking (Bool) — false med mindre appen faktisk tracker på tvers av apper/nettsteder.
  • NSPrivacyTrackingDomains (Array) — domener brukt til tracking (tom hvis NSPrivacyTracking = false).
  • NSPrivacyCollectedDataTypes (Array) — hver innsamlet datatype med NSPrivacyCollectedDataTypeLinked, ...Tracking, og NSPrivacyCollectedDataTypePurposes. Tom hvis ingenting samles.
  • NSPrivacyAccessedAPITypes (Array) — required-reason-API-kategorier appen bruker, med tillatt reason-kode. Kategorier inkl.: file timestamp APIs, system boot time APIs, disk space APIs, active keyboard APIs, user defaults APIs (m.fl.). Manglende deklarasjon = App Store-avvisning (Guideline 5.3.4). (Apple — Required reason API)
  • Tredjeparts-SDK-er: hver må levere sin egen PrivacyInfo.xcprivacy (og signatur for noen). Verifiser — ellers blir det din avvisning.

App Privacy Details ("nutrition label") — App Store Connect

Må stemme med faktisk databehandling i appen og alle SDK-er. (Apple — App Privacy Details)

  • For hver relevant kategori (Contact Info, Health & Fitness, Financial Info, Location [Precise/Coarse], Sensitive Info, Contacts, User Content, Browsing/Search History, Identifiers, Purchases, Usage Data, Diagnostics, Surroundings, Body, Other): angitt om den samles, formål (App Functionality / Analytics / Product Personalization / Advertising / Other), og om linket til identitet + om brukt til tracking.
  • "Data Not Collected" valgt hvis — og bare hvis — verken appen eller noen SDK samler noe. (Den enkleste posisjonen, og verifiserbar.)
  • Personvern-policy-URL satt hvis noe samles.

Permission-transparens (GDPR + App Review-forventning)

  • Hver permission (location, notifikasjoner, …) forklart på en onboarding/forklarings-skjerm før system-prompten.
  • App fungerer i degradert-men-nyttig modus hvis permission nektes (ingen dead-end).
  • Ingen tredjeparts-AI-/analytics-deling uten at det er deklarert og (der relevant) samtykket.