转载

如何用机器学习的方法检测恶意软件

恶意软件的 全面 研究可以说不是个简单的任务。在进行逆向工程和构建时间轴之前,研究者需要从恶意软件的多个发展阶段获大量样本,由于统计的花费巨大而收获常常有限,因此寻找相似样本的工作非常困难。

首先,这里需要说明的是我(原文作者)并非数据科学家,在下只是一个正在接触基础机器学习规则的安全研究者。而从我们公司(Cylance)一些有才华的数据科学家那里,我发现了机器学习在我研究的安全领域具备了无限的延展性。

对于一个像我这样的安全研究者来说,经常要面对的挑战是,我可能需要对来自同一恶意软件家族相似的恶意软件进行全面而重复的分析。YARA签名(YARA是一款旨在帮助恶意软件研究人员识别和分类恶意软件样本的开源工具)是有帮些助的,但是它们的作用有限。而是用 例如ssDeep 这样的混淆哈希值同样会有所帮助。尽管近期发布了优化,它们仍非常受限于拓展之类的问题。

黑客组织“春龙”APT攻击

今年6月,Palo Alto网络发布了一份关于 黑客组织“春龙”威胁活动的报告 。报告针对被用作后门的Lotus Elise恶意软件进行了详细的分析。而有意思的是,报告中只是简单提到Lotus Evora恶意软件,提供了少量的IOC。

FreeBuf也进行过报道

因为只有一些很少的细节和IOC被公开,Evora恶意软件似乎是一个不错的分析对象。在获得了一些Evora初始样本之后,我开始了我的分析,我dump出样本的整体结构进行分析,查看样本的功能实现方法(我会在之后blog中提及细节)。

经过我的初步分析,发现样本数目还是不够理想。经过一些基于YARA的搜索之后,对于此类样本的需求会更大。为此,我咨询了一些机器学习方面的集大成者,他们建议我采用“中心”的概念来寻找更多的样本。 (本文的“中心”一律指代基于几何中心的构建算法,后文不再注明)

中心与距离

这里,我将回到“中心”的概念,并解释它为何如此重要。

在我们处理文件以确定其是否为恶意软件时,通常会为研究每个文件而提取数以百万计的“功能”。功能是一组描述文件的属性,范围从资源的数量涵盖到特定部分的熵等等。当我们从正在研究的文件中提取所有的功能特征时,我们最终会以一个“向量”结束,或是一组数字。

而在我们这个示例中,这个“中心”为一个向量所表示,它是从文件中导出的向量组的中心点所表示的。半径则为能被概括为相似样本的最大描述范围。

现在,有人或许会问:“为何会有这个距离?”可以参考以下因素:

我们可以使用勾股定理,来确定2D平面内两点的距离。这可能是你在念书(小学、初中?)时学到过的。

如何用机器学习的方法检测恶意软件

如何用机器学习的方法检测恶意软件

水平蓝色线的平方,加上垂直黄色线的平方,和的开方便是我们要的距离。

如果我们将每个功能视为一个维度,我们便可以找到在半径范围内各向量间的距离。我们将用到类似“勾股定理”的“欧几里德距离”进行三维距离计算。

利用中心进行搜索时,我们计算中心与每个(我们针对每个相关功能研究过)文件的距离,如果它出现在半径之内,便可得知其与我们的原始文件相类似。

如何用机器学习的方法检测恶意软件

Evora的中心

上面介绍的是如何通过中心算法进行搜索,你会发现在那之前我们需要有个中心算法,而这恰恰是十分困难的。我已经决心提升关于机器学习方面的知识储备,借这个机会,我又进行了更为深入的探索。

为了建立这个中心,首先我努力寻找一组半径为0的功能。这就意味着需要在所有相关功能中确定精确匹配的功能值。由于我已经简单寻找过所有Evora样本中所具有的相同功能,因此这个比较容易确定。对我来说幸运的是,我找到大量可以与Evora样本精确匹配的功能。

利用一组本地不相关样本对中心进行了测试之后,便可以用于测试我们的样本。数据科学家在加载了中心之后,获得了一组令人兴奋的哈希值集合。

在返回结果中寻找Evora和Elise

在对返回的文件进行初步检测之后,我感到很惊讶。不只返回了Evora样本,还获得了一些Elise样本。这个基于几何中心构建的算法,不仅可以用来寻找Evoca样本,竟然还可以寻找相似威胁活动中其他恶意软件的。即使是一个初学者(例如我),机器学习的效率还是很高的啊!

多亏了机器学习(这里不是广告),现在我拥有了28个Evora样本和39个Elise样本。

Evora与Elise

我计划在下一篇博客中详细介绍Evora和Elise。

结论

虽然我不是一名数据科学家,但我仍然强烈感受到机器学习是一个非常强大的工具。尽管它拥有一个陡峭的学习曲线(小编理解:比较难学),但是无论如何都是值得你去掌握的。信息安全领域从来不缺少需要解决的问题,而机器学习则会是一个非常重要的解决困难问题的工具,对此,我毫不怀疑。

IOCs

Evora SHA256s:

00a9466358d2b716be215f856c44e2b62df64b29a4d04aaa1ef0a194d825313f 0a372eb55d5bc91be510a4d9084a5c15ec22c3b066fe226994566a136564a2ec 11107f6f1f41466ae9e01cd6fc3a3c615e1fa8ee8f7e786a2f7b5b371434af9c 151f6e3a052ab72e6ac043922415126d19a5085dda1ea70aa7d5c345ef4c905a 23753c260e48fd092423aceb6300a9b858eeaa113f6f7040305edb545f4da35f 349d2e0a3be5e567416c1a5abb1a01ddb0e31f4c80d4543fad1a5766fd3b5002 3d059628f80ca8aa1977c0be001a1c11919f76d983139561e7955af645fa979e 435590115a89427b28f4b7d90850cf92751e23358f2d198bab1d7a22ff793fba 52e896c6d22929ade6e0cdc54b6a27afd960658955b8ff92996304820c3a03e4 5e2de83e9b24ed78f38b7189c3505aee5d710bc1a7be473e96e0aa3630112b84 6c720a4df2acd644bf7153a0c12c70db4a354b20ed14500bbcc91b3e8eaac522 7d24387e79a537b17ad4b4d19e24a0010034689d3e2b9812f26d1ad579d21cbe 81a0f80edf8d41f97d799a81c67e9c8930abaece59a73c1d097ee576c0c8a15c 89db78dcf95e887ddf0818016fa5988e44d23d87c6922bd81dfb3c68ef6cfe93 981df8ab5eb36467b595a86a0d6905dc57151d66f4a0a64cfc6734c33d0a4cbe aacaf259d0e4d6527158a3f97ccf0029abcdefba85c264940fbc2267d59659eb b877bc5b9b925fb0056f4b140865c0a89d3c0a31701a6e4feb1b73d2065420d3 cb92dbfd904821e8e66662734c0bb82ae63879d1f5fa1ab0ee8e60e4052a70ae d21022fbee8a919c43fb35d070a3b16832ea565aa6a0b81fb09d49a93e4a7ee9 da4cbc222be7c51b2cc3d358e03a8f36cc80b7b27243526037d2d2740c48f7a7 dbfd0240511cc26767f5b747df2b043334535a36fec03c6bdce0521571d8d52e dd0ec1712f8b759b5d4b52f7da9aec9f956a93639a00979790e01caeb5494c09 e08c0173671c7defbef03d9101d8d26f223e8d40ba7bfa6232fea40ea6545c0d e0f92aff03c3aae95ad8a34ca64422fe36e2c491379a5a3a403a57ae1ec72dc7 e905d54784f2ae2cd040f9bcb792efbdb675207717ff422d7258446389b44165 efc9ed5d0b554f0cdda8ed8feaeb7cbdaadf46ac3021a2eb3fd532632662fbd0 f0a9c3e055aa54cfdd21dc1028ffbc74ee5da56a81039cb1723747dcfa3c150c f16d6caa1d454fd2fa6b2d959f1b3664b46dcbb88fff9b14bc23bff1ec667b41

Evora MD5s:

080eda5a11d93703470ec5a42498aeee 0ad154de647b7ab3790ec6e439a106f8 30b788d61843434410a3b3f882c9e658 313303f8b207547c1065110233a38a93 39951cafa1561fe49938c652be57d927 42126a340bb07ab6c23a1c2d43e7adda 4311cc3b92f4537e75289a44c2b3800e 448ce6d025da1a71d107093963be74e0 4f350cf78b0875dd3c573322be3c7f8d 5ddf9fc460c4fc4b8374e5d237680b06 61c5c4d545470711369a0ccea105b9f1 7f8c5faa7aa7e3c307d56bacce9909af 9e746e6763448df16cbc3238ccd2feda a6fcdffbccea839edb47f3e2e16e1b0c acf8842bec894849e599a17a9f7097a2 af540016121778b52689c9d1f2b8bafe c074a788968777c6dc62a914ef90a3ed c10c636e9687dce9e8b6cabf9a66c4f1 c520a8fa7d3c753cd23e845767c39202 ccca0f359d3d79c1a2ea7ce9f5d54879 d2b6bb7149561756ce4160f78a77f85e d3eecb124513fedbb0e0786ccda0c656 ebebd26b8e70f4985600efa95de7ac17 f194aafac4442363d27edf0c0c973d87 f513dcf07106e143facae96f3c0a8959 f7cea6272e719315f42385627d6ecee0 faa3e9bd86918e4467aac1a242e6ef01 fdd1ef9a8ff67e37d97227e29a711a9a

Elise SHA256s:

016806cce6bd26791b3bdd2dd05b555b2142f402fb2f97616773c17345f4a2b5 0bca323171b01cd6bee5d923f28d15bc5b15d5afb9984a24c7498f63889ffc62 11bf1d2d32b35884347d7a44c393c3b74691742434132ff374dcdecd700d749f 19916e513c810b1aa0a86d162d3381280a8c1314635026242cb86af2cf1b9cc3 22b0308e131a152a21443d34012e18688df6ecd5a8262cf6b9d05b444a4f9bc7 260cac805fdf709b2634d9431c556bbfb7554731e1a766a2484aaebbe6d1f467 268cadedf42eb553d0ff7d0fcbbcd18c3b93a6d590d895fbbeb3b7014c4ecd17 2ae86e4e89cd86bde4e612fc9dedbcfa633cc4dd4d046a4f5d80aa85e608bdd5 2d4db05def86adeb92a65721e70105fc0497f6c2633cf7bd80485dc7bd48ebd2 2f05eda14c7e5d60d2e04aa4457f16f677f4fcfeb189a2c14ecf3c438a70f951 3bb13fa2c78dd4866c3e753a1e859cdeca2b446a8f9baa5ae8f2a062d4973971 418a89d8b047ba06575392dcf430fb901916e6005034806b43cec6a1fd1621bb 42448e3308b6f2ba180663c864ea1a6e75f7150699095a56073bb4396620fcb1 4a72a4cc8f3cdd4cc43269619beafff732742ddeca15a81822dafc56676ab073 5142086a334b07caa4d085c0ac61c9563285a820a9883279b359b21c5a9da24e 5570f04292c669e7bb65c4affcb6c4aaabe81f5df5ca6c1c438e34044b90a7f6 596e1ba536f75ec37643e1d0259aedeedc3fcd71e9a86b99955bbd51a296aacf 5f6382437be9ad658990e28e893d2fe7bf3888735ade7bb1b95d8703b0b01422 6002821057ba2df0accd13ccd133465cab150d2675c6e607a12ba463d69967cf 68bdf19e596fa3cc4b08a7743ffa23e1444be6bc9f47da35739e985e1067ae80 705c2279b3d7f9d7f21685b3251c7c850548b8274f41b798e5a5bf981e73f26d 7902569e1e64b838362a48ef756810bc3e3bb96783e8ae493b545efaaca20455 7b65e5513a0c60057517386aa026b4ad52d9af8ef3d927fcb03ac2d890dc0202 7bd110c746b3b946b69a25cdcbe7e61e81757266d14bf7e604d18457494675ce 7c617a988bcd3648478e244f67aafb68e7977ba85ee97b3254da5ae3bb0a0bdd 8a2c418e80f553667ac4c3b66b13ad6282933747175ac7c2794281b4eebb7fab 8f35cb99a0cdb8c98ebefe43b6c533c4d6a1261511f54c3b20c2c6e54273f606 9ab669eab0afb239f3d44db4b394a84309efd661af6896f55f62bf33f97ec3cb a41eade48e93f4f44a177e7cd36ae23219de2415d163ec6abed5b40810a6251e a812833ea49f2d1d758db88e9ee89c2ab4dacb864ef4a2373a20c0bd505e3ed2 a8278e8ebe07b3434553c8bef208ecc04fcd474382e86b9a3bb7293229e2a427 c062f8d21f0970e27b2c389aa34827c455a3cc34cb4b9d32c724f97d6177c701 c12c01907256b91f724f3d136a2c0a7ba2d68d389dd59ca87a363733feac101e c94f80033e0906efa3cca3544d505ecccde833c3a0fbf6d65b5dbaa2ae5a4297 d102152032e25385944fcf9557299be36e155b9e59dbc612faf98f4159c8651e d434bc7989ec691d34729347999dacbc715964cb081b015344f15d1451d17a20 de3a5f84c6c9f6068f2bdf9ec80b92f6f24aae6a06e6d7cec5835a82799b82ac f0a15a46c8ba038e49ec98dc4b065ea1dd61c1b4e663e875ff12fb7ac950dd27 ffb011573d4d9f2a307b17df27b67ccfa643318a3a0e6ef8f145c62b3e744619

Elise MD5s:

060932c7880b6ddc704cf4ff6a4121d9 09ad967fae0e031bcbbc69d200d180ce 0c54c05ca4171e529404e4fac993c32c 1430b0595dca50a227714dc01ba792d5 16ec13572c34195214ec2bb0d9bfce48 26fe65b4c2b633ff8b65040f490e470a 2ae5ee3cac48721f3bd9e6a20bb358cf 3a2350adfb1af589cf26e23c79992d8b 3f8ef28d738d6732abd983543ddba190 43ee5edc3a5683723a116c0549ca2749 452de932d3803923f1e1c4c4c094d50b 4e73989932b3ba50f45fc72cf0b05e9b 601878431a8a7131b51779457287d9c5 62677b6664d53fdb337112730da73f5c 65abb1da7849078405e9352fe1b5dc17 6ee4c5664666fbfa80b4978ad16bcc95 7038acc604e1a2c69aa1d9c2a9fd07af 70cba4032355acde7aec3d6a5bbb2185 7fb40f038bd1b1b2e6f0127f0d53723c 815f5a52c155d1c3bcbc4f897c08d2b1 8390955f0fc751677bbf6df6dc4da370 8773c54974c33db59ee95318292d14e1 94c43b783fcc1226532058838a4b22b4 95d3546229518bd0fb5155ddf47b341f 9d2a3b1207f1cdacf4061d3e374e5a1c 9f12db080c58fdf0cc5c159352da9075 a34b48535256476c2fd1e4986519f3a6 b3dd9481bd5ad4ea38f0abf5f1c8d56d b517dde9531481cf9f1f251aa2089829 b77311a5202a146049aaacbf48f79499 ba5d1c1f4c48427d683f94dd901a0b1b c2c6fb0ff727025ea0a9b60f3608b0ff ce5d5a352c37e0b4a6c7c3a332d72e59 d0b4bb84e11a8f5892f083c2e08e24f7 d6e46656fbe6e7a7b9377df63ecf3d72 d9c98bd85ce03ef851e1e0c2b5d1ab05 e633d387c4932fe18529e91fbfbd52ef f3eb2e0c3e6e8ddb8961c61b59da2d24 f4d18d4adc6724114a189aff4b020c9f

*参考来源: cylance ,FB小编明明知道编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM) 

正文到此结束
Loading...