web-dev-qa-db-fra.com

Est-il pratique de pré-blacklister certaines régions GeoIP?

Récemment, un serveur avec lequel je gérais a subi quelques attaques, un risque que vous prenez lorsque vous hébergez un serveur Web.

Le pare-feu a été correctement configuré pour autoriser uniquement les connexions via les ports utilisés.

Le fait est qu'il y a eu une brève discussion sur la mise sur liste noire de toutes les adresses IP de certains pays qui ne rentrent pas dans le champ d'application du site Web, ce qui signifie que l'idée est de mettre automatiquement sur liste noire toute personne de plusieurs pays d'où proviennent certaines attaques, mais pas les utilisateurs.

Est-il pratique de mettre automatiquement sur liste noire les utilisateurs par Geo-IP des régions qui n'utilisent pas normalement le site Web?

Nous avons pensé à avoir cette limite pour au moins les ports principaux, ce qui signifie que seuls les pays qui abritent des personnes autorisées sont autorisés à passer.

28
Lighty

Il s'agit essentiellement d'une décision commerciale, plutôt que d'une décision de sécurité. Du point de vue commercial, les risques sont que vous perdez des utilisateurs de ce pays ou qui accèdent au site à partir de VPN situés dans ce pays, et que vraiment improbable, il est théoriquement possible que les attributions IP changent, ce qui signifie que si vous n'avez pas maintenu ces blocs à jour et mis à jour avec les dernières attributions, vous pourriez accidentellement bloquer les utilisateurs légitimes des pays cibles, qui se sont vu attribuer des IP à partir d'un pool précédemment affecté à un pays bloqué.

D'un point de vue de la sécurité, cela peut réduire le volume d'attaques et augmenter les coûts pour un attaquant de cibler votre site (car ils doivent obtenir des machines de pays spécifiques, plutôt que de n'importe quelle machine).

Cela a tendance à avoir un sens lorsque vous avez un produit limité régionalement - pensez aux magasins où les marchandises ne sont expédiées que dans un pays spécifique, aux concours qui n'acceptent que les entrées de personnes dans une région donnée, ou aux systèmes qui fonctionnent en conjonction avec des entreprises physiques qui ont un gamme limitée (par exemple, les livraisons à une chaîne de magasins nationaux, il n'y aurait donc aucun moyen pour un utilisateur ailleurs de bénéficier du service). Dans ces cas, il est généralement plus facile de justifier les risques, car il n'y a aucun moyen pour les personnes d'autres pays d'utiliser le service (et il ne serait pas difficile d'inclure les pays voisins dans le cas des cas Edge - une entreprise portugaise pourrait inclure Plages IP espagnoles, au cas où, par exemple).

Cela a moins de sens lorsque vous avez une entreprise d'information ou un produit numérique. Dans ces cas, vous pourriez finir par obtenir plus de trafic indésirable, car les personnes qui souhaitent obtenir le produit utilisent des VPN dans les pays autorisés. Pensez aux restrictions artificielles telles que les sorties de films dans le monde entier, les émissions de télévision avec des mois de retard avant d'être diffusées en dehors du pays d'origine, ou les sorties de jeux.

Vous pouvez obtenir des listes d'adresses IP spécifiques à un pays à partir de sites tels que http://www.ipdeny.com/ipblocks/ , puis choisir d'utiliser une approche de liste blanche ("nous livrons uniquement dans le sud de l'Italie, de même autoriser uniquement les adresses IP italiennes et de la Cité du Vatican ") ou une approche de liste noire (" nous voyons beaucoup d'attaques d'Australie, donc nous bloquerons toutes les adresses IP australiennes ").

(Veuillez noter que tous les pays sont sélectionnés au hasard et ne doivent pas être considérés comme une approbation ou une désapprobation de certains pays.)

42
Matthew

L'interdiction des plages d'adresses IP n'est généralement pas une bonne idée. Vous ne devez le faire que si une plage est toujours un gros problème pour vous. Voici pourquoi:

  • De nombreuses personnes utilisent des VPN ou des réseaux anonymes tels que TOR, ce qui signifie que les utilisateurs valides peuvent sembler avoir une adresse IP d'un pays que vous ne considérez pas comme faisant partie de votre public cible. Les utilisateurs de ces réseaux ne peuvent pas utiliser votre service s'ils ont des difficultés à se connecter.
  • Il est difficile, voire impossible, d'interdire vraiment par emplacement lorsque l'on parle d'adresses IP. Dans votre cas, cela pourrait être plus facile, car vous regardez des pays et des régions entières plutôt que des endroits plus spécifiques.
  • Un attaquant dédié peut facilement contourner les interdictions basées sur IP. Vous arrêterez uniquement les script kiddies. Des désagréments comme celui-ci peuvent être traités à l'aide de pare-feu bien configurés; logiciel serveur résilient et bien configuré; et un code backend sécurisé.

Quant à n'autoriser que certaines plages IP sur les ports backend/administratifs: allez-y. C'est absolument une bonne idée, car vous pouvez avoir certaines attentes envers vos administrateurs système (qu'ils n'ont pas besoin de se connecter avec un VPN ou un autre réseau anonymisé, qu'ils vivent dans une zone avec une certaine plage IP, etc.) que vous ne peut pas avoir de vos clients.

18
Rogue

Ne perdez pas votre temps à essayer de maintenir les listes noires GeoIP. C'est une réponse instinctive, et est à courte vue et inefficace dans la pratique.

Pensez-y comme au terrorisme - Timothy McVeigh fait exploser une bombe en Oklahoma. Vous interdisez tous les hommes blancs d'Amérique. Est-ce que cela arrête vraiment le problème?

La majorité des attaques réelles que j'ai vues proviennent de botnets et/ou de procurations anonymes. Donc, même si vous bloquez la Chine, les attaquants chinois vont simplement acheminer leur trafic via des hôtes compromis aux États-Unis ou en Europe. Bloquer la Chine, l'Irak, la Turquie, la Russie ... ils vont contourner. C'est la nature même d'Internet.

Le profilage comportemental est beaucoup plus efficace comme contre-mesure que les listes noires dynamiques. Quelqu'un martelant un service doit être bloqué, peu importe d'où vient son trafic.

Au lieu de cela, en fonction de ce que vous essayez de protéger, envisagez d'utiliser un WAF ou un proxy comme Cloudflare - vous pouvez facilement bloquer par pays si cela vous aide à mieux dormir la nuit, mais l'atténuation la plus importante est qu'ils fonctionnent comme une intelligence partagée dépôt. (Vous n'avez pas besoin de les utiliser spécifiquement, je viens d'avoir une bonne expérience avec eux).

S'ils détectent des attaquants martelant le site de quelqu'un d'autre, et ces mêmes attaquants tentent de marteler le vôtre, ils seront bloqués ou gênés en raison du fait qu'ils sont précédemment associés à des activités malveillantes - pas du fait qu'ils vivent dans le Guangdong ou la Biélorussie .

Cela ne fonctionnera pas avec SSH et similaires, vous devrez donc toujours utiliser quelque chose comme fail2ban pour dissuader les attaques contre ces services. Mais pour HTTP et autres, c'est génial.

8
Ivan