Support TLS 1.3 pour nginx sous Debian 9

Salut à tous, aujourd’hui on va prendre 15 minutes pour ajouter le support de TLS 1.3 pour nginx sous Debian 9 pour geekeries.org. En effet, la nouvelle version de TLS sortie en sortie en aout 2018 commence à faire son chemin et ajouter son support à geekeries.org est parfaitement inutile, pour l’instant, il est donc totalement indispensable de le faire.

TLS1.3 pourquoi ?

TLS1.3 est une nouvelle version du protocole de chiffrement des communications HTTPS. Il s’agit du dernier rejeton de la famille SSLv2, SSLv3, TLS 1.0, TLS 1.1, TLS 1.2 et TLS 1.3 (par ordre d’apparition). Comme toute nouvelle version d’un logiciel, TLS1.3 apporte des gains de performances, de sécurité et de fonctionnalité (plus de détails ici).

TLS1.3 et nginx

Alors la bonne nouvelle c’est que nginx supporte TLS1.3 depuis sa version 1.13. Il nous suffit donc, en théorie, de rajouter la directive ci-dessous dans le fichier de configuration /etc/nginx/nginx.conf, si vous avez une version ultérieure (et de mettre à jour sinon) :

ssl_protocols TLSv1.3 TLSv1.2;

Pourtant, quand je test cette configuration chez Qualys, on s’aperçoit que le support de TLS 1.3 n’est pas actif. Mais pourquoi donc me direz-vous ?

Simplement parce que nginx n’implémente … Lire la suite

Copier-coller bloqué, ou comment désactiver une fonction Javascript

Aujourd’hui, un p’tit hack rapide que je vous présente aujourd’hui pour contourner des soi-disant « sécurités » de copier-coller bloqué sur certains formulaires web, exemple.

C’est très désagréable pour l’utilisateur, et ça ne sert absolument à rien contre un attaquant qui veut bruteforcer votre formulaire puisqu’il attaquera directement via le flux HTTP (avec un proxy d’attaque type BURP ou ZAP, voir avec CURL en scripting).

S’il s’agit d’une fonctionnalité pour éviter les erreurs de saisie : j’aimerais qu’on m’explique à quel moment on contrôle une adresse e-mail comme ça ? et pas avec un mail de validation au hasard. De même, pour les champs de mots de passe, à part empêcher d’utiliser un gestionnaire de mot de passe, ça incitera juste l’utilisateur à utiliser un secret simple pour ne pas s’emmerder à saisir un truc compliqué deux fois.

Et comme il s’agit d’une protection qui bloque le copier/coller dans le navigateur, elle ne peut être exécutée que du côté de votre poste. C’est-à-dire en JavaScript, et on peut donc agir dessus très facilement. Et sans la moindre « attaque » du site internet puisque qu’on ne modifie que des éléments sur notre poste. Le serveur se contentant de recevoir … Lire la suite

Fail2ban pour Splunk avec une basic Auth Nginx

Salut tous, aujourd’hui on continue dans la série des articles sur fail2ban et Splunk en regardant comment mettre en place et protéger une BasicAuth HTTP devant Splunk avec Fail2ban. En effet, un « petit » défaut de la version free de Splunk est l’absence d’authentification… Wait What ??? Oui oui, vous avez bien lu, d’ailleurs je cite la doc : « There is no login. The command line or browser can access and control all aspects of Splunk Free with no user and password prompt.« . C’est bien traitre de la part de Splunk car lorsque vous installez la version d’essai, vous avez bien la mire de login pendant 60j et c’est seulement lorsque vous repasser en free que celle-ci disparait…

Shame on you Splunk ! que vous ne fournissiez pas l’authentification, pourquoi pas, mais la faire sauter à la fin de la période de trial : c’est franchement criminel de votre part.

Bref, ceci étant dit, le plus simple pour remettre une authentification en place c’est de configurer votre serveur web pour ajouter une auth basic, et on verra comment la protéger avec fail2ban.

Prérequis

Du coup cet article fait appel à pas mal de truc … Lire la suite

Fail2ban pour wordpress pour se protéger des bruteforce

Salut à tous, aujourd’hui on va voir comment mettre en place Fail2ban pour WordPress.

En fait, je gratte mes logs dans Splunk de Nginx depuis quelque temps et je me suis rendu compte que mon site se faisait bruteforcer dans les règles depuis un bon mois par quelques IP… Du coup, d’une part, j’ai désactivé ou blindé quelques services du site dont je ne me servais pas (xmlrpc, API REST), ce qui a bien limité les tentatives. Mais ça ne protège pas des attaques classique contre la page « wp-login.php« . Du coup, j’ai regardé comment on pouvait sécuriser ça (dans la doc de WordPress). Et j’ai retenu la solution avec fail2ban dont je vous avait déjà parlé précédemment, d’ailleurs. Je vous montre donc ci-dessous comment on peut activer Fail2ban pour WordPress.… Lire la suite