热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

拦截流量注入广告:macOSSearchPageInstaller恶意软件分析

 概述我们针对SPI广告恶意软件进行了深入分析,发现该软件利用开源的mitmproxy拦截流量,并注入广告。长期以来,恶意软件作者始终在寻找或创造新的方法,来避免检测,并产生收益。在上周,我们监测到m

 

概述

我们针对SPI广告恶意软件进行了深入分析,发现该软件利用开源的mitmproxy拦截流量,并注入广告。

长期以来,恶意软件作者始终在寻找或创造新的方法,来避免检测,并产生收益。在上周,我们监测到macOS中出现了一种新型恶意软件,使用了此前没有见过的技术。由此,我们启动虚拟机,开始对这一恶意软件进行详细分析。

本文是我们针对这一恶意软件得出的分析结论。

 

老瓶装新酒

SearchPageInstaller(SPI)是自2017年以来持续活跃的广告恶意软件,但最近我们首次发现,该恶意软件的新变种使用到了mitmproxy。事实上,我们根据2017年12月在mac360.com上发表的一个帖子以及其下方的讨论中,就已经注意到了这种联系。并且,根据我们对一些代码组件的分析,我们认为这一恶意软件可能是在几个月前开发的,大概是在2017年8月左右。原因在于,我们发现该文件中包含日期(以美国的日期格式书写):

恶意软件采取了一种新颖的方法,以从广告中获得收入。SPI并没有简单地将浏览器重定向到用户没有实际访问的页面,而是将广告注入到用户搜索返回的HTML文档的顶部。为此,它首先在被感染的计算机上启用HTTP和HTTPS代理,我们可以在“系统偏好设置”(System Preferences)-“网络”(Network)的“代理”(Proxies)选项卡中看到证据:

在命令行中,输入system_profiler SPNetworkDataType | grep ‘Proxy Enabled’,可以看到:

我们查看已经被SearchPageInstaller拦截的网页,可以发现SPI将攻击者自定义的脚本添加到搜索结果页面的顶部,从而替换其他的任何广告:

该脚本来自chaumonttechnology.com,这个域名仅被VirusTotal上的两个反恶意引擎识别为恶意:

 

中间人攻击

至于Web代理,SPI使用了mitmproxy,这是一个开源的HTTPS代理。具体来说,它使用inject.py脚本,将脚本注入到网页主体中:

之所以能做到这一点,是因为mitmproxy本质上充当了服务器和客户端之间的“中间人”,创建了“动态的”虚拟证书,从而让服务器认为它是客户端,让客户端认为它是服务器。

借助SPI二进制文件,就能够实现这一点,一旦系统请求用户输入密码,它就会手动安装mitmproxy CA证书。我们能够在macOS 10.14 Mojave上检测到此类攻击:

如果获得授权,那么恶意软件会将启动“中间人”攻击所需的mitmproxy CA证书和其他凭据写入位于~/.mitmproxy中的隐藏文件夹:

 

检测

正如我们所看到的那样,当启动SearchPageInstaller时,它首先会尝试获取安装新证书的权限。然后,立即对网络代理设置进行更改,这一更改操作实际上也需要管理员的批准,因此会弹出另一个身份验证请求。SPI的行为会立即触发SentinelOne代理的响应,我们这次以macOS 10.12.6 Sierra的安装过程为例:

但是,由于我们正在进行恶意软件的分析,因此我们决定不阻止威胁,而是使用SentinelOne管理控制台独有的EDR功能来观察其行为。

在允许恶意软件继续执行后,我们就能够看到整个攻击的全貌,能清晰看到每个恶意软件进程的创建过程,以及所有生成的事件:

右侧面板中的视图,展示了当前选定的事件。在这种情况下,我们执行mitmdump binary,这是一个带有mitmproxy的命令行工具。

Mitmdump工具可以查看、记录和程序化转换HTTP流量。我们可以借此看到调用inject.py脚本和提供的参数的进程。在这里,mitmproxy在通过HTTPS连接时,会忽略正则表达式模式匹配的某些域名,其原因可能是为了避免在使用证书锁定(Certificate Pinning)保护流量过程中出现错误。

随后,mitmdump进程会继续生成一个Shell进程,该进程调用uname实用程序,来获取有关主机架构的信息。

我们通过SentinelOne EDR功能(深度可见性,Deep Visibility),可以监测并查看每个进程的所有网络流量,无论其使用的是加密的HTTPS协议,还是不安全的HTTP协议。

在掌握了有关恶意软件的充足情报后,我们就可以使用管理控制台,将计算机回滚到其未感染的状态。

 

总结

尽管根据我们观察到的SPI行为,能看到它只是一个风险相对较低的广告恶意软件活动。但是,它居然能够同时操控普通HTTP流量和加密HTTPS流量,这是一个非常严重的问题。传统的反病毒软件可能会将mitmproxy这样的进程列入白名单,因为它是一个具有合法用途的开发者工具。但如果借助一些高级的工具,就可以识别出具有真正威胁的子进程,同时也能够查看恶意软件的网络流量。

原文链接:https://www.sentinelone.com/blog/inside-searchpageinstaller-macos-malware-deploys-mitm-attack/


推荐阅读
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文将详细介绍通过CAS(Central Authentication Service)实现单点登录的原理和步骤。CAS由耶鲁大学开发,旨在为多应用系统提供统一的身份认证服务。文中不仅涵盖了CAS的基本架构,还提供了具体的配置实例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 本文详细介绍了如何正确配置Java环境变量PATH,以确保JDK安装完成后能够正常运行。文章不仅涵盖了基本的环境变量设置步骤,还提供了针对不同操作系统下的具体操作指南。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 本文介绍如何从JSON格式的文件中提取数据并将其分配给Bash脚本中的变量。我们将探讨具体的命令和工具,帮助你高效地完成这一任务。 ... [详细]
  • RedHat 系统下配置国内 YUM 源以替代官方收费源的方法
    本文详细介绍如何在 RedHat Linux 中安装并配置 YUM 包管理器,并通过使用国内镜像源来解决因未购买官方服务而导致的更新源限制问题。 ... [详细]
author-avatar
mobiledu2502906927
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有