From eec93d815e88b77ae8e936270ba1044bd5a63d9c Mon Sep 17 00:00:00 2001 From: Munazza Ahmed Date: Fri, 24 Oct 2025 19:29:59 +0500 Subject: [PATCH 1/2] Phase1: Add project proposal, security plan, README and changelog --- CHANGELOG.md | 6 ++++ README.md | 12 ++++++++ docs/PROJECT_PROPOSAL.md | 39 +++++++++++++++++++++++++ docs/SECURITY_PLAN.md | 61 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 118 insertions(+) create mode 100644 CHANGELOG.md create mode 100644 docs/PROJECT_PROPOSAL.md create mode 100644 docs/SECURITY_PLAN.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..bdb1a69c5b --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,6 @@ +# CHANGELOG + +## Unreleased + +* Phase1: Add project proposal and security plan (by Munazza Ahmed Sumaiya Bukhari Zainab Altaf) + diff --git a/README.md b/README.md index afe124f3fb..03c4e48073 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,15 @@ +# SecureNotes (fork of full-stack-fastapi-postgresql) + +Phase 1 deliverables for SecureNotes (REST API security project). + +## Phase 1 contents + +* `docs/PROJECT_PROPOSAL.md` +* `docs/SECURITY_PLAN.md` +* `docs/system_overview.drawio` / `.png` / `.pdf` +* `README.md`, `CHANGELOG.md` + +This repo is a fork of the `tiangolo/full-stack-fastapi-postgresql` starter. # Full Stack FastAPI Template Test diff --git a/docs/PROJECT_PROPOSAL.md b/docs/PROJECT_PROPOSAL.md new file mode 100644 index 0000000000..4fd83e9296 --- /dev/null +++ b/docs/PROJECT_PROPOSAL.md @@ -0,0 +1,39 @@ +# Project Proposal — SecureNotes (FastAPI) + +**Course:** Secure Software Development +**Project Theme:** REST API Security (FastAPI) — fork of tiangolo/full-stack-fastapi-postgresql +**Repository (fork):** [https://github.com/YourGitHubUser/secure-notes](https://github.com/YourGitHubUser/secure-notes) + +**Implementer (Phase 1):** [Your Full Name] + +## Objective + +Build a secure REST API to accept, encrypt, store and return user notes. Use Secure SDLC, OWASP guidance, and DevSecOps: threat modeling, code and dependency scanning, container scanning, and DAST. + +## Scope (Phase 1) + +* Fork the template and set up repo branch `phase1-setup`. +* Define security objectives and produce a Security Plan (this doc + SECURITY_PLAN.md). +* Produce Level-0 DFD (docs/system_overview.*). +* Setup initial README and changelog. + +## Deliverables (Phase 1) + +* docs/PROJECT_PROPOSAL.md +* docs/SECURITY_PLAN.md +* docs/system_overview.png and .pdf +* README.md and CHANGELOG.md +* Branch: phase1-setup and PR to main + +## Team & responsibilities + +* [Your Full Name] — Phase 1: planning, repo setup, DFD, documentation. +* (Teammates will implement later phases: threat modeling, code, tests). + +## Timeline + +* Phase 1: (today) Planning & Setup +* Phase 2: Threat Model & Risk Assessment +* Phase 3: Implementation (backend security controls) +* Phase 4: CI/CD & automated security scans +* Phase 5: Final report & demo diff --git a/docs/SECURITY_PLAN.md b/docs/SECURITY_PLAN.md new file mode 100644 index 0000000000..b8dbf0c441 --- /dev/null +++ b/docs/SECURITY_PLAN.md @@ -0,0 +1,61 @@ +# Security Plan — SecureNotes (Phase 1) + +**Author:** [Your Full Name] +**Repo:** [https://github.com/YourGitHubUser/secure-notes](https://github.com/YourGitHubUser/secure-notes) +**Date:** YYYY-MM-DD + +## 1. Summary + +This plan defines security objectives, assets, roles, high-level controls, and next steps for Phase 1 of SecureNotes (FastAPI). + +## 2. Security Objectives (CIA + Privacy) + +* **Confidentiality**: Encrypt note bodies at rest using AES-GCM with a 256-bit application master key. +* **Integrity**: Use JWT with HMAC (HS256) and short token lifetimes; authenticated encryption for stored data. +* **Availability**: Basic rate limiting plan and graceful error handling (to be implemented). +* **Privacy**: Minimize PII; store username and password hash only; redact sensitive logs. + +## 3. System Assets + +| Asset | Classification | Comments | +| -------------------------- | ---------------: | -------------------------------------- | +| Note content | Sensitive | Must be encrypted at rest | +| User credentials | Highly sensitive | Store hashed (bcrypt) only | +| MASTER_KEY / JWT_SECRET | Secret | Store in GitHub Secrets/secret manager | +| Database backups | Sensitive | Encrypt & restrict access | +| CI tokens & registry creds | Secret | Least privilege in CI | + +## 4. Users & Roles + +* **User**: create/read own notes. +* **Admin** (future): manage users and system. +* **Developer/CI**: builds and tests; must not leak secrets. + +## 5. Data Flows (high level) + +* User → HTTPS → FastAPI endpoints (register, login, /notes) +* FastAPI → encrypt note → DB (store ciphertext) +* CI (GitHub Actions) → build/test/scan → images/reports + +A Level-0 DFD diagram is included: `docs/system_overview.png` / `.pdf`. + +## 6. Initial Controls to implement (Phase 2/3 plan) + +1. Password hashing (bcrypt via passlib). +2. JWT auth (short lived access tokens). +3. AES-GCM encryption for note bodies (app master key from secrets). +4. Pydantic input validation for all endpoints. +5. Security headers middleware (CSP, HSTS, X-Frame-Options). +6. CI: CodeQL, Snyk (SCA), Trivy (container), OWASP ZAP (DAST). + +## 7. Key risks & mitigations + +* **Leak of master key** → use GitHub Secrets & rotation plan. +* **Dependency vulnerabilities** → Snyk scans and upgrades. +* **Misconfigured CI secrets** → restrict access & do not echo secrets in logs. + +## 8. Phase-1 acceptance criteria + +* Repo forked and branch `phase1-setup` created. +* Security Plan and DFD added to `docs/`. +* PR created (and merged). From b011ee374c2225b56fcbec84968611e9d50f8057 Mon Sep 17 00:00:00 2001 From: Munazza Ahmed Date: Fri, 24 Oct 2025 20:11:29 +0500 Subject: [PATCH 2/2] Phase1: Add Level-0 DFD (drawio + PNG + PDF) --- docs/system_overview.drawio | 37 ++++++++++++++++++++++++++++++++++++ docs/system_overview.pdf | Bin 0 -> 26876 bytes docs/system_overview.png | Bin 0 -> 21251 bytes 3 files changed, 37 insertions(+) create mode 100644 docs/system_overview.drawio create mode 100644 docs/system_overview.pdf create mode 100644 docs/system_overview.png diff --git a/docs/system_overview.drawio b/docs/system_overview.drawio new file mode 100644 index 0000000000..271266c49c --- /dev/null +++ b/docs/system_overview.drawio @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/system_overview.pdf b/docs/system_overview.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9615edcfed627090681b1c5aeaeb55e6c394f063 GIT binary patch literal 26876 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 z

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 H5%E6&@2_Ud literal 0 HcmV?d00001