简介
2月19日,IBM XForce研究者发布了一篇报告[1],是关于2015年12月份公布出来的恶意软件GM Bot的源代码。GM Bot是一款很繁杂的安卓恶意软件家族,2014年年末出现在俄罗斯的地下犯罪网络中。IBM声称,最近发现的好几款安卓恶意软件家族实际上都是GM Bot的变异体。其中包括Bankosy[2], MazarBot[3], 还有最近FireEye描述的SlemBunk恶意软件。
安全厂商可能对恶意软件的变体有不同的定义。恶意软件变体指的是和原来恶意软件的代码几乎相同或者有一些不同,但是这些从代码是看只有轻微的差别,但实际上差别的非常大。
通过IBM的报告,我们比较了GM Bot样本和SlemBunk。基于这两个恶意软件家族的反汇编,我们认为GM Bot和SlemBunk有足够的代码相似性,他们很可能有共同的起源。有趣的是,我们的研究表明实际上有一个更早的恶意软件家族,名字叫SimpleLocker——这是第一个已知的文件加密的安卓恶意软件[6] ——这和一些银行木马家族很相似。
GM Bot 和SlemBunk
我们的分析表明,有四个GM Bot样本都共同引用了SlemBunk的主要组件。图1是我们早期的报告,是SlemBunk的主要组件的代码部分,对应的类名如下:
1. 服务启动器(ServiceStarter): 该服务是一个接收器,当一个应用或者设备启动的时候,该服务就会在后台启动监控服务MainService。
2. 主服务(MainService): 该服务在后台运行,可以监控设备上所有正在运行的进程。它会像正常的app提醒那样通过覆盖视图提醒用户。同时,这个监控服务会和远程主机进行通信,会发送设备的初始数据、设备的状态信息以及应用程序首选项。
3. 信息接收器(MessageReceiver): 是一个安卓的信息接收器,可以处理输入的文本信息。一方面提供拦截银行的身份认证信息的功能,另一方面作为客户端执行远程主机的控制命令。
4. 请求管理权限(MyDeviceAdminReceiver): 当app第一次运行的时候,该服务会向系统请求管理员权限,成功后,该app就更难从系统中移除。
5. 自动以UI界面(Customized UI views): 可以自定义用户登录界面,可用于模拟一个假的银行应用程序登录界面或者社交网络登录界面,用于银行钓鱼或者盗取社交账号。
图1 SlemBunk恶意软件家庭的主要组件
前面三个GM Bot样本和提到的SlemBunk样本具有相同的包名称。此外,GM Bot的样本具有的这5个组件和图1中的SlemBunk样本具有相同的组件名。
第四个GM Bot样本具有不同的初始包名,但是,在运行起来后解压出真正的payload,发现,解压后的payload其实和SlemBunk样本是一样的,同样也有一些改变的地方:MessageReceiver变成了buziabuzia,MyDeviceAdminReceiver变成了MDRA。
图2 GM Bot和SlemBunk之间的代码结构比较
图2展示了GM Bot样本和SlemBunk样本之间代码结构的相似性(其中SHA256 9425fca578661392f3b12e1f1d83b8307bfb94340ae797c2f121d365852a775e和SHA256 e072a7a8d8e5a562342121408493937ecdedf6f357b1687e6da257f40d0c6b27分别是GM Bot和SlemBunk)。通过这幅图,我们可以知道我们以前的文章中[4]讨论到的5个重要组件也同样存在于GM Bot样本中。其他常见的类包括:
1. Main,两中样本的启动。
2. MyApplication,应用程序的类,比任何其他都早启动
3. SDCardServiceStarter,另一个接收器,可以监控MainService的状态,并且如果MainService死了,可以重启它。
在上面提到的所有组件和类当中,最关键的是MainService。App启动的时候它通过Main类启动,并且在保持在后台运行并且实时监控正在运行的进程。当检测到有可以攻击的app运行的时候(e.g. 一些银行的移动应用程序)就会用模拟的登录界面覆盖真实的登录页面,进行钓鱼。为了保证MainService持续运行,恶意软件的作者增加了两个启动器——ServiceStarter和SDCardServiceStarter,用于检测软件的运行状态,防止特殊的系统时间发生。GM Bot和SlemBunk有相同的代码结构。如图3所示,我们可以看到SDCardServiceStarter类的主要代码,以及GM Bot和SlemBunk是如何通过同一种机制运行MainService。
图3 GM Bot和SlemBot中的SDCardServiceStarter类中的方法
从上图可以看出,GM Bot和SlemBunk使用相同的代码启动MainService。注意,当样本检测到系统的本地位置是在俄罗斯的时候,就会避免使用MainService启动。唯一不同的是,GM Bot样本将会对这些类、方法和字段进行重命名,例如:在GM Bot中的静态变量“MainService;->a”和SlemBunk中的“MainService;->isRunning”实际上具有相同的作用。恶意软件的作者这么做就是为了混肴视听,让他的代码更难以理解,但是这些无法从底层改变代码架构。
图4向我们展示的是GM Bot和SlemBunk的核心代码类MainService,这表明两种恶意软件具有相同的逻辑结构。安卓中,但一个服务启动时,onCreate方法就会被调用。两种样本中的onCreate方法中,都是先把一个静态变量设置成true。在GM Bot中,静态参数命名为“a”,然而在Slembu中命名为“isRunning”。然后,两个都继续移动到真实程序的正常设置中。注意,两个样本有相同的设置“AppPrefs”。两个样本最后步骤做的任务也都是一样的。特别是,为了检测是否有可以攻击的app在运行,都调用了一个线程。如果有可攻击的app,相应的覆盖视图将会被加载到这个app的顶部。在这两个线程中唯一的不同也仅仅是名字上的不同。在GM Bot中是“d”类,在SlemBunk中是“MainService$2”,功能都是用来做凭证钓鱼。
图4 GM Bot和SlemBunk中的MainService类
总之,我们通过分析二进制代码的相似度的结果表明IBM的结论没错,GM Bot和SlemBunk确实有相同的起源。
SimpleLocker 和 SlemBunk
在我们的研究中,我们注意到一个更早的安卓恶意软件名叫SimpleLocker也有着和SlemBunk和GM Bot相似的代码结构。不同的是,SimpleLocker要求受害者提供赎金。SimpleLocker在安卓设备上运行后,先是扫描设备中特定类型的文件,并且加密这些文件,然后向用户索要赎金之后,才给解密。在SimpleLocker之前,也有其他形式的勒索软件可以锁定屏幕,然而,SimpleLocker被认为是第一款文件加密型的安卓勒索软件。
图5就是两种样本的代码结构对比图。注意,SimpleLocker变体也有主要的组件ServiceStarter 和MainService,而这两个组件在SlemBunk中也用到。然而,SimpleLocker中的主服务目的不是用于监控app的运行和钓鱼银行登录页面。反而,SimpleLocker的主服务是用于扫描设备中的特定文件,扫到了就调用加密算法对文件进行加密,然后索要赎金。SimpleLocker代码中最大的区别如下图红色框标志的部分:AesCrypt和FileEncryptor。其他的类如下描述的:
1. Main,样本的启动
2. SDCardServiceStarter,另一个接受器,可以监控MainService的状态,同时,如果MainService死掉了,还可以重启它
3. Tor and OnionKit,私人通信的第三方库
4. TorSender, HttpSender and Utils,支持类提供CnC通信代码并且收集设备信息
图5 SimpleLocker和SlemBunk样本的代码结构对比
最后,我们来看看另一个在2014年7月份发现的SimpleLocker样本
(SHA256 304efc1f0b5b8c6c711c03a13d5d8b90755cec00cac1218a7a4a22b091ffb30b),大约是发现第一个SimpleLocker样本后2个月。这个新的样本并没有用Tor作为私密通信,但是,他和SlemBunk样本
(SHA256: f3341fc8d7248b3d4e58a3ee87e4e675b5f6fc37f28644a2c6ca9c4d11c92b96)由着四个相同的主要组件。图6向我们展示了两种样本的代码结构对比。
图6 SimpleLocker和SlemBunk变体的代码结构对比
正如图6所示,新的SimpleLocker样本使用了和SlemBunk相似的包结构,都是把HttpSender 和Utils封装进“utils”包。它也添加了其他两个SlemBunk中的主要组件: MessageReceiver 和MyDeviceAdminReceiver。总的来说,SimpleLocker和SlemBunk有四个主要的组件相似。

图7是之前样本的MessageReceiver的主要代码,这表明SimpleLocker和SlemBunk使用的是基本相同的流程,并且,使用相同的逻辑结构进行CnC通信。首先,MessageReceiver类本身用来处理传入的短信,这将会触发onReceive函数。如下图所示,他们的逻辑结构基本上是相似的。他们都是先读取应用程序的key值。注意两个软件的key值的名字和preference的名字是相同的:key值是“CHECKING_NUMBER_DONE”并且preference值是 “AppPrefs”。
接下来的步骤就是调用retrieveMessage 方法来检索短信息。在这里,唯一一个不同点是SimpleLocker多了一个额外的名叫processControlCommand的控制流。
SmsProcessor类定义了恶意软件提供的CnC指令。我们来看下SmsProcessor类,我就发现,越来越多的证据指向SimpleLocker和SlemBunk有共同的起源。首先,SimpleLocker提供的CnC指令实际上是SimpleLocker提供的一个子集。在SimpleLocker中,CnC指令包括“intercept_sms_start”, ”intercept_sms_stop”, ”control_number” 和“send_sms”,这些指令在SlemBunk样本中也有提供。甚至,SimpleLocker和SlemBunk的CnC指令都有一个常见的前缀“#”。这也表明两种软件由着相同的起源。
图7 SimpleLocker和SlemBunk的MessageReceiver 类
MyDeviceAdminReceiver类的任务是请求所在设备的管理员权限,这可以让恶意软件难以被清除,当然这方面两种软件也是高度的相似。
在这一段中,我们可以看到SimpleLocker和SlemBunk中5个主要组件中有4个是一样的,并且提供相同的支持工具。唯一的区别在于他们的勒索方式,SlemBunk提供了银行认证钓鱼,而SimpleLocker是通过加密文件索要赎金。这让我们更加有理由相信这两种恶意软件起源于相同的代码库。
结论
我们的分析证明有还几款安恶意软件都有共同的起源,并且,已知的第一款文件安卓加密勒索软件——SimpleLocker——是以一些银行木马程序的代码修改而成。进一步研究就能发现其他相关的恶意软件。
地下网络犯罪中有很多个人开发者已经开始定制化写恶意软件。不管为了特殊目的还是普通的目的写出来的恶意软件,都可以共享一些基础的功能,例如:获取管理员权限,开启和重启服务,CnC通信。这些可以从GM Bot和SimpleLocker的对比中看出来。
随着GM Bot源代码的泄漏,基于该代码定制的安卓恶意软件家族也必然增加。
参考:
[1]. Android Malware About to Get Worse: GM Bot Source Code Leaked
[2]. Android.Bankosy: All ears on voice call-based 2FA
[3]. MazarBOT: Top class Android>
超级巡警怎么样?杀毒防毒能力强吗?
它本身就是防木马辅助软件 超级巡警(Anti-Spyware Toolkit) 1、 软件简介: 专门查杀并可辅助查杀各种木马、流氓软件、利用Rootkit技术的各种后门和其它恶意代码(间谍软件、蠕虫病毒)等等。 提供了多种专业工具,提供系统 /IE修复、隐私保护和安全优化功能,提供了全面的系统监测功能,使你对系统的变化了如指掌,配合手动分析可近100%的查杀未知恶意代码! 2、主要特色: 1)通用的自动化Rootkit解决方案,不使用传统特征码,即可检测各种利用Rootkit技术隐藏的木马、后门。 2)全面检测隐藏进程、隐藏服务、隐藏端口。 3)自动检测和修复Winsock SPI链的相关错误。 4)系统内核服务描述表恢复,显示和摘除被Hook的内核函数,自动还原被Inline hook的内核函数。 5)独创的快速匹配算法,在最小的系统资源占用级别上进行最快的扫描检测。 6)扫描模块和实时监控共用引擎和库在内存中的同一份拷贝,大大降低系统资源占用,模块间高效协同工作。 7)内存扫描和静态分析预警系统有机结合。 8)立足于病毒家族的广谱特征,强力提高病毒检测率。 9)前瞻性的主动防御监测体系,全面检测未知木马。 10)国内首个支持NTFS数据流扫描,使检测更彻底。 11)纯绿色软件,解压即可使用。 3、主要功能: 启发预警,启动管理,IE插件管理,SPI链自动检测与修复,Rootkit检测,服务管理,隐藏服务检测,过滤微软默认服务,服务增加和删除, SSDT (服务描述表)恢复,进程管理,隐藏进程检测,DLL模块强制卸载,检测隐藏端口,断开连接,定位远程IP,WHOIS查询,关闭端口,IE修复,流氓插件免疫,恶意网站屏蔽,系统垃圾清理,智能扫描,文件粉碎机,软件卸载,系统优化,系统修复,漏洞检查和修复,右键查毒,漏洞检查和修复,系统诊断报告,论坛救援,启发扫描,NTFS数据流扫描,签名分析,全面扫描,内存扫描,目录扫描,信任列表,实时监控,智能升级。
传奇世界几年关?
当传世诞生正式收费一个月就能收回所有成本的神话出现,相信中国没有哪个网游能如此.虽然传世有很强的传奇SF特点在里面,相信这是一个不可回避的问题,很多玩家在游戏开区时就已经发觉.但他后来收购了韩国传奇的大部分股份后,本质上就发生了很大的变化,所以不得不承认,***是有一定远见卓识的人,此举也封堵了很多恶意谣言.但是,传世商业化过浓,在渐渐远离以娱乐为主的主线后,已经开始渐渐失去相当的玩家一部分,希望天桥老大抽时间好好思考,如何保持传世的挂续性发展以及如何真正吸引到更多玩家的心,不要让玩家产生又爱又恨的思想,那样在当今这个物欲横流的社会中,玩家会不得已去接受其它的娱乐选择.游戏里,虽然装备和级别是一个追求目标,但,玩家在游戏里,更注重的是玩家之间的感情.当游戏对玩家产生了经济上的负荷后,玩家们会考虑到朋友间的感情,而集体离开,去另一个可以让大家在一起玩得开心,方便交流的平台.这也是为什么中国现在为什么那么多SF不但没有关闭的意思,而是开得比官方还官方的原因.在四十一区天涯,也是我所在的区内,虽然玩家仍然很多,但我眼中,消失的家族已经不止两三个了.并且从之前与他们交流来看,大部分对传世的商业化运作在短时间内的急速加深,玩家负担急聚加大有很大关系.据我两年来接触传世来看.已经很大部分玩家流失,虽然仍然看得到每一个活动有几十W人同时在线的火爆,但有件事就是大家心知肚明的,一个人在一个区或好几个区都有号,需要同时上线时,就用脱机外挂上线领奖,我想等活动结束的那瞬间,不知道盛大是否有过统计.一个真正意义上的大众化的游戏,不是某部分玩家,不停换区,不停开号所能支撑太久的.网络始终是一个泡沫经济,当你把这个泡沫过急的吹到一定程度时,他势必会爆裂.但如果你只是适当的,把握时机的去加大他,加固他,那会有更多的成长空间.以上只是一个老玩家对传世的一些看法,也仅代表个人意见
林黛玉与薛宝钗哪个好啊?
林黛玉:性格就是个矛盾和偏执的混合体。 1、自卑又自傲。 自她父亲去世,来过着类似寄居似的生活时,就让自卑的情结埋藏在心底,虽然老祖宗比较疼爱,可是这疼爱不是唯一的,所以感怀身世的她总有浮萍飘零之感。 而作为一个小姐,身份和自身的才学都让她变得有些孤傲,但这也正是她在竭力掩盖自卑的一种手段。 2、多情又无情。 她对于宝玉及自己的贴身丫鬟都是赤心一颗,处处体己,葬花魂一段也看出她情感丰富的一面。 可是因为自身身世和看透家族利益的从属,让她对于其他人是无情的,甚至是有些苛刻挑剔的眼光去毫不留情面的指责他人。 3、细心多疑又直来直去。 她总是以冷眼旁观的姿态去看着一些人一些事,想得很多,因为内心的脆弱总是一怀疑的态度去反方向思考。 可是事情和宝玉有关了,她就往往会失态,难以平衡一些事情和周全一些问题。
宝钗:总体来讲就是变通又固执的小资本思想。 其实最初她的目标是皇宫的,可是因为种种原因她没有选秀成功,于是有点退而求其次的才会打了宝玉的念头,而她上上下下处处逢源的打通贾府人脉,也和她善于变通的性格有关,不是她真有多宽广的胸怀,而是她能权衡出其中的利益得失。 但是她固执的还是坚持封建礼制,做事的处处圆滑也是在典制礼教之中的,她坚守着自己家庭的利益,自己的利益,小资本思想在那个唯利是图的年代还是将她的角色扮演的游刃有余的。
薛宝钗十五岁生日,王熙凤当着贾府众多人的面,羞辱林黛玉,比林黛玉为戏子,史湘云、薛宝钗等也都心领神会地以一动一静与之配合,连贾宝玉也掺和在里边。 林黛玉不是傻大姐,她有自己的尊严。 她虽深知其中恶意,但没有发作,她可以反唇相讥,也可以拂袖而去,如果那样,众人尴尬,宝钗的生日也会变得不欢,但因黛玉是贾母非常喜爱的外孙女,谁也拿她没法。 然而黛玉没有那样作,而是选择了沉默,既给了众人以面子,也没有使宝钗生日气氛受到影响。 不仅如此,第二天当宝玉感到应付几个姐妹力不从心而产生出家想法时,竟然不计前嫌,主动邀史湘云、薛宝钗一起去说服贾宝玉打消呆想。 黛玉的宽容和涵养于此可见。 我喜欢黛玉
发表评论