论文部分内容阅读
域名系统(DNS)是标识计算机电子方位的“GPS”,它将域名和IP地址相互映射成一个分布式数据库。万维网、电子邮件、新闻网、即时通讯、P2P、VoIP等等不计其数的应用均无一例外地依赖于该数据库内保存的资源记录信息。DNS的重要性使得任何针对DNS系统的人为攻击和破坏都有可能严重影响整个互联网络的正常运行。历史原因已经造就了DNS系统的复杂和脆弱,面对网络中的各种异常DNS行为,安全人员只能沉着应对、各个击破。针对DNS以及基于DNS的人为攻击和破坏的种类繁多,本论文只关注两种DNS异常集合——频繁的DNS请求查询(Frequent DNS Queries)和大规模DNS查询失败(Numerous DNS Failures),并将其定义为FDQ和NDF异常,方便描述。它们并不特指某一种异常,而是分别代表一众具有相应统一表征的异常行为。论文通过对DNS query和DNS failure数据的理论分析和数值模拟,建立了较小时间粒度下的正常DNS query模型和正常DNS failure模型,其中DNS failure模型的建立在现有的DNS研究中尚属首次。建模的结果说明正常DNS query数据服从重尾分布,兼有一定的泊松分布特征;正常DNS failure数据则遵循二项分布规律。据此,论文以实际DNS流量为例,进一步探讨了如何判定FDQ和NDF异常的发生,成功地量化了正常DNS query与异常DNS query的区别、界定了正常DNS failure与异常DNS failure的不同。考虑到异常判定仅能给出异常点的时间位置、无法提供更多的细节以及现有骨干网异常DNS检测遭遇的瓶颈,论文提出了一种基于计数型布隆过滤器(CountingBloom Filter)的检测算法,从hash聚类的角度出发,打破标准Counting Bloom Filter设定的局限,用直接比特映射函数对域名和IP的字符串进行哈希,不仅减小了误差,而且使字符串的逆向哈希过程变得简单。通过将此算法与其他常见算法比较分析说明了该算法在时间消耗和空间代价上的优越性。最后,将以上研究成果应用于实际骨干网数据,有效地证明了判断标准的合理性和算法的有效性,在指出异常点的同时揭示了完整的场景信息。