Geheimnisvoller fehlgeleiteter chinesischer Datenverkehr: Wie kann ich herausfinden, welchen DNS-Server eine HTTP-Anfrage verwendet hat?

24

In der vergangenen Woche habe ich einen riesigen Datenverkehr von einer Vielzahl chinesischer IP-Adressen erhalten. Dieser Datenverkehr scheint von normalen Personen zu stammen, und ihre HTTP-Anfragen weisen darauf hin, dass sie meinen, ich sei:

  • 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 verärgern würden.

Benutzerprogramme umfassen Webbrowser, Android, iOS, FBiOSSDK und Bittorrent. Die IP-Adressen sind normale kommerzielle chinesische Anbieter.

Nginx gibt 444 zurück, 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 Last umgehen, aber es gab einige Ausbrüche von bis zu 2k / Minute. Ich möchte herausfinden, warum sie zu mir kommen und es aufhalten. Wir haben auch legitimen CN-Verkehr, daher ist ein Verbot von 1/6 des Planeten Erde keine Option.

Es ist möglich, dass es böswillig und sogar persönlich ist, aber es kann einfach ein falsch konfigurierter DNS sein.

Meiner Theorie nach handelt es sich um einen falsch konfigurierten DNS-Server oder möglicherweise um einige VPN-Dienste, mit denen die Leute die Great Fire Wall umgehen.

Angesichts einer 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 zu bestimmen, ob eine HTTP-Anfrage von einem VPN kommt?
  • Was ist hier wirklich los?
felix
quelle
5
Ich habe dieses Problem schon einmal gesehen, da es sowohl Ziel des Datenverkehrs als auch für meinen Server bestimmter Datenverkehr ist, der an einen anderen Ort gesendet wird. Ich habe jedoch keine Antworten. Ich reduzierte die Auswirkungen des ersten Problems mit einer Firewall und des zweiten mit einer Softwarelösung, die nur in unserer spezifischen Situation möglich war (unsere Software stellte die Anforderungen). Bei der Initiierung haben wir festgestellt, dass einige DNS-Server sehr niedrige TTLs nicht einhalten, sondern das Ergebnis monatelang zwischenspeichern. Dies könnte die Liste der Websites erklären, für die Sie Traffic erhalten.
Xofer
1
Ü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
4
Nach meiner Erfahrung handelt es sich hierbei um Versuche, offene Web-Proxys zu finden. Bei einigen Webservern können Sie eine beliebige URL anfordern . Ich wurde einmal angerufen, um mich mit einem solchen Problem zu befassen, das die (großzügige) monatliche Bandbreitenzuweisung überschritten hatte, bevor es überhaupt in Betrieb war. Eine Gruppe von Studenten am Nanjing Institute of Technology hatte herausgefunden, dass sie HTTPS-Verbindungen herstellen und jede Webseite anfordern konnten , und schlich sich so eifrig all ihre Pornos an der Great Firewall vorbei. Wenn Sie den angeforderten Inhalt nicht tatsächlich bereitstellen, sollte es Ihnen gut gehen.
MadHatter unterstützt Monica am
1
Normalerweise ja. Nur ein Logeintrag wurde oben zitiert, deshalb fand ich es erwähnenswert; Es ist nicht beabsichtigt, eine vollständige, durchdachte Antwort zu sein, oder ich hätte es als eine eingereicht!
MadHatter unterstützt Monica am
1
1. Haben Sie jemals versucht, die Sysadmins für eine registrierte Domain hier in den USA zu finden? Wenn ja, wissen Sie, wie schwierig das sein kann. Ich stelle mir vor, dass es so gut wie unmöglich ist, nicht nur die richtige Person für ein Gespräch bei "Chinanet" zu finden, sondern auch die richtige Person, die sich tatsächlich genug um Sie kümmert.
Michael Martinez

Antworten:

31

Es gibt einen theoretischen Weg, den DNS-Resolver Ihrer Clients zu bestimmen, aber er ist ziemlich weit fortgeschritten, und ich kenne keine Standard-Software, die das für Sie erledigt. Dazu müssen Sie auf jeden Fall zusätzlich zu Ihrem Nginx einen autorisierenden DNS-Server ausführen.

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

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

Solange Chinas große Firewall nicht mit dieser Anfrage herumspielt und der Client das Dokument von diesem eindeutigen FQDN + URI anfordert, führt jede Anfrage zu einer neuen DNS-Suche zu Ihrem autorisierenden DNS für example.com, wo Sie die IP von protokollieren können DNS-Resolver und später korrelieren dies mit Ihren dynamisch generierten URIs.

r_3
quelle
6
Dies ist der gleiche Ansatz, den ich vorschlagen würde, obwohl ich denke, dass eine andere Ebene von Domänen erforderlich wäre, damit es funktioniert. Wenn die primäre Domäne ist example.com, würden Sie einen NS-Eintrag für eine Unterdomäne wie erstellen ns-detect.example.com. Dann würden Sie einen eindeutigen Namen unter diesem Domain-Namen erstellen, beispielsweise die vollständige Domain e2665feebe35bc97aff1b329c87b87e7.ns-detect.example.com.
Kasperd
1
Es ist ein interessanter Ansatz. Ich vermute jetzt, dass die Umleitung absichtlich ist (weil ich nicht der einzige bin, der dies sieht). Ich würde also davon ausgehen, dass die verschiedenen chinesischen DNS-Server sich nicht die Mühe machen, nach dem autorisierenden zu suchen, um die Unterdomäne zu erhalten. Es würde für sie keinen Sinn ergeben, dies zu tun.
Felix
Wenn sie einen Whitelist-Ansatz verwenden, haben Sie wahrscheinlich Recht. Wenn sie auf der schwarzen Liste stehen, gibt es eigentlich keinen Grund, warum sie keinen unschuldig aussehenden FQDN nachschlagen sollten. Dies könnte natürlich auch auf fortgeschrittenere Filtertechniken zurückzuführen sein, als nur mit DNS-Antworten herumzuspielen.
r_3
1
+1 für die Idee von Kasperd, eine Unterdomäne mit einem eigenen NS zu erstellen, um die Protokolle dafür von Ihrem normalen DNS zu trennen. Und das mit einer geringeren Wahrscheinlichkeit, Ihre normalen Sachen zu vermasseln. Wenn Sie HTTP-Anforderungen für Hostnamen sehen, die von niemandem in Ihrem DNS nachgeschlagen wurden, dann wissen Sie, dass der DNS-Server, den Ihre fehlerhaften Clients verwenden, DNS-Antworten fälscht (und sie falsch verstehen, da sie diesen Datenverkehr wahrscheinlich an einen anderen Ort senden wollten Vielleicht hat ein chinesischer Administrator irgendwo eine IP-Adresse in einer Konfiguration eingegeben?).
Peter Cordes
Akzeptieren, weil es die erste Frage am genauesten beantwortet. Löst nicht wirklich, warum wir den Datenverkehr bekommen, aber Stapelaustausch lässt keine vagen Fragen zu.
Felix
5

Ich habe gehört, dass die großartige Firewall den "blockierten" Datenverkehr auf eine Handvoll gefälschter IP-Adressen umleitet, aber dies führte dazu, dass ihre Blöcke leicht erkannt wurden (ich bin mir nicht sicher, ob dies eine einfache Subversion ermöglichte). In jedem Fall haben die Administratoren damit begonnen, auf zufällige IP-Adressen umzuleiten. Dies hat offenbar dazu geführt, dass einige chinesische Benutzer Pornos anstatt von Facebook oder VPNs erhalten.

Ich vermute, dass sich eine Ihrer IPs als Empfänger blockierten chinesischen Datenverkehrs herausgestellt hat - daher sehen Sie IPI-Benutzeragenten auf Facebook.

Dies bedeutet, dass die Host-Header-Prüfung gut sein sollte. Die meisten Benutzeragenten unterstützen heutzutage SNI. Sie sollten daher in der Lage sein, den Datenverkehr ohne Host-Header relativ ungestraft zu beenden.

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

Tom Newton
quelle
4

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

Kontaktieren Sie Chinanet und fragen Sie? Im Ernst, DNS kann auf der Clientseite konfiguriert werden. Die meisten Leute erhalten DNS-Einstellungen über DHCP, aber OpenDNS und das DNS-Angebot von Google hätten kein Geschäftsmodell, wenn Sie diese nicht ändern könnten.

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

Nicht wirklich, außer dass die IP vom VPN stammt, nicht vom Endbenutzer in China.

Was ist hier wirklich los?

Das kann ich Ihnen nicht sagen, aber vielleicht gibt es eine Art von Fehlkonfiguration in der Great Firewall of China ?

Katherine Villyard
quelle