欺骗性DNS的数据分析

远程名称服务器(我没有权限)会间歇性地使用欺骗地址进行响应。 我想监视这个服务器并收集关于欺骗响应的数据以供分析我应该怎么做呢?

我基本上想要查询一个已知的域,将其与已知的IP地址进行比较,并logging数据。 我打算想象服务器响应欺骗与合法的时间 – 以及这种行为的模式。

我希望有工具随时可以做到这一点,但我可以做一些python / sql如果需要的话。 请指教。

例:

google.comAlogging查询将返回195.22.26.248

显然不是谷歌地址

我假设你知道你在说什么,当你说它是一个单一的DNS服务器。 我怀疑,因为你没有分享你的方法来确定这一点,但我的答案将作为一个给定的信息是准确的。

通常你会执行一个查询,查看观察到的TTL,并在TTL过期后再次查询。 你会继续这个,直到达到预定的采样周期,比较好的答案和坏的答案。

不幸的是,这里的操作词是“正常的”。 你正在寻找一个确定性的答案,但是一旦服务器被攻破,很难得到这样的答案,在大多数情况下,你必须抛出逻辑,直到你知道漏洞利用方法的具体细节。

  • 考虑到你的另一个安全问题。更有可能的是,服务器软件本身已经被攻破,而不是被伪造的答案轰炸的结果。
  • 欺骗数据包的轰炸总是会在TTL上循环,但其他方法可能会在TTL窗口过期之前不可预知地改变应答。 在后一种情况下,除非您100%确定要处理单个服务器而不处理VIP后面的服务器场,否则很难判断更改是否需要刷新。 在后一种情况下,TTL将会相当一致。

长话短说,你为一个不属于你自己的问题投入了大量的工作,而且由于你不拥有它,你很less有办法确保你收集的信息提供了一个有用的结论。 (除了原始数据比例的学术演习:一段时间以来的不好回复,这将把这个问答转化为我们在这个SE网站上所诟病的那些“给我们编码”问题之一)

您可以在大多数Linux系统上使用bash dig www.example.com进行DNS查找,输出可以根据您希望的详细数量进行自定义。 您可以将已知的良好输出保存到文件中,然后使用diff比较结果。 可以通过从dig输出中提取所需的信息来执行日志logging,然后使用日志文件或数据库以任何格式保存日志。 使用date +%s你可以得到一个unix时间戳添加到日志,这使得日志中的一个时间范围在一个单一的值上进行整数比较。