
Plateforme interactive reliant les normes et directives de sécurité pour concevoir, développer, tester et acquérir des logiciels sécurisés. Fournit un catalogue unifié d'exigences communes (CRE) avec des références croisées aux normes industrielles.
Rendez-vous sur https://www.opencre.org pour voir OpenCRE en action et obtenir plus d'explications. OpenCRE signifie « Open Common Requirement enumeration » (énumération ouverte des exigences communes). C'est une plateforme interactive de liaison de contenu pour unifier les normes et directives de sécurité. Elle offre un accès simple et fiable aux informations pertinentes lors de la conception, du développement, des tests et de l'acquisition de logiciels sécurisés.
OpenCRE se compose de :
Pour voir comment contribuer à l'application ou aux données (catalogue ou mappages de normes), consultez Contribuer. Votre contribution est vraiment la bienvenue !
/rest/v1/openapi.yaml lorsqu'elle est en cours d'exécution)Pour la feuille de route, veuillez consulter les issues.
Vous êtes libre d'utiliser l'application publique opencre sur opencre.org. En dehors de cela, vous pouvez exécuter votre propre instance si vous souhaitez par exemple inclure vos propres normes et directives de sécurité. Nous appelons cela myOpenCRE.
Le moyen le plus simple d'exécuter OpenCRE localement est de lancer le conteneur Docker publié. Pour ce faire, exécutez :
docker run -p 5000:5000 ghcr.io/owasp/opencre/opencre:latest
Une fois que le conteneur a fini de télécharger les informations distantes, vous pouvez y accéder sur http://127.0.0.1:5000.
Si vous souhaitez développer sur OpenCRE ou si Docker n'est pas disponible dans votre environnement, vous pouvez également l'exécuter via la CLI.
Pour exécuter en dehors de Docker, vous devez installer OpenCRE. Pour installer cette application, vous avez besoin de python3, yarn et virtualenv.
Clonez le dépôt :
git clone https://github.com/OWASP/OpenCRE
(Recommandé) Créez et activez un environnement virtuel Python :
python3 -m venv venv
source venv/bin/activate
Installez les dépendances :
make install
Téléchargez le dernier graphe CRE depuis l'amont en exécutant :
make upstream-sync
Vous pouvez précalculer le cache local d'analyse des écarts après les imports avec :
make backfill-gap-analysis
Pour exécuter CRE localement, vous pouvez ensuite faire :
make dev-flask
Pour exécuter l'application CLI, vous pouvez lancer :
python cre.py --help
Pour exporter la taxonomie CRE + normes au format CSV (adapté à la CI), exécutez :
python cre.py --export --csv <path/to/output.csv>
Exemple :
python cre.py --export --csv artifacts/cres_and_standards.csv
Remarques :
--export est un mode d'exportation dédié et se termine après l'écriture du CSV.--csv est requis lors de l'utilisation de --export.Pour télécharger localement une feuille de calcul CRE distante, vous pouvez exécuter :
python cre.py --review --from_spreadsheet <google sheets url>
Pour ajouter une feuille de calcul distante à votre base de données locale, vous pouvez exécuter :
python cre.py --add --from_spreadsheet <google sheets url>
Pour exécuter l'application web en développement, vous pouvez lancer :
make start-containers
make start-worker
# in a separate shell
make dev-flask
Alternativement, vous pouvez utiliser le Dockerfile avec :
make docker && make docker-run
Certaines fonctionnalités comme l'analyse des écarts (Gap Analysis) nécessitent une base de données neo4j en cours d'exécution ; vous pouvez la démarrer avec :
make docker-neo4j
Pour exécuter uniquement le remplissage des paires manquantes de l'analyse des écarts (sans démarrer Flask), utilisez :
RUN_COUNT=8 bash scripts/backfill_gap_analysis.sh
Privilégiez les scripts dédiés dans scripts/db/ pour les opérations de production. Ces scripts appliquent des garde-fous de sécurité et créent toujours une sauvegarde fraîche avant toute modification de la base de données.
APP_NAME=opencreorg scripts/db/backup-opencreorg.shAPP_NAME=opencreorg SOURCE_DB_URL="postgresql://cre:[email protected]:5432/cre" scripts/db/sync-local-to-opencreorg.shAPP_NAME=opencreorg scripts/db/surgery-opencreorg.sh --sql-file ./tmp/change.sqlPour une intervention destructrice (DELETE, DROP, TRUNCATE, ALTER irréversible), utilisez :
APP_NAME=opencreorg \
CONFIRM_DESTRUCTIVE=I_UNDERSTAND_OPENCREORG_PROD_DB_DESTRUCTIVE_ACTION \
scripts/db/surgery-opencreorg.sh --sql-file ./tmp/destructive-change.sql --destructive
Manuels d'exploitation :
docs/runbooks/opencreorg-db-sync-and-surgery.mddocs/runbooks/opencreorg-db-destructive-ops-checklist.mdVariables d'environnement pour que l'application se connecte à neo4jDB (par défaut) :
NEO4J_URL (neo4j//neo4j:password@localhost:7687)Pour exécuter l'application web en production, vous avez besoin de gunicorn et vous pouvez lancer depuis le répertoire cre_sync :
make prod-run
OpenCRE est entièrement pris en charge sur macOS. Les notes suivantes sont facultatives et destinées à aider les contributeurs qui exécutent OpenCRE localement sur des systèmes macOS.
Installez les outils requis avec Homebrew :
brew install [email protected] yarn make
Remarque : Python 3.11 est recommandé. Les versions plus récentes de Python peuvent provoquer des incompatibilités de dépendances.
Vérifiez la version de Python :
python3 --version
Créez et activez un environnement virtuel explicitement avec Python 3 :
python3 -m venv venv
source venv/bin/activate
Mettez à niveau pip :
pip install --upgrade pip
Installez les dépendances en suivant le processus standard :
make install
Si vous rencontrez des problèmes de compilation, assurez-vous que les outils en ligne de commande Xcode sont installés :
xcode-select --install
Synchronisez les données CRE amont (nécessite un accès Internet) :
make upstream-sync
Puis démarrez le serveur local :
make dev-flask
L'application sera disponible à l'adresse :
http://127.0.0.1:5000
Astuce : pour la plupart des utilisateurs de macOS, l'exécution via Docker est l'approche la plus simple et la plus fiable.