继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

标准差测端口的随机性判定DNS缓存中毒

tanhouyusheng
关注TA
已关注
手记 13
粉丝 17
获赞 196

标准差测端口的随机性判定DNS缓存中毒
摘要
端口使用的随机性是评估是否有DNS缓存中毒危险的一个重要标准。
本文主要介绍使用概率论的方法来判断DNS端口使用的随机性,首先将介绍相关的理论知识,然后通过一个43g的DNS解析日志文件作为测试文件,通过hadoop来存储文件,用mapreduce来求解标准差,最后通过java绘制结果来进行DNS源端口的测试。
相关理论
(1)离散均匀分布
若随机变量有n个不同值,具有相同概率,则我们称之为离散均匀分布,通常发生在我们不确定各种情况发生的机会,且认为每个机会都相等,例如:投掷骰子等.
设离散随机变量 X之可能变量有1,2,3….n,若其概率函数为
图片描述 (1)
则称X 服从离散均匀分布.
DNS的源端口使用的是0-25535之间的任意整数,使用具有随机性,所以我们可以将该事件看作一种离散均匀分布
(2)离散均匀分布的数字特征
图片描述 (2)
根据DNS解析日志文件我们可以得到样本的实际标准差,通过
图片描述(3)
求得样本的标准差。
考虑一个样本的标准偏差,我们可以估算样本大小的二进制位数为:
由公式(2) 可得
图片描述 (4)
给出测试的标准,如表 1所示:
表 1 Scoring
Score GREAT GOOD POOR
S Range 10.0 – 13.75 0 – 10.0 0 – 296
bits Range 13.75 – 16.0 3980 – 20,000+ 296 – 3980
数据测试
根据以上分析得到的判断指标对DNS解析日志进行分析,DNS解析日志的格式如表 1所示。
表1 log表
列名 数据类型 允许Null值 说明
Userip Varchar(16)
DNS Varchar(16) DNS
Domain Varchar(40) 域名
Qtype Varchar(7) 请求类型
Flag int 未知
answer Varchar(16) 返回结果
Atype Int 返回类型
Port Bigint 端口号
Time Varchar(16) 时间
根据DNS解析日志的信息按照如图Figure 2所示流程图计算用户端口随机性。
图片描述
测试结果如图
(1) 一个用户的测试结果,如Figure 3所示:
图片描述
(1) 一天中所有用户的计算结果,如Figure 4所示:
图片描述

打开App,阅读手记
4人推荐
发表评论
随时随地看视频慕课网APP