图数据库与恶意软件

2020/07/04 -
最开始的时候,我搜索的关键词是恶意软件的据类,就是可以类似单词的词义一样可以在二维图片上显示;然后搜到了这个文章[1](文章已经转化为pdf),通过图数据库来展示恶意软件之间的关系。他使用的图数据库是neo4j,然后利用某些工具将生成的二进制的属性按照数据库的语法规则都导入到数据库中进行展示。
但是,他进行个体划分的时候,让我眼前一亮。因为之前的时候我也做过相关的工作,当时是用django开发了一个恶意软件的可视化系统,同时利用echars进行了图形结构的展示。当时的展示的内容是利用ssdeep来计算两两二进制的相似度,只要这个相似度大于0,那么就说他们是相关的,在展板上两个二进制就画一条线。这种做法的确能够展示出来存在两两相似的样子。但是问题是,我除了这个信息,就看不到更多的。这样的话,这个展板就非常不灵活,体现不出来更多的信息。

当时我也想不到更多的东西,感觉到自己这种显示方式很受限,能够反映出来的信息也比较有限,我只能看到他们存在关系,但是这个关系的大小不知道(可以用线粗细来表示,不知道能不能开发),他们在什么地方相似也不清楚。
但是,我的思考就局限在这个地方了,因为我不知道后续还能干什么了。


那么今天看到了这个文章,就感觉到有些不一样的地方。先来说一下他的这个过程,关于使用neo4j的地方就不说了。主要是他定义这个节点的地方比较关键。前面我自己的程序中,我是将一个二进制程序作为单个节点,那么可以想象(从现在的角度来解释),我能够体现出来的粒度是非常粗的,因为你本身这个节点的形式就已经限制了整体的表现形式。
就是你这样来理解,本身你的原子操作,就是说你能够有的操作,就是放置点,然后连线,顶多你利用这个点再通过颜色或者什么东西来增加这个点的多样性,但是这个点就已经是固定的了。然后你能做的就是连线,可能再有的操作就是通过线的颜色,或者粗细来增加一些信息。
上面的话,总结起来就是说,你所有的原子操作决定了你在这种表现形式能够表现出来的全部信息。
利用我自己的示例来讲解一下这句话,在原始过程中,利用点来代表二进制文件,这个文件的类别(不同架构)通过不同颜色来展示,然后就是通过线来展示他们之间存在关联。这些信息组合起来,就是能看到某个类别的二进制存在关系,当时还看到了不同架构的二进制是没有任何连线的(除了Powerpc和motolora,这种被证实是类似的架构。)
这些可能就是我能够展现出来的所有信息了。
再多说一句,就是这个东西的关键问题,整体展现出来的交互性是很差的,我看不到更多的信息。这里其实说法上有些不太对,我自己也没找到问题所在,这个能力本质上是说从图像中抽取信息的过程。


现在来具体说明文章[1]中展现出来的信息。
首先他的节点定义过程,它定义的节点的基础信息:文件、导入的函数、编译时间、文件类型。


基础图信息

他定义的这个东西,我个人感觉可能信息还是少的,我还可以定义一些其他的东西,比如说下载的url等等。
其实从本质上来说,跟我之前的那个东西相比,他的语义信息就更丰富,因为他所植根的信息更多了。这样的粒度更更细了,(但是那种相似的数值体现怎么体现,我还不是很清楚),就是我能够看到两个二进制他们是哪些信息上相似的。

如果这个点多了之后呢,就是导入的函数多了。


单个文件多种属性

实际上,从这个角度来看,就是说他把点的实体函数给丰富了。
上面的图是单个节点,那么来看看多个二进制实体的情况。


时间的关系

插一嘴,我感觉就是上面这个图的定义方式,他跟我的定义方式完全是不一样的。你看他的关系线,他并不是相似的问题,而是说我拥有这种属性的过程。也就是说,他把这个连接线的属性也给重新定义了。
那么来看,从一开始,图的节点的信息是多样性的,然后图的边也是多样性的。从另外一个角度来将,感觉更像是知识图谱的方式,某个个体拥有某种属性的形式。


总结:
首先文章[1]给了我一种展现恶意软件的方式,就是通过这种定义多种实体的点的方式来更丰富的表征语义;
另外一个信息就是从通用的角度来说,如果你想通过这种方式展现出更多的信息,那么你必须增加你底层能够展现语义的方式。

参考文章

[1]revealing-malware-relationships-with-graphdb-part-1-b1416e751c47

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值