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

[suggestion avec solution] Cacher le numéro de version #467

Open
theLOICofFRANCE opened this issue Jun 27, 2017 · 2 comments
Open

[suggestion avec solution] Cacher le numéro de version #467

theLOICofFRANCE opened this issue Jun 27, 2017 · 2 comments
Assignees

Comments

@theLOICofFRANCE
Copy link
Contributor

Bonjour,

Je vous suggère de cacher le numéro de version de Leed dans la feuille de style (au niveau de .logo .versionBloc) et dans le fichier about.php de la manière suivante :
`--- about.php 2017-02-24 07:25:54.000000000 +0100
+++ about-new.php 2017-06-27 21:03:46.000000000 +0200
@@ -9,6 +9,8 @@
require_once('header.php');
require_once('constant.php');

+if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION'));
+
$tpl->assign('VERSION_NUMBER',VERSION_NUMBER);
$tpl->assign('VERSION_NAME',VERSION_NAME);
$view = 'about';`

Pour bien faire, seule une personne authentifiée doit pouvoir être en mesure de voir le numéro de version. Cela permet de ralentir l'attaquant qui est obligé de le deviner sinon il n'a plus qu'a se servir en vérifiant le numéro de version et en le comparant aux mises à jours de sécurité du changelog (ou via git diff par exemple)...

De plus les numéros de versions peuvent être indexés dans les moteurs de recherche ce qui permet à un attaquant de trouver des cibles facilement...

C'est pour cela que certains développeurs n'indiquent pas clairement dans le changelog quand ils corrigent une vulnérabilité (genre Linus Torvalds) mais au final cela pénalise l'utilisateur qui ne voit pas vraiment l'utilité de mettre à jour rapidement si il n'y a pas de nouvelle fonctionnalité ou correction de bug qui le concerne directement.

Bref, cacher le numéro de version permet donc de réduire le risque d'attaque de script kiddie qui sont à la recherche de logiciel vulnérable facilement identifiable.

Cela n’enlève en rien que la meilleur solution reste d'effectuer les mises à jours régulièrement et rapidement mais le monde continue de tourner pendant que les sysadmins dorment...

Soyez gentil laissez les dormir un peu ^^ Gare à celui qui dit "plus" :)

Merci

@Sbgodin
Copy link
Member

Sbgodin commented Jun 28, 2017

Hello,

Camoufler le numéro de version avec un style n'empêchera pas un attaquant motivé de l'extraire. Ce numéro serait toujours téléchargé et exploitable. À mon humble avis, la vraie question est s'il faut laisser sortir le numéro de version.

Évidemment, comme tu l'as souligné, l'utilisateur connecté doit y avoir accès comme actuellement. Il reste le cas des connexions anonymes. J'abonde dans ton sens concernant la sécurité. Cependant, il faut considérer aussi les bénéfices : côté développeur, il est plus facile de connaître le numéro de version rien qu'en accédant à la page. De plus, je recherche sur le net des déploiements de Leed afin de connaître la fraîcheur du parc installé... Même sans publier le numéro de version, il reste encore possible de le deviner à peu près à travers les changements des pages.

Mais au-delà du numéro de version visible sur la page de Leed, il faut aussi regarder du côté de la version du navigateur (user agent) que Leed envoie lorsqu'il charge les flux. Là, c'est indispensable à mon avis si un jour un problème apparaît côté serveur de flux.

@Sbgodin Sbgodin self-assigned this Jun 28, 2017
@theLOICofFRANCE
Copy link
Contributor Author

theLOICofFRANCE commented Jun 28, 2017

@Sbgodin
Je me suis mal fait comprendre pardon, ce que je n'aime pas c'est que le numéro soit indiqué comme cela :
/Leed-master/templates/marigolds/header.html: <h1 class="logo" id="title"><a href="./index.php">L<i>eed</i></a><div class="versionBloc">{#LEED_VERSION_NUMBER#}&nbsp;{#LEED_VERSION_NAME#}</div></h1>

Le numéro de version est déjà présent dans le fichier about.php alors pas besoin de l'écrire partout.
Actuellement les utilisateurs non connectés y ont accès quand même (via index.php et via about.php en qui est en libre accès).

Une fois connecté il suffira de cliquer sur "À propos" en bas de la page pour connaître le numéro de version. L'utilisateur non connecté aura lui le message "Vous devez être connecté pour effectuer cette action". De plus rien n’empêche le développeur d'ouvrir le fichier en local avec vi ;)

Même sans publier le numéro de version, il reste encore possible de le deviner à peu près à travers les changements des pages.
Sauf que cela fait perdre du temps à l'attaquant et qu'il faut vraiment qu'il connaisse bien le projet pour deviner la version de celui-ci en ne voyant que la page d'accueil.

Effectivement, je conseil de randomiser l'user agent sur curl.
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0')

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants