diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 117f1485..9193d5ab 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -268,11 +268,28 @@ jobs: exit 1 fi + 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 @@ -343,4 +360,3 @@ jobs: run: | echo "❌ Some tests failed!" exit 1 - diff --git a/AGENTS.md b/AGENTS.md index f5f1e069..a2882723 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -179,6 +179,21 @@ Les règles détaillées de réalisation et de contrôle sont précisées dans ` --- +### Agent Sécurité + +**Rôle (Responsable)** : + +- Orchestrer l’audit de sécurité automatisé (`scripts/security/audit.sh`: cargo/npm audit, scan de secrets). +- Interdire secrets en clair; imposer la rotation des secrets CI. +- Vérifier permissions sensibles et non‑exposition d’endpoints privés. +- Bloquer les releases si l’audit échoue (intégration 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/README.md b/README.md index 2bc4d1fd..c44d5f17 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Client → sdk_relay → Bitcoin Core - **Docker** et **Docker Compose** installés - **10 Go** d'espace disque minimum - **Connexion Internet** stable -- **Clé SSH** configurée pour GitLab (recommandé) +- **Clé SSH** configurée pour Gitea (recommandé) ### Installation @@ -73,7 +73,7 @@ ssh-add ~/.ssh/id_ed25519_4nk # Configurer Git git config --global core.sshCommand "ssh -i ~/.ssh/id_ed25519_4nk" -# Ajouter la clé publique à GitLab +# Ajouter la clé publique à Gitea cat ~/.ssh/id_ed25519_4nk.pub ``` diff --git a/docs/INDEX.md b/docs/INDEX.md index fb33aae3..3057eeaa 100644 --- a/docs/INDEX.md +++ b/docs/INDEX.md @@ -8,7 +8,7 @@ Index complet de la documentation de l'infrastructure 4NK_node. Guide complet pour installer et configurer l'infrastructure 4NK_node. - **Prérequis système et logiciels** - **Installation de Docker et dépendances** -- **Configuration SSH et GitLab** +- **Configuration SSH et Gitea** - **Configuration initiale des services** - **Tests post-installation** - **Dépannage et monitoring** @@ -281,9 +281,9 @@ Questions fréquemment posées. - **Troubleshooting** : [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - Résolution de problèmes ### Ressources Externes -- **Repository** : [GitLab 4NK_node](https://git.4nkweb.com/4nk/4NK_node) -- **Issues** : [Issues GitLab](https://git.4nkweb.com/4nk/4NK_node/issues) -- **Wiki** : [Wiki GitLab](https://git.4nkweb.com/4nk/4NK_node/wikis) +- **Repository** : https://git.4nkweb.com/4nk/4NK_node +- **Issues** : https://git.4nkweb.com/4nk/4NK_node/issues +- **Wiki** : https://git.4nkweb.com/4nk/4NK_node/wiki ### Contact - **Email** : support@4nkweb.com @@ -311,5 +311,3 @@ Pour contribuer à la documentation : 4. Créer une Pull Request --- - - diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md index feb7e749..a0b38f99 100644 --- a/docs/INSTALLATION.md +++ b/docs/INSTALLATION.md @@ -91,12 +91,12 @@ ssh-add ~/.ssh/id_ed25519_4nk # Configurer Git pour utiliser la clé git config --global core.sshCommand "ssh -i ~/.ssh/id_ed25519_4nk" -# Afficher la clé publique pour GitLab +# Afficher la clé publique pour Gitea cat ~/.ssh/id_ed25519_4nk.pub ``` -**Ajouter la clé publique à GitLab :** -1. Aller sur GitLab > Settings > SSH Keys +**Ajouter la clé publique à Gitea :** +1. Aller sur Gitea > Settings > SSH Keys 2. Coller la clé publique 3. Cliquer sur "Add key" @@ -119,7 +119,7 @@ cd 4NK_node docker --version docker-compose --version -# Vérifier la connectivité GitLab +# Vérifier la connectivité Gitea ssh -T git@git.4nkweb.com # Vérifier les permissions @@ -576,5 +576,3 @@ Félicitations ! L'infrastructure 4NK_node est maintenant installée et configur 4. Configurer le [Monitoring](PERFORMANCE.md) --- - - diff --git a/docs/OPEN_SOURCE_CHECKLIST.md b/docs/OPEN_SOURCE_CHECKLIST.md index b06dcfe6..b2aead5e 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/scripts/security/audit.sh b/scripts/security/audit.sh new file mode 100644 index 00000000..bb72e6bf --- /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 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 + +# 2) Audit Rust (si Cargo.toml présent) +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 + +# 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