From e08d1f8751d834c3b9f1596017a77d4c2072f27c Mon Sep 17 00:00:00 2001 From: "Taisen.fr (Dev)" Date: Fri, 13 Sep 2024 10:42:29 +0200 Subject: [PATCH] DevSecOps++ --- Dojo-101-DevSec/DREAD.md | 24 ------------------- Dojo-101-DevSec/Github-basics.md | 2 +- Dojo-101-DevSec/README.md | 41 ++++++++++++++++++++++---------- Dojo-101-DevSec/Rust-security.md | 36 +++++++++++++++++++++++++++- 4 files changed, 64 insertions(+), 39 deletions(-) delete mode 100644 Dojo-101-DevSec/DREAD.md diff --git a/Dojo-101-DevSec/DREAD.md b/Dojo-101-DevSec/DREAD.md deleted file mode 100644 index 648e407..0000000 --- a/Dojo-101-DevSec/DREAD.md +++ /dev/null @@ -1,24 +0,0 @@ -# DREAD - -afin d'evaluer une vulnérabilité - -## Damage potential - -If exploited, how harmful could it be? - -## Reproducibility - -Will attacks succeed every time, some of the time, or only rarely? - -## Exploitability - -How hard, in terms of technical difficulty, effort, and cost, is the vulnerability to exploit? How long is the attack path? - -## Affected users - -Will all, some, or only a few users be impacted? Can specific targets be -easily attacked, or are the victims arbitrary? - -## Discoverability - -How likely is it that attackers will find the vulnerability? \ No newline at end of file diff --git a/Dojo-101-DevSec/Github-basics.md b/Dojo-101-DevSec/Github-basics.md index b3dc134..0c6434d 100644 --- a/Dojo-101-DevSec/Github-basics.md +++ b/Dojo-101-DevSec/Github-basics.md @@ -164,7 +164,7 @@ git push -f origin main #push vers la branche main git gc --aggressive --prune=all # supression des anciens fichiers ``` -## Actions +## Actions / Workflows This workflow will build a .NET project, [more information here](https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net) diff --git a/Dojo-101-DevSec/README.md b/Dojo-101-DevSec/README.md index bc55a68..6179359 100644 --- a/Dojo-101-DevSec/README.md +++ b/Dojo-101-DevSec/README.md @@ -1,6 +1,17 @@ # Développement sécurisé / DevSec basics +## Référentiels et bonnes pratiques + +* [Projets OWASP](https://owasp.org/projects/) + +* [Guides ANSSI](https://cyber.gouv.fr) + +* [Chaine DevOps](https://learn.microsoft.com/fr-fr/azure/cloud-adoption-framework/ready/considerations/devops-toolchain#azure-devops-and-github-toolchain) + +* [OWASP ASVS](https://github.com/OWASP/ASVS) + + ## Intégration de la sécurité au Software Development LifeCycle (SDLC) | Exigences | Conception | Développement | Déploiement | Maintenance | @@ -43,13 +54,17 @@ * Contournements / mauvais respect des workflows -## Référentiels et bonnes pratiques +## Notions de vulnérabilité -* [Projets OWASP](https://owasp.org/projects/) +Risque = Impact * Vraisemblance -* [Guides ANSSI](https://cyber.gouv.fr) +Vulnérabilité = Faiblesse du SI -* [Chaine DevOps](https://learn.microsoft.com/fr-fr/azure/cloud-adoption-framework/ready/considerations/devops-toolchain#azure-devops-and-github-toolchain) +Menace = Cause potentielle de l’incident + +Impact = Gravité, portée de l’incident sur les échelles et critères DICT + +Risque = Vuln + Menace + Impact ## énumeration des vulnréabilités et mauvaise pratiques @@ -61,17 +76,18 @@ * [liste des CWE](https://cwe.mitre.org/) -## Notions de vulnérabilité +## DREAD : Evaluation d'une vulnérabilité -Risque = Impact * Vraisemblance +* Damage potential : If exploited, how harmful could it be? -Vulnérabilité = Faiblesse du SI +* Reproducibility : Will attacks succeed every time, some of the time, or only rarely? -Menace = Cause potentielle de l’incident +* Exploitability : How hard, in terms of technical difficulty, effort, and cost, is the vulnerability to exploit? How long is the attack path? -Impact = Gravité, portée de l’incident sur les échelles et critères DICT +* Affected users :Will all, some, or only a few users be impacted? Can specific targets be easily attacked, or are the victims arbitrary? + +* Discoverability : How likely is it that attackers will find the vulnerability? -Risque = Vuln + Menace + Impact ## CIA Information security: @@ -105,6 +121,7 @@ Risque = Vuln + Menace + Impact * Paranoid + ## Oganisational security Documents 1. Policies @@ -116,7 +133,6 @@ Risque = Vuln + Menace + Impact 3. Procedures - ## suivi des besoins sécurité 1. Besoin de sécurité identifié par la sécurité @@ -127,7 +143,6 @@ Risque = Vuln + Menace + Impact 4. Implémentation par le projet - 5. Recette sécurité par la sécurité 6. Evaluation du risque résiduel par la sécurité @@ -165,7 +180,7 @@ retour à 1 -## exemple de référentiel : l'OWASP ASVS +## exemple de référentiel : [owasp-asvs](https://owasp.org/www-project-application-security-verification-standard/) complet au format csv : diff --git a/Dojo-101-DevSec/Rust-security.md b/Dojo-101-DevSec/Rust-security.md index 017b5be..794f051 100644 --- a/Dojo-101-DevSec/Rust-security.md +++ b/Dojo-101-DevSec/Rust-security.md @@ -21,9 +21,43 @@ cargo add regex ``` Le code sera dans `main.rs` -Les versions des dépendances sont alors spécifié dans le fichier `Cargo.toml` +Les versions des dépendances sont alors spécifié dans le fichier `Cargo.toml`, Cargo gère automatiquement le fichier `Cargo.lock` Pour mettre à jour des dépendances : `cargo-update` + +## Test via CI/CD + +### github actions + +exemple : + +```yml +name: Rust + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Build + working-directory: ./quality + run: cargo build --verbose + - name: Run tests + working-directory: ./quality + run: cargo test --verbose +``` + ## Variables ```rust