首页
社区
课程
招聘
[讨论]标识恶意代码家族
发表于: 2012-2-16 09:35 9296

[讨论]标识恶意代码家族

2012-2-16 09:35
9296
大家好:
      最近新接触系统安全的东西,属于门外汉,和同学讨论一个问题,能否尝试用一个特征码来标识一类恶意代码,尽量包含静态特征和动态行为特征?(个人理解或者所指的“一类”是包括恶意代码变异或者伪装等等)
      
      但是上网搜这方面的资料较少(或者我关键字不是很准确),大部分的内容都是恶意代码分类或者基因扫描等等,本人新人,对这些方面比较生疏,希望有这方面经验的朋友或者行家给些建议和指导,也想和更多的朋友讨论。
      
      个人思考有三:
      1、如何搭建分析环境,是在沙盒或者模拟器中吗?并且有开源的分析工具?而且怎么提高分析效率?
      2、如何准确的提取一类的特征码?比如PE文件怎么去掉冗余的结构特征,初始怎么判断一部分代码是恶意的,或者说现如今有没有已经分好类的恶意代码?
      3、如何将可疑代码归类?怎么判断可疑代码是属于哪一类恶意代码或者是正常的,上网搜索了一下恶意代码分类,有人提出通过LSH算法进行聚类,具有相似LSH哈希值的归为一类。

     我表达能力有限并且是外行,可能有些地方很不准确,请勿见笑。希望能和大家进行讨论,做一个具有这方面功能的简单的分析器,望朋友们多给指导和建议,更希望能得到学习方面的一些经验分享,谢谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 107
活跃值: (404)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习点逆向方面的知识,,随便找个杀毒软件公司进去学习学习...

卡巴司机...算法比较好...偶尔可以遇到一条特征码通杀几十万样本的情况...
2012-2-16 09:41
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
先跑行为比如360的主防或者xuetr 或者沙盘,注册表,启动文件夹,以及加载的模块等等,然后再静态IDA分析具体的行为,寻找定位的特征码!方法很多!先自己中中然后再分析
2012-2-16 17:25
0
雪    币: 74
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
恩,谢谢你的建议,前几天买了那本看雪推荐的C++逆向的书
这几天忙着看毕业师兄的代码,忙完就开始学习。
卡巴斯基的算法?  我刚搜了一下,都是介绍卡巴斯基的,你是指直接用,还是什么?可以搞到算法源码?
小弟小白,劳烦详细介绍一下,谢谢!
2012-2-22 10:12
0
雪    币: 74
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
恩,我是不是可以理解为提取特征不是问题?
但我现在思考的是,怎么通过提取特征和分析特征,是否可以将一个可疑文件标识成一类恶意家族的,或者排除在已知的恶意家族之外?
如果可以,怎么将提取到的特征码和恶意代码家族的特征码进行比较判断?
http://www.cert.org.cn/articles/chart/common/2010051724984.shtml
上述链接是我搜到的恶意代码家族排行榜,是否有现成的恶意代码分类?

我问题可能比较多或者乱,因为我确实不懂,思维比较乱,请见谅,万分感谢!
2012-2-22 10:29
0
雪    币: 503
活跃值: (80)
能力值: (RANK:280 )
在线值:
发帖
回帖
粉丝
6
如果你仔细看看的话,cert那个网页上列出来的很多都是通用命名,根本算不上家族,换句话说,那个列表没有多大意义

不过这个思考很有意思,但落实起来会复杂很多。
某些近似的样本是可以通过特征归类到某一恶意代码家族,但还会有很多新样本是无法用原有规则进行归纳的
2012-2-25 16:26
0
雪    币: 74
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
是的,其实上面就是一些简单的分类。

我是觉得现在特征库极度膨胀,各种制造恶意软件的工具和简单的伪装变形,我是希望可不可以用一个特征码来检测这一类恶意代码,这样可以提高查询速度,而且现今好的杀软都结合所谓的云模式,遇到可疑代码会上传到服务端,我想如果一个特征码来匹配,也可以减少上传,降低网络开销。

当然就如你说的,对于判断其它未知恶意代码,可行性和准确性真的不好说。

通过前面几位的建议,我觉得真做一个标识很多恶意代码的分析器还是不太现实。现在我在想,可不可以仅仅是去掉可疑程序的变形或者是冗余伪装,然后用同一个特征码来标识这些简单的变形呢?
我是外行,不知你有什么专业建议吗?还有可否推荐一下伪装的简单方法或者工具?谢谢!
2012-2-27 10:35
0
雪    币: 503
活跃值: (80)
能力值: (RANK:280 )
在线值:
发帖
回帖
粉丝
8
呵呵,你是要做毕业设计吗?还是?

你的想法不是可不可以,而是早就有厂商这么做了,例如那些有Gen后缀或是前缀的命名。只是这个想法只能有针对的做,碰巧某一类型的恶意代码可以归纳出足够独特的特征时,就可以尝试之。

静态的角度上,去掉变形和伪装时会需要消耗非常多的时间和性能,作为产品来说时不可以接受的。除非是有足够强的过滤条件,否则不实用。

动态的角度上,如果发现了一系列足够独特的行为,是可以尝试一下。

其实无论从哪个角度,实现起来就远不是这么两句话那么简单了。不仅仅是监测的问题,性能的问题,你提取的特征或是制定的规则需要足够安全,并且有效,各个厂商也都是在实践中一点点摸索归纳出来的,除非是一些过时的东西,否则很难有人会拿出来分享的。

如果你只是做毕业设计的话,我倒是觉得可以放弃那方面的设想,毕竟太复杂,得不偿失。倒不妨从其他角度入手,例如针对某个仅用于恶意代码的保护壳,做个简单的演示出来即可
2012-2-27 18:06
0
雪    币: 74
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢版主帮忙!

是的,就是毕业设计开题的思路,老板要求要有难度和“创新性”(但我看的文章都是比较老的,呵呵),开题挂得很厉害,而我选的方向又与恶意代码分析挂钩,自己瞎调研看论文和同学讨论,选的这个题,题是开过了,现在发现不知怎么入手,向大家求教来了,又要有创新,又是恶意代码分析,让不是信安出身的我好痛苦,呵呵。

下面是选题看的论文中的两篇:
Scalable, Behavior-Based Malware Clustering(http://iseclab.org/papers/clustering_ndss.pdf)
PE-Miner Mining Structural Information to Detect Malicious Executables in Realtime(http://www.rennes.supelec.fr/RAID2009/slides/paper7.pdf   
http://www.springerlink.com/content/yn8773w4h7788058/)

当时感觉挺有道理的,现在发觉实现不是那么一回事。

你最后的“例如针对某个仅用于恶意代码的保护壳”,是指针对某一类保护壳进行标识,只要发现加有这类壳的就可以确定成恶意的吗?

如果我像这样理解,是不是就要做到两点:一是提取出壳的特征码;二是要对有加此类壳的可疑程序进行脱壳处理,并比对特征码。

不怕见笑,确实外行,比如说提取特征码可以做到自动的吗?还是要手动分析,自定义特征码规则?又有哪类常见的保护壳可以找到更多的样本?

劳烦提供点设计思路或者是学习方法,多谢了!
2012-2-27 21:26
0
游客
登录 | 注册 方可回帖
返回
//