Skip to content

Commit

Permalink
refactor(securite/fr): improve chapters & remove some links
Browse files Browse the repository at this point in the history
  • Loading branch information
fraxken committed Sep 16, 2024
1 parent f7a9d03 commit 6b19a89
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 13 deletions.
Binary file added assets/securite/socket_alerts.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/securite/socket_pr.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 17 additions & 5 deletions fr/chapters/8-securite/2-audit.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,34 @@

Il devient obligatoire de mettre en place des audits de sécurité automatique sur vos dépendances afin d'avoir une vision même minimale des vulnérabilités "connues" au sein de chaque projet. Bien sûr, ce n'est que le premier pas vers une sécurité optimale!

Des outils tels que [Snyk](https://snyk.io/), [sqreen](https://www.sqreen.com/), [npm audit](https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities) vous permettent d'avoir une vue d'ensemble des CVE actifs ou des attaques possibles sur vos projets (l’offre gratuite de snyk est d’ailleurs plutôt généreuse).
Des outils tels que [Snyk](https://snyk.io/), [Socket.dev](https://socket.dev/), [sqreen](https://www.sqreen.com/), [npm audit](https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities) vous permettent d'avoir une vue d'ensemble des CVE actifs ou des attaques possibles sur vos projets (l’offre gratuite de snyk est d’ailleurs plutôt généreuse).

### Exemple avec Snyk

*Exemple ci-dessous d’un tableau bord snyk sur le projet SlimIO*

<img src="../../../assets/securite/intro.png" alt="Exemple" width="600">
<img src="../../../assets/securite/intro.png" alt="snyk_dashboard" width="600">

Les vulnérabilités détectées pendant la phase de **runtime** sont bien **évidemment prioritaires**(**puisqu’elles concernent les codes exécutés en production**).
Les vulnérabilités détectées pendant la phase de **runtime** sont bien **évidemment prioritaires** (**puisqu’elles concernent les codes exécutés en production**).

> [!WARNING]
> Cela ne veut pas pour autant dire que les vulnérabilités détectées sur les dépendances de développement ne sont pas importantes !
Vous pouvez ouvrir l'un des projets pour avoir plus d'informations sur les différentes issues en cours. L'interface vous donnera tout un ensemble d'informations telles que des références et des explications sur le problème. Et, le cas échéant, des mesures correctives pour résoudre le problème.

<img src="../../../assets/securite/intro-2.png" alt="Exemple" width="600">
<img src="../../../assets/securite/intro-2.png" alt="snyk_details" width="600">

À noter que Snyk à aussi développer un outil en ligne [Snyk Advisory](https://snyk.io/advisor/) qui vous permet à tout moment de vérifier les métriques en lien avec un package NPM.

### Exemple avec Socket.dev

Il est également possible d'utiliser l'outil Socket, gratuit pour les projets open source. Cet outil va plus loin que la version gratuite de Snyk en détectant un éventail plus large d'anomalies dans le code source des packages utilisés.

<img src="../../../assets/securite/socket_alerts.png" alt="socketdev" width="600">

Il analysera et commentera toutes vos pull-requests

À noter que Snyk à aussi développer un outil en ligne "[Snyk Advisory](https://snyk.io/advisor/)" qui vous permet à tout moment de vérifier les métriques en lien avec un package NPM.
<img src="../../../assets/securite/socket_pr.png" alt="socketdev" width="600">

---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,17 @@

Il est impératif de ne pas publier sur Internet (git) un token, un login et/ou un mot de passe. Cela sous-entend qu’il faut absolument éviter de stocker en dur ces informations dans votre code source (quelquefois nous le faisons juste temporairement pour un test et nous ne faisons pas attention au moment de commit…).

Ces informations doivent être stockées dans l'environnement local (elles peuvent être gérées et chargées par projet en utilisant le fichier .env et le paquet npm [dotenv](https://www.npmjs.com/package/dotenv)). Les frameworks high-scope ont d'ailleurs bien souvent une gestion interne déjà opérationnelle (penser à vous documenter).
Ces informations peuvent être stockées dans l'environnement local ou dans un KeyVault (elles peuvent être gérées et chargées par projet en utilisant le fichier .env et le paquet npm [dotenv](https://www.npmjs.com/package/dotenv)). Les frameworks high-scope ont d'ailleurs bien souvent une gestion interne déjà opérationnelle (penser à vous documenter).

Dans le cadre de npm, nous vous conseillons d'utiliser [le guide suivant](https://snyk.io/blog/ten-npm-security-best-practices/) qui va vous permettre d’éviter différents vecteurs d’attaques.
Avec npm, nous vous conseillons d'utiliser [le guide suivant](https://snyk.io/blog/ten-npm-security-best-practices/) qui va vous permettre d’éviter différents vecteurs d’attaques.

Alternative possible au package dotenv:

- [env-var](https://github.com/evanshortiss/env-var)

Autres ressources qui pourraient vous intéresser:

- [Masterclass | Node.js Configurations (by Matteo Collina)](https://www.youtube.com/watch?v=kVnh_tNYqxk)
- [Safely store secrets in Git using Blackbox (by Ulises Gascon)](https://www.youtube.com/watch?v=beJT7wMvJo4)
- [Managing Secrets in Node.js with HashiCorp Vault](https://codersociety.com/blog/articles/hashicorp-vault-node)

Expand Down
12 changes: 12 additions & 0 deletions fr/chapters/8-securite/4-dependances-directes-indirectes.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ Le projet [NodeSecure](https://github.com/NodeSecure/cli) permet d’analyser en

<img src="../../../assets/securite/nsecure.png" alt="NodeSecure" width="750">

- FR [Présentation du projet NodeSecure - Thomas Gentilhomme - ParisJS #101](https://www.youtube.com/watch?v=hmrKI1jZLGc)

> [!IMPORTANT]
> Attention à ne pas non plus tomber dans la parano. Il n’est pas non plus, tout le temps simple, de résoudre des problématiques en quelques packages. L’important est d’être conscient du problème et de faire attention.
Expand All @@ -21,6 +23,16 @@ En quelques années cela est devenu un problème très important et massivement

Des startups ont là aussi vu le jour comme [Socket.dev](https://socket.dev/) dans l'objectif d'apporter des solutions professionnelles viables (notamment à l'écosystème JavaScript).

- EN [NPM security: preventing supply chain attacks](https://snyk.io/blog/npm-security-preventing-supply-chain-attacks/)

## SBOM

Pour diverses raisons, vous pourriez être amené à réaliser un inventaire de vos dépendances (artéfacts). Des standards et outils comme [CycloneDX](https://cyclonedx.org/) vous permettront de générer facilement un fichier JSON, aisément analysable par des tiers (comme Snyk).

De mon côté j'utilise le CLI [cdxgen](https://github.com/CycloneDX/cdxgen) pour générer un inventaire compliant à partir du package.json.

- [Créez une nomenclature des logiciels (SBOM) pour assurer la sécurité de votre chaîne d’approvisionnement open source](https://snyk.io/fr/blog/building-sbom-open-source-supply-chain-security/)

---

⬅️ [🔐 Sécurité: Garder sous contrôle votre Environnement](./3-garder-sous-controle-environnement.md) |
Expand Down
6 changes: 0 additions & 6 deletions fr/chapters/8-securite/7-liens-et-ressources.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,12 @@ Je vous recommande aussi [Node.js Security Handbook](https://www.sqreen.com/reso

Autres ressources (articles, talks, études):

- FR [Présentation du projet NodeSecure - Thomas Gentilhomme - ParisJS #101](https://www.youtube.com/watch?v=hmrKI1jZLGc)
- FR [Sécurité Node.js - les initiatives de 2022](https://www.youtube.com/watch?v=OUJ7fElfICc)
- EN [The State of Open Source Security 2023 - Snyk](https://snyk.io/reports/open-source-security/)
- EN [We’re under attack! 23+ Node.js security best practices](https://medium.com/@nodepractices/were-under-attack-23-node-js-security-best-practices-e33c146cb87d)
- EN [Top 11 Node.js security best practices - Sqreen](https://blog.sqreen.com/nodejs-security-best-practices/)
- EN [Snyking in – Directory traversal vulnerability exploit in the st package](https://snyk.io/blog/snyking-in-directory-traversal-vulnerability-exploit-in-the-st-package/)
- EN [Hacker-Powered Data: The Most Common Security Weaknesses and How to Avoid Them - David Horvath](https://www.youtube.com/watch?v=D5qeeeDADQQ&list=PLfMzBWSH11xZPfWcC0DqFqKo_reMP58mw&index=46)
- EN [Securing Node.js and JavaScript - VLADIMIR DE TURKHEIM](https://www.youtube.com/watch?v=LJqw6oCW_YQ)
- EN [NodeConf Remote 2020 - Matteo Collina - Why there are no incentives for security in Open Source](https://www.youtube.com/watch?v=l7EbDZRjwXA&list=PL0CdgOSSGlBalMPxFFycq7OIqQF8cJS28&index=12)
- EN [Trojan Source - Invisible Source Code Vulnerabilities](https://www.trojansource.codes/)
- EN [NPM security: preventing supply chain attacks](https://snyk.io/blog/npm-security-preventing-supply-chain-attacks/)
- EN [OpenSSF Security Scorecards](https://github.com/ossf/scorecard)
- EN [Char Wars: The Path Traversal Strikes Back - Liran Tal](https://www.youtube.com/watch?v=WGCmjvq6A6w&list=PL0CdgOSSGlBaULAdbribJiENfXxPW0aLQ&index=11)
- EN [Eval all the strings! Hardened JavaScript - Zbyszek Tenerowicz](https://www.youtube.com/watch?v=Qjeh7Qo2u28)
- EN [Stop Recommending JWTs (with symmetric keys)](https://trufflesecurity.com/blog/stop-recommending-jwts)
Expand Down

0 comments on commit 6b19a89

Please sign in to comment.