Il y a eu beaucoup de buzz autour ce récent article CNN à propos de Shodan, un moteur de recherche qui peut trouver et autoriser l'accès à des appareils connectés à Internet non sécurisés.
Shodan fonctionne 24h/24 et 7j/7 et collecte des informations sur environ 500 millions d'appareils et de services connectés chaque mois.
C'est étonnant ce que l'on peut trouver avec une simple recherche sur Shodan. D'innombrables feux de circulation, caméras de sécurité, appareils domotiques et systèmes de chauffage sont connectés à Internet et faciles à repérer.
Les chercheurs de Shodan ont trouvé des systèmes de contrôle pour un parc aquatique, une station-service, une cave à vin d'hôtel et un crématorium. Des chercheurs en cybersécurité ont même localisé des systèmes de commande et de contrôle pour des centrales nucléaires et un cyclotron accélérateur de particules en utilisant Shodan.
Ce qui est vraiment remarquable à propos de la capacité de Shodan à trouver tout cela - et ce qui rend Shodan si effrayant - est que très peu de ces appareils ont une sorte de sécurité intégrée. [...]
Une recherche rapide de "mot de passe par défaut" révèle d'innombrables imprimantes, serveurs et dispositifs de contrôle du système qui utilisent "admin" comme nom d'utilisateur et "1234" comme mot de passe. De nombreux autres systèmes connectés ne nécessitent aucune information d'identification - vous n'avez besoin que d'un navigateur Web pour vous y connecter.
Il me semble que certains de ces appareils ont été sécurisés, mais ne sont pas réellement sécurisés car les mots de passe, etc., sont évidents et/ou inchangés des paramètres par défaut.
Comment puis-je (en tant que personne "normale" ou professionnelle) prendre des mesures pour empêcher mes appareils d'être accessibles par des robots comme Shodan? Existe-t-il d'autres moyens d'atténuer mon risque de découverte par quelque chose comme Shodan?
Shodan fait référence à des machines accessibles au public qui fonctionnent comme ceci:
Ne le fais pas.
Edit: l'analogie est pertinente! Shodan se connecte aux machines et demande leur "bannière", un texte accessible au public qui peut simplement dire: "pour entrer, utilisez ce mot de passe par défaut: 1234". Vous voudrez peut-être éviter que les gens frappent à la porte par le simple expédient d'installer un calmar géant comme gardien devant la porte (métaphoriquement, un pare-feu), mais, en réalité, il serait beaucoup plus sûr de configurer un mot de passe non par défaut.
Le projet Shodan est assez cool, mais à la base ce n'est pas beaucoup plus qu'une grande base de données nmap honkin. Le projet dispose de scanners qui scannent régulièrement Internet et publient les résultats dans la base de données. Cette base de données est ce que vous recherchez. Puisqu'ils utilisent des routines de détection standard, les protections que vous mettriez pour un scan normal devraient vous protéger ici.
Pour la plupart des utilisateurs à domicile, le seul appareil connecté à Internet est leur routeur.
Alors, comment sécurisez-vous le routeur de choses comme Shodan?
admin/admin
s'identifier. Que peuvent-ils faire s'ils ont cet accès? Sur l'ordinateur, vérifiez votre pare-feu. Rendez-le aussi restrictif que possible sans casser les choses.
Notez que pour arrêter Shodan spécifiquement pour un système domestique, vous n'avez besoin que du point 1 ou 2. Cependant, j'ai répertorié le reste car Shodan pourrait facilement s'améliorer pour analyser davantage les connexions du routeur.
Donc, la réponse courte est que si vous fournissez un service accessible au public (par exemple sur Internet en général), votre service doit être accessible et donc les moteurs de recherche comme shodan peuvent le trouver, et tout shodan le fait pour indexer les informations accessibles au public.
Ce que vous pouvez faire est de minimiser les informations trouvées par Shodan, en supprimant les bannières des services accessibles et en garantissant également la suppression des informations d'identification par défaut (bonnes pratiques de sécurité standard).
De plus, si le service que vous exécutez n'a pas besoin d'être accessible par tout Internet (c'est-à-dire que seules certaines personnes doivent pouvoir y accéder), l'utilisation de pare-feu pour restreindre les adresses IP source pouvant accéder au service est également une protection efficace contre découverte par des choses comme Shodan.
Une autre protection théorique (que je dirais est une mauvaise approche mais pour des raisons d'exhaustivité, je mentionnerai) est que si vous pouviez trouver les plages d'adresses IP que Shodan utilise, vous pouvez essayer de les bloquer spécifiquement.
Les risques qui font que shodan semble "effrayant" sont qu'il existe un grand nombre de systèmes qui ont été placés sur Internet avec des paramètres par défaut et très peu pensés pour la sécurité. Malheureusement, les personnes qui placent des systèmes sur Internet dans cet état ne sont probablement pas suffisamment conscientes de la sécurité pour prendre des mesures telles que le blocage spécifique de shodan ...
Une autre chose à mentionner est que même bloquer des choses comme shodan ne vous aiderait pas contre des choses comme le projet Internet Census qui s'est produit l'année dernière. Cela a utilisé un grand nombre de systèmes compromis pour analyser tout Internet. La sortie du projet est disponible sous forme de torrent et je serais prêt à parier que de nombreux chercheurs et attaquants recherchent actuellement les données à attaquer (qu'ils trouveront probablement)
un moteur de recherche qui peut trouver et autoriser l'accès à des appareils connectés à Internet non sécurisés.
La vraie question avec Shodan est pourquoi ces appareils sont d'abord connectés à Internet. Cela n'excuse pas la nécessité de modifier les informations de configuration par défaut, mais laisser votre imprimante accessible à tous est tout simplement stupide.
Il existe une mesure de sécurité que vous pouvez utiliser contre ce genre de chose: un VPN pour les travailleurs distants et un pare-feu. C'est un atout pour l'entreprise, alors demandez aux utilisateurs de se connecter au réseau d'entreprise avec toutes les restrictions que cela implique. Ne pas le faire signifie que vous ne savez pas qui se connecte à un appareil de votre réseau. Placez l'appareil derrière un pare-feu et demandez aux utilisateurs de se connecter.
Ensuite, sur l'échec numéro deux - c'est assez évident - changez ces valeurs par défaut. La plupart des organisations ont une sorte de politique de gestion des actifs et cela devrait inclure la gestion des identifiants de connexion, surtout si elles doivent être sur le réseau. L'appareil doit être configuré en toute sécurité.
S'il n'est pas possible de configurer l'appareil en toute sécurité en raison d'un bug introduit par le fabricant, le moteur nous rend service en l'exposant - cela mettra la pression sur ces sociétés pour résoudre leurs problèmes.
Enfin, vous pouvez (et à mon avis devrait) cacher des informations aux serveurs, par exemple Chaînes de version Apache. Cela n'excusera pas ou ne remplacera pas une configuration de sécurité appropriée et un logiciel mis à jour avec diligence, mais il n'y a aucune raison de tout dire à l'attaquant sur votre système.
Si vous avez certains services que vous souhaitez vous exposer sur une IP publique mais que vous souhaitez les cacher du reste du monde, vous pouvez utiliser port knocking pour masquer les appareils des analyses de port générales tout en restant les rendant accessibles sans connexion VPN à quelqu'un qui sait frapper. J'ai plusieurs webcams à la maison auxquelles je souhaite parfois avoir accès depuis le travail, mais le pare-feu au travail ne me permet pas de lancer un VPN sur mon pare-feu domestique.
Donc, je "frappe" 3 ports sur mon pare-feu domestique et il permet des connexions de l'IP de frappe aux caméras.
Le portage est une sécurité assez faible de la part de quelqu'un déterminé à pénétrer votre réseau car les coups sont facilement détectés (les coups sont en fait un mot de passe envoyé en texte brut) , mais le forçage brutal des ports est presque impossible même si un attaquant savait que le détournement de port était en cours d'utilisation - 3 ports aléatoires fournissent environ 48 bits d'entropie de mot de passe, il est donc assez à l'abri d'un pirate aléatoire. Un VPN serait plus sécurisé car il crypte tout.
De plus, comme cela fonctionne au niveau IP, une fois que je déverrouille les ports de mon adresse IP professionnelle, tout le monde au travail peut y accéder car ils partagent tous la même adresse IP. (ils sont à l'extérieur des caméras dans un DMZ que j'utilise habituellement pour surveiller le chien, donc je ne suis pas trop inquiet pour quelqu'un au travail les voyant, mais je ne veux pas vraiment tout monde pour les voir)
Il y a beaucoup plus d'informations sur les avantages/inconvénients du portknocking ici:
Un commentateur a noté que 48 bits d'entropie, ce n'est pas beaucoup, ce qui est vrai avec quelque chose comme un mot de passe où si l'attaquant peut obtenir le hachage, il peut exécuter une attaque hors ligne et tester des millions ou des milliards de combinaisons par seconde. Cependant, étant donné que toute attaque par force brute de suppression de port est limitée par la latence du réseau et les contraintes de bande passante, 48 bits représentent encore beaucoup d'entropie. Pour forcer avec succès un mot de passe, vous devez en moyenne faire N/2 suppositions où dans ce cas N = 2 ^ 48 donc N/2 = 2 ^ 47
Chaque supposition signifie l'envoi de 3 paquets syn pour frapper sur les 3 ports, donc en supposant 60 octets pour un paquet SYN, vous devrez envoyer 2 ^ 47 * 3 * 60 = 2,5 x 10 ^ 16 octets ou 22 pétaoctets.
En utilisant ma connexion Internet à domicile de 15 Mo, il faudrait 510 ans pour envoyer autant de données.
Et cela ignore la latence du réseau, si vous pouviez envoyer le coup et tester immédiatement votre coup avec 1 msec de latence (la latence typique du ping dans le monde réel de mon réseau domestique au premier saut hors du réseau de mon FAI est de 13 ms), cela prendrait 2 ^ 47 msec, ou 4000 ans pour le forcer brutalement.
Et bien sûr, tout cela suppose que vous pouvez faire des suppositions illimitées avant que le démon de port knock ne vous ignore ou avant que je remarque que quelque chose consomme toute ma bande passante entrante (mon FAI le remarquerait certainement et m'étranglerait)
Et il ignore également que le fait de savoir si vous avez réussi a ajouté de l'entropie si vous ne savez pas quel port vérifier - mes caméras écoutent sur certains ports non évidents, de sorte que des annonces supplémentaires sur 16 bits environ sont entropiées.
Donc, comme je l'ai dit, le portage est une sécurité faible car il est si facile à renifler, mais il n'est pas facilement forcé brutalement.
Assurez-vous simplement que vos appareils sont sécurisés et n'annoncez pas leur présence s'ils n'en ont pas besoin. Vous pouvez utiliser des services tels que Gibson research ShieldsUp pour vérifier facilement si vous avez des ports sur votre connexion réseau qui répondent aux services d'Internet public.
Si vous avez quelque chose qui ne doit pas l'être, désactivez le service et bloquez le port sur votre routeur. Si vous avez besoin du service, assurez-vous qu'il est correctement sécurisé afin qu'il ne puisse pas être facilement utilisé abusivement. Il n'y a pas grand-chose à faire sur le fait que les services accessibles au public qui doivent répondre aux demandes seront détectables par les analyses de port. Essayer d'éviter cela revient à essayer d'éviter que quelqu'un sache où se trouve votre magasin alors qu'il peut simplement conduire dans la rue et regarder le panneau.
Vous pouvez essayer de retirer le signe (supprimer les bannières, changer les ports par défaut, etc.) pour essayer de rendre plus difficile pour quelqu'un de reconnaître ce que fait le magasin (ce qu'est le service), mais vous ne pouvez pas vraiment cacher le fait qu'il y a un immeuble sur le terrain (une prestation sur le port).
La meilleure défense qui puisse jamais être offerte pour se protéger contre les scans Shodan est la même que pour tous les autres scans.
La réponse évidente est la première, une suite de sécurité à jour et un logiciel bien configuré fonctionnant avec les derniers correctifs de sécurité. Bien que ce soit la norme commune de nos jours, ce n'est pas différent de simplement jeter votre système aux loups avec une torche. Toute la sécurité (à travers l'histoire dans le monde réel et le monde virtuel) est construite sur des couches.
Si vous construisez votre système pour qu'il fonctionne dans un environnement de type bac à sable, si quelque chose se passe mal, vous pouvez revenir à une version de travail avant le problème et analyser ce qui s'est mal passé à partir de là. Cela a également l'avantage supplémentaire d'être un serveur agile dans lequel si un bogue est introduit pour une raison quelconque, malveillant ou non, vous pouvez simplement repousser vers une version de travail en quelques instants et ne pas avoir de temps d'arrêt.
Limiter et éliminer simplement les bannières et tout autre caractère d'identification rend plus difficile l'énumération des serveurs ou la collecte d'informations, ce qui constitue la première étape de la pénitration.
Enfin, le routage nul et l'utilisation des RBL aident à éliminer les adresses IP abusives bien connues telles que les nœuds malveillants/botnet, les utilisateurs abusifs/malveillants et les sites de piratage en tant que service tels que shodan.
Si vous respectez ces règles, Internet n'est plus un endroit effrayant, car vous avez déjà vaincu les "barbares" avant même de créer des sites sur votre serveur.