0


【网络安全】网络防护之旅 - 解析VPN审查规避的DNS缓存监听之道

🌈个人主页:Sarapines Programmer
🔥 系列专栏:《网络安全之道 | 数字征程》
⏰墨香寄清辞:千里传信如电光,密码奥妙似仙方。 挑战黑暗剑拔弩张,网络战场誓守长。



😈1. 初识网络安全

网络安全的基本认识

网络安全是一门关注计算机系统和网络安全的专业学科。其首要任务是维护信息系统的核心价值,包括机密性、完整性和可用性,以对抗未经授权的访问、破坏、篡改或泄露的威胁。

核心职责:

  1. 访问控制与身份认证: 制定并实施强有力的访问控制策略,以确保只有授权用户能够获取敏感信息。
  2. 加密技术: 运用复杂的加密算法,保障数据在传输和存储中的安全性,从而抵御窃听和篡改的风险。
  3. 安全基础设施: 部署防火墙、入侵检测与防御系统等,构筑坚实的安全基础设施,为网络提供全方位的保护。

高级技术手段:

  1. 漏洞扫描与修复: 采用主动扫描技术,及时发现系统漏洞和弱点,迅速修复以预防可能的攻击。
  2. 恶意软件检测与清除: 运用先进的恶意软件检测技术,及时清除潜在威胁,确保系统的持续安全。
  3. 网络流量分析: 通过深度分析网络流量,察觉异常行为,提前识别潜在风险,从而及时采取防范措施。

挑战与创新:

随着信息技术的不断进步,网络安全面临着日益复杂和多样化的威胁。科研者通过持续创新,深入研究各种安全技术,努力构建更加健壮、智能的网络安全体系,以确保数字空间中的数据和系统能够在一个安全、稳定的环境中运行。


😈2.** DNS缓存窥探技术**

DNS缓存窥探是一项关注网络安全领域的技术,其目的在于发现和分析特定服务器中已缓存的DNS记录。尽管此技术通常并非用于侵犯个体用户隐私,但却可能被用于对服务进行攻击,以深入了解用户群体对该服务的使用方式。尽管DNS缓存窥探是一种已知技术,但鲜有学术研究专注于其深入分析。本文以科研规范为基础,探讨了DNS缓存窥探的实际应用和相关问题。

  • 不带递归查询的TTL: 首先介绍了一种通过将递归期望标志设置为0向DNS服务器进行查询的方法。该方法可用于确定特定域名查询是否被服务器缓存,并通过查询的TTL与最大DNS TTL设置之间的关系进行分析。
  • 使用递归查询的TTL4: 其次,提出了一种不依赖于递归期望标志的方法,等待缓存记录过期后,在查询之前等待一个不超过最大观察TTL的附加时间段。该方法基于知道服务器上每个记录的最大TTL,并介绍了相应的数据获取步骤。
  • 基于时间的方法: 最后,引入了基于时间的方法,该方法依赖于查询是否被缓存以及服务器是否必须对该域进行递归查找。此技术适用于访问频繁的域或活跃的DNS服务器,并能够识别频率微小差异。

这些方法的原理和适用性突显了DNS缓存窥探技术在网络安全领域的重要性,并提出了相应的解决方案和改进建议。

我深入研究了三个备受关注的订阅型VPN服务的内部DNS服务器,目的是评估它们在用户成功连接后对内部DNS请求和DNS缓存窥探的处理效果。所选VPN服务基于市场声望和广泛使用,实验时间跨度为2023年7月至10月,确保数据反映最新VPN状态。

实验要求客户端成功连接VPN服务后才能向内部DNS服务器发起请求,以模拟用户在网络中建立安全通道的过程。我全面测试了VPN服务的内部DNS服务器,并深入分析了其DNS缓存窥探,以全面了解用户在VPN连接状态下访问的域。

研究时间跨度数月,确保评估VPN服务时有足够的时间窗口捕捉潜在服务变化和性能波动。采用科研规范实验设计和详尽数据分析,目标是为用户提供关于这些知名VPN服务安全性和隐私保护方面的深刻了解,同时为网络安全研究领域提供新的见解和数据支持。

实验方法首先聚焦于1000个热门域名,来源于Majestic Million,排除了11个已过期或未启用的域名,确保总数为1000。进一步,对已知受审查的热门域名和特定语言的被审查域名进行了重复实验,采用了创新的语言分类方法,以确定域名与审查国家的直接相关性。在实验中,克服了技术挑战,如处理某些服务器和多个DNS服务器的情况。


🕵️‍♂️2.1 实验分析

在实验中,我进行了近600万次DNS查询,涉及大约2000个域名。其中,一些域名如Instagram.com被频繁访问,达到18378次点击,而其他一些域名如Risheha.com则只有1次点击。对数据集的初步分析包括将来自不同VPN的记录整合成一个大型数据集,并计算观察到的VPN中每个域名的访问频率。通过了解每个TTL到期的时间以及何时进行了刷新,我能够计算每个域名的总观察期。将这个期间除以总观察到的刷新次数,可以得到每个域名的平均刷新速率的估计。

对于每个域名,我计算在固定时间段内事件数量x的泊松到达率λ。在我最初的建模中,我选择泊松分布作为适用于计数数据建模的合适函数,假设到达率的方差和均值相等。如果我需要更具体地刻画流量特征,我可能会更喜欢更灵活的分布,如负二项分布,它允许过度离散,即到达率的方差大于λ。然而,对于我仅对每个域的查询平均到达率进行排名的受限应用,泊松分布是一个广泛使用且有效的近似。

然后,我根据“样本拉姆达”(观察到的平均到达率,与“真实”到达率不同)对每个域进行了排名。

我计算了每个的95%置信区间:


🕵️‍♂️2.2 域名讨论

图1显示了最常访问的域名。诸如twitter.com、instagram.com和weibo.com等热门社交网络站点在列表的前部具有很高的代表性。

图1. 最常访问的域名

在高频访问的域中,像steamcommunity.com和soundhound.com这样的例子需要定期刷新,分别是PC游戏应用和音频识别公司。类似的域还包括ew.com、airbnb.com和platform.twitter.com。

然而,在最常访问的域中,出现了一些意外的域,如securityfocus.com和gigaom.com,需要进一步调查。这些域似乎与应用程序无关,可能是由自动化的互联网研究工具定期刷新的。通过对这些组织的调查,发现它们可能是从事互联网研究和扫描的,其中Security Focus还提供可下载的工具。因此,推测其中一些扫描器或工具可能会定期"打电话回家"以进行信息共享。

图2. 最常访问的域名

图3. 最常访问的域名

该方法存在不确定性是其弱点之一。通过DNS缓存,难以准确确定查询的具体原因,可能是网络爬虫、热链接内容,或嵌入到其他页面的第三方内容或脚本导致的域名刷新。由此产生的后果是,这种技术仅在无其他用户使用时有效,若变得普遍将导致结果无意义。

然而,由于方法区分了父域和子域,揭示了自动请求和人工请求之间的差异,带来了有趣的发现。例如,platform.twitter.com的访问频率远高于twitter.com,反映了与应用程序或工具相关的域名相比仅手动访问的域名更频繁的模式。

一些热门域名通过VPN的访问频率也引发了惊讶。尽管有几个域名的平均刷新周期为20秒或更短,但这一情况迅速下降。在整个数据集中,只有前20个访问频率最高的域名的平均刷新周期少于60秒。中国访问频率最高的域名包括一些已知在该地区被封锁的社交网络站点和一些新闻或信息分享站点。

图4. 最常访问的域名

图5. 最常访问的域名

在特定语言分析中,只有中国和伊朗阻止了大量本地语言网站,而印度尼西亚和土耳其主要阻止其他语言编写的域名。特定语言域名的访问频率大多相对较低,但也有一些突出的例外。

在图4中,伊朗阻止的波斯语域名中,radiofarda.com 刷新频率高,平均每150秒刷新一次,点击量达到3000次。Radio Farda是由美国政府资助的自由欧洲电台/自由电台的波斯语频道。同样,在图5中,voachinese.com 是中国刷新频率最高的被屏蔽的特定语言域名,由美国之音运营。尽管这些域名在目标国家被屏蔽,但它们仍然经常被访问,可能是因为使用VPN的用户更有可能为了访问被屏蔽的内容。


🕵️‍♂️2.3 研究记录

声明:

下面示范的简单的C语言程序是一个模拟程序,仅用于教育目的,不可用于任何违法用途。

示例程序:该示例程序通过模拟DNS请求和响应的过程,尝试绕过VPN审查。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void send_dns_request(const char *domain) {
    // 模拟DNS请求的发送,此处省略具体实现
    printf("Sending DNS request for: %s\n", domain);
}

void receive_dns_response() {
    // 模拟DNS响应的接收,此处省略具体实现
    printf("Received DNS response\n");
}

void bypass_vpn_censorship(const char *bypassed_domain) {
    // 发送正常DNS请求
    send_dns_request(bypassed_domain);
    
    // 接收DNS响应
    receive_dns_response();
    
    // 模拟VPN审查规避,使用相似的域名
    char alternative_domain[256];
    strcpy(alternative_domain, bypassed_domain);
    strcat(alternative_domain, "-vpn-bypassed.com");

    // 发送绕过VPN审查的DNS请求
    send_dns_request(alternative_domain);

    // 接收绕过VPN审查的DNS响应
    receive_dns_response();
}

int main() {
    // 要绕过VPN审查的域名
    const char *blocked_domain = "blocked-website.com";

    // 绕过VPN审查
    bypass_vpn_censorship(blocked_domain);

    return 0;
}

🕵️‍♂️2.4 实验结论

  • 方法选择与发现:- 使用DNS缓存窥探作为实用方法,通过三种不同形式的DNS缓存窥探,发现基于DNS记录的TTL的缓存窥探能够稳定而一致地揭示关于服务器上DNS记录缓存状态和访问频率的信息。
  • VPN提供商内部DNS服务器分析:- 运用该方法分析了几个VPN提供商的内部DNS服务器,揭示了这些VPN提供商在逃避审查和监控方面的实际应用情况。- 通过观察域名记录刷新所需的时间,计算了每个域名的总体访问频率,特别关注了热门域名以及在中国、印度尼西亚、伊朗和土耳其等国受审查的域名。
  • 审查和屏蔽情况分析:- 在调查过程中,发现了两个国家,中国和伊朗,屏蔽了大量使用其主要语言编写的网站,呈现了VPN服务在规避国家审查和监控方面的实际效果。

📝总结

🌐网络安全宛如一片汹涌激流,引领你豁然踏入数字领域的未知边界。这不是平凡的学习之旅,始于初级概念和实验布局,逐步启示更深层次的网络协议、编程魔法以及系统设计的神秘奥妙。

渴望迎接网络安全的学习挑战,征服数字世界的技术高峰?欢迎融入我们的社群,共同探讨更多可能性。我们倾心打造了备受瞩目的网络安全🔐 系列专栏✨:《网络安全之道 | 数字征程》,旨在深度揭示网络安全技术的实战精髓和前沿创新。让我们一同翻开网络安全之谜的篇章,探索这个数字世界中的新奇可能性。🔍

标签: web安全 缓存 DNS

本文转载自: https://blog.csdn.net/m0_57532432/article/details/134877151
版权归原作者 Sarapines Programmer 所有, 如有侵权,请联系我们删除。

“【网络安全】网络防护之旅 - 解析VPN审查规避的DNS缓存监听之道”的评论:

还没有评论