Donc, je viens d'apprendre à Sslstrip maintenant - je me sens comme si je suis si tard au jeu. Ce que je veux savoir, c'est comme suit: Si votre site ne sert que de contenu sur HTTPS et échoue durement sur les demandes HTTP, sans redirection, êtes-vous toujours vulnérable? Un attaquant peut-il intercepter votre demande HTTPS et effectuer la demande "en votre nom", donc parler et servir votre navigateur une version HTTP, si vous tapez dans la barre d'adresse de votre navigateur? (En utilisant soit SSLStrip ou une autre attaque?)
TL: dr;
Ci-dessous User10008 donne la réponse. SSLStrip ne dépend pas du comportement du serveur, cela dépend du client. Si vous pouvez obtenir le client de faire la demande sur http, au lieu de HTTPS, vous pouvez effectuer l'attaque, même si le serveur prend en charge uniquement HTTPS. HSTS empêche le navigateur d'effectuer la requête HTTP unie en premier lieu (sur les demandes suivantes).
Oui, sans autre mesure, l'attaquant peut toujours effectuer SSLStrip. Pour que SSLStrip fonctionne, l'attaquant doit être un homme au milieu, sans rapport avec votre comportement concernant HTTP. Sur une requête HTTP entrante, l'attaquant ouvre une connexion HTTPS au serveur réel et "STANDER" Le SSL désactivé le HTTPS. Il n'y aurait donc aucune communication HTTP entre l'attaquant et le serveur. Même si le comportement HTTP du serveur semble sans importance, il est préférable que d'autres mesures d'atténuation désactivent HTTP ou de créer une redirection permanente.
Lorsque vous ne servez que https et que vous êtes sûr de vouloir https à l'avenir, vous pouvez atténuer partiellement En utilisant Sécurité de transport stricte HTTP (HSTS) Pour dire aux utilisateurs que vous Serrer uniquement HTTPS. Cela atténuera SSLStrip pour tous les utilisateurs à partir du moment où ils se connectent au moins une fois sans être attaqués.
Vous pouvez obtenir une atténuation complète pour Firefox et Chrome en demandant à Ajoutez-vous à une HSTS Whitelist. Firefox et Chrome Supposez HTTPS Utilisez-le pour des sites Web sur ce whitelist, mais une exigence d'être sur cette liste envoie l'en-tête HSTS. Plus d'informations sur l'application ici .
Si votre site ne sert que de contenu via HTTPS et un disque dur sur les demandes HTTP, sans redirection, êtes-vous toujours vulnérable?
Si l'utilisateur entre accidentellement http://example.com
Dans leur barre d'adresse au lieu de https://example.com
, SSLStrip pourrait toujours intercepter la connexion et asperger l'utilisateur.
Cela pourrait également être vrai des liens malveillants d'utilisateur - s'ils ne remarquent pas le cadenas manquant dans la barre d'adresse, ils pourraient être vulnérables.
Sécurité de transport stricte HTTP peut protéger contre cela si vous envoyez l'en-tête, mais uniquement si l'utilisateur a déjà visité votre site via HTTPS via cette instance particulière si leur navigateur ou si vous avez demandé que les vendeurs de navigateur Incluez votre site dans la liste préchargée de la TVHS. Veuillez noter que c.-à-d. Ne pas encore prendre en charge HSTS .
Une autre chose à noter que, à moins que vous soyez marquer des cookies comme sécurisé , un attaquant peut être capable de mitmer toute autre demande HTTP de leur victime et d'injecter une demande à la version non sécurisée de votre site (par exemple, ajout de <img src="http://example.com/mitm.jpg" />
qui leur permettra ensuite de mitmer des cookies pour votre site. Veuillez noter que HSTS protégera également contre cela.
De plus, S'il y a des vulnérabilités XSS sur votre site à partir de valeurs de cookie rendu, il est possible qu'un attaquant d'utiliser une attaque MITM pour injecter un script malicieux ici Sauf si HSTS n'est actif. Ceci est possible même si vous définissez des cookies sécurisés - le serveur ne peut pas distinguer quels cookies sont sécurisés lorsqu'il leur lit (il ne reçoit que les valeurs) de sorte qu'il ne sait pas si l'attaquant a manipulé quoi que ce soit lors d'une attaque de MITTP sur une attaque HTTP à votre serveur.
J'ai couvert un peu de terrain avec ce qui précède, en expansinant ce que vous avez demandé, mais ce sont tous types d'attaques pouvant être utilisés, même si vous n'écoutez pas sur HTTP uni sur le côté serveur.
Un attaquant peut-il intercepter votre demande HTTPS et effectuer la demande "en votre nom", donc parler et servir votre navigateur une version HTTP
Si vous accédez directement à un site HTTPS (à partir d'un signet par exemple), une attaque SSLStrip Mitm serait très improbable. La demande échouerait soit en raison du navigateur à la recherche d'une poignée de main TLS, ou vous invite à une erreur de certificat si l'attaquant utilise un faux certificateur.
Maintenant, si vous exécutez cela sur le côté serveur, vous ne pouvez pas toujours compter sur le serveur pour rediriger HTTP sur HTTPS, car ce redirection pourrait être intercepté.
En outre, si vous accédez à la page via un hyperlien à partir d'une source non cryptée, vous serez également vulnérable à SSLStrip. Je sais que votre question n'a pas posé de questions sur ces deux dernières situations spécifiquement, mais je voulais juste les mentionner d'être approfondie. Il existe des moyens d'atténuer ces dernières attaques en utilisant HSTS.
Avec [~ # ~] HSTS [~ # ~ ~] , le serveur indique à un client Web d'utiliser uniquement HTTPS. Tant que la première demande au site est effectuée sans modification, toutes les visites ultérieures sur le site seront forcées d'utiliser SSL/TLS. Cela fonctionnerait pour empêcher SSLStrip de travailler sur un lien hypertexte à partir d'un site Web non sécurisé, même si https://
a été changé en http://
Le navigateur sait utiliser https://
seul.
Dans le cadre de l'attaque effectue une MITM pour tous les victimes TCP/UDP Trafic, tant que l'utilisateur n'utilise pas d'adresse HTTPS explicitement, il pourrait être trompé.
Par exemple: Si une victime tente d'aller à "Mail.google.com" et de faire confiance à la redirection automatique Google de l'HTTP à HTTPS (essayez-le pour vous-même) et il ne vérifie pas la barre d'adresse obtient l'icône/vert d'adresse Bar/Peu importe, un attaquant qui a déjà fait le MITM obtiendrait tout le trafic de ce site en texte clair.
Néanmoins, il existe une nouvelle en-tête HTTP qui peut être incluse dans toutes les réponses du serveur conçues pour minimiser les chances de souffrir d'une telle attaque si le client a connecté avec succès le HTTPS au moins une fois avant (et utilise une bande moderne. Navigateur qui le supporte):
Strict-Transport-Security
http://fr.wikipedia.org/wiki/http_truct_transport_security
Pour qu'un serveur Apache inclure cet en-tête dans toutes les réponses:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Remarque: Si vous avez versions HTTP et HTTPS de votre Web, dès que le client obtient cet en-tête de votre serveur, il ne sera pas capable Pour vous connecter à la version HTTP (jusqu'à ce qu'il efface les cookies ou utilise un navigateur différent ou (peut-être) utilise une navigation privée)