Mystérieux trafic chinois mal dirigé: comment savoir quel serveur DNS une requête HTTP a utilisé?

24

Au cours de la semaine dernière, j'ai reçu un énorme flux de trafic provenant d'un large éventail d'adresses IP chinoises. Ce trafic semble provenir de personnes normales et leurs requêtes HTTP indiquent qu'ils pensent que je suis:

  • Facebook
  • The Pirate Bay
  • divers trackers BitTorrent,
  • sites porno

Tout cela ressemble à des choses pour lesquelles les gens utiliseraient un VPN. Ou des choses qui mettraient la Grande Muraille de Chine en colère.

Les agents utilisateurs incluent les navigateurs Web, Android, iOS, FBiOSSDK, Bittorrent. Les adresses IP sont des fournisseurs commerciaux chinois normaux.

J'ai Nginx retournant 444 si l'hôte est incorrect ou l'agent utilisateur est manifestement faux:

## Deny illegal Host headers
if ($host !~* ^({{ www_domain }})$ ) {
   return 444;
}
## block bad agents
if ($http_user_agent ~* FBiOSSDK|ExchangeWebServices|Bittorrent) {
    return 444;
}

Je peux gérer la charge maintenant, mais il y a eu quelques rafales allant jusqu'à 2k / minute. Je veux savoir pourquoi ils viennent vers moi et l'arrêter. Nous avons également un trafic CN légitime, donc interdire 1/6 de la planète Terre n'est pas une option.

Il est possible que ce soit malveillant et même personnel, mais il peut simplement s'agir d'un DNS mal configuré là-bas.

Ma théorie est que c'est un serveur DNS mal configuré ou peut-être certains services VPN que les gens utilisent pour contourner Great Fire Wall.

Étant donné une adresse IP client:

183.36.131.137 - - [05/Jan/2015:04:44:12 -0500] "GET /announce?info_hash=%3E%F3%0B%907%7F%9D%E1%C1%CB%BAiF%D8C%DE%27vG%A9&peer_id=%2DSD0100%2D%96%8B%C0%3B%86n%8El%C5L%11%13&ip=183.36.131.137&port=11794&uploaded=4689970239&downloaded=4689970239&left=0&numwant=200&key=9085&compact=1 HTTP/1.0" 444 0 "-" "Bittorrent"

Je peux savoir:

descr:          CHINANET Guangdong province network
descr:          Data Communication Division
descr:          China Telecom
  • Comment savoir quel serveur DNS ces clients utilisent?
  • Est-il possible de déterminer si une demande HTTP provient d'un VPN?
  • Que se passe-t-il vraiment ici?
Felix
la source
5
J'ai déjà vu ce problème, étant à la fois la cible du trafic et le trafic destiné à mon serveur envoyé ailleurs. Je n'ai pas de réponses cependant. J'ai réduit l'impact du premier problème avec un pare-feu, et le second avec une solution logicielle qui n'était possible que dans notre situation spécifique (notre logiciel faisait les demandes). En cours de lancement, nous avons constaté que certains serveurs DNS refusent de respecter des TTL très bas, au lieu de mettre en cache le résultat pendant des mois, ce qui pourrait expliquer la liste des sites pour lesquels vous obtenez du trafic.
xofer
1
Vérifiez également cette question. J'ai eu le même problème serverfault.com/questions/656093/… Je suis simplement curieux de savoir pourquoi un FAI ferait quelque chose comme ça. Je ne vois pas la valeur en
pouces
4
D'après mon expérience, ce sont des tentatives pour trouver des proxys Web ouverts. Certains serveurs Web vous permettront de demander n'importe quelle URL; Une fois, j'ai été appelé pour en traiter un, qui avait dépassé son allocation de bande passante mensuelle (généreuse) avant même qu'il ne soit en service. Un groupe d'étudiants de l'Institut de technologie de Nanjing avait découvert qu'ils pouvaient y établir des connexions HTTPS et demander n'importe quelle page Web, et se faufilaient donc avec impatience tout leur porno devant le grand pare-feu. Si vous ne diffusez pas réellement le contenu demandé, cela devrait aller.
MadHatter prend en charge Monica le
1
D'habitude, oui. Une seule entrée de journal a été citée ci-dessus, j'ai donc pensé qu'il valait la peine d'être mentionné; ce n'est pas censé être une réponse complète et réfléchie, ou je l'aurais soumise comme une seule!
MadHatter prend en charge Monica le
1
1. Avez-vous déjà essayé de traquer les administrateurs système pour un domaine enregistré ici aux États-Unis? Si oui, vous savez à quel point cela peut être difficile. J'imagine qu'il est presque impossible de trouver non seulement la bonne personne à qui parler à "Chinanet", mais aussi la bonne personne qui se soucie réellement de vous aider.
Michael Martinez

Réponses:

31

Il existe une façon théorique de déterminer le résolveur DNS de vos clients, mais il est assez avancé et je ne connais aucun logiciel standard qui le fera pour vous. Vous devrez certainement exécuter un serveur DNS faisant autorité pour cela en plus de votre nginx.

Si l'en-tête de l'hôte HTTP est incorrect, envoyez un document d'erreur et incluez une demande à un FQDN unique créé dynamiquement pour chaque demande que vous vous connectez à une base de données. par exemple.

http://e2665feebe35bc97aff1b329c87b87e7.example.com/img.png

Tant que le grand pare-feu de la Chine ne joue pas avec cette demande et que le client demande le document à partir de cet URI FQDN + unique, chaque demande entraînera une nouvelle recherche DNS vers votre DNS faisant autorité pour example.com où vous pouvez enregistrer l'adresse IP du Le résolveur DNS et plus tard le corrélent avec vos URI générés dynamiquement.

r_3
la source
6
C'est la même approche que je suggérerais, bien que je pense qu'un autre niveau de domaines serait nécessaire pour le faire fonctionner. Si le domaine principal est example.com, vous devez créer un enregistrement NS pour un sous-domaine tel que ns-detect.example.com. Ensuite, vous créez un nom unique sous ce nom de domaine, tel que le domaine complet serait e2665feebe35bc97aff1b329c87b87e7.ns-detect.example.com.
kasperd
1
C'est une approche intéressante. Je soupçonne maintenant que la redirection est délibérée (car je ne suis pas le seul à le voir). Je suppose donc que les différents serveurs DNS chinois ne prendraient pas la peine de rechercher le serveur faisant autorité pour obtenir le sous-domaine. Cela n'aurait aucun sens pour eux de le faire.
felix
S'ils utilisent une approche de liste blanche, vous avez probablement raison. S'ils sont sur liste noire, il n'y a en fait aucune raison pour qu'ils ne recherchent pas un nom de domaine complet d'apparence innocente. Bien sûr, cela pourrait également résulter de techniques de filtrage beaucoup plus avancées que de simplement jouer avec les réponses DNS.
r_3
1
+1 pour l'idée de kasperd de créer un sous-domaine avec son propre NS, pour garder les journaux pour cela séparés de votre DNS normal. Et pour le faire avec moins de chance de foirer vos affaires normales. Si vous voyez des demandes http pour des noms d'hôtes qui n'ont été consultés dans votre DNS par personne, alors vous savez que le serveur DNS que vos mauvais clients utilisent falsifie les réponses DNS (et se trompe, car ils voulaient probablement envoyer ce trafic ailleurs Peut-être qu'un administrateur chinois a tapé quelque part une adresse IP dans une configuration?).
Peter Cordes
Accepter parce que cela répond le plus exactement à la première question. Ne résout pas vraiment pourquoi nous obtenons du trafic, mais stackexchange ne permet pas de questions vagues.
felix
5

J'ai entendu le grand pare-feu utilisé pour rediriger le trafic "bloqué" vers une poignée d'adresses IP bidon, mais cela faisait que leurs blocs étaient facilement repérés (je ne sais pas si cela permettait une subversion facile). Dans tous les cas, les administrateurs ont commencé à rediriger vers des adresses IP aléatoires. Cela a conduit certains utilisateurs chinois à obtenir du porno, au lieu de Facebook ou de VPN, apparemment.

Je soupçonne que l'une de vos adresses IP s'est avérée être un destinataire du trafic chinois bloqué - d'où vous voyez des agents utilisateurs Facebook IPI.

Cela signifie que la vérification de l'en-tête d'hôte doit être bonne. La plupart des agents utilisateurs prennent en charge SNI ces jours-ci, vous devriez donc être en mesure de supprimer le trafic sans en-tête d'hôte avec une impunité relative.

Modifier: http://www.infosecurity-magazine.com/news/great-firewall-upgrade-redirects/

Tom Newton
la source
4

Comment savoir quel serveur DNS ces clients utilisent?

Contactez Chinanet et demandez? Sérieusement, le DNS est configurable côté client. La plupart des gens obtiennent des paramètres DNS via DHCP, mais OpenDNS et l'offre DNS de Google n'auraient pas de modèle commercial si vous ne pouviez pas les modifier.

Est-il possible de déterminer si une demande HTTP provient d'un VPN?

Pas vraiment, sauf que l'IP serait du VPN, pas de l'utilisateur final en Chine.

Que se passe-t-il vraiment ici?

Cela, je ne peux pas vous le dire, mais il y a peut-être une sorte de mauvaise configuration dans le grand pare-feu de Chine ?

Katherine Villyard
la source