【电子数据取证】Android APK静态分析与动态分析

news2024/11/15 4:40:55

文章关键词:电子数据取证、手机取证、安卓取证、云取证、APK分析

当前手机用户量增长越来越快,尤其是中国,手机用户量已超10亿,即大约75%的中国人拥有自己的手机。正因为手机越来越智能化,携带也方便,因此许多人将隐私信息存储在手机上,且在多处场景下无形地公开化,而这些信息正是许多病毒作者所热衷的。在移动终端上的安全也将比电脑终端越来越重要,移动安全也已成为安全领域的另一新战场。

Android常见恶意软件行为

1、恶意扣费:病毒在后台发送扣费短信、拨打电话进行恶意扣费,同时会对服务商发回的服务短信进行屏蔽,破坏系统的正常功能,同时对用户造成资费损失;

2、隐私窃取:病毒通过后台服务窃取用户隐私信息,包括通话录音、短信内容、IMEI、IMSI、地理位置、通讯录、浏览器历史记录等信息,然后上传到黑客控制的远程服务器;

3、远程控制:病毒在后台开机自动,并与C&C服务器进行通讯,并从中获取加密的指令,解密后执行相应的恶意操作,也有通过SMS进行控制,构造出botnet,从而大规模地远程控制用户的手机。比如之前著名的AnserverBot病毒,就是通过新浪博客进行远程控制,也是首个利用第三方站点作为C&C服务器的Android病毒;

4、系统破坏:病毒通过系统漏洞进行ROOT提权,并执行高权限操作,在后台静默安装子程序包,或者通过伪造成杀毒软件、提示更新等方式欺骗用户安装第三方恶意程序。病毒可能会更改网络状态、APN,或者替换系统文件、添加恶意书签、屏蔽运营商短信、中止杀软进程等方式进行系统破坏。

Android沙盘原理

本文主要介绍一款Android恶意软件行为自动分析平台——MalDroidAnalyzer,其主要结合静态分析和动态分析技术来实现恶意软件行为自动化分析。MalDroidAnalyzer是笔者使用Perl语言编写的,用于辅助分析Android软件行为,提高恶意软件的分析效率。

首先,MalDroidAnalyzer直接以apk文件作为输入,整个分析过程主要分析两部分:静态分析和动态分析。静态分析会通过反编译apk文件,分析其中的权限、组件、敏感函数等信息,这些可以弥补动态分析中因未触发恶意行为而漏掉的行为。动态分析主要通过在模拟器运行Android软件,然后再对软件进行一些操作以触发尽可能多的恶意行为,接着输出到log中,再通过脚本对日志进行分析。由于Android系统默认情况下,一些输出日志里面缺乏我们所需的信息,比如发送短信时,只在log中记录手机号,而没有短信内容,此时就需要通过修改Android源码或者反汇编system.img中的相关类或者库进行修改,可以在短信发送函数sendTextMessage(位于system.img中的framework/framework.jar)里面添加短信内容的日志输出:

一、静态分析

沙盘MalDroidAnalyzer主要在电脑端对APK进行静态分析,通过apktool先进行反编译处理。正常的APK文件主要是以zip格式进行压缩捆绑的文档,里面主要包含AndroidManifest.xml、Classes.dex和res等文件。在反编译后会得到明文的AndroidManifest.xml,里面定义各组件、组件权限和启动位置、软件基本信息等,通过对该xml文件的分析,可以获取到软件名称、包名等基本信息,同时对包含的各个组件进行分析,特别是Broadcast Receiver组件的触发条件,可能就包含有开机自启动项用于启动后台服务,这些在报告中都会被高亮显示出来。

在动态分析过程中,可能由于恶意行为的时间限制,或者模拟器的功能限制(比如蓝牙、Wifi),导致病毒的一些恶意行为无法触发。此时,我们通过检测Android软件调用的API函数可弥补这里的不足,比如发送扣费短信通常会调用sendTextMessage()函数,执行外部命令可能会调用java.lang.Runtime.exec()。下面是收集整理的一些敏感API函数列表:

二、动态分析

动态分析是Android沙盘的主要功能,主要使用Google Android模拟器作为沙盘环境,同时以前面修改过的system.img来启动模拟器,以在操作过程中生成我们所需的日志信息:

这里的root-system.img是经过root的,默认情况下,Android模拟器是没有root权限的,需要自己手工修改。这样在一些需要root权限的病毒才能正常的模拟器运行,以触发更多的恶意行为。

启动模拟器后,利用adb安装APK到模拟器上。业界多数沙盘是通过monkey去自动操作软件以触发恶意行为,但这种做法过于盲目,不容易触发恶意行为,同时当操作过于频繁时容易导致程序崩溃,因此在MalDroidAnalyzer中选择由用户自主手工操作,操作时间由用户自己把握。手工操作可能更有利于触发恶意行为,因为病毒作者通常会更多地依赖用户的操作习惯来触发恶意行为,比如点击、拨打电话等行为。

生成日志后,MalDroidAnalyzer会去分析日志,生成统计图数据,然后生成报告。下面是一些真实病毒样本的恶意行为记录:

关于apk文件及MalDroidAnalyzer的工作流程如下图所示:

窃取通讯录:

通话录音:

Root提权:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法day08 链表

4.链表_哔哩哔哩_bilibili 一、判断链表为回文 暴力方式: 从链表头开始将链表每一个元素值依次放入数组中,按下标比较值。 从链表尾开始将链表一半元素值放入stack栈中;每次弹栈比较 弹出的值和 链表值。 快慢指针: 假设有这样一个…

python-Flask搭建简易登录界面

使用Flask框架搭建一个简易的登录界面&#xff0c;登录成功获取token数据 1 搭建简易登录界面 代码如下 from flask import Flask, jsonify from flask import request import time, hashlibapp Flask(__name__)login_html <html> <head> <title>Log…

ROS - Turtle Nest 使用说明

系列文章目录 前言 正如乌龟巢是小乌龟的出生地一样&#xff0c;ROS 2 Turtle Nest 也是新 ROS 软件包诞生和发展的地方。 Turtle Nest 为创建新的 ROS 软件包提供了一个简单的图形用户界面&#xff0c;简化了软件包的创建过程。 一、为什么使用 Turtle Nest 而不是 “ros2 pkg…

STM32CubeMX生成freertos默认设置卡死,卡在HAL_Init不动,裸机运行程序正常跑,解决方法

1、简介 最近通过STM32CubeMX生成freertos发现任务不执行&#xff0c;卡在HAL_Init不动&#xff0c;网上找很久不好使&#xff0c;刚开始怀疑硬件问题&#xff0c;但是裸机运行程序正常跑&#xff0c;然后怀疑软件有问题&#xff0c;但是对F1,F3系列都好使&#xff0c;仅仅对F…

Git版本控制策略:Rebase还是Merge?详解优缺点与适用场景

在团队合作中&#xff0c;如何高效地管理代码版本和保持主干代码的稳定性&#xff0c;常常是开发团队关注的焦点。在使用Git管理代码的常规操作中&#xff0c;Merge是最常见的操作&#xff0c;此外Rebase也是一种很实用的操作&#xff0c;尤其是我们想要保持更干净的提交历史时…

habor仓库

1.安装docker 现在打开不了docker官网&#xff0c;本人是在清华下载站下载的 Index of /docker-ce/linux/rhel/9/x86_64/stable/Packages/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 解压docker 错误&#xff1a; 原因&#xff1a;rhel9自带podman和runc&…

车辆种类检测数据集介绍

车辆种类检测数据集 数据集概述 本数据集专为车辆种类检测任务而设计&#xff0c;包含了大量的车辆图像&#xff0c;每张图像均带有详细的车辆种类标注信息。数据集旨在帮助研究人员和开发人员训练高精度的目标检测模型&#xff0c;以应用于车辆识别、交通监控等多个领域。 数…

使用mysql保存密码

登录MySQL 这行命令告诉MySQL客户端程序用户root准备登录&#xff0c;-p表示告诉 MySQL 客户端程序提示输入密码。 mysql -u root -p创建数据库 create database wifi; use wifi;create table password(user_password CHAR(8),primary key(user_password));源码 代码编译 …

《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(2)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层&#xff08;1&#xff09; 7.1 数据链路层的组成结构 数据链路层使用ACK/NAK协议发送和接收TLP&#xff0c;由发送部件和接收部件组成。其中&#xff0c;发送部件由…

Ubuntu 20.04 上使用 Prometheus 和 Grafana 监控 PHP 8.0

本文方案监听php状态信息是采用php-php-exporter直接通过sock监控php-fpm信息。还可以通过nginx查询php状态信息从而监控&#xff0c;中间需要加上nginx配置。详见本文末尾 查找最新的 php-fpm_exporter 版本 访问 php-fpm_exporter 的 GitHub releases 页面 来查找最新版本。…

Nginx简单的安全性配置

文章目录 引言I Nginx简单的安全性配置禁止特定的HTTP方法限制URL长度禁止某些用户代理限制请求速率连接限制禁止访问某些文件类型II 常见的安全规则防御CC攻击User-Agent过滤GET-URL过滤GET-参数过滤POST过滤(sql注入、xss攻击 )引言 Nginx本身并不具备复杂的防火墙规则定制…

【电力电子】单相并网逆变器

摘要 单相并网逆变器是一种将直流电转换为单相交流电&#xff0c;并与电网同步输出的装置。它广泛应用于小型可再生能源系统&#xff0c;如光伏发电&#xff0c;确保产生的电能能够高效、安全地并入电网。本文探讨了单相并网逆变器的设计理论、控制策略以及其在不同负载条件下…

PAT--1002 写出这个数

题目描述 读入一个正整数 n&#xff0c;计算其各位数字之和&#xff0c;用汉语拼音写出和的每一位数字。 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;即给出自然数 n 的值。这里保证 n 小于 10 100 。 输出格式&#xff1a; 在一行内输出 n 的各位数字…

深入探索C语言中的各种Sleep方法

引言 在程序设计中&#xff0c;有时需要让进程或线程暂停执行一段时间&#xff0c;这种需求可以通过使用 sleep 函数来实现。本文将详细介绍在 C 语言环境下可用的不同类型的 sleep 函数&#xff0c;包括它们的用途、参数以及注意事项&#xff0c;并提供一些示例代码。 目录 …

HTB-Responder(文件包含和哈希破解)

前言 各位师傅大家好&#xff0c;我是qmx_07,今天给大家讲解Responder靶场 渗透过程 信息搜集 服务器开放了80,5985端口尝试访问网站5985端口是一种远程管理协议 绑定域名 我们发现访问ip&#xff0c;进行了重定向跳转&#xff0c;需要绑定一下域名 echo "10.129.160…

麦穗检测计数-目标检测数据集(包括VOC格式、YOLO格式)

麦穗检测计数-目标检测数据集&#xff08;包括VOC格式、YOLO格式&#xff09; 数据集&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1N9tGbcssxvSM1W71q2YbNA?pwd3nb3 提取码&#xff1a;3nb3 数据集信息介绍&#xff1a; 共有 3373张图像和一一对应的标注文件 标…

Python内存管理详解

Python是一种动态类型的语言&#xff0c;它提供了自动内存管理机制。这意味着开发者不需要手动管理内存的分配和释放&#xff0c;Python会自动处理这些细节。本文将深入探讨Python中的内存管理机制&#xff0c;包括对象的创建、垃圾回收以及一些最佳实践。 Python内存管理概述…

定制开发 AI 智能名片拓客微信小程序在内容营销中的应用与价值

摘要&#xff1a;本文探讨了不同类型的内容营销及其目标&#xff0c;分析了传统媒体与以社交媒体为主要发布平台的内容营销在效果衡量上的差异。引入定制开发 AI 智能名片拓客微信小程序&#xff0c;阐述其在内容营销中的作用&#xff0c;强调应以多维度视角衡量内容营销效果&a…

Python打发无聊时光:15.Python打开黑神话-八戒3D模型

一、装vtk库并下载3D模型 首先装vtk库&#xff0c;直接在终端中输入命令&#xff1a; pip install vtk 接着将下面网盘链接中的vtk模型下载下来&#xff1a; 链接: https://pan.baidu.com/s/11pEPr3URQ5oR2kkn7dBEsg?pwdfa6s 提取码: fa6s --来自百度网盘超级会员v5的分享…

zsh: command not found: ohpm - mac安装ohpm工具 - 鸿蒙开发

OHPM简介&#xff1a; OHPM CLI 是鸿蒙生态三方库的包管理工具&#xff0c;支持OpenHarmony共享包的发布、安装和依赖管理。安装开发工具DevEco Studio--自带了ohpm&#xff0c;所以无需单独下载ohpm ohpm使用指导官网地址&#xff1a; 文档中心 注意&#xff1a; ohpm命令…