From e688be86f93e0a93afb4307611592e240df3c6ae Mon Sep 17 00:00:00 2001 From: Tripl321 <116004625+Tripl321@users.noreply.github.com> Date: Mon, 25 May 2026 14:16:23 +0200 Subject: [PATCH 01/17] Create Fas1.md --- Fas1.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Fas1.md diff --git a/Fas1.md b/Fas1.md new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/Fas1.md @@ -0,0 +1 @@ + From 574dfa2237308311a77bd9fcc8402a472281976e Mon Sep 17 00:00:00 2001 From: Tripl321 <116004625+Tripl321@users.noreply.github.com> Date: Wed, 27 May 2026 17:19:15 +0200 Subject: [PATCH 02/17] Add files via upload --- ...TRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 "Fas 1 \342\200\223 Hotmodellering & Kravspecifikation (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" diff --git "a/Fas 1 \342\200\223 Hotmodellering & Kravspecifikation (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" "b/Fas 1 \342\200\223 Hotmodellering & Kravspecifikation (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" new file mode 100644 index 000000000..f75e60eaa --- /dev/null +++ "b/Fas 1 \342\200\223 Hotmodellering & Kravspecifikation (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" @@ -0,0 +1,56 @@ +# Fas 1 – Hotmodellering & Kravspecifikation (STRIDE-E + OWASP 2025) + + + +## Översikt + +Dokumentet utgör **Fas 1** av grupparbetet och Ă€r underlaget för kravspecifikationen som implementeras i kommande faser. Varje rad i tabellen nedan bestĂ„r av fyra delar: + +1. **STRIDE-E-kategori** – vilken typ av hot vi adresserar. +2. **OWASP Top 10 (2025)** – mappning till en etablerad branschstandard. +3. **SĂ€kerhetskrav** – det konkreta, verifierbara kravet i vĂ„r kravspecifikation. +4. **Motivering** – argumentet vi anvĂ€nder i presentationen för *varför* kravet finns. + +--- + +## Hotmodelleringstabell + +| **STRIDE-E** | **OWASP Top 10 (2025)** | **SĂ€kerhetskrav (kravspecifikation)** | **Motivering (presentationsargument)** | +| --- | --- | --- | --- | +| **S — Spoofing** *(Identitetsförfalskning)* | **A07:** Authentication Failures | **Lösenordslös inloggning:** Systemet ska tillĂ„ta autentisering via **Passkeys (WebAuthn)** utan traditionella lösenord. | Genom att fasa ut lösenord eliminerar vi sjĂ€lva grundorsaken till lĂ€ckta konton. Passkeys Ă€r kryptografiskt lĂ„sta till vĂ„r domĂ€n, vilket gör plattformen immun mot nĂ€tfiske (phishing) och brute-force. | +| **T — Tampering** *(Manipulering)* | **A05:** Injection | **Strikt indatavalidering:** Systemet ska i backend validera att meddelanden Ă€r rensade (saniterade) och mellan **3–140 tecken**. | Genom att aldrig lita pĂ„ data frĂ„n frontend och tvinga fram validering i vĂ„r Express-API skyddar vi databasen frĂ„n skadlig kod (SQL/NoSQL Injection) och XSS-attacker. | +| **R — Repudiation** *(Förnekande)* | **A09:** Security Logging & Monitoring Failures | **Granskningslogg:** Systemet ska logga **tidsstĂ€mpel, anvĂ€ndar-ID och hĂ€ndelsetyp** för alla raderade eller Ă€ndrade inlĂ€gg. | Om en sĂ€kerhetsincident intrĂ€ffar (t.ex. radering av viktig data) mĂ„ste vi ha spĂ„rbarhet. Utan loggning Ă€r vi blinda och anvĂ€ndare kan förneka sina handlingar i systemet. | +| **I — Information Disclosure** *(InformationslĂ€ckage)* | **A02:** Security Misconfiguration | **Skyddade hemligheter:** Inga kĂ€nsliga API-nycklar eller lösenord fĂ„r checkas in i Git, utan ska hanteras via dolda **`.env`-filer**. | Att rĂ„ka publicera produktionsnycklar pĂ„ GitHub Ă€r en av de vanligaste (och farligaste) felkonfigureringarna. Denna rutin minimerar vĂ„r attackyta och skyddar konfidentiell data. | +| **D — Denial of Service** *(Överbelastning)* | **A05:** Insecure Design | **HastighetsbegrĂ€nsning (Rate Limiting):** API:et ska ha en grĂ€ns pĂ„ antalet tillĂ„tna anrop **per minut och IP-adress**. | För att sĂ€kerstĂ€lla applikationens tillgĂ€nglighet mĂ„ste vi införa resursbegrĂ€nsningar. Rate limiting skyddar vĂ„r backend frĂ„n att krascha om den utsĂ€tts för automatiserad spam eller en överbelastningsattack. | +| **E — Elevation of Privilege** *(Behörighetsökning)* | **A01:** Broken Access Control | **Auktoriseringskontroll:** Backend mĂ„ste alltid validera att meddelandets **`author_id`** matchar sessionens inloggade anvĂ€ndare vid radering/redigering. | Broken Access Control Ă€r webbens största sĂ„rbarhet. Vi förhindrar behörighetsökning genom att sĂ€kerstĂ€lla att en vanlig anvĂ€ndare aldrig kan manipulera nĂ„gon annans inlĂ€gg, oavsett vad frontenden skickar för anrop. | + +--- + +## Sammanfattning av kraven + +- [ ] **K1 – Autentisering:** Passkeys/WebAuthn istĂ€llet för lösenord. +- [ ] **K2 – Indatavalidering:** Sanitering + lĂ€ngdkontroll (3–140 tecken) i backend. +- [ ] **K3 – Loggning:** Granskningslogg med tidsstĂ€mpel, anvĂ€ndar-ID och hĂ€ndelsetyp för mutationer. +- [ ] **K4 – Hemligheter:** Inga secrets i Git; allt via `.env` + `.gitignore`. +- [ ] **K5 – TillgĂ€nglighet:** Rate limiting per IP och minut pĂ„ API. +- [ ] **K6 – Auktorisering:** `author_id`-kontroll mot session vid alla mutationer. + +--- + +## Referenser + +- [STRIDE threat model (Microsoft)](https://learn.microsoft.com/en-us/azure/security/develop/threat-modeling-tool-threats) +- [OWASP Top 10 (2025)](https://owasp.org/Top10/) +- [WebAuthn / Passkeys (W3C)](https://www.w3.org/TR/webauthn-3/) + + \ No newline at end of file From a13a8fa2b5a7914e6658eaa88923a13ffae5d85e Mon Sep 17 00:00:00 2001 From: Tripl321 <116004625+Tripl321@users.noreply.github.com> Date: Wed, 27 May 2026 17:19:45 +0200 Subject: [PATCH 03/17] Delete Fas1.md --- Fas1.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Fas1.md diff --git a/Fas1.md b/Fas1.md deleted file mode 100644 index 8b1378917..000000000 --- a/Fas1.md +++ /dev/null @@ -1 +0,0 @@ - From ff14248d7f90651c145b0afa8ffba7833098fc64 Mon Sep 17 00:00:00 2001 From: Tripl321 <116004625+Tripl321@users.noreply.github.com> Date: Wed, 27 May 2026 17:20:35 +0200 Subject: [PATCH 04/17] Remove duplicate requirement entries in documentation --- ...on (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git "a/Fas 1 \342\200\223 Hotmodellering & Kravspecifikation (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" "b/Fas 1 \342\200\223 Hotmodellering & Kravspecifikation (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" index f75e60eaa..21eb8c50a 100644 --- "a/Fas 1 \342\200\223 Hotmodellering & Kravspecifikation (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" +++ "b/Fas 1 \342\200\223 Hotmodellering & Kravspecifikation (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" @@ -33,12 +33,12 @@ Dokumentet utgör **Fas 1** av grupparbetet och Ă€r underlaget för kravspecifik ## Sammanfattning av kraven -- [ ] **K1 – Autentisering:** Passkeys/WebAuthn istĂ€llet för lösenord. -- [ ] **K2 – Indatavalidering:** Sanitering + lĂ€ngdkontroll (3–140 tecken) i backend. -- [ ] **K3 – Loggning:** Granskningslogg med tidsstĂ€mpel, anvĂ€ndar-ID och hĂ€ndelsetyp för mutationer. -- [ ] **K4 – Hemligheter:** Inga secrets i Git; allt via `.env` + `.gitignore`. -- [ ] **K5 – TillgĂ€nglighet:** Rate limiting per IP och minut pĂ„ API. -- [ ] **K6 – Auktorisering:** `author_id`-kontroll mot session vid alla mutationer. +- **K1 – Autentisering:** Passkeys/WebAuthn istĂ€llet för lösenord. +- **K2 – Indatavalidering:** Sanitering + lĂ€ngdkontroll (3–140 tecken) i backend. +- **K3 – Loggning:** Granskningslogg med tidsstĂ€mpel, anvĂ€ndar-ID och hĂ€ndelsetyp för mutationer. +- **K4 – Hemligheter:** Inga secrets i Git; allt via `.env` + `.gitignore`. +- **K5 – TillgĂ€nglighet:** Rate limiting per IP och minut pĂ„ API. +- **K6 – Auktorisering:** `author_id`-kontroll mot session vid alla mutationer. --- @@ -53,4 +53,4 @@ Dokumentet utgör **Fas 1** av grupparbetet och Ă€r underlaget för kravspecifik **NĂ€sta steg (Fas 2):** ÖversĂ€tta varje krav (K1–K6) till konkreta acceptanskriterier och testfall innan implementation pĂ„börjas. - \ No newline at end of file + From 96b632baf84320c617e98abe20cb3d631c337ab6 Mon Sep 17 00:00:00 2001 From: Tripl321 <116004625+Tripl321@users.noreply.github.com> Date: Wed, 27 May 2026 17:21:06 +0200 Subject: [PATCH 05/17] Remove emoji placeholders from requirements document Removed emoji placeholders from the document. --- ...avspecifikation (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" | 2 -- 1 file changed, 2 deletions(-) diff --git "a/Fas 1 \342\200\223 Hotmodellering & Kravspecifikation (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" "b/Fas 1 \342\200\223 Hotmodellering & Kravspecifikation (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" index 21eb8c50a..0e4d27f33 100644 --- "a/Fas 1 \342\200\223 Hotmodellering & Kravspecifikation (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" +++ "b/Fas 1 \342\200\223 Hotmodellering & Kravspecifikation (STRIDE 66915aa349c8420da7f169a5ab8dd5c9.md" @@ -1,7 +1,6 @@ # Fas 1 – Hotmodellering & Kravspecifikation (STRIDE-E + OWASP 2025)