J'ai déjà créé un site sur Digital Ocean sans domaine, il n'y a donc que l'IP. En dépit de ne dire à personne son existence ou d'en faire la publicité, je reçois des centaines de notifications de fail2ban que diverses IP tentent de pirater mon port SSL ou recherchent des fichiers PHP PHP).
Mais comment savent-ils que j'existe? D'où obtiennent-ils l'adresse IP?
À peu près ce que @DeerHunter a dit. Il est trivial d'analyser l'intégralité d'Internet. S'ils le souhaitent, ils peuvent cibler les gouttelettes Digital Ocean connues qui sont en ligne.
Ils peuvent le faire sur une minuterie afin que lorsque vous vous déconnectez ou en ligne, il continue d'essayer, car il peut s'agir de cibles de grande valeur qui pourraient devenir vulnérables à tout moment.
Permettez-moi de vous donner un exemple de codage très approximatif. Imaginons que votre adresse IP soit 104.16.25.255 . Obtenons l'adresse IP de www.digitalocean.com afin que nous puissions facilement vérifier les adresses IP associées. www.digitalocean.com renvoie 104.16.25.4 . Analysons tout: 104.16.25. *
Supposons que nous voulons essayer de trouver tous les adresses IP associées à proximité. Supposons que les programmes peuvent très bien gérer les nombres et les modèles. Voici un exemple d'un entier incrémenté:
i++;
Cela incrémente la valeur actuelle de i
de 1
. Supposons que i
commence par 1
. Après i++
, Vous obtiendrez 2
. Découvrez cette boucle douloureusement simple:
for (int i = 1; i < 256; i++)
{
scanIpAddress("104.16.25." + i);
}
Une variante alternative bash d'une ligne serait la suivante:
for ip in `seq 1 255`; do scan_thingy_command 192.168.0.$ip --options -oG lol.txt; done
Vous venez de numériser 104.16.25.1 et avez changé i
de 0
En 1
. Au fur et à mesure que la boucle continue, elle passera de 104.16.25.0 à 104.16.25.255 . Je n'ai pas le temps de numériser et de regarder pour le moment, cependant, il est possible que ce petit bloc n'appartienne pas juste à digitalocean .
Pour trouver plus de cibles sur DigitalOcean, un programmeur peut changer encore plus les nombres. Par exemple, introduisez une autre boucle qui imbrique la boucle susmentionnée à l'intérieur et ajoutez j
: scanIpAddress("104.16." + j + "." + i);
. Cela leur permettra de scanner 104.16.1-255.1-255
.
De là, ils peuvent continuer à reculer et à imbriquer des boucles jusqu'à ce qu'ils obtiennent l'intégralité d'Internet. Il existe d'autres moyens plus efficaces de le faire, comme le masscan, mais c'est le moyen le plus élémentaire.
Encore une fois, cela pourrait également être fait sur la ligne de commande avec une seule ligne:
for oct1 in `seq 1 255`; do for oct2 in `seq 1 255`; do for oct3 in `seq 1 255`; do for oct4 in `seq 1 255`; do scan $oct1.$oct2.$oct3.$oct4 --stuff; done; done; done; done
L'exemple ci-dessus était vraiment un exemple brut. Ils peuvent en faire plus, leur code peut être différent et ils peuvent utiliser des méthodes et/ou des programmes entièrement différents. Cependant, le concept est à peu près le même.
Il est également possible que les programmes en question ciblent uniquement tout le monde en masse.
Si c'est en ligne, quoi que vous cachiez, ils le trouveront ... ou essaieront de le trouver.
Cependant, selon votre serveur Web, vous pouvez essayer contrôles d'accès http comme .htaccess
. Si vous utilisez des contrôles d'accès - encore une fois, cela dépend de votre serveur Web - il est probable que vous serez en mesure d'empêcher les autres de voir/accéder pages.
Cependant, cela ne vous protégera pas contre les tentatives de connexion non liées au site Web. Et si vous leur refusez l'accès à des pages Web inexistantes, ils savent maintenant que vous êtes vraiment en ligne et peuvent concentrer leurs attaques plus facilement! Cependant , c'est encore bonne pratique.
Voici un exemple de refus de .htaccess
Pour Apache (2.4 et versions ultérieures):
Require ip 192.168.1.100
Dans l'exemple ci-dessus, vous refusez à tout le monde l'accès à ce dossier, à l'exception de votre adresse IP. Gardez à l'esprit que 192.168.1.100 est une adresse IP locale. Vous devrez le remplacer par votre adresse IP publique.
Gardez également à l'esprit que si votre attaquant exécute un proxy/VPN sur votre machine, ils peuvent toujours accéder à ces pages. Si votre attaquant a déjà accès au site Web, il peut soit modifier le .htaccess, soit le supprimer. Rien à 100%.
Ne mettez rien en ligne si vous n'êtes pas prêt à être scanné. Tout le monde a un plan jusqu'à ce qu'il soit scanné dans la bouche.
L'IPv4 espace d'adressage est limité à seulement 4 294 967 296 adresses.[note 1] Avec une bande passante suffisante, il devient trivial d'analyser chaque adresse IP, surtout si vous êtes le propriétaire d'un botnet composé de milliers d'appareils piratés.
Avec IPv6[note 2], les choses sont un peu plus délicates: avec plus de 300 000 000 000 000 000 000 000 000 000 000 000 000 000 d'adresses , il devient impossible de les énumérer toutes. Cependant, il existe encore divers moyens par lesquels les adresses peuvent être découvertes; par exemple, dans un cas récent le moteur de recherche Internet des objets Shodan a été intercepté en utilisant NTP serveurs pour découvrir de nouveaux hôtes IPv6 lors de la synchronisation de leurs horloges.
L'essentiel: si vous n'êtes pas prêt à être sondé, vous ne devriez pas être sur Internet. La numérisation de tout Internet IPv4 peut être effectuée en quelques jours , et votre adresse IPv6 sera également découverte - à moins que vous ne l'utilisiez pas du tout.
Remarque 1: Certains d'entre eux ne sont pas disponibles car ils ont été réservés à des fins spéciales.
Remarque 2: IPv6 n'est disponible que pour les utilisateurs de Digital Ocean lorsqu'ils l'ont activé .
Mais comment savent-ils que j'existe?
Ils ne savent pas que vous existe. Ils ne savent pas qu'ils parlent vous: ils savent juste qu'ils parlent à un ordinateur avec une adresse IP particulière. Les adresses IP ressemblent beaucoup aux numéros de téléphone. Si vous composez un indicatif régional suivi d'un numéro aléatoire avec le bon nombre de chiffres, il y a de fortes chances que vous puissiez parler à quelqu'un, surtout si l'indicatif régional compte de nombreux abonnés. Cela ne signifie pas que vous "saviez que cette personne existe": cela signifie simplement que vous avez découvert que son numéro de téléphone est connecté.
D'où obtiennent-ils l'adresse IP?
Ils ne l'obtiennent de nulle part. C'est juste un nombre de 32 bits et il n'y en a pas vraiment autant. 134.183.96.2 là, c'est une adresse IP. Je l'ai obtenu en écrasant mon clavier (et en supprimant les chiffres invalides). Il appartient probablement à quelqu'un parce que presque toutes les adresses IP le font. Les méchants scannent systématiquement l'espace d'adressage; ils trouveront n'importe quelle adresse IP parce que "trouver" signifie simplement "générer suffisamment de nombres valides".
Mais comment savent-ils que j'existe?
Ils savent qu'il y a quelque chose sur cette adresse IP parce que leur scanner le leur dit. Très probablement, ils ne sont pas venus vous chercher, ils sont simplement tombés sur cette adresse IP en scannant de gros morceaux ou sur Internet en entier.
http://blog.erratasec.com/2013/09/masscan-entire-internet-in-3-minutes.html
Vous pouvez donc analyser toutes les adresses IP de votre ordinateur personnel dans environ un an, bien que votre FAI puisse le remarquer et vous demander ce que vous essayez de tirer. Certains blocs sont plus susceptibles de contenir des serveurs mal protégés, en particulier les blocs attribués aux fournisseurs d'hébergement. Analyser uniquement ces blocs est très bon marché, rapide et facile, et les chances de succès sont relativement élevées.
La numérisation à partir d'une seule IP est problématique, car votre adresse IP sera bientôt bloquée, donc ces personnes utilisent des botnets, ou l'équivalent commercial: les services cloud. Vous n'avez pas besoin de créer votre propre botnet. Au lieu de cela, vous pouvez louer un botnet .
Parce que c'est une tâche facile de scanner les adresses IP pour les ports ouverts.
De nombreux outils comme ZMAP ( 1300x plus rapide que NMAP ) peuvent analyser tout Internet en quelques heures si vous en avez une connexion Internet décente.
Comme si vous voulez analyser tout Internet sur le port 80 (votre FAI peut vous le demander):
Sudo zmap -p 80 0.0.0.0/0
Et ZMAP n'analysera pas les adresses IP privées (car elles se trouvent dans le fichier blacklist.conf)
Très probablement, ils ne savent pas que l'adresse IP donnée vous appartient en particulier. Mais ils connaissent le pool IP qui appartient à votre société d'hébergement et ils utilisent ces informations pour rechercher des hôtes actifs. Vous pouvez utiliser iptables pour améliorer la sécurité de votre box, ou pour limiter le nombre de connexions et de types de connexions mais à part cela, vous ne pouvez rien faire d'autre. Internet était censé être utilisé pour partager des informations. Si vous ne voulez pas partager, déconnectez simplement la boîte (boîte de développement). S'il s'agit d'une boîte de développement, ce serait une bonne idée de la déplacer localement et de ne lui donner aucun accès en dehors de votre réseau local.