Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Sécurité] Ajout en-têtes de sécurité manquantes dont la CSP #2098

Merged
merged 4 commits into from
Jan 12, 2024

Conversation

sfinx13
Copy link
Collaborator

@sfinx13 sfinx13 commented Jan 9, 2024

Ticket

#1952

Description

En-têtes de sécurité manquantes https://dashlord.incubateur.net/url/histologe-beta-gouv-fr/securite/
Présentation des différentes directives utilisés de CSP (Content Security Policy)

Directive Signification
default-src Sources par défaut pour toutes les catégories.
script-src Sources autorisées pour les scripts.
style-src Sources autorisées pour les styles.
img-src Sources autorisées pour les images.
font-src Sources autorisées pour les polices de caractères.
connect-src Sources autorisées pour les connexions réseau.

Changements apportés

  • Activation de la protection XSS avec la directive X-XSS-Protection.
  • Activation de la protection qui empêche le navigateur de deviner le type de contenu
  • Ajout de la directive Content-Security-Policy (CSP) pour contrôler les sources autorisées par la plateforme

Pré-requis

  • Exécuter docker compose build histologe_nginx

  • Executer make down && make run

  • Executer make tools-run et activer matomo MATOMO_ENABLE=1

  • Copier cette ligne dans .env.local (en local matomo est remplacé par l'url du container matomo localhost:8083

SECURITY_CSP_HEADER_VALUE="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://localhost:8083 https://unpkg.com; style-src 'self' 'unsafe-inline' https://unpkg.com; img-src 'self' data: blob: https://voxusagers.numerique.gouv.fr https://*.tile.openstreetmap.org https://unpkg.com https://jedonnemonavis.numerique.gouv.fr; connect-src 'self' https://api-adresse.data.gouv.fr http://localhost:8083 https://koumoul.com; font-src 'self';"

Tests

  • Vérifier que la politique de sécurité n’empêche pas le bon fonctionnement du site (avec l'inspecteur ouvert)

    • Test de bon fonctionnement sur l'auto-complétion des adresses
    • Déposer un signalement et vérifier que le bouton [Je donne mon avis] s'affiche. (à faire sur le nouveau formulaire)
    • Vérifier que le tracking matomo continue de fonctionner
    • Vérifier que la cartographie s'affiche
    • Sur la fiche signalement vérifier cliquer le bouton [Consulter DPE] et vérifier que l'appel http est effectué.
  • Vérifier à l'aide d'une requête CURL la présence des 3 en-têtes manquantes

curl -I http://localhost:8080
Content-Security-Policy: default-src ....
X-Content-Type-Options:: nosniff
X-XSS-Protection: 1; mode=block
  • Vérifier que la politique CSP ne bloque pas des ressources légitimes

Exemple d'erreur :
image

Documentation

@sfinx13 sfinx13 changed the title adding missing security headers includings csp #1952 [Sécurité] Ajout en-tête de sécurité dont la CSP Jan 9, 2024
@sfinx13 sfinx13 changed the title [Sécurité] Ajout en-tête de sécurité dont la CSP [Sécurité] Ajout en-tête de sécurité manquante dont la CSP Jan 9, 2024
@sfinx13 sfinx13 changed the title [Sécurité] Ajout en-tête de sécurité manquante dont la CSP [Sécurité] Ajout en-têtes de sécurité manquantes dont la CSP Jan 9, 2024

# Traitement des images sans le paramètre uuid dans l'URL pour un usager
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai remarqué que les photos coté usager ne s'affichait plus (404 retourné par nginx)

Copy link

Quality Gate Passed Quality Gate passed

Kudos, no new issues were introduced!

0 New issues
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

@hmeneuvrier
Copy link
Collaborator

hmeneuvrier commented Jan 10, 2024

TESTS OK

Test de bon fonctionnement sur l'auto-complétion des adresses : OK
Déposer un signalement et vérifier que le bouton [Je donne mon avis] s'affiche. (à faire sur le nouveau formulaire) : OK
Vérifier que le tracking matomo continue de fonctionner : OK
Vérifier que la cartographie s'affiche : OK
Sur la fiche signalement vérifier cliquer le bouton [Consulter DPE] et vérifier que l'appel http est effectué. : OK
Vérifier à l'aide d'une requête CURL la présence des 3 en-têtes manquantes : OK

TEST KO ?

Vérifier que la politique CSP ne bloque pas des ressources légitimes : KO ?
--> depuis la page front usager, j'ai un Access Denied si j'essaie d'ouvrir une photo ou un document ajouté dans un suivi public. Est-ce lié à cette modification ?

@sfinx13
Copy link
Collaborator Author

sfinx13 commented Jan 10, 2024

TEST KO ?

Vérifier que la politique CSP ne bloque pas des ressources légitimes : KO ?
--> depuis la page front usager, j'ai un Access Denied si j'essaie d'ouvrir une photo ou un document ajouté dans un suivi public. Est-ce lié à cette modification ?

@hmeneuvrier
j'avais remarqué qu'elle ne s'ouvrait plus du coup j'ai rajouté cette règle, je pensais l'avoir vérifier à l'époque
https://github.com/MTES-MCT/histologe/pull/2098/files#r1447027657
je refais ce test de mon coté

@hmeneuvrier
Copy link
Collaborator

J'ai refait toute la procédure de la PR : toujours le pb
je refais juste make down && make run : OK

Copy link
Collaborator

@hmeneuvrier hmeneuvrier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests et relecture OK

Copy link
Collaborator

@emilschn emilschn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relecture et tests ok

@emilschn emilschn merged commit fc02a9f into develop Jan 12, 2024
3 checks passed
@sfinx13 sfinx13 deleted the feature/1952-security-csp branch January 18, 2024 11:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants