基于DNS的数据挖掘与分析
字数 1505 2025-08-18 11:37:02

DNS数据挖掘与分析技术详解

1. 分析背景与原理

1.1 DNS安全事件背景

  • 事件特征:大量政府及高校网站出现博彩类信息跳转
  • 攻击手法:DNS解析被恶意修改,解析到107.151.129.28这个国外IP
  • 影响范围:政府网站(3249个)、高校网站(104个)、财经类网站

1.2 DNS安全重要性

  • DNS是现代网络的基础设施
  • 基础网络出现问题会导致上层应用完全失去安全性
  • DNS层面的安全分析可以提前发现和预防攻击

2. 数据收集与处理

2.1 域名数据收集

  • 数据来源:政府、高校、企业等各类网站
  • 数据量:总样本4898条(政府3249,高校104,其他1545)
  • 分类建议:按行业分类收集更有利于后续分析

2.2 DNS解析技术

解析类型

  • A记录:域名到IP的直接映射
  • CNAME:域名别名记录
  • 泛解析:默认解析配置(通配符解析)

Python实现代码

from dns.resolver import *
import re

hostlist = open('./host.txt','r')
for host in hostlist:
    try:
        host = host.split('\n')[0]
        if 'gov.cn' in host:
            attr = 'gov'
        elif 'edu' in host:
            attr = 'edu'
        else:
            attr = 'oth'
        
        # 查询A记录、CNAME记录
        a = query(host)
        for dns in a.response.answer:
            if 'CNAME' in str(dns):
                id = 0
            elif 'A' in str(dns):
                id = 1
            for dns in dns.items:
                f = open('./DNS解析结果.txt','a')
                print(host.ljust(40),(str(dns)).ljust(40),attr.ljust(5),id,file=f)
        
        # 泛解析查询
        host = 'sanshibuying.' + host
        b = query(host)
        for dns in b.response.answer:
            for dns in dns.items:
                pass
            id = 2
            f = open('./DNS解析结果.txt','a')
            print(host.ljust(40),(str(dns)).ljust(40),attr.ljust(5),id,file=f)
    except Exception as e:
        pass

2.3 IP地理位置查询

  • 工具:GeoLiteCity数据库
  • 关键信息:城市、地区代码、国家、经纬度

Python实现代码

import pygeoip

gi = pygeoip.GeoIP('GeoLiteCity.dat')

def printRecord(ip):
    try:
        rec = gi.record_by_name(ip)
        city = rec['city']
        region = rec['region_code']
        country = rec['country_name']
        long = rec['longitude']
        lat = rec['latitude']
    except Exception as e:
        pass
    
    try:
        f = open('IP地理位置.txt','a')
        print(ip.ljust(20),city.ljust(20),country.ljust(10),file=f)
    except Exception as e:
        pass

if __name__ == "__main__":
    IPFile = open('ip.txt')
    for ip in IPFile.readlines():
        ip = ip.strip('\n')
        printRecord(ip)

2.4 网站Title爬取

  • 技巧:伪装为百度蜘蛛,可能发现SEO推广内容
  • Headers设置
headers = {
    "accept":"text/html,application/xhtml+xml,application/xml;",
    "accept-encoding":"gzip",
    "x-forwarded-for":"123.125.66.120",
    "accept-language":"zh-cn,zh;q=0.8",
    "referer":"https://www.baidu.com",
    "connection":"keep-alive",
    "user-agent":"Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
}

3. 数据分析方法

3.1 IP次数分析

  • 目的:识别IDC IP和异常IP聚集
  • 方法:统计同一IP下的域名数量
  • 安全意义
    • 同一IP下网站存在连带风险
    • 识别IDC环境与独立服务器

3.2 CDN/云防护分析

  • 识别方法:从CNAME中提取厂商域名
    • 示例:010a74abb997d761.cname.365cyd.cn → 知道创宇创宇盾
  • 统计内容
    • 使用CDN/云防护的网站数量
    • 各厂商市场占有率
    • 用户行业分布

3.3 泛解析分析

  • 正常情况:泛解析IP应与主站IP一致或同网段
  • 异常情况
    • 泛解析IP与主站IP差异大
    • 泛解析IP地理位置异常(如国外)
  • 分析结果:148个网站开启泛解析,部分存在异常

3.4 IP地理位置分析

  • 政府网站准则:解析IP应位于所属地市
  • 异常特征
    • 解析到非本地城市
    • 即使使用CDN也应解析到国内
    • 解析到国外高度可疑

3.5 网站Title分析

  • 关键词提取:博彩类信息
  • 关联分析:同一IP下的其他网站
  • 安全意义:发现被入侵并篡改的网站集群

4. 安全分析技术

4.1 DNS解析安全分析

  • 恶意解析特征
    • 解析到已知恶意IP(如107.151.129.28)
    • 解析到国外IP
    • Title包含博彩等异常内容

4.2 同一IP安全分析

  • 黑客IP特征
    • 聚集多个被篡改域名
    • 可反查备案信息追踪攻击者
  • 分析方法
    • 统计IP上所有域名
    • 分析域名备案信息
    • 关联攻击者身份信息(邮箱、QQ等)

4.3 威胁情报结合分析

  • 方法:将解析IP与威胁情报库比对
  • 优势:发现新型攻击IP和模式
  • 扩展:分析DGA域名和非DNS通信数据

5. 数据价值与应用

5.1 DNS数据价值

  • 基础网络数据的战略价值
  • 安全态势感知的基础
  • 攻击溯源的关键线索

5.2 应用场景

  • 安全防护:提前发现和阻断恶意解析
  • 威胁狩猎:识别攻击基础设施
  • 应急响应:快速定位受影响范围
  • 安全研究:分析攻击者TTPs(战术、技术和程序)

6. 总结与扩展

6.1 关键要点总结

  1. DNS是网络安全的基础层面
  2. 恶意解析是常见的攻击手法
  3. 数据分析可发现隐蔽的攻击
  4. 数据价值远超过工具和方法

6.2 扩展研究方向

  • DGA域名分析
  • 非DNS通信数据分析
  • DNS隧道检测
  • 全球DNS威胁地图构建

通过系统化的DNS数据挖掘与分析,可以构建起强大的网络安全预警和防御体系,在基础网络层面筑牢安全防线。

DNS数据挖掘与分析技术详解 1. 分析背景与原理 1.1 DNS安全事件背景 事件特征 :大量政府及高校网站出现博彩类信息跳转 攻击手法 :DNS解析被恶意修改,解析到107.151.129.28这个国外IP 影响范围 :政府网站(3249个)、高校网站(104个)、财经类网站 1.2 DNS安全重要性 DNS是现代网络的基础设施 基础网络出现问题会导致上层应用完全失去安全性 DNS层面的安全分析可以提前发现和预防攻击 2. 数据收集与处理 2.1 域名数据收集 数据来源 :政府、高校、企业等各类网站 数据量 :总样本4898条(政府3249,高校104,其他1545) 分类建议 :按行业分类收集更有利于后续分析 2.2 DNS解析技术 解析类型 A记录 :域名到IP的直接映射 CNAME :域名别名记录 泛解析 :默认解析配置(通配符解析) Python实现代码 2.3 IP地理位置查询 工具 :GeoLiteCity数据库 关键信息 :城市、地区代码、国家、经纬度 Python实现代码 2.4 网站Title爬取 技巧 :伪装为百度蜘蛛,可能发现SEO推广内容 Headers设置 : 3. 数据分析方法 3.1 IP次数分析 目的 :识别IDC IP和异常IP聚集 方法 :统计同一IP下的域名数量 安全意义 : 同一IP下网站存在连带风险 识别IDC环境与独立服务器 3.2 CDN/云防护分析 识别方法 :从CNAME中提取厂商域名 示例: 010a74abb997d761.cname.365cyd.cn → 知道创宇创宇盾 统计内容 : 使用CDN/云防护的网站数量 各厂商市场占有率 用户行业分布 3.3 泛解析分析 正常情况 :泛解析IP应与主站IP一致或同网段 异常情况 : 泛解析IP与主站IP差异大 泛解析IP地理位置异常(如国外) 分析结果 :148个网站开启泛解析,部分存在异常 3.4 IP地理位置分析 政府网站准则 :解析IP应位于所属地市 异常特征 : 解析到非本地城市 即使使用CDN也应解析到国内 解析到国外高度可疑 3.5 网站Title分析 关键词提取 :博彩类信息 关联分析 :同一IP下的其他网站 安全意义 :发现被入侵并篡改的网站集群 4. 安全分析技术 4.1 DNS解析安全分析 恶意解析特征 : 解析到已知恶意IP(如107.151.129.28) 解析到国外IP Title包含博彩等异常内容 4.2 同一IP安全分析 黑客IP特征 : 聚集多个被篡改域名 可反查备案信息追踪攻击者 分析方法 : 统计IP上所有域名 分析域名备案信息 关联攻击者身份信息(邮箱、QQ等) 4.3 威胁情报结合分析 方法 :将解析IP与威胁情报库比对 优势 :发现新型攻击IP和模式 扩展 :分析DGA域名和非DNS通信数据 5. 数据价值与应用 5.1 DNS数据价值 基础网络数据的战略价值 安全态势感知的基础 攻击溯源的关键线索 5.2 应用场景 安全防护 :提前发现和阻断恶意解析 威胁狩猎 :识别攻击基础设施 应急响应 :快速定位受影响范围 安全研究 :分析攻击者TTPs(战术、技术和程序) 6. 总结与扩展 6.1 关键要点总结 DNS是网络安全的基础层面 恶意解析是常见的攻击手法 数据分析可发现隐蔽的攻击 数据价值远超过工具和方法 6.2 扩展研究方向 DGA域名分析 非DNS通信数据分析 DNS隧道检测 全球DNS威胁地图构建 通过系统化的DNS数据挖掘与分析,可以构建起强大的网络安全预警和防御体系,在基础网络层面筑牢安全防线。