提示:

文章目录

  • 前言
  • 一、安卓系统小结
  • 二、检测工具的了解与学习
    • 1.Monkeyrunner
    • 2.重打包技术
    • 3.检测方法
    • 4.安卓应用攻击类型
  • 总结

前言

随着互联网不断发展,我们每天使用的手机也在迭代更新,而其中恶意软件也相应的急剧增加,那么如何应对这些问题是我们需要学习的关键。

之前在小结(一)中了解,安卓系统的安全架构分为:应用层、应用程序框架层、系统运行时类库层以及 Linux 内核层


一、安卓系统小结

示例:基于安卓移动开发平台的手机在整个智能手机终端市场处于主要地位,使得攻击安卓系统的恶意软件数量越来越庞大。 目前移动互联网发展飞速,出现了种类繁多的恶意代码,对手机用户造成了极大困扰。

  • 对互联网行业来说,急需对恶意代码的发展及传播进行严格管控,确保该行业能够稳定、健康地发展,以及确保手机用户的切身利益不受侵害
  • 因此,有效监测恶意软件并且还原应用程序行为信息可以 有效地遏制恶意软件攻击泛滥现象。
    安卓系统软件检测研究现状
    静态检测方案
    在不执行应用程序的情况下,采用逆向分析技术,通过抽取静态特征来判别应用程序是否包含恶意行为。静态检测方案尽管可以识别出应用程序的部分敏感行为,但是静态检测方案依赖于已知的恶意软件特征库,而特征库中仅仅存储的是已知的恶意软件中带有攻击性的一些特征码。所以,静态检测无法有效检测出未知的恶意攻击行为。

二、检测工具的了解与学习

代码如下(示例):针对目前存在的问题,需要研究一个安卓额恶意软件进行有效监控的工具。

1.Monkeyrunner

Monkeyrunner 是

  • 一种可扩展的自动化测试工作,同时能够实现对多个设备节点进行 管控。根据预设的屏幕、按键事件的参数值,Monkeyrunner可参照触发步骤自主进行事件 触发,从而完成复杂逻辑的事件触发操作
  • 利用 MonkeyRunner 工具与 PC 端结合,实现 apk
    自动安装和卸载。该工具能有效地监测恶意软件行为,并向安卓手机用户发出警告。

2.重打包技术

  • 盗版行为即利用重打包技术对原版 APP 进行盗窃,属于十分严重的恶意行为。恶意编程人员能够由 Android app商城随意下载应用系统压缩包文件,而后对其进行解压、篡改、重打包,该行为严重损害了用户权益,并严重威胁了其个人信息安全。另外,该行为严重损害了最初研发者的利益。
  • 不论是哪种恶意软件,都是将能够执行恶意行为的代码加入到已有应用程序中来实现恶意行为的。首先对正常应用程序执行反编译处理操作,捕获当前应用程序的源代码,紧接着需要植入恶意代码到最初的源代码文件中,把越权信息等加入到apk 配置文件中,最后执行重打包操作并发布到第三方市场。

判断应用程序是否经过重打包处理,

  • 安卓系统安全机制中的签名机制给出了解决方案。安卓系统的签名机制可以有效地审核开发者的身份。一方面能够避免出现修改程序包的情况,另一方面可以帮助程序确认信赖关系,实现具有相同私钥的应用程序之间代码和数据的共享。APK签名后会生成一个META-INF文件目录,其中包括MAINFEST.MF,CERT.SF 和
    CERT.RSA,它们均为签名类文件
    。在装载 APP 时,安卓系统会在第一时间对待安装的 APK包进行检查,看其是否包含签名文件,只有有着签名文件的 APP 系统才会同意安装。同样地,只有在数字签名相同的情况下才会进行应用程序的更新和升级,否则当作新程序处理。

3.检测方法

  • Linux 处在安卓系统平台的最底层,其包含的 Java 代码和本地代码在 Linux 中是按照进程追个执行的。现阶段有一些包含恶意攻击的应用程序,在执行恶意攻击行为前会检测是否有监控软件等存在于系统中,如果有则躲避这些程序的监控,继续执行恶意程序
  • 安卓恶意软件动态监测系统将整个监测系统分为 3 个模块,分别是行为触发模块、行为监控模块、行为分析模块
  • 应用程序启动之前需要检查权限列表,只有通过静态安全防御策略检测的应用程序才可以进行安装。 行为触发模块是为了实现应用程序的自动安装、运行和卸载。
  • 行为监控模块是论文监测系统的关键模块,负责对应程序的行为进行监控。其主要任务包括:编译内核和系统调用解析。编译内核是在对应用程序监控之前必须完成的类似于环境搭建工作,将监控程序载入到内核中去。系统调用解析方面采用Binder 机制。行为分析模块负责对恶意攻击行为进行判别,结合系统调用行为参数信息,定义上下文状态信息,依次进行权限泄露策略、合谋攻击策略、财务攻击策略、隐私数据窃取策略判断,判断应用程序的恶意性。

4.安卓应用攻击类型

恶意应用程序是各种敌对或入侵软件的总称,包含病毒(Viruses),特洛伊木马(Trojans),间谍软件(Spyware)等,还包括厂商或开发人员故意为应用程序遗留的后门,及流氓软件等。攻击者常常利用不同的方式攻击并破坏设备的运行,收集用户敏感信息,勒索用户并获利等。
安卓恶意应用攻击类型
基于安卓系统的恶意应用主要攻击类型可分为以下三类:

  • 1)蠕虫:这类恶意软件的主要特征是无休止地自我复制并传播到其他设备。移动蠕虫可以通过短信或彩信发送,通常不需要用户交互执行,因此其隐蔽性较强且传播速度快;
  • 2)特洛伊木马:与蠕虫不同,木马的入侵通常需要用户交互才能被激活。木马文件通常被植入看似有吸引力的非恶意应用程序中。应用程序一旦被下载安装激活,木马文件就会感染并破坏其他应用程序或手机操作系统造成严重损害,使其在一段时间或一定次数的操作后瘫痪。另外。还能够控制终端同步日历日程,电子邮件帐户,便笺和其他信息源,并发送数据到远程服务器。
  • 3)间谍软件:此类恶意软件对移动设备的威胁主要是在未获得用户许可的情况下,收集,使用和传播用户的敏感个人信息。主要包含系统监视器,木马,广告软件和跟踪
    cookie 等。

在不同端也有不同的攻击方法:
客户端:反编译、调试、输入记录、进程注入…
数据传输:信息泄露、篡改、重放攻击…
服务端:心血、ST2、注入、跨站、弱口令等…


**动态检测** 动态检测即通过记录应用运行时行为并分析,来检测应用的恶意性。首先构建适于应用程序的沙盒环境;其次,安装运行待测应用并实现其所有功能,监测运行状态各种动态指标及行为;最后,通过分析监测日志判断应用恶意性。动态检测的检测指标一般包含应用运行时的 CPU 负载情况,内存占用大小,电量消耗速度及其他硬件资源使用情况;API 调用列表,网络数据访问,文件操作等软件资源调度;污点 标记法也常被用于检测数据流的活动路径,并分析应用可疑行为。 随着动态检测的不断发展,诸如 Inspeckage,Robotium,Monkey,MonkeyRunner等动态检测工具不断被开发使用,有效降低了动态检测工作的难度,使该课题的研究目标更加聚焦。由于动态检测在沙盒环境模拟用户行为使得检测更加全面,监测数据更加真实有效,因此检测结果也相对准确。不过,虽然目前支持动态检测的检测工具越来越多,但检测条件对于用户来说较为不便,且消耗过多资源,因此在推广应用过程中会存在一定难度。

总结

提示:这里对文章进行总结:
当安卓移动设备越来越接近人们生活的时候,其表现出来的安全模式也渐渐进入人们的视野,不管是官方市场还是第三方市场,恶意软件的足迹不断出现,同时某些应用程序通过相互之间的合作共同达到恶意攻击的目的。总的来说,针对安卓系统的恶意攻击是全方位的,所以对安卓系统安全的研究还需要进一步努力。

安卓系统安全学习小结(二)相关推荐

  1. JavaSE学习小结二

    JavaSE学习小结二 记录学习----------JavaSE模块三&四 其中大部分是一些工具类,会将常用方法及其功能描述整理成表格方便日后查阅 文章目录 JavaSE学习小结二 一.Obj ...

  2. 嵌入式Linux系统编程学习之二常用命令

    嵌入式Linux系统编程学习之二常用命令 文章目录 嵌入式Linux系统编程学习之二常用命令 前言 一.常用命令 1.su(用户切换) 2.useradd(添加用户) 3.passwd(修改密码) 4 ...

  3. 嵌入式系统设计师学习笔记二十八:嵌入式程序设计③——高级程序设计语言

    嵌入式系统设计师学习笔记二十八:嵌入式程序设计③--高级程序设计语言 解释程序和编译程序 编译器的工作阶段示意图 语法错误:非法字符,关键字或标识符拼写错误 语法错误:语法结构出错,if--endif ...

  4. 华为鸿蒙系统HarmonyOS学习之二:鸿蒙HarmonyOS系统架构

    华为鸿蒙系统HarmonyOS学习之二:鸿蒙HarmonyOS系统架构 鸿蒙HarmonyOS整体遵从分层的层次化设计,从下向上依次为:内核层.系统服务层.框架层和应用层.系统功能按照"系统 ...

  5. 嵌入式Linux系统编程学习之二十六多线程概述

    文章目录 一.多线程概述 二.线程分类 三.线程创建的Linux实现 一.多线程概述   进程是系统中程序执行和资源分配的基本单位.每个进程有自己的数据段.代码段和堆栈段,这就造成进程在进行切换等操作 ...

  6. 嵌入式Linux系统编程学习之二十四消息队列

    文章目录 前言 一.msgget 函数 二.msgsnd 函数 三.msgctl 函数 补充 前言   消息队列与 FIFO 很相似,都是一个队列结构,都可以有多个进程往队列里面写信息,多个进程从队列 ...

  7. 嵌入式Linux系统编程学习之二十三 System V 共享内存机制

    文章目录 前言 一.ftok 函数 二.shmget 函数 三.shmat 函数 四.shmdt 函数 五.shmctl 函数 补充 前言   共享内存也是进程间(进程间不需要有继承关系)通信的一种常 ...

  8. 嵌入式Linux系统编程学习之二十二内存映射

    文章目录 前言 一.mmap函数 二.munmap函数 三.补充 前言   内存映射函数包括 mmap.munmap 和 msync,其原型为: #include <unistd.h>#i ...

  9. Linux系统的学习小结

    这两天在准备计算机三级--嵌入式的过程中,接触到了Linux系统,因此在这里把自己学到的东西总结一下. 一.Linux内核的结构与组成 Linux是一种自由软件,也是开源软件,它是一款类Unix系统. ...

最新文章

  1. 如何解决VS2015编译C4996错误
  2. c#中结构与类的区别
  3. Use PowerShell to Replace netdom Commands to Join the Domain
  4. 2.10 m 个样本的梯度下降-深度学习-Stanford吴恩达教授
  5. 403禁止访问:访问被拒绝如何解决_死链接对网站有哪些危害?如何处理死链接?...
  6. 主机无法连接虚拟机中的redis服务
  7. FreeRTOS任务挂起和恢复
  8. linux 更改配置文件 禁止ssh,配置linux用户实现禁止ssh登陆但可用sftp登录
  9. Linux中查看某个软件的安装路径
  10. 充电器兼容qi是什么意思_什么是“经Qi认证”的无线充电器?
  11. VMware安装windows server 2008 R2
  12. java object转为int_java中Object转换成int或String类型方法
  13. linux btrfs raid0,Linux初学之btrfs文件系统及磁盘配额
  14. zoj3987—Numbers(贪心)
  15. mysql data seek_mysql_data_seek函数详解
  16. 设置电脑双显示屏或者说扩展一个显示器
  17. Word文档day01
  18. ICC 图文学习——LAB3:Placement 布局
  19. SQL Service数据库上机
  20. android手机CPU的浅显认识与比较

热门文章

  1. PR 2020 关于驱动程序更新
  2. 学计算机核显足够了吗,独立显卡、核心显卡和集成显卡的区别
  3. Google URL Shorter
  4. 管理计算机管理没有其他设备,电脑里的设备管理器没有怎么办
  5. @RequestBody是干嘛的,作用是什么?
  6. wc 一个进程结果是2_用开放的wc创建一个Web组件
  7. 【后端教程】低代码起势,为什么它有希望“干掉”开发? | 甲子光年
  8. 2021-10-15 验证form表单的内容是否已存在数据库
  9. element-ui中导航菜单默认激活子菜单的第一项
  10. 安卓手机扫二维码从FTP服务器下载apk