web-dev-qa-db-fra.com

L'adresse IP d'une demande HTTP peut-elle être usurpée?

Sur un site Web que je construis, je prévois d'enregistrer les adresses IP des soumissions, au cas où cela serait nécessaire. Cela ne me dérange pas les procurations, mais l'usurpation pure et simple de votre adresse IP irait à l'encontre du but.

Pour effectuer une action GET complète, (que vous receviez ou non ou non), une adresse IP légitime est-elle requise? Ou un site Web serait-il spammé avec des publications provenant d'adresses IP usurpées au hasard?

(POST est-il différent?)

27
TND

Eh bien, oui. Ou peut-être. Cela dépend d'où vous obtenez vos données "d'adresse IP" et si vous leur faites confiance.

Si vous prenez l'adresse des paquets IP eux-mêmes, vous pouvez avoir confiance que la personne qui a envoyé les paquets a accès aux paquets envoyés à cette adresse IP. Cela peut signifier qu'il s'agit d'un utilisateur légitime de cette adresse IP (pour les valeurs limitées appropriées du mot "légitime", à l'ère des botnets, des proxys ouverts et de Tor), ou que celui qui a envoyé les paquets a accès à un système intermédiaire et peut voir les paquets que vous envoyez au fur et à mesure.

Cependant, avec la grande prévalence des procurations inverses, le paquet IP peut souvent déformer la source de la connexion, et donc divers en-têtes HTTP ont été introduits pour permettre à l'adresse IP d'origine "réelle" d'être fournie par le proxy. Le problème ici est que vous devez faire confiance à celui qui envoie l'en-tête pour fournir des informations précises. De plus, les configurations par défaut (ou copier-coller malencontreuses) peuvent facilement vous laisser ouvert à l'usurpation de ces en-têtes. Par conséquent, vous devez identifier si des procurations inverses sont légitimement impliquées dans vos demandes, et vous assurer qu'elles (et votre serveur Web) sont correctement configurées et sécurisées.

32
womble

Non.

Les connexions TCP (que HTTP utilise) nécessitent une communication bidirectionnelle. Bien que vous puissiez usurper facilement l'IP source d'un paquet SYN, le SYN-ACK la réponse du serveur sera acheminée vers l'adresse IP que vous avez usurpée dans le paquet initial - vous ne pourrez pas terminer la connexion à moins que vous ne puissiez voir la réponse du serveur.

Cependant, des outils de proxy anonyme comme Tor peuvent fournir un moyen d'anonymiser facilement la source d'une connexion - gardez à l'esprit que cela peut vaincre le contrôle du spam en interdisant facilement IP.

23
Shane Madden

Réponse courte .. pas aujourd'hui, vous ne pouvez pas.

Dans le passé, les ordinateurs étaient très prévisibles dans les numéros de séquence pour TCP. Cela signifie qu'un attaquant enverrait simplement du trafic légitime jusqu'à ce qu'il comprenne les numéros de séquence et pourrait faire une assez bonne estimation de ce qui vient ensuite. Il enverrait le TCP trafic pour imiter une adresse IP usurpée et l'hôte à l'autre extrémité le croirait. Vous pourriez donc simuler le prise de contact à trois voies =.

Aujourd'hui et je dirais plus de 10 ans .. les ordinateurs sont bien meilleurs pour randomiser cela, donc c'est assez difficile, voire impossible. Ce serait une perte de temps à mon avis pour un attaquant de le faire.

12
Mike

HTTP s'exécute sur TCP. Pour que TCP fonctionne, vous avez besoin de la prise de contact SYN/ACK à 3 voies complète avant d’obtenir suffisamment loin pour émettre une requête GET ou POST, donc une simple source d'usurpation d'identité ne fera pas grand-chose. D'autres formes plus avancées d'usurpation d'identité (MitM) seraient toujours efficaces.

8
techieb0y