From cb08fcf6df855ec1999b4f4713c174de2e7c1632 Mon Sep 17 00:00:00 2001 From: Nicolas Cantu Date: Wed, 27 Aug 2025 13:57:29 +0200 Subject: [PATCH] =?UTF-8?q?chore(release):=20latest=200.1.1=20+=20s=C3=A9c?= =?UTF-8?q?urit=C3=A9/CI/docs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/ci.yml | 20 ++++++++++++++++++-- AGENTS.md | 12 ++++++++++++ VERSION | 1 + docs/OPEN_SOURCE_CHECKLIST.md | 4 +--- docs/SECURITY_AUDIT.md | 7 +++++-- scripts/security/audit.sh | 35 +++++++++++++++++++++++++++++++++++ 6 files changed, 72 insertions(+), 7 deletions(-) create mode 100644 VERSION create mode 100644 scripts/security/audit.sh diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 7a9bf59..d06f47b 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -256,11 +256,28 @@ jobs: run: | echo "Documentation checks completed" + security-audit: + name: Security Audit + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + - name: Ensure scripts executable + run: | + chmod +x scripts/security/audit.sh || true + - name: Run template security audit + run: | + if [ -f scripts/security/audit.sh ]; then + ./scripts/security/audit.sh + else + echo "No security audit script (ok)" + fi + # Job de release guard (cohérence release) release-guard: name: Release Guard runs-on: ubuntu-latest - needs: [code-quality, unit-tests, documentation-tests] + needs: [code-quality, unit-tests, documentation-tests, security-audit] steps: - name: Checkout code uses: actions/checkout@v3 @@ -331,4 +348,3 @@ jobs: run: | echo "❌ Some tests failed!" exit 1 - diff --git a/AGENTS.md b/AGENTS.md index f5f1e06..6224eac 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -179,6 +179,18 @@ Les règles détaillées de réalisation et de contrôle sont précisées dans ` --- +### Agent Sécurité (Responsable) +**Missions** +- Orchestrer l’audit de sécurité automatisé via `scripts/security/audit.sh` (cargo audit, npm audit, scan de secrets). +- Interdire l’introduction de secrets en clair; assurer la rotation des secrets CI. +- Vérifier permissions et non‑exposition d’endpoints privés. +- Bloquer la release si l’audit échoue (intégré au `release-guard`). + +**Artefacts** +- `scripts/security/audit.sh`, `.gitea/workflows/ci.yml` (job `security-audit`), `docs/SECURITY_AUDIT.md`, `SECURITY.md`. + +--- + ## Agents complémentaires ### Agent Coordination diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..8308b63 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +v0.1.1 diff --git a/docs/OPEN_SOURCE_CHECKLIST.md b/docs/OPEN_SOURCE_CHECKLIST.md index 522cc69..ab0da4b 100644 --- a/docs/OPEN_SOURCE_CHECKLIST.md +++ b/docs/OPEN_SOURCE_CHECKLIST.md @@ -78,7 +78,7 @@ Cette checklist détaille tous les éléments nécessaires pour préparer le pro ### 📋 **Phase 2 : Préparation du Repository** #### Repository Public -- [ ] **Créer repository public** - Sur GitHub/GitLab +- [ ] **Créer repository public** - Sur Gitea/GitHub/GitLab - [ ] **Configurer les branches** - main, develop, feature/* - [ ] **Configurer les protections** - Branch protection rules - [ ] **Configurer les labels** - bug, enhancement, documentation, etc. @@ -230,5 +230,3 @@ cargo update --- **Le projet a une base technique et documentaire excellente qui facilitera grandement son adoption par la communauté open source !** 🌟 - - diff --git a/docs/SECURITY_AUDIT.md b/docs/SECURITY_AUDIT.md index 28125c0..c282ade 100644 --- a/docs/SECURITY_AUDIT.md +++ b/docs/SECURITY_AUDIT.md @@ -1,5 +1,10 @@ # Audit de Sécurité - sdk_common +- CI: job `security-audit` exécutant `scripts/security/audit.sh`. +- Portée: cargo audit, npm audit si présent, scan de secrets. +- Refus release si findings bloquants (élevé/critique) ou secrets détectés. +- Rattachement `release-guard` pour bloquer push/tag. + ## 🔍 Résumé de l'Audit **Date d'audit** : 19 décembre 2024 @@ -196,5 +201,3 @@ export BLINDBIT_API_KEY="your_api_key" --- **Le projet sdk_common présente un bon niveau de sécurité pour l'open source. Les recommandations ci-dessus permettront de renforcer encore la sécurité.** 🔒 - - diff --git a/scripts/security/audit.sh b/scripts/security/audit.sh new file mode 100644 index 0000000..06632ef --- /dev/null +++ b/scripts/security/audit.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +set -euo pipefail + +echo "[security-audit] démarrage" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")"/../.. && pwd)" +cd "$ROOT_DIR" + +rc=0 + +# 1) Audit Rust (si Cargo.toml présent et cargo disponible) +if command -v cargo >/dev/null 2>&1 && [ -f Cargo.toml ] || find . -maxdepth 2 -name Cargo.toml | grep -q . ; then + echo "[security-audit] cargo audit" + if ! cargo audit --deny warnings; then rc=1; fi || true +else + echo "[security-audit] pas de projet Rust (ok)" +fi + +# 2) Audit npm (si package.json présent) +if [ -f package.json ]; then + echo "[security-audit] npm audit --audit-level=moderate" + if ! npm audit --audit-level=moderate; then rc=1; fi || true +else + echo "[security-audit] pas de package.json (ok)" +fi + +# 3) Recherche de secrets grossiers +echo "[security-audit] scan secrets" +if grep -RIE "(?i)(api[_-]?key|secret|password|private[_-]?key)" --exclude-dir .git --exclude-dir node_modules --exclude-dir target --exclude "*.md" . >/dev/null 2>&1; then + echo "[security-audit] secrets potentiels détectés"; rc=1 +else + echo "[security-audit] aucun secret évident" +fi + +echo "[security-audit] terminé rc=$rc" +exit $rc