基于DNS日志分析,勒索病毒和远程控制病毒排查方法

 由于公司受到勒索病毒及一些远程控制病毒攻击,在杀毒软件不能正常查杀的情况下怎样知道全网有多少用户受到威胁,通过行业一些专业机构给出的处理方法,经验证,通过DNS日志分析是一个很好的排查手段,下面对本次排查过程进行分析,希望可以帮助到大家。

           1.勒索病毒和远程控制病毒特征分析

               通过网上收集,勒索病毒和远程控制病毒运行会访问特定域名,仅作为示例:

                   www.iuqerfsodp9ifjsssfdasdfasdfsdsdfsd.com

                      r12.w7q.net

                     sdf.f332.com

           用户电脑一旦中招,他的电脑就会访问以上域名,那么就会在DNS服务器上留下解析日志。

        2.DNS日志分析

              DNS系统解析过程日志通常是关闭的,为了进行日志分析,我们开启DNS日志分析设置,过程就不说了。

          日志一天的记录量在300M左右,记录数600--800万条,如何查找出是否解析过有病毒特征的域名呢?对于做过开发的运维人员来说那就是小事了,好,下面开始设计和开发日志解析程序,找到那些中招的电脑,这应该是很有成就的一件事,想想有点小激动。

        3.日志解析程序开发

      开发语言首选java,因为我熟悉,其实用什么语言无所谓,只要能解决问题,由于日志文件较大,我们的日志文件一天的量在300M左右,但对于一个纯文本文件来说比较大了,传统的文件处理方法效率应该受影响,首选找到java能够读取大文件的工具包,一番百度,有了commons-io(apache基金会下面的一个子项目,提供了对于IO流操作的进一步封装,让我们可以更加方便的对IO流进行操作),就选它了。

       程序设计思路:读取DNS日志文件---》按行读取数据--》转化字符串-->与特征域名比较-->存在的记录到另外文件并进行统计。

         代码示例:

基于DNS日志分析,勒索病毒和远程控制病毒排查方法

          运行程序,300M日志解析耗时20分钟有点长哈,再看解析结果文件,有数据,打开一看,竟然真的有电脑感染,一天访问某个远程控制特征域名1万多次,有货,有货,有点惊喜。上报领导可以邀功了呵呵。

            过程基本就是这样了,其实道理简单,处理过程也不复杂,但是能解决实际问题,后续可以进行进一步完善:

          (1)目前是手动从服务器获取DNS日志文件,后续能够自动获取,自动执行解析,有异常发送到告警中心。

          (2)对分析结果进行分类统计,对于中毒面较大的情况下,便于宏观分析。

          (3)对于以上做法还存在不够及时的问题,因为解析文件的时间比较长,更好的办法是监听DNS服务端口,读取端口数据包解析比较特征域名,有异常立即发送到告警中心,那就完美了,后续可以推广哈。