基于域名重定向的微信域名检测拦截技术
发布于 4 年前 作者 leiyong 3512 次浏览 来自 分享

由于业务或工作需要在微信进行推广和宣传,微信域名中基于Web页面的服务存在巨大的网络安全隐患。网络中的DNS(Domain Name System)数据内容中含有大量与Web应用有关的信息,例如接口;通过检测DNS数据内容可以高效地发现、定位、解决Web页面安全问题,降低域名在微信中被误判为非安全页面。作为一名程序猿,基于域名重定向的微信域名检测技术实现过程和设计方案的一些研究成果。

域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,它提供域名和IP地址之间的转换及有关电子邮件的选择信息。域名是Internet上某一台计算机或计算组的名称,用于在数据传输时标识计算机的电子方位。域名是由一串用点分隔的名字组成,通常包含组织名,而且始终包含两到三个的后缀,以指明组织的类型或该域所在的国家或地区。

在微信中点击链接时,首先通过向域名系统发送域名查询报文,获得域名的IP地址,然后去访问此IP地址上的Web服务器。通过劫持域名查询报文,并伪造域名响应报文,将此可疑域名重定向到某一个安全网站,从而实现了微信域名拦截。

DNS域名重定向原理

设计方案

如图所示,主机 1、2、3、4 代表一个局域网中的电脑(如微信平台),通过交换机A连接到外部网络,域名重定向系统接在交换机的镜像端口上,监控局域网中的所有数据,对微信中的可疑域名进行重定向或拦截,防止病毒网页的入侵。

基于域名重定向的微信域名拦截技术的实现

域名重定向主要功能是捕获网络中的数据,对流经微信中的DNS域名请求包进行处理,伪造应答包,将DNS域名重定向到目的IP地址,实现对某些网站的屏蔽或拦截。

数据采集模块:初始化所需的各项参数,正确初始化之后,采集流经网络中的数据,交给数据分析模块。

数据分析模块:解析数据采集模块采集到的数据包,逐层分析,判断是否为 DNS 域名请求包,提取数据包的有用信息交给数据包发送模块。

数据包发送模块:利用数据分析模块提交过来的有用信息,伪造 DNS 域名应答包,发送给目的主机,实现 DNS 域名重定向。

数据库模块:数据库模块对可疑域名列表进行管理和拦截,可以添加、删除可疑域名,设置可疑域名的重定向目标 IP 地址,并可更改可疑域名的属性(是否需要重定向),为数据分析模块提供判断依据,即提供给数据分析模块可疑域名表单,根据表单中的可疑域名,有选择性的对网络中的域名进行重定向。图所示,基于域名重定向的微信可疑域名系统可分为四大模块:数据采集模块、数据分析模块、数据包发送模块以及数据模块。

如图为基于域名重定向的微信域名拦截系统流程图

可疑微信域名拦截可疑域名的过程

假设域名www.urlzt.com为可疑域名,重定向到目标IP:202.112.144.31

则在数据库中添加可疑域名www.urlzt.com并设置重定向目标IP为202.112.144.32

基于域名重定向的微信域名拦截系统对www.urlzt.com的拦截过程如下:

  1. DNS 客户端(局域网中的主机)向首选 DNS 服务器发送对于 www.urlzt.com的递归解析请求;

  2. 域名重定向系统监听到这个请求,解析数据包,获取所请求域名 www.urlzt.com

  3. 与数据库中的可疑域名列表比对,判断 www.urlzt.com为可疑域名

  4. 向 请 求 者 发 送 伪 造 应 答 包 , 通 知 与www.urlzt.com 对 应 的 IP 地 址 为202.112.144.31;

  5. 只要伪造应答包先于合法应答包返回到主机,当本地 DNS 服务器返回合法应答时,但由于在时间上晚于监听者的应答,结果被丢弃;

  6. 重定向完成,微信会对 www.urlzt.com的访问被重定向到 IP 地址为 202.112.144.31 的网址,也就成功拦截了www.urlzt.com

基于域名重定向的微信域名拦截技术的实例测试

设置数据库内容,在数据库中添加www.urlzt.com为可疑域名,并把目标IP:202.112.144.31

如果检测显示正常则为域名进行重定向,否则为取消对其重定向。
回到顶部