freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Android 安全加固技术全方面分析(下)
2024-10-17 14:14:55
所属地 北京

01 防劫持

原理

在提供的安全加固技术中,防劫持功能特别针对恶意程序尝试覆盖或控制受保护应用的场景。当一个加固的应用正在被用户前台使用时,如果有任何未经授权的后台进程试图推送或覆盖该应用界面,系统将自动触发警示机制。

具体实现方式是,安全加固模块会持续监控应用的状态,确保其运行在设备的前台。一旦检测到应用突然退至后台,而实际上用户并未主动切换应用,系统会立即判断这一行为可能为劫持或恶意攻击。此时,会弹出一个警告对话框,告知用户“应用已经到后台”,提醒他们可能正遭受攻击,建议用户采取适当措施,如检查最近安装的应用或更新,以及确认当前网络环境的安全性。

此功能极大地增强了应用的安全防护,避免了诸如钓鱼攻击、身份窃取等安全问题,从而保护用户的隐私和数据不被恶意软件利用。同时,这也提升了用户对使用加固技术公司产品的信任度和满意度

1729135833_671084d906fac57f197f1.png!small

技术描述:

通过判断当前在前台显示的进程是否是自己的应用,并且判断是否是设置防劫持的界面。如果是设置防劫持的界面,一旦进入后台就弹出警告提示,否则无提示。防劫持主要是在activity的生命周期方法的onStop()中进行的,当onStop()方法执行的时候,判断activity栈顶的包名与应用的包名是否一致,Android5.0及以后的版本,判断activity是否在前台。而在一部分定制的系统中这种方式不好使,而本防劫持SDK中通过添加校验等完美的解决了。相对于其他防劫持SDK更安全。

通过提供界面防劫持SDK包在运行时实时监测系统环境、监听敏感API。达到提示用户的目的;在钓鱼界面启动时,弹出警告框。

02 防模拟器

技术描述

App防护防模拟器的实现原理主要涉及多个层面的技术策略,旨在防止攻击者在模拟器环境中执行和分析应用程序,从而保护应用的逻辑和数据不被非法获取和复制。

  1. 环境检测:防护系统会检测运行环境的特征,包括处理器、操作系统版本、系统设置等,来判断当前环境是否为模拟器。例如,某些模拟器在运行Android应用时,其设备型号和制造商信息可能会与真实设备存在差异。
  2. 硬件特征检查:真实设备的传感器数据或处理器指令集往往与模拟器不同。App可以通过检查这些硬件特征来识别是否运行在模拟环境中。
  3. 性能和资源差异分析:真实设备的CPU和GPU性能、内存和存储访问速度通常与模拟器有显著区别。通过评估这些参数,App可能检测到模拟器的使用。
  4. 系统API和功能差异:利用特定于真实设备的API调用或功能,设计程序在模拟器上无法执行的操作。例如,某些真实的摄像头或GPS功能在模拟器上不可用。
  5. 电池信息检查真实设备的电池容量和使用情况与模拟器不同。App可以检查这些信息来辨识是否处于模拟环境中。
  6. 网络环境检测:模拟器的网络连接可能与真实设备不同,比如IP地址范围、网络延迟等特征。
  7. 跨平台行为检测:有些模拟器允许App以不同操作系统运行。检测App是否可以在多个操作系统中同时运行可以作为识别的依据。

1729135921_671085314f4b0c1f0d044.png!small

ROOT 检测

在当今的移动设备使用中,Root权限的获取与使用成为了一个双刃剑。一方面,用户通过获取Root权限可以自定义设备,卸载不需要的预装应用,优化设备性能;另一方面,Root权限提高了设备被恶意软件攻击的风险,尤其是当恶意程序获得Root权限后,它们可以绕过操作系统的安全限制,执行更高级别的恶意操作。

实现原理:

  1. 系统文件和目录的检查
  • 检查系统文件中的特定标志,如/system/bin/su/system/xbin/su/system/sbin/su等,这些文件在被ROOT的设备上存在。
  • 检查/etc/install.log文件,如果在启动过程中检测到这个文件,可能意味着系统被ROOT过。
  • 检查系统中是否存在一些典型的ROOT管理应用,如SuperSU、Magisk等。
  1. 系统属性检查
  • 检查系统属性中是否设置了某些与ROOT相关的标志,如ro.secure属性的值是否为0,在被ROOT的设备上这可能是0
  • 检查ro.debuggable属性是否为1,这表示设备处于调试模式,可能被ROOT。
  1. 尝试执行特权命令
  • 通过执行需要高权限的命令并检查其输出,如getpropid等,以判断当前应用是否具有ROOT权限。
  • 使用try-catch语句捕获执行命令时抛出的异常,如果命令执行成功但没有抛出异常,可能意味着设备被ROOT。
  1. 利用系统漏洞
  • 利用已知的系统漏洞尝试获取ROOT权限,如果成功则说明设备已被ROOT。
  1. 监视系统行为
  • 监视系统设置、应用列表和其他敏感操作,以检测是否有应用或进程在没有用户授权的情况下获取了ROOT权限。

1729135957_671085550a5e42fd6262a.png!small

应用场景描述

1. 卸载系统预装应用

  • 用户需求:为了释放存储空间或去除不需要的应用,用户可能会选择Root设备来卸载那些无法正常卸载的系统预装应用。
  • 安全风险:一旦设备被Root,所有应用均有可能请求并获取Root权限。如果没有适当的保护措施,恶意应用可以利用这一权限进行未授权的操作。

2. 恶意软件的攻击

  • 攻击方式:
# android安全 # 移动应用安全 # APP加固 # App合规 # App安全合规检测
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录