前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一项有趣的实验:装了杀软的主机真的安全吗?

一项有趣的实验:装了杀软的主机真的安全吗?

作者头像
FB客服
发布2018-07-30 11:15:33
6440
发布2018-07-30 11:15:33
举报
文章被收录于专栏:FreeBuf

前言

我们有的理由怀疑自己的主机早被感染了恶意程序。大部分人都是采用重打包后的镜像来安装的盗版系统;用的不知从哪儿下回来的工具激活的系统;平常在网上下载的工具奉行的都是能用就行的原则。而我们也都抱着侥幸心理——大家都在用,应该没问题,大不了装了杀软再扫一遍。何况,杀软都没检查出来,这让我们也很无奈啊,还有什么办法呢?带着这样的问题,笔者细细琢磨了下,并依照自己的想法做了一个有趣的实验。

主要内容

思想原理

杀软主要是通过扫描文件来发现系统是否被感染,扫描策略大部分是静态特征扫描,这个方式对发现已知病毒程序很有效,然而对于发现高级或未知的病毒程序就没那么有效了。那还有什么方式来检测呢?

笔者是这样想的,假设我的主机已被感染,病毒程序会寻求与C&C(命令与控制)服务器的通信。我们可以对主机对外通信的目的IP地址进行审计,基于开源的威胁情报,排查目的IP地址的恶意性。那也就是说,我们可以从数据包的层面来检测主机是否被病毒感染。

实验方法

为验证笔者的想法,笔者做了如下实验准备:

1.数据采集

笔者在夜深人静的时候,重启了5台电脑,每台电脑上采用wireshark抓包(重启电脑,是为了保证流量的纯粹性),一直采集到笔者第二天一大早来将抓取的数据包保存。期间未有对电脑的任何其他操作。这么做,是尽可能地排除一些干扰项,便于后面的分析。

2.IP地址分析接口

对数据包的解析和基于威胁情报的查询需要借助一些工具完成。笔者基于以前的积累,采用Python的dpkt库对数据包进行解析。主要分为两步,一是提取数据包中的IP地址,二是对IP地址进行去重。

IP地址恶意性查询接口,笔者选用的是国外的开源威胁情报社区AlienVault。这个社区的威胁情报做的很全面,而且具有开源精神,不会限制查询次数(基于对国内厂商的认识,我很想说三遍),API查询接口的使用也非常方便。

首先在AlienVault上注册一个账号,只需要邮箱验证,注册成功后,访问:https://otx.alienvault.com/api,在API接口网页的右边会有生成好的API_KEY,如下图所示。

同时,在页面上点击Python SDK,如下图所示,会直接进入基于Python的查询开源程序。

按照github上的安装说明,安装OTXv2依赖库即可。下面,来讲解实验的具体实施过程。

实验步骤

实验步骤共分为3步,第一步获取数据包中的IP地址;第二步解析IP地址的地理信息(总觉得国外IP地址嫌疑更高,原谅,有种执念);第三步查询IP地址的恶意性。笔者将这三步都在Python脚本程序中实现。解析IP地址和IP地址地理信息查询可以借鉴笔者的[这个项目]。这里重点说一下如何利用AlienVault的API接口对IP地址的恶意性进行查询。废话不多说,直接上代码,首先在全局变量API_KEY中替换成自己的key,然后直接调用AlienVault的函数接口,其中的CheckIp()函数即是AlienVault给出的样例函数,如感兴趣,可以在源代码中查看。

下面开始运行程序:

python hot_ip.py—pcapfile=./data/out500.pcap -d –c #-d为提取目的IP地址,-c为对ip地址进行检测。

考虑到时间因素,这里只取了部分网络数据包进行解析,由动图可看出,首先得到了去重的目的IP地址,在程序中会以out_IP.txt保存下来;然后解析IP地址的地理信息,在程序中会以ip_location.txt保存下来;最后排查IP地址的恶意性,解析为疑似恶意的IP地址,会存在malicious_results.txt文件中。下面打印出malicious_results.txt的结果。

得到了疑似恶意的IP地址,下面就开始对这几个IP进行分析。

数据分析

可以看到,出现了5个疑似恶意的IP地址,如114.114.114.114,我们都知道是国内的域名服务器,这条威胁情报,在微步在线和AlienVault上都能查到,说明这台域名服务器曾经被利用来做过些什么。

下面,笔者举一例,分析一个IP地址,其他IP地址就可以类似的分析了。对104.18.24.243美国的这个IP进行分析,首先访问https://otx.alienvault.com/indicator/ip/104.18.24.243,这是AlienVault对这个IP地址的分析,由下图可以看到,疑似是木马的通信地址。

进一步,点击Trojan这一条信息,进去页面,在reference标签处发现这是一条由微步在线发布的情报信息。由下图所示。

同时,这个IP地址在数据包中,体现出如下通信过程。

就这些查询都看不出太多异常。那么是否可以通过这个IP地址,找到产生它的程序文件呢?当然可以。具体可经由下面的步骤得到,首先,通过IP地址查到进程号,打开dos或者powershell命令窗口,运行命令:netstat -ano | findstr “104.18.24.243”,有如下结果。

可以看到,该进程的进程号为5200,再通过进程号关联到进程的名字,运行命令:tasklist | findstr “5200”,有如下结果。

可以看到,是WinStore.App.exe这个程序在执行。继续深挖,可以通过命令查询到启动文件的路径,运行命令:wmic process list full | findstr”WinStore.App.exe”,有如下结果。

这就直接找到了产生这个IP地址的启动文件,由图中可以看到,在C:\Program Files\WindowsApps\这个目录下。下一步就可以对这个文件的恶意性进行分析。可以人工逆向分析,也可以上传到云沙箱分析。如发现异常,就需要对这台电脑来次彻底检查了。本文到此为止,整个分析流程就介绍完了,感兴趣的朋友还可以对其他IP地址或自己本机上产生的IP地址进行分析,在此过程中,相信会发现很多不一样的东西。最后,给出笔者这次实验的程序代码。

实验代码:https://github.com/scu-igroup/check_ip

总结

本文所描述的实验,表示我们可以不依赖于杀软来进行排查,为发现主机异常提供了另一种方式。结合当前流行的威胁情报,也可以自己来排查主机中的异常;但同时也必须指出,威胁情报只是提供了一条可能的线索,是否是真正的异常还需一定的专业知识来确认。同时,对主机的安全性分析还有很多其他方法和途径,笔者近期在这方面正在耕耘,大家如有新的想法,欢迎一起交流。

*本文作者:scu-igroup,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 主要内容
    • 思想原理
      • 实验方法
        • 实验步骤
          • 数据分析
          • 总结
          相关产品与服务
          威胁情报云查与本地引擎
          威胁情报云查与本地引擎(Threat Intelligence Atom Engine, TAE)依托腾讯安全近二十年网络安全经验和情报大数据,为客户提供威胁情报云端查询和本地引擎集成服务。帮助企业提升现有安全体系的防御和检测能力,并且帮助生态合作伙伴的安全产品集成威胁情报提升威胁检出能力。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档