web-dev-qa-db-fra.com

Les adresses IP sont-elles "triviales à forger"?

Je lisais dans certaines des notes sur nouveau service DNS public de Google :

Je me suis remarqué sous la section Sécurité de ce paragraphe:

Jusqu'à ce que la solution standard à l'échelle du système aux vulnérabilités DNS soit universellement mise en œuvre, telle que le protocole DNSSEC2, les résolveurs DNS ouverts doivent prendre indépendamment des mesures pour atténuer les menaces connues. De nombreuses techniques ont été proposées; Voir IETF RFC 4542: Mesures de fabrication de DNS plus résiliente contre les réponses forgées Pour un aperçu de la plupart d'entre eux. Dans Google DNS, nous avons mis en œuvre et nous recommandons, les approches suivantes:

  • Ressources de la machine de surprovision pour protéger contre les attaques directes de DOS sur les résolveurs elles-mêmes. Comme les adresses IP sont triviales pour les attaquants pour forger, il est impossible de bloquer les requêtes en fonction de l'adresse IP ou du sous-réseau; Le seul moyen efficace de gérer de telles attaques est de simplement absorber la charge.

C'est une réalisation déprimante; Même sur le débordement de pile/faute de serveur/super utilisateur, nous utilisons fréquemment des adresses IP comme base des interdictions et des blocs de toutes sortes.

Pour penser qu'un attaquant "talentueux" pourrait utiliser trivialement quelle que soit l'adresse IP souhaitée et synthétiser autant de fausses adresses IP unique telles que elles veulent, est vraiment effrayant!

Donc, ma (s) question (s):

  • Est-ce vraiment ça facile pour un attaquant de forger une adresse IP à l'état sauvage?
  • Si oui, quelles mesures d'atténuation sont possibles?
66
Jeff Atwood

Comme indiqué par de nombreux autres, les en-têtes IP sont triviaux pour forger, tant que l'on ne se soucie pas de recevoir une réponse. C'est pourquoi il est surtout vu avec UDP, comme TCP nécessite une poignée de main à 3 voies. Une exception notable est le Syn Flood , qui utilise TCP et tente de fixer des ressources sur un hôte récepteur; Encore une fois, comme les réponses sont jetées, l'adresse source n'a pas d'importance.

Un effet secondaire particulièrement désagréable de la capacité des attaquants aux adresses source de spoof est A Backscatter Attack. Il y a une excellente description ici , mais brièvement, c'est l'inverse d'une attaque DDO traditionnelle:

  1. Prendre le contrôle d'un botnet.
  2. Configurez tous vos nœuds pour utiliser le idée adresse IP de la même source pour les paquets malveillants. Cette adresse IP sera votre victime éventuelle.
  3. Envoyez des paquets de tous vos nœuds contrôlés à diverses adresses sur Internet, ciblant des ports qui ne sont généralement pas ouverts, ni de connecter aux ports valides (TCP/80) affirmant faire partie d'une transaction déjà existante.

Dans l'un des cas mentionnés dans (3), de nombreux hôtes répondront avec un ICMP inaccessible ou un TCP réinitialisé, ciblé à l'adresse adresse source du paquet malveillant. L'attaquant compte désormais des milliers de machines sans compromis sur le réseau effectuant une attaque DDO sur sa victime choisie, tout au long de l'utilisation d'une adresse IP source spoofée.

En termes d'atténuation, ce risque est vraiment celui que seuls les FAI (et en particulier les ISP fournissant un accès client, plutôt que le transit) peuvent traiter. Il y a deux méthodes principales de faire cela:

  1. filtrage d'entrée - Assurer des paquets arrivant à votre réseau provient de gammes d'adresses qui vivent de l'autre côté de l'interface entrante. De nombreux fournisseurs de routeurs mettent en œuvre des fonctionnalités telles que Unicast Reverser trappe , qui utilisent les tables de routage et de transfert du routeur pour vérifier que le prochain saut de l'adresse source d'un paquet entrant est l'interface entrante. . Ceci est mieux réalisé à la première couche 3 hop dans le réseau (c'est-à-dire votre passerelle par défaut.)

  2. filtrage de sortie - Assurant que les paquets laissant la source de votre réseau uniquement à partir de la gamme d'adresses que vous possédez. C'est le complément naturel d'ingresser le filtrage et essentiellement partie d'être un "bon voisin"; S'assurer que même si votre réseau est compromis par un trafic malveillant, ce trafic n'est pas envoyé aux réseaux que vous regardez.

Ces deux techniques sont les plus efficaces et facilement implémentées lorsqu'elles sont activées dans des réseaux "Edge" ou "Access", où les clients s'interfectionnent avec le fournisseur. La mise en œuvre du filtrage d'entrée/de sortie au-dessus de la couche d'accès devient plus difficile en raison de la complexité des chemins multiples et du routage asymétrique.

J'ai vu ces techniques (en particulier le filtrage d'entrée) utilisée à un grand effet au sein d'un réseau d'entreprise. Peut-être que quelqu'un avec plus d'expérience de fournisseur de services peut donner plus de perspectives sur les défis du déploiement de filtrage d'entrée/sortie sur Internet. J'imagine que le soutien matériel/firmware constitue un défi majeur, tout en incapable de forcer les fournisseurs en amont dans d'autres pays de mettre en œuvre des politiques similaires ...

51
Murali Suriar

Est-ce vraiment facile pour un attaquant de forger une adresse IP à l'état sauvage?

Bien sûr, si je ne me soucie pas de recevoir des réponses, je peux très facilement envoyer des paquets en utilisant n'importe quelle adresse source que j'aime. Étant donné que de nombreux fournisseurs de services Internet n'ont pas vraiment de bonnes règles de sortie, tout ce que je forge, il sera généralement livré.

Si l'attaquant a en réalité besoin de la communication de deux voies, cela devient très difficile. S'ils ont besoin de la communication en deux voies, il a tendance à être plus facile d'utiliser simplement un proxy de quelque sorte. Ce qui est très facile à configurer si vous savez ce que vous faites.

L'interdiction des personnes par adresse IP est modérément efficace sur SF/SO/SU puisque le site utilise HTTP/HTTPS qui nécessite une communication à deux sens.

46
Zoredache

Petite preuve de concept pour la réponse de Zordeche (avec Ubuntu):

$ Sudo apt-get install hping3
$ Sudo hping3 -1 --spoof 11.10.10.20 www.google.com
HPING www.google.com (eth0 64.233.169.105): icmp mode set, 28 headers + 0 data bytes

Puis dans une autre console:

$ Sudo tcpdump -i eth0 'icmp'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
13:30:19.439737 IP 11.10.10.20 > yo-in-f105.1e100.net: ICMP echo request, id 31297, seq 0, length 8

Donc, oui, trivial, mais vous n'obtenez pas les réponses comme mentionnées précédemment, sauf si vous avez accès au 11.10.10.20 ou d'avoir un renifleur quelque part entre www.google.com et 11.10.10.20 (et il aurait besoin d'être juste devant de l'une ou l'autre extrémité, puisque vous ne pouvez pas prédire la voie des paquets). De plus, la passerelle du spoofer (ISP) pourrait ne pas laisser la porte de la porte s'ils ont une sorte d'inspection de propriété intellectuelle et voit que la source sent mauvais.

23
Kyle Brandt

Les adresses IP sont faciles à forger pour une direction [~ # ~ # ~ # ~ ~] Trafic. Pour TCP paquets, vous ne pouvez forger que pour obtenir une demi-open =TCP avec des paquets SYN. ​​Ceci est la base d'une sorte d'attaque DOS aussi bien. . Mais vous ne pouvez pas forger une connexion HTTP avec une adresse bloquée (par exemple, si vous filtrez des sessions pour utiliser la même adresse IP). Bien que oui, vous pouvez spoof une adresse IP dans les paquets, ce n'est utile que pour certains types. des attaques de service de service.

13
FryGuy

L'article Goog a explicitement discuté du DNS. DNS utilise à la fois des paquets UDP et TCP. Les UDP peuvent être forgés, mais pas le TCP. TCP nécessite une Way Handshake =. Si l'adresse IP pour A TCP paquet est forgée, l'ordinateur de forge ne recevra pas la réponse et la connexion échouera. UDP, comme mentionné dans d'autres réponses, est "Fire et oubliez" et ne nécessite aucune communication de réponse. Les attaques DOS viennent presque exclusivement sous la forme de paquets UDP pour cette raison.

Dans le contexte des débordements de pile et des sites familiaux, le problème soulevé par Takaun Daikon est très valable. Il existe de nombreuses façons d'obtenir une nouvelle adresse IP de son ISP. La modification d'une adresse MAC est clairement la plus facile et fonctionne pour de nombreux fournisseurs de services Internet. De plus, de nombreux gens qui sont à la hauteur peuvent utiliser un proxy ou un mandat public. Bloquant clairement l'origination IP de ces paquets bloquerait simplement le nœud de terminaison du proxy ou de TOR.

Alors bloquer les adresses IP valides? Enfer oui c'est. Mais vous finirez par des erreurs. Vous bloquerez certaines IP qui ne sont vraiment pas la source du problème (c'est-à-dire des proxies) et vous aurez également des gens en évitant vos blocs en modifiant IPS. La personne qui est malchanceuse suffisante pour que l'IP interdite plus tard ne puisse pas accéder au SO Family of Sites. Mais l'erreur devrait être petit. Sauf si vous bloquez d'énormes ensembles d'IPS. Mais si vous bloquez un ou deux par jour, ça devrait aller.

Vous voudrez peut-être introduire un programme légèrement plus sophistiqué où vous bloquez, mais seulement pour une période, comme une année. Si votre réseau est capable de limiter la bande passante ou la limitation de la connexion, vous pouvez également envisager un schéma dans lequel des sacs de douche qui exécutent Apache Benchmarks sur votre site viennent de mettre dans une cage avec une bande passante très limitée.

10
JD Long

Les spoofs IP se poursuivront parce que les ISP sont paresseux.

Mon FAI est damné bien sait que je suis sur une adresse spécifique, ou du moins le sous-réseau que je suis sur. Pourtant, je peux utiliser n'importe quelle adresse source. Pourquoi donc? Simplement, coût.

Si je simule quelques adresses ici et là, cela coûte rien de PAI rien. Si chaque utilisateur de mon fournisseur de services Internet a fallu un paquet entre 1h00 et 2h00, il ne serait toujours pas un blip sur le radar. Cependant, lorsqu'un Bottnet envoie de nombreux paquets usurés de nombreux hôtes sur de nombreux fournisseurs de services Internet, la machine cible ou le réseau tombe dessus.

La réalité financière est que, à moins que vous soyez celui attaqué, l'usurpointe ne coûte rien. Il en coûte de l'argent pour mettre en œuvre un filtrage près du client, et celui des dépenses de l'argent réalise très peu de rendement autre que de savoir qu'ils sont de bons citoyens de réseau.

UDP et ICMP sont les plus faciles à fausses, mais TCP sont également possibles. Il nécessite un système d'exploitation distant insécurisé, qui utilise des numéros de séquence prévisibles à exploiter. Parfois, il s'agit des machines d'équilibrage de la charge qui modifient les numéros de séquence et faire les prévisibles. Donc, TCP est possible - mais plus difficile.

L'anti-spoofing DNS se concentre principalement sur le côté de la sécurité d'empêcher une personne de soumettre une fausse réponse à un résolveur récursif. Les aspects d'inondation de l'UDP ne sont pas spécifiques DNS autres qu'une simple petite requête (par exemple, pour '.') Causera une réponse assez importante. Ainsi, il fait un bon vecteur d'amplification. Il existe de nombreux autres protocoles UDP qui fonctionnent, mais DNS est utilisé partout et il est facile de trouver des machines à utiliser pour amplifier les attaques.

DNSSEC rend cela encore pire, avec des paquets UDP pouvant atteindre 4K de taille.

10
Michael Graff

Les adresses IP sont triviales pour forger en ce qui concerne les attaques DOS à base de DNS (D), car elles sont généralement un cas de paquets UDP incendie et d'oublier. Pour le trafic http, ce n'est pas le cas, vous devez donc être sur le même réseau local que le serveur Web (entièrement possible, bien sûr, en fonction de l'endroit où votre site est hébergé) ou de contrôler les routeurs intermédiaires.

6
Mo.

Vous pouvez envoyer une lettre à n'importe qui, et si vous ne mettez pas une adresse de retour sur l'enveloppe (ou vous mettez le mauvais), ils peuvent embaucher tous les filtres de courrier indésirable au monde et ne pas filtrer votre message sans ouverture (traitement ) ce.

Toutefois, si l'expéditeur veut une réponse, l'adresse de retour soit mieux correcte, ou il devrait y avoir un mécanisme de couche d'application pour obtenir la bonne adresse. Je peux donc vous faire penser que vous ouvrez une lettre de Nana, mais même si je vous trompe avec le contenu de la lettre, vous n'enverrez pas Nana un chèque à l'encontre à une adresse au Nigeria (à moins que Nana ne soit nigérian ). Donc, le défi/la réponse est une défense efficace tant que vous n'êtes pas aussi d'être homme dans les pieds morts.

6
noah

Bien que ce soit certainement une réalité qui doit être traitée, le problème sous-jacent est vraiment non technique: les personnes ayant une intention malveillante essaient de faire des choses malveillantes. La vraie solution doit donc être non technique aussi.

Je pense que ce que Stackoverflow a fait est exactement la bonne solution pour la manipulation de la deuxième ligne de défense: les techniques de limitation des utilisateurs potentiels de spam à différentes manières de limiter leurs capacités à interagir avec la plate-forme avant d'atteindre un niveau de "crédibilité".

Non seulement ces techniques aident non seulement à améliorer la qualité globale du site, ils incitent réellement les utilisateurs à devenir plus impliqués et à fournir des réponses plus crédibles/fiables.

Du point de vue technique, la meilleure chose à faire serait alors de faire comme Google suggère: il suffit d'être efficace pour absorber/traiter la charge supplémentaire.

Excellent travail et continuer à m'améliorer!

5
Joshua

UDP est la partie principale de la raison pour laquelle cela est facile - en fait, Skype et Slingbox exploitent la possibilité de forger facilement des adresses IP dans UDP à ' Punch ' à travers NAT et Permettez de pair-pair facile à regarder.

TCP est plus difficile car il nécessite un cycle SYN/ACK complet, mais vous pouvez toujours inonder le serveur avec des paquets SYN de suspension qui accrochent à de nombreuses adresses IP et attachent essentiellement un grand nombre de routeurs dans le processus.

3
Justin

Comme mentionné ci-dessus, l'utilisation de proxies est triviale et il existe un très grand nombre de procurations anonymes ouvertes disponibles.

Même sans utiliser de proxy, je peux définir l'adresse MAC sur mon pare-feu à une nouvelle valeur arbitraire, réinitialiser mon modem câble, et mon fournisseur de services Internet m'attribuera une nouvelle adresse IP brillante.

Et c'est juste pour commencer. Il y a beaucoup d'autres moyens de contourner les interdictions IP.

2
user16820

Si oui, quelles mesures d'atténuation sont possibles?

Pas grand chose que vous pouvez faire du côté de la réception.

Le FAI de la forger devrait filtrer leur trafic sortant de sorte que ses clients ne puissent pas utiliser IPS de différents réseaux.

Ce n'est que quelques lignes dans la configuration du routeur, donc il n'y a pas de bonne excuse pour ne pas le faire.

Il existe un moyen de suivre l'attaquant, mais il nécessite une coproduction de vos fournisseurs en amont: http://www.cymru.com/documents/dos-and-vip.html

2
TonyB

Comme d'autres l'ont souligné, UDP est assez trivial à forger, TCP pas tant.

La défense préférée, mais malheureusement non déployée universellement, est des filtres de sortie.

Pour les ISPS exécutant les services DSL etc, chaque ligne virtuelle doit être configurée avec ip verify unicast reverse-path (ou quel que soit l'équivalent non cisco) qui bloque tout paquet dont l'adresse IP source n'est pas dans les gammes connues pour être acheminées de cette ligne.

2
Alnitak