神秘的误导中文流量:如何找出HTTP请求使用的DNS服务器?


24

在过去的一周中,我从各种各样的中文IP地址获得了大量的流量。此流量似乎来自正常人,他们的HTTP请求表明他们认为我是:

  • 脸书
  • 海盗湾
  • 各种BitTorrent跟踪器,
  • 色情网站

所有这些听起来都像人们会使用VPN一样。否则会让中国长城生气的事情。

用户代理包括Web浏览器,Android,iOS,FBiOSSDK,Bittorrent。IP地址是普通的中国商业提供商。

如果主机不正确或用户代理明显错误,我会让Nginx返回444:

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

我现在可以处理负载了,但是有些突发高达2k / min。我想找出他们为什么要来找我并阻止它。我们也有合法的CN流量,因此禁止选择地球的1/6。

它可能是恶意的,甚至是个人的,但那可能是那边配置错误的DNS。

我的理论是,它的DNS服务器配置错误,或者可能是人们用来绕过Great Fire Wall的某些VPN服务。

给定客户端IP地址:

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"

我知道:

descr:          CHINANET Guangdong province network
descr:          Data Communication Division
descr:          China Telecom
  • 我如何找出这些客户使用的DNS服务器?
  • 无论如何,是否可以确定HTTP请求是否来自VPN?
  • 这到底是怎么回事?

5
我以前曾经看到过这个问题,既是流量的目标,又是将要发送给我的服务器的流量发送到其他地方。我没有任何答案。我减少了第一个问题与防火墙的影响,第二个问题与仅在我们特定情况下(我们的软件正在发出请求)才有可能的软件解决方案的影响。在进行激励的过程中,我们发现某些DNS服务器拒绝遵守非常低的TTL,而是将结果缓存了几个月,这可能解释了您访问流量的站点列表。
xofer 2015年

1
还要检查这个问题。我遇到了同样的问题serverfault.com/questions/656093/…我很好奇为什么ISP会做类似的事情。我看不出在值。
Cha0s

4
以我的经验,这些都是寻找开放式Web代理的尝试。某些Web服务器将允许您请求任何 URL。我曾经被要求处理这样一种情况,在它投入使用之前,它已经超出了(慷慨的)每月带宽分配。南京理工大学的一群学生发现,他们可以与之建立HTTPS连接并请求任何网页,因此,他们的所有色情内容都热切地越过了防火墙。如果您实际上没有提供所请求的内容,则应该没问题。
MadHatter在2015年

1
通常是的。上面仅引用了一个日志条目,因此我认为值得一提。它不是一个完整的,经过深思熟虑的答案,或者我已经将其提交为一个答案!
MadHatter在2015年

1
1.您是否曾经尝试过在美国这里寻找注册域的系统管理员?如果是这样,您知道那会是多么困难。我想它几乎不可能,不仅在“ Chinanet”上找到合适的人与之对话,而且还找到实际上在乎足以帮助您的合适的人。
Michael Martinez 2015年

Answers:


31

确定客户的DNS解析器的方法有一种理论上的方法,但是它相当先进,我不知道有任何现成的软件可以为您做到这一点。除了nginx之外,您还必须为此运行权威的DNS服务器。

如果HTTP Host标头不正确,请提供一个错误文档,并为您登录到数据库的每个请求提供对动态创建的唯一FQDN的请求。例如。

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

只要中国的大型防火墙没有处理该请求,并且客户端从该唯一的FQDN + URI请求文档,每个请求都将导致对您的权威DNS进行新的DNS查找,例如example.com,您可以在其中记录IP地址。 DNS解析器,以后将其与您动态生成的URI相关联。


6
我建议使用相同的方法,尽管我认为需要其他级别的域才能使其工作。如果主域是example.com,则可以为一个子域(例如)创建NS记录ns-detect.example.com。然后,您将在该域名下创建一个唯一名称,这样完整的域名将是e2665feebe35bc97aff1b329c87b87e7.ns-detect.example.com
卡巴斯德(Kasperd),2015年

1
这是一个有趣的方法。我现在怀疑重定向是故意的(因为我不是唯一看到此重定向的人)。因此,我假设各种中文DNS服务器都不会费心查找权威服务器来获取子域。他们这样做是没有意义的。
felix

如果他们使用列入白名单的方式,那么您可能是对的。如果他们将其列入黑名单,则实际上没有理由不应该查找无辜的FQDN。当然,这也可能是采用更先进的过滤技术的结果,而不仅仅是使用DNS响应。
r_3 2015年

1
+1代表kasperd的想法,即使用自己的NS来创建子域,以使该日志与普通DNS分开。并尽可能减少搞砸普通物品的机会。如果看到有人没有在DNS中查找对主机名的http请求,则说明您的恶意客户端使用的DNS服务器正在伪造DNS响应(并且弄错了,因为它们可能意味着将流量发送到其他地方) 。也许某个地方的中文管理员在配置中输入了IP地址?)。
彼得·科德斯

接受因为它最准确地回答了第一个问题。并不能真正解决我们为什么获得流量的问题,但是stackexchange不允许出现模糊的问题。
felix

5

我听说过很棒的防火墙,用于将“被阻止的”流量重定向到少数几个伪造IP,但这使它们的块很容易被发现(我不确定是否允许轻松颠覆)。无论如何,管理员都已开始重定向到随机IP。显然,这导致了一些中国用户获得了色情,而不是脸书或vpn。

我怀疑您的一个IP原来是被阻止的中国流量的接收者-因此您看到了Facebook IPI用户代理。

这意味着主机头检查应该是一个很好的检查。如今,大多数用户代理都支持SNI,因此您应该能够相对不受惩罚地丢弃无主机头流量。

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


4

我如何找出这些客户使用的DNS服务器?

联系Chinanet并询问?认真地说,DNS是可在客户端配置的。大多数人都通过DHCP获得DNS设置,但是如果您无法更改,OpenDNS和Google的DNS产品将不会具有商业模式。

无论如何,是否可以确定HTTP请求是否来自VPN?

并非如此,只是IP是VPN的,而不是中国的最终用户。

这到底是怎么回事?

我不能告诉你,但是中国的防火墙可能存在某种错误的配置?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.