新型安卓恶意软件使用Protobuf协议窃取用户数据

1693366438_64eeb8a6a909736e7c840.png!small?1693366438924

近日有研究人员发现,MMRat新型安卓银行恶意软件利用protobuf 数据序列化这种罕见的通信方法入侵设备窃取数据。

趋势科技最早是在2023年6月底首次发现了MMRat,它主要针对东南亚用户,在VirusTotal等反病毒扫描服务中一直未被发现。

虽然研究人员并不知道该恶意软件最初是如何向受害者推广的,但他们发现 MMRat 目前是通过伪装成官方应用程序商店的网站进行传播的。

这些应用程序通常会模仿政府官方应用程序或约会应用程序,待受害者下载时会自动安装携带 MMRat 的恶意应用程序,并在安装过程中授予权限,如访问安卓的辅助功能服务等。

恶意软件会自动滥用辅助功能,为自己授予额外权限,从而在受感染设备上执行大量恶意操作。

MMRat 的功能

一旦 MMRat 感染了安卓设备,它就会与 C2 服务器建立通信渠道,并监控设备活动以发现设备空闲时间。在此期间,威胁行为者会滥用可访问性服务远程唤醒设备、解锁屏幕并实时进行银行欺诈。

MMRat 的主要功能可归纳为以下几点:

  • 收集网络、屏幕和电池信息
  • 窃取用户的联系人列表和已安装的应用程序列表
  • 通过键盘记录获取用户输入信息
  • 通过滥用 MediaProjection API 从设备上捕获实时屏幕内容
  • 记录和实时串流摄像头数据
  • 以文本转储形式记录和转储屏幕数据,并将其外泄到 C2
  • 从设备上卸载,清除所有感染证据

1693365427_64eeb4b3b350c858ef102.png!small?1693365427413

恶意软件支持的所有命令,图源:趋势科技

MMRat 能够捕捉实时屏幕内容,甚至还能通过更初级的 "用户终端状态 "方法提取需要重构的文本数据,这都要求高效的数据传输。

如果没有这样的效率,其性能将阻碍威胁行为者有效实施银行欺诈,这也是 MMRat 的作者选择开发用于数据外渗的定制 Protobuf 协议的原因。

1693365617_64eeb571f0756190ed36f.png!small?1693365618168

MMRat攻击链,图源:趋势科技

Protobuf的优势

MMRat 使用基于协议缓冲区(Protobuf)的独特命令与控制(C2)服务器协议来实现高效数据传输,这在安卓木马中并不多见。

Protobuf 是谷歌开发的一种结构化数据序列化方法,类似于 XML 和 JSON,但体积更小、速度更快。

MMRat 使用不同的端口和协议与 C2 交换数据,如 8080 端口的 HTTP 用于数据渗出,RTSP 和 8554 端口用于视频流,8887 端口的自定义 Protobuf 用于命令和控制。

趋势科技的报告指出:C&C协议尤其独特,因为它是基于Netty和上文提到的Protobuf定制的,具有精心设计的消息结构。

对于 C&C 通信,威胁行为者使用一个总体结构来表示所有消息类型,并使用 "oneof "关键字来表示不同的数据类型"。

1693366023_64eeb70753d665ee3e8da.png!small?1693366023509

Protobuf模式,图源:趋势科技

除了 Protobuf 的高效性,定制协议还能帮助威胁行为者躲避网络安全工具的检测,这些工具会寻找已知异常的共同模式。

Protobuf的灵活性允许MMRat的作者定义他们的信息结构,并组织数据的传输方式。同时,Protobuf 的结构化特性还能确保发送的数据符合预定义的模式,从而降低在接收端被破坏的可能性。

MMRat凸显出了安卓银行木马不断发展的复杂性,它巧妙地将隐蔽性与高效数据提取融为一体。

因此,安卓用户最好全部在Google Play里下载应用 ,查看用户评论,并只选择信誉良好的软件发行商。此外,在安装应用程序阶段被要求授予访问权限时须保持谨慎。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/97339.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

零知识证明(zk-SNARK)(一)

全称为 Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,简洁非交互式零知识证明,简洁性使得运行该协议时,即便statement非常大,它的proof大小也仅有几百个bytes,并且验证一个proof的时间可以达到毫秒…

ExpressLRS开源之RC链路性能测试

ExpressLRS开源之RC链路性能测试 1. 源由2. 分析3. 测试方案4. 测试设计4.1 校准测试4.2 实验室测试4.3 拉距测试4.4 遮挡测试 5. 总结6. 参考资料 1. 源由 基于ExpressLRS开源基本调试验证方法,对RC链路性能进行简单的性能测试。 修改设计总能够满足合理的需求&a…

达梦数据库管理用户和创建用户介绍

概述 本文主要对达梦数据库管理用户和创建用户进行介绍和总结。 1.管理用户介绍 1.1 达梦安全机制 任何数据库设计和使用都需要考虑安全机制,达梦数据库采用“三权分立”或“四权分立”的安全机制,将系统中所有的权限按照类型进行划分,为每…

浅谈 Pytest+HttpRunner 如何展开接口测试!

软件测试有多种多样的方法和技术,可以从不同角度对它们进行分类。其中,根据软件生命周期,针对不同的测试对象与目标,可将测试过程分为 4 个阶段:单元测试、集成测试、系统测试和验收测试。本文着重介绍了如何借用 pyte…

基于机器学习的fNIRS信号质量控制方法

摘要 尽管功能性近红外光谱(fNIRS)在神经系统研究中的应用越来越广泛,但fNIRS信号处理仍未标准化,并且受到经验和手动操作的高度影响。在任何信号处理过程的开始阶段,信号质量控制(SQC)对于防止错误和不可靠结果至关重要。在fNIRS分析中&…

Endnote中查看一个文献的分组的具体方法——以Endnote X8为例

Endnote中查看一个文献的分组的具体方法——以Endnote X8为例 一、问题 当Endnote中使用分类方法对文献进行分组管理后,有时需要重新调整该文献的分组,则需要找到这个文献在哪个分组中。本文阐述怎样寻找一个文献的分组的位置信息。 二、解决方法 1.选…

基于单片机的智能数字电子秤proteus仿真设计

一、系统方案 1、当电子称开机时,单片机会进入一系列初始化,进入1602显示模式设定,如开关显示、光标有无设置、光标闪烁设置,定时器初始化,进入定时器模式,如初始值赋值。之后液晶会显示Welcome To Use Ele…

Rust之自动化测试(一):如何编写测试

开发环境 Windows 10Rust 1.71.1 VS Code 1.81.1 项目工程 这里继续沿用上次工程rust-demo 编写自动化测试 Edsger W. Dijkstra在他1972年的文章《谦逊的程序员》中说,“程序测试可以是一种非常有效的方法来显示错误的存在,但它对于显示它们的不存在…

【业务功能篇90】微服务-springcloud-检索服务-ElasticSearch实战运用-DSL语句

商城检索服务 1.检索页面的搭建 商品检索页面我们放在search服务中处理&#xff0c;首页我们需要在mall-search服务中支持Thymeleaf。添加对应的依赖 <!-- 添加Thymeleaf的依赖 --><dependency><groupId>org.springframework.boot</groupId><artifa…

Solidity 小白教程:4. 函数输出 return

Solidity 小白教程&#xff1a;4. 函数输出 return 这一讲&#xff0c;我们将介绍Solidity函数输出&#xff0c;包括&#xff1a;返回多种变量&#xff0c;命名式返回&#xff0c;以及利用解构式赋值读取全部和部分返回值。 返回值 return 和 returns Solidity有两个关键字与…

java八股文面试[JVM]——类初始化过程

回顾类加载过程&#xff1a; 知识来源&#xff1a; 【2023年面试】Class初始化过程是什么_哔哩哔哩_bilibili

物联网智慧种植农业大棚系统

一、项目背景 智慧农业是是将物联网技术和农业生产箱管理的新型农业&#xff0c;依托部署在农业生产现场的各种传感节点&#xff0c;以物联网网关为通道形成数据传输网络&#xff0c;可以实现控制柜、环境监测传感器、气象监测机器等设备的远程监控&#xff0c;达到及时高校的…

LRU代码实现

LRU&#xff1a;最久未使用置换原则 均以3个内存块举例。 FIFO&#xff1a;先进先出 LRU算法代码实现&#xff1a; /* 双链表&#xff1a;最底端是最久未使用的 哈希表&#xff1a;通过缓存数据的键映射到其在双向链表中位置对hash表做put和get&#xff1a;给LRU的cache用map…

高通开发系列 - 5G网络之QTI守护进程服务介绍

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 返回:专栏总目录 目录 代码位置和依赖关系功能介绍代码逻辑讲解外设节点关注的目录socket服务端初始化DPM客户端监听守护关键的数据结构体…

day 30 动态GDP柱状图绘制

列表.sort(key选择排序依据的函数&#xff0c;reverseTrue|False) 参数key:要求传入一个函数&#xff0c;表示将列表的每一个元素传入函数当中&#xff0c;返回排序的依据&#xff0c; 参数reverse,是否反转排序结果&#xff0c;True降序&#xff0c;False升序 my_list [[&…

C语言每日一练------(Day3)

本专栏为c语言练习专栏&#xff0c;适合刚刚学完c语言的初学者。本专栏每天会不定时更新&#xff0c;通过每天练习&#xff0c;进一步对c语言的重难点知识进行更深入的学习。 今天练习题的关键字&#xff1a; 尼科彻斯定理 等差数列 &#x1f493;博主csdn个人主页&#xff1a…

速腾RS16的ROS2驱动

文章目录 本机软硬件环境ROS2驱动下载ROS2编译设置固定IP编辑配置文件测试参考 本机软硬件环境 ROS2-foxyubuntu20.04速腾RS16 ROS2驱动下载 mkdir laser_ws && cd laser_ws/ mkdir src && cd src/ git clone https://github.com/RoboSense-LiDAR/rslidar_m…

【OpenCV实战】3.OpenCV颜色空间实战

OpenCV颜色空间实战 〇、Coding实战内容一、imread1.1 函数介绍1.2 Flags1.3 Code 二. 色彩空间2.1 获取单色空间2.2. HSV、YUV、RGB2.3. 不同颜色空间应用场景 〇、Coding实战内容 OpenCV imread()方法不同的flags差异性获取单色通道【R通道、G通道、B通道】HSV、YUV、RGB 一…

el-table表尾添加合计行,自动合计,且特殊列自定义计算展示

效果如图 1.element-ui的table表格有合计功能&#xff0c;但是功能却不完善&#xff0c;会有不显示和计算出现错误的问题&#xff0c;项目中有遇到&#xff0c;所以记录下 show-summary&#xff1a;自动合计 getSummaries&#xff08;&#xff09;&#xff1a;对合计行进行特…

2023阿里云学生服务器免费领取入口_学生认证流程

2023阿里云学生服务器价格可以免费申请&#xff0c;阿腾云分享阿里云学生服务器优惠活动入口&#xff0c;学生服务器完成学生认证领取流程&#xff0c;阿里云学生机配置为云服务器ECS、2核2G、1M带宽、40G系统盘&#xff0c;完成学生身份认证即可免费领取1台ECS&#xff0c;在云…