From 4d76474d9940f0f2cfeab9589db546b3532f0cdb Mon Sep 17 00:00:00 2001 From: William Petit Date: Thu, 21 Dec 2017 16:55:59 +0100 Subject: [PATCH] =?UTF-8?q?Logomotion:=20Volet=20s=C3=A9curit=C3=A9=20des?= =?UTF-8?q?=20applications=20Web,=20m=C3=A9trologie=20/=20prometheus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- developpement/securite_web/img/histogram.png | Bin 0 -> 13632 bytes developpement/securite_web/img/jauge.jpg | Bin 0 -> 23438 bytes .../securite_web/presentation/slides.md | 110 ++++++++++++++++++ .../ressources/demo-app/.gitignore | 1 + .../securite_web/ressources/demo-app/app.js | 28 +++++ .../ressources/demo-app/package.json | 15 +++ .../ressources/prometheus/docker-compose.yml | 18 +++ .../prometheus/etc/alertmanager/config.yml | 14 +++ .../prometheus/etc/prometheus/prometheus.yml | 20 ++++ .../etc/prometheus/rules.d/hello-world.yml | 6 + 10 files changed, 212 insertions(+) create mode 100644 developpement/securite_web/img/histogram.png create mode 100644 developpement/securite_web/img/jauge.jpg create mode 100644 developpement/securite_web/presentation/slides.md create mode 100644 developpement/securite_web/ressources/demo-app/.gitignore create mode 100644 developpement/securite_web/ressources/demo-app/app.js create mode 100644 developpement/securite_web/ressources/demo-app/package.json create mode 100644 developpement/securite_web/ressources/prometheus/docker-compose.yml create mode 100644 developpement/securite_web/ressources/prometheus/etc/alertmanager/config.yml create mode 100644 developpement/securite_web/ressources/prometheus/etc/prometheus/prometheus.yml create mode 100644 developpement/securite_web/ressources/prometheus/etc/prometheus/rules.d/hello-world.yml diff --git a/developpement/securite_web/img/histogram.png b/developpement/securite_web/img/histogram.png new file mode 100644 index 0000000000000000000000000000000000000000..8534862722c71fe923c825e0253f6ead7fb6f7e7 GIT binary patch literal 13632 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 literal 0 HcmV?d00001 diff --git a/developpement/securite_web/img/jauge.jpg b/developpement/securite_web/img/jauge.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2a1432970acd92f5b454b3c8ef2a60ac20070db7 GIT binary patch literal 23438 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 z zh2R<^exUiL$$S>|Zg=PKCpU#%i9(eS{gI(YxaaogoJj1Wc$ChwOA4!yB}i?egDe8z zrL}&AXfLBhlLp7e`?PFYkH?lJY}@ZEx>(MZDx0L2so7CzcSLr1BlWesaU2e}|FaF4 uBx`Q+uxN}doVXMb5$YD|hQ1u#^7j&zf0`J5``@>Ee(Qn%zaD^oef2v7fl*2T literal 0 HcmV?d00001 diff --git a/developpement/securite_web/presentation/slides.md b/developpement/securite_web/presentation/slides.md new file mode 100644 index 0000000..ff55597 --- /dev/null +++ b/developpement/securite_web/presentation/slides.md @@ -0,0 +1,110 @@ + + +# Sécurité des applications Web +## William Petit - S.C.O.P. Cadoles + +--- + +## Métrologie appliquée à la sécurité + +### Méthodologie générale +### Les facteurs d'une bonne métrique +### Exemple d'outil: Prometheus + +--- + + +## Méthodologie générale + +1. Définir le modèle de menace +2. Identifier et isoler les scénarios d'attaque pour les différentes menaces +3. Trouver les indicateurs "clés" pour ces scénarios i.e. identifier les métriques pertinentes pour la détection des comportements suspects +4. Mettre en place les sondes pour les métriques +5. Définir les seuils d'alerte et les réponses à apporter + +--- + +## Les facteurs d'une bonne métrique + +- **Concision** _Le domaine de mesure est il correctement défini ? La métrique n'essaye t-elle pas de mesurer trop de choses ?_ +- **Fidélité** _La mesure est elle reproductible ? Mesure t-elle toujours la même chose ?_ +- **Intégrité** _Le processus de mesure est il vulnérable à la falsification ?_ +- **Utilité** _La métrique apporte elle une information utile au processus décisionnel ?_ + +--- + +## Exemple d'outil: Prometheus + +--- + +## Configuration générale + +--- + +## Instrumentation de l'application + +### Modèle de données +### Les différents types de métriques +### Visualiser les métriques +### Effectuer des requêtes sur les métriques + +--- + +## Modèle de données + +Prometheus stocke des échantillons (mesures) sous la forme de **séries temporelles**. Il créait une nouvelle série pour chaque association **(nom_métrique, label1=value, label2=value, ...)**. + +Chaque couple **(label, valeur)** est appelée **dimension** de la métrique. + + +**Représentation** +``` + http_total_requests{ method="POST", path="/test" } + | name | labels | +``` + + + +--- + +## Les différents types de métriques (1) + +### Compteur + +Un compteur est une métrique dont la valeur ne peut faire qu'augmenter au cours du temps. + +> **Exemple** Nombre total de connexions d'un compte sur un site + +--- + +## Les différents types de métriques (2) + +### Jauge + +Une jauge est une métrique dont la valeur peut augmenter ou diminuer au cours du temps. + +![center 50%](../img/jauge.jpg) + +> **Exemple** La température d'une pièce + +--- + +## Les différents types de métriques (3) + +### Histogramme + +Un histogramme est une métrique répartissant les données dans des "paquets" (ou "buckets" en anglais) configurables et comptant le nombre total et par "paquet" d'échantillons ainsi que leur somme. + +![center 70%](../img/histogram.png) + +> **Exemple** Le temps de réponse des requêtes HTTP + +--- + +## Configuration de l'`alertmanager` + +--- + +## Écriture de règles d'alertes + +--- diff --git a/developpement/securite_web/ressources/demo-app/.gitignore b/developpement/securite_web/ressources/demo-app/.gitignore new file mode 100644 index 0000000..07e6e47 --- /dev/null +++ b/developpement/securite_web/ressources/demo-app/.gitignore @@ -0,0 +1 @@ +/node_modules diff --git a/developpement/securite_web/ressources/demo-app/app.js b/developpement/securite_web/ressources/demo-app/app.js new file mode 100644 index 0000000..9138a70 --- /dev/null +++ b/developpement/securite_web/ressources/demo-app/app.js @@ -0,0 +1,28 @@ +// Voir https://github.com/siimon/prom-client +const client = require('prom-client'); +// Voir http://expressjs.com/ +const express = require('express') + +// Création de notre application Web +const app = express() + +// On collecte les métriques proposées par défaut par le module 'prom-client' +const collectDefaultMetrics = client.collectDefaultMetrics; +collectDefaultMetrics({ timeout: 5000 }); // Récolte toutes les 5s + +// Définition des métriques +const helloWorldCounter = new client.Counter({ + name: 'demoapp_hello_world', + help: 'Total de requêtes sur la page "Hello World"' +}); + +app.get('/', (req, res) => { + helloWorldCounter.inc() + res.send('Hello World!') +}) + +// On expose les métriques de notre récolteur sur /metrics +app.get('/metrics', (req, res) => res.send(client.register.metrics())) + +// On écoute sur le port 0.0.0.0:3000 +app.listen(3000, () => console.log('listening on port 3000')) diff --git a/developpement/securite_web/ressources/demo-app/package.json b/developpement/securite_web/ressources/demo-app/package.json new file mode 100644 index 0000000..e332e00 --- /dev/null +++ b/developpement/securite_web/ressources/demo-app/package.json @@ -0,0 +1,15 @@ +{ + "name": "demo-app", + "version": "0.0.0", + "description": "", + "main": "app.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "William Petit ", + "license": "AGPL-3.0", + "dependencies": { + "express": "^4.16.2", + "prom-client": "^10.2.2" + } +} diff --git a/developpement/securite_web/ressources/prometheus/docker-compose.yml b/developpement/securite_web/ressources/prometheus/docker-compose.yml new file mode 100644 index 0000000..a04c9af --- /dev/null +++ b/developpement/securite_web/ressources/prometheus/docker-compose.yml @@ -0,0 +1,18 @@ +version: '2' +services: + prometheus: + image: prom/prometheus + volumes: + - ./etc/prometheus:/etc/prometheus + ports: + - 9090:9090 + alertmanager: + image: prom/alertmanager + volumes: + - ./etc/alertmanager:/etc/alertmanager + ports: + - 9093:9093 + faketools: + image: bornholm/faketools + ports: + - 8080:8080 diff --git a/developpement/securite_web/ressources/prometheus/etc/alertmanager/config.yml b/developpement/securite_web/ressources/prometheus/etc/alertmanager/config.yml new file mode 100644 index 0000000..eec8517 --- /dev/null +++ b/developpement/securite_web/ressources/prometheus/etc/alertmanager/config.yml @@ -0,0 +1,14 @@ +global: + smtp_smarthost: 'faketools:2525' + smtp_from: 'alertmanager@my.org' + smtp_auth_username: 'alertmanager' + smtp_auth_password: 'password' + smtp_require_tls: false + +route: + receiver: dev-team + +receivers: + - name: 'dev-team' + email_configs: + - to: 'dev-team@my.org' diff --git a/developpement/securite_web/ressources/prometheus/etc/prometheus/prometheus.yml b/developpement/securite_web/ressources/prometheus/etc/prometheus/prometheus.yml new file mode 100644 index 0000000..51f8d28 --- /dev/null +++ b/developpement/securite_web/ressources/prometheus/etc/prometheus/prometheus.yml @@ -0,0 +1,20 @@ +# Configuration de l'application sur laquelle +# Prometheus doit récolter des informations + +scrape_configs: + - job_name: demoapp + scrape_interval: 10s + metrics_path: /metrics + static_configs: + - targets: [ "172.17.0.1:3000" ] + +# Configuration de l'alertmanager + +alerting: + alertmanagers: + - static_configs: + - targets: [ "alertmanager:9093" ] + +# Définition des règles d'alertes +rule_files: + - "/etc/prometheus/rules.d/*.yml" diff --git a/developpement/securite_web/ressources/prometheus/etc/prometheus/rules.d/hello-world.yml b/developpement/securite_web/ressources/prometheus/etc/prometheus/rules.d/hello-world.yml new file mode 100644 index 0000000..fe12f87 --- /dev/null +++ b/developpement/securite_web/ressources/prometheus/etc/prometheus/rules.d/hello-world.yml @@ -0,0 +1,6 @@ +groups: + - name: hello-world + rules: + - alert: HelloWorldAlert + expr: demoapp_hello_world > 5 + for: 10s