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

24

Na semana passada, recebi um fluxo enorme de tráfego de uma ampla variedade de endereços IP chineses. Esse tráfego parece ser de pessoas normais e seus pedidos de HTTP indicam que eles acham que eu sou:

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

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

Os agentes de usuários incluem navegadores da web, Android, iOS, FBiOSSDK, Bittorrent. Os endereços IP são provedores comerciais chineses normais.

Eu tenho o Nginx retornando 444 se o host estiver incorreto ou o agente do usuário estiver 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 rajadas de até 2k / minuto. Eu quero descobrir por que eles estão vindo para mim e pará-lo. Também temos tráfego CN legítimo, portanto, proibir 1/6 do planeta Terra não é uma opção.

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

Minha teoria é que é um servidor DNS mal configurado ou possivelmente alguns serviços de 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"

Agora eu posso:

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 é proveniente de uma VPN?
  • O que realmente está acontecendo aqui ?
felix
fonte
5
Já vi esse problema muito antes, sendo o alvo do tráfego e o tráfego destinado ao meu servidor enviado para outro lugar. Eu não tenho nenhuma resposta embora. Reduzi o impacto do primeiro problema com um firewall e o segundo com uma solução de software que só era possível em nossa situação específica (nosso software fazia as solicitações). No processo de instigação, descobrimos que alguns servidores DNS se recusam a respeitar TTLs muito baixos, armazenando em cache o resultado por meses, o que pode explicar a lista de sites pelos quais você está recebendo tráfego.
xofer
1
Verifique também esta pergunta. Eu tive o mesmo problema serverfault.com/questions/656093/… Só estou curioso para saber por que um ISP faria algo assim. Eu não posso ver o valor em no.
Cha0s
4
Na minha experiência, essas são tentativas de encontrar proxies da web abertos. Alguns servidores da Web permitem que você solicite qualquer URL; Certa vez, fui chamado para lidar com uma delas, que havia excedido sua alocação de largura de banda mensal (generosa) antes mesmo de estar em serviço. Vários estudantes do Instituto de Tecnologia de Nanjing descobriram que podiam fazer conexões HTTPS com ele e solicitar qualquer página da Web, e, assim, estavam escondendo ansiosamente toda a sua pornografia após o Grande Firewall. Se você não está realmente veiculando o conteúdo solicitado, deve ficar bem.
MadHatter apoia Monica
1
Geralmente sim. Apenas uma entrada de log foi citada acima, então achei que vale a pena mencionar; não pretende ser uma resposta completa e pensada, ou eu a enviaria como uma!
MadHatter apoia Monica
1
1. Você já tentou procurar os administradores de sistema de um domínio registrado aqui nos EUA? Se sim, você sabe o quão difícil isso pode ser. Eu imagino que seja quase impossível encontrar não apenas a pessoa certa para conversar em "Chinanet", mas também a pessoa certa que realmente se importa o suficiente para ajudá-lo.
Michael Martinez

Respostas:

31

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

Caso o cabeçalho do Host HTTP esteja incorreto, envie 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

Desde que o ótimo firewall da China não mexa com essa solicitação e o cliente solicite o documento desse URI FQDN + URI exclusivo, cada solicitação resultará em uma nova pesquisa de DNS no seu DNS autoritativo, por exemplo.com, onde é possível registrar o IP do O resolvedor de DNS e, posteriormente, correlaciona isso com seus URIs gerados dinamicamente.

r_3
fonte
6
Essa é a mesma abordagem que eu sugeriria, embora eu ache que outro nível de domínios seja necessário para fazê-lo funcionar. Se o domínio principal for example.com, você criaria um registro NS para um subdomínio, como ns-detect.example.com. Em seguida, você criaria um nome exclusivo abaixo desse nome de domínio, como seria o domínio completo e2665feebe35bc97aff1b329c87b87e7.ns-detect.example.com.
kasperd
1
É uma abordagem interessante. Agora estou suspeitando que o redirecionamento é deliberado (porque não sou o único a ver isso). Portanto, eu presumiria que os vários servidores DNS chineses não se incomodariam em fazer uma pesquisa no autoritário para obter o subdomínio. Não faria sentido para eles fazerem isso.
Felix
Se eles usam uma abordagem da lista de permissões, você provavelmente está certo. Se eles estão na lista negra, na verdade não há razão para que não deva procurar um FQDN de aparência inocente. Obviamente, isso também pode resultar de técnicas de filtragem muito mais avançadas do que apenas brincar com as respostas do DNS.
r_3
1
+1 para a idéia de Kasperd de criar um subdomínio com seu próprio NS, para manter os registros separados do DNS normal. E fazê-lo com menos chance de estragar suas coisas normais. Se você vir solicitações http para nomes de host que não foram procurados no seu DNS por ninguém, então você sabe que o servidor DNS que seus clientes ruins estão usando está forjando respostas DNS (e entendendo errado, pois eles provavelmente pretendiam enviar esse tráfego para outro lugar) Talvez um administrador chinês em algum lugar digitou um endereço IP em uma configuração?).
Peter Cordes
Aceitando porque responde a primeira pergunta com mais precisão. Realmente não resolve o motivo pelo qual obtemos tráfego, mas o stackexchange não permite perguntas vagas.
Felix
5

Eu ouvi o ótimo firewall usado para redirecionar o tráfego "bloqueado" para um punhado de IPs falsos, mas isso estava fazendo com que seus blocos fossem facilmente detectados (não tenho certeza se isso permitia uma subversão fácil). De qualquer forma, 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.

Eu suspeito que um de seus IPs acabou sendo um destinatário de tráfego chinês bloqueado - portanto, você está vendo agentes de usuários de IPI do Facebook.

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

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

Tom Newton
fonte
4

Como posso descobrir qual servidor DNS esses clientes estão usando?

Entre em contato com a 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 o OpenDNS e a oferta de DNS do Google não teriam um modelo de negócios se você não pudesse alterá-las.

Existe alguma maneira de determinar se uma solicitação HTTP é proveniente de uma VPN?

Na verdade, não, exceto que o IP seria da VPN, não do usuário final na China.

O que realmente está acontecendo aqui ?

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

Katherine Villyard
fonte