Frage Mysteriöser fehlgeleiteter chinesischer Verkehr: Wie kann ich herausfinden, welcher DNS-Server eine HTTP-Anfrage verwendet?


In der letzten Woche habe ich einen riesigen Datenverkehr von einer großen Anzahl chinesischer IP-Adressen bekommen. Dieser Verkehr scheint von normalen Leuten zu stammen und ihre HTTP-Anfragen deuten darauf hin, dass sie denken, ich bin:

  • Facebook
  • Die Piratenbucht
  • verschiedene BitTorrent-Tracker,
  • Pornoseiten

All das klingt nach Dingen, für die Leute ein VPN verwenden würden. Oder Dinge, die die Chinesische Mauer wütend machen würden.

Zu den Benutzeragenten gehören Webbrowser, Android, iOS, FBiOSSDK, Bittorrent. Die IP-Adressen sind normale kommerzielle chinesische Anbieter.

Ich habe Nginx, das 444 zurückgibt, wenn der Host falsch ist oder der Benutzeragent offensichtlich falsch ist:

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

Ich kann jetzt mit der Ladung umgehen, aber es gab einige Ausbrüche von bis zu 2k / Minute. Ich möchte herausfinden, warum sie zu mir kommen und aufhören. Wir haben auch legitimen CN-Verkehr, also ist das Verbot von 1/6 des Planeten Erde keine Option.

Es ist möglich, dass seine bösartige und sogar persönliche, aber es kann nur ein falsch konfigurierter DNS drüben sein.

Meine Theorie ist, dass es ein falsch konfigurierter DNS-Server oder möglicherweise einige VPN-Dienste sind, die Menschen verwenden, um sich um Great Fire Wall.

Gegeben eine Client-IP-Adresse:

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"

Ich kann wissen:

descr:          CHINANET Guangdong province network
descr:          Data Communication Division
descr:          China Telecom
  • Wie kann ich herausfinden, welchen DNS-Server diese Kunden verwenden?
  • Gibt es trotzdem festzustellen, ob eine HTTP-Anfrage von einem VPN kommt?
  • Was geht hier wirklich vor?

24
2018-01-09 15:16


Ursprung


Ich habe dieses Problem bereits zuvor gesehen, da es sich dabei um das Ziel des Datenverkehrs handelt und der Verkehr, der für meinen Server bestimmt ist, an einen anderen Ort gesendet wird. Ich habe jedoch keine Antworten. Ich reduzierte die Auswirkungen des ersten Problems mit einer Firewall und die zweite mit einer Softwarelösung, die nur in unserer spezifischen Situation möglich war (unsere Software hat die Anfragen gestellt). Während des Anstiftens stellten wir fest, dass einige DNS-Server es ablehnen, sehr niedrige TTLs einzuhalten, und stattdessen das Ergebnis monatelang zwischenspeichern, was die Liste der Websites erklären könnte, für die Sie Zugriffe erhalten. - xofer
Überprüfen Sie auch diese Frage. Ich hatte das gleiche Problem serverfault.com/questions/656093/ ... Ich bin nur neugierig, warum ein ISP so etwas tun würde. Ich kann den Wert in nicht sehen. - Cha0s
Meiner Erfahrung nach sind dies Versuche, offene Web-Proxies zu finden. Einige Webserver können Sie anfordern irgendein URL; Ich wurde einmal angerufen, um mit einem solchen zu verhandeln, der seine (großzügige) monatliche Bandbreitenzuteilung überschritten hatte, bevor er überhaupt in Betrieb war. Eine Gruppe von Studenten am Nanjing Institute of Technology hatte entdeckt, dass sie HTTPS-Verbindungen herstellen und Anfragen stellen konnten irgendein Webseite, und waren so eifrig alle ihre Pornos hinter der Großen Firewall schleichen. Wenn Sie den angeforderten Inhalt nicht wirklich bedienen, sollten Sie in Ordnung sein. - MadHatter
Normalerweise, ja. Oben wurde nur ein Logbucheintrag zitiert, daher dachte ich, es wäre erwähnenswert; es ist nicht beabsichtigt, eine vollständige, durchdachte Antwort zu sein, oder ich hätte sie als eine eingereicht! - MadHatter
1. Haben Sie schon einmal versucht, die Systemadministratoren für eine registrierte Domain hier in den USA ausfindig zu machen? Wenn ja, wissen Sie, wie schwierig das sein kann. Ich kann mir vorstellen, dass es fast unmöglich ist, bei "Chinanet" nicht nur die richtige Person zu finden, mit der man spricht, sondern auch die richtige Person, die sich wirklich genug um Sie kümmert. - Michael Martinez


Antworten:


Es gibt eine theoretische Möglichkeit, den DNS-Resolver Ihrer Clients zu bestimmen, aber es ist ziemlich weit fortgeschritten und ich kenne keine Standard-Software, die das für Sie tun wird. Sie müssen dazu einen autoritativen DNS-Server zusätzlich zu Ihrem nginx ausführen.

Falls der HTTP-Host-Header falsch ist, sollten Sie ein Fehlerdokument bereitstellen und eine Anforderung an einen dynamisch erstellten, eindeutigen FQDN für jede Anforderung, die Sie in einer Datenbank protokollieren, einfügen. z.B.

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

Solange Chinas große Firewall diese Anfrage nicht bearbeitet und der Client das Dokument von diesem eindeutigen FQDN + URI anfordert, wird jede Anfrage eine neue DNS-Suche nach Ihrem autorisierenden DNS für example.com ergeben, wo Sie die IP des DNS-Resolver und später korrelieren dies mit Ihren dynamisch generierten URIs.


31
2018-01-09 16:02



Dies ist der gleiche Ansatz, den ich vorschlagen würde, obwohl ich glaube, dass eine andere Ebene von Domänen benötigt wird, um es zum Laufen zu bringen. Wenn die primäre Domäne ist example.com, würden Sie einen NS-Datensatz für eine Subdomäne wie z ns-detect.example.com. Dann würden Sie einen eindeutigen Namen unter diesem Domain-Namen erstellen, so wie die komplette Domain wäre e2665feebe35bc97aff1b329c87b87e7.ns-detect.example.com. - kasperd
Es ist ein interessanter Ansatz. Ich vermute jetzt, dass die Umleitung bewusst ist (weil ich nicht der Einzige bin, der das sieht). Also würde ich annehmen, dass die verschiedenen chinesischen DNS-Server nicht die Mühe machen würden, nach dem autoritativen DNS-Server zu suchen, um die Subdomain zu erhalten. Es würde keinen Sinn machen, das zu tun. - felix
Wenn sie einen Whitelisting-Ansatz verwenden, haben Sie wahrscheinlich recht. Wenn sie Blacklisting sind, gibt es eigentlich keinen Grund, warum sie nicht einen unschuldig aussehenden FQDN suchen sollte. Natürlich könnte dies auch ein Ergebnis von weit fortgeschrittenen Filtertechniken sein, als nur mit DNS-Antworten herumzuspielen. - r_3
+1 für kasperds Idee, eine Subdomain mit einem eigenen NS zu erstellen, um Protokolle getrennt von Ihrem normalen DNS zu behalten. Und es mit weniger Chancen zu tun, Ihre normalen Sachen zu vermasseln. Wenn Sie HTTP-Anfragen für Hostnamen sehen, die von niemandem in Ihrem DNS nachgeschlagen wurden, dann kennen Sie den DNS-Server, den Ihre schlechten Clients DNS-Antworten fälschen (und sie falsch machen, da sie diesen Verkehr wahrscheinlich an einen anderen Ort senden sollten) Vielleicht hat ein chinesischer Admin irgendwo eine IP Adresse in einer Config eingegeben? - Peter Cordes
Akzeptieren, weil seine Antworten die erste Frage am genauesten beantworten. Löst nicht wirklich, warum wir den Traffic bekommen, aber Stackexchange lässt keine vagen Fragen zu. - felix


Ich habe die großartige Firewall gehört, die verwendet wurde, um "blockierten" Verkehr auf eine Handvoll gefälschter IPs umzuleiten, aber dies führte dazu, dass ihre Blöcke leicht zu erkennen waren (ich bin mir nicht sicher, ob dies eine leichte Subversion erlaubte). In jedem Fall haben die Administratoren begonnen, auf zufällige IPs umzuleiten. Dies hat dazu geführt, dass einige chinesische Nutzer Pornos anstelle von Facebook oder vpns bekommen.

Ich vermute, eine Ihrer IPs hat sich als Empfänger von blockiertem chinesischen Verkehr erwiesen - daher sehen Sie Facebook IPI User Agents.

Dies bedeutet, dass die Host-Header-Prüfung eine gute sein sollte. Die meisten Benutzeragenten unterstützen SNI heutzutage, so dass Sie in der Lage sein sollten, No-Host-Header-Datenverkehr mit relativer Straffreiheit zu löschen.

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


5
2018-01-13 20:46





Wie kann ich herausfinden, welchen DNS-Server diese Kunden verwenden?

Kontaktieren Sie Chinanet und fragen Sie? Im Ernst, DNS ist auf der Client-Seite konfigurierbar. Die meisten Leute erhalten DNS-Einstellungen über DHCP, aber OpenDNS und das DNS-Angebot von Google hätten kein Geschäftsmodell, wenn sie nicht geändert werden könnten.

Gibt es trotzdem festzustellen, ob eine HTTP-Anfrage von einem VPN kommt?

Nicht wirklich, außer dass die IP vom VPN wäre, nicht der Endbenutzer in China.

Was geht hier wirklich vor?

Das kann ich dir nicht sagen, aber vielleicht gibt es eine Art Fehlkonfiguration die Große Firewall von China?


4
2018-01-09 15:26