Tráfego chinês mal direcionado e misterioso: como posso descobrir qual servidor DNS uma solicitação HTTP usou?

24

Durante a semana passada, recebi um enorme fluxo de tráfego de uma ampla gama de endereços IP chineses. Este tráfego parece ser de pessoas normais e suas solicitações HTTP indicam que eles acham que sou:

  • Facebook
  • O Pirate Bay
  • vários rastreadores de BitTorrent,
  • sites pornográficos

Tudo isso soa como coisas para as quais as pessoas usariam uma VPN. Ou coisas que fariam a Grande Muralha da China ficar com raiva.

User-agents incluem navegadores da web, Android, iOS, FBiOSSDK, Bittorrent. Os endereços IP são provedores chineses comerciais normais.

Eu tenho o Nginx retornando 444 se o host está incorreto ou o agente do usuário está obviamente errado:

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

Eu posso lidar com a carga agora, mas houve algumas explosões de até 2k / minuto. Eu quero descobrir porque eles estão vindo para mim e parem com isso. Nós também temos o tráfego legítimo da CN, então proibir 1/6 do planeta Terra não é uma opção.

É possível que seja malicioso e até mesmo pessoal, mas pode ser um DNS mal configurado por aí.

Minha teoria é que é um servidor DNS mal configurado ou possivelmente alguns serviços VPN que as pessoas estão usando para contornar o Great Fire Wall.

Dado um endereço IP do cliente:

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"

Eu posso saber:

descr:          CHINANET Guangdong province network
descr:          Data Communication Division
descr:          China Telecom
  • Como posso descobrir qual servidor DNS esses clientes estão usando?
  • Existe alguma maneira de determinar se uma solicitação HTTP está vindo de uma VPN?
  • O que realmente está acontecendo aqui?
por felix 09.01.2015 / 16:16

3 respostas

31

Existe uma maneira teórica de determinar o resolvedor de DNS de seus clientes, mas é bastante avançado e eu não conheço nenhum software padrão que faça isso para você. Você com certeza precisará executar um servidor DNS autoritativo para isso além do seu nginx.

Caso o cabeçalho do host HTTP esteja incorreto, exiba um documento de erro e inclua uma solicitação para um FQDN exclusivo, criado dinamicamente, para cada solicitação registrada em um banco de dados. por exemplo.

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

Enquanto o firewall grande da Chinas não mexer com essa solicitação e o cliente solicitar o documento a partir desse FQDN + URI exclusivo, cada solicitação resultará em uma nova pesquisa de DNS no DNS autoritativo de example.com, onde você poderá registrar a solicitação. IP do resolvedor DNS e depois correlacionar isso com seus URIs gerados dinamicamente.

    
por 09.01.2015 / 17:02
5

Eu ouvi o ótimo firewall usado para redirecionar o tráfego "bloqueado" para um punhado de IPs falsos, mas isso estava causando a fácil identificação de seus blocos (não tenho certeza se isso permitiu uma subversão fácil). Em qualquer caso, os administradores começaram a redirecionar para IPs aleatórios. Isso levou alguns usuários chineses a obter pornografia, em vez de facebook ou vpns, aparentemente.

Suspeito que um dos seus IPs se tornou um destinatário do tráfego chinês bloqueado - por isso você está vendo agentes de usuários do IPI do Facebook.

Isso significa que a verificação do cabeçalho do host deve ser boa. Atualmente, a maioria dos agentes de usuários suportam o SNI, portanto, você deve ser capaz de eliminar o tráfego sem cabeçalho de host com relativa impunidade.

Editar: link

    
por 13.01.2015 / 21:46
4

How can I find out what DNS server those customers are using ?

Entre em contato com Chinanet e pergunte? Sério, o DNS é configurável no lado do cliente. A maioria das pessoas obtém configurações de DNS via DHCP, mas a oferta de DNS do OpenDNS e do Google não teria um modelo de negócios se você não pudesse alterá-las.

Is there anyway to determine if an HTTP request is coming from a VPN ?

Não realmente, exceto que o IP seria da VPN, não o usuário final na China.

What is really going on here ?

Isso eu não posso te dizer, mas talvez haja algum tipo de configuração incorreta no Grande Firewall da China ?

    
por 09.01.2015 / 16:26

Tags