Bureau-Systeme-d-Information-BSI / civilsdeladefense

Gestion des recrutements
https://civilsdeladefense.fabnum.fr
GNU Affero General Public License v3.0
12 stars 9 forks source link

[Test de sécurité] Contenu actif dans le PDF #1406

Closed vhautot closed 1 year ago

vhautot commented 2 years ago

Bonjour,

J'ai fait quelques tests de sécurité sur l'environnement de développement. J'ai quelques remontées à vous signaler.

Lors du fonctionnement normal de l'application, les candidats sont amenés à envoyer leur CV sur la plateforme en format PDF. Ce format à la réputation d'être inactif, mais ce n'est pas le cas. Il est possible d'y inclure du JavaScript (https://helpx.adobe.com/fr/acrobat/using/javascripts-pdfs-security-risk.html) et de créer des formulaires de manière très simple. Cela fait porter un risque sur les utilisateurs de la plateforme en cas d'ouverture. Le CV peut être téléchargé ou visionner en embedded dans le navigateur lors de la consultation des offres.

Nous pouvons voir ci-dessous le visionnage d'un CV sur l'application.

image

Un utilisateur pourrait lancer une attaque de type phishing pour exploiter la naïveté d'une victime. Dans le cas ci-dessus, j'ai créé un formulaire dans le PDF uploadé en tant que CV qui reprend la chartre graphique du formulaire d'authentification et qui soumet les identifiants à une adresse sous mon contrôle.

En cas de soumission du formulaire, les informations sont envoyées en background sans aucune alerte du navigateur indiquant un envoi d'information en CrossDomain.

Je suggère 3 pistes pour corriger le problème :

1) Supprimer la prévisualisation des CV et lettres de motivation (cela ne règle pas le problème en cas d'ouverture dans une application PDF locale, le formulaire et le code JavaScript resteront actifs) 2) Durcir le comportement de la sandbox des navigateurs (chrome et ff) (je n’ai pas encore cherché trop comment faire) 3) Neutraliser le contenu actif des PDF uploadés via une fonction qui ferait une copie type screenshoot des PDF reçus et générerait un nouveau PDF avec uniquement que des images. Ghostscript semble être un bon point de départ pour effectuer ces opérations.

Dans le cas des solutions 1 et 2, il est toujours possible d'envoyer des PDF avec du contenu actif, mais l'exploitation sur l'application n'est plus possible.

SophieLarroumet commented 1 year ago

Bonjour Vincent,

Merci pour ce retour. J'ai une petite question : Avec l'option 3 - Est-ce qu'on peut quand même télécharger le fichier ?

Je te remercie

vhautot commented 1 year ago

Salut Sophie,

Oui normalement cela ne supprimerait pas la fonctionnalité de téléchargement des fichiers. Par contre, le copié/collé dans le PDF ne serait plus fonctionel.

SophieLarroumet commented 1 year ago

Merci Vincent pour ton retour ! @sebastiencarceles : J'ai vu avec les intrapreneuses et l'option 3 n'est pas contraignante pour elles. A vérifier si c'est bon de ton côté.

sebastiencarceles commented 1 year ago

OK c'est bien noté, je pars sur l'option 3. Je vais faire des recherches pour voir comment on pourrait faire ça.