研究文章|开放获取
王栋,本期张,江铭Ting,曹国伟,维娜妞妞, ”重置你的密码是脆弱:常见的基于短信的身份验证的安全研究物联网设备”,无线通信和移动计算, 卷。2018年, 文章的ID7849065, 15 页面, 2018年。 https://doi.org/10.1155/2018/7849065
重置你的密码是脆弱:常见的基于短信的身份验证的安全研究物联网设备
文摘
固件脆弱性是物联网的一个重要目标的攻击,但它是具有挑战性的,因为固件可能公开不可用或与一个未知的密钥加密。我们提出本文攻击短消息服务(SMS)身份验证代码,旨在获得没有固件分析物联网设备的控制。的关键思想是基于这样的观察:物联网设备通常有一个官方应用程序(应用程序)用来控制本身。客户需要注册一个帐号在使用这个程序之前,电话号码通常建议帐户名称,和大多数的应用程序都有一个共同特点,重置你的密码,使用一个短信验证码发送到客户电话对客户进行身份验证时,他忘记了他的密码。我们发现,攻击者可以对这短信验证码自动执行的强力攻击,克服一些挑战,那么他可以盗取帐号获得物联网设备的控制。在我们的研究中,我们实现了一个原型工具,叫做SACIntruder执行这样的强力攻击,使物联网设备上的自动测试。我们评估并成功发现12个零日漏洞包括智能锁,共享汽车、智能手表,智能路由器等。我们还讨论了如何防止这种攻击。
1。介绍
物联网(物联网)范式是近年来的一个最令人兴奋的创新。日益增长的兴趣促使许多商品化的设备供个人使用,如智能家居设备,智能可穿戴设备和智能车(1,2]。在线设备能力的数字增加了31%,从2016年到84亿年的2017人。专家估计,到2020年物联网将包括大约300亿个对象。也估计,全球物联网的市场价值将在2020年达到7.1万亿美元(3]。
物联网设备,它通常包含三个组件,电子增强硬件设备,报告其状态和过程用户命令,移动设备,用于接收状态和发送命令,云,用于硬件设备和移动设备之间交换消息。当客户部署他的装置,他将(1)安装设备,(2)下载官方应用程序并将它安装在自己的智能手机,(3)通过应用程序注册一个帐户,(4)对设备与智能手机通过应用,(5)开始通过程序控制装置。通常,设备可以通过应用程序远程控制。所以,如果设备有漏洞,攻击者还可以远程控制它。虽然之前工作物联网重点分析密码协议(4- - - - - -6有限的工作,研究了实现的安全漏洞。
在本文中,我们研究了常见的基于短信的验证,用于物联网设备。我们观察到许多物联网设备支持一个共同的特性,叫做重置你的密码为客户设计,如果他改变他的帐户密码忘记它。对客户进行身份验证,物联网云将发送一个验证码到客户手机,通过手机短信注册的帐户名称。这些短信共享相同的结构,(发送方)(文本与身份验证代码)(过期)(例如,松下:你的验证码是3895,有效期是5分钟)。短信验证码通常是4位或6-digital数,这是3895年。理想情况下,代码就知道物联网云计算和设备的所有者,所以人可以将代码将被视为真实设备的所有者。在分析几种物联网设备,我们发现这种sms身份验证的重置你的密码可能是脆弱的。攻击者可以通过变异中的短信代码执行的强力攻击密码重置信息和物联网帐户密码重置,因为数字短信代码的搜索空间非常小。
然而,有一个巨大的挑战:密码地一致的消息(部分3)。如果我们修改密码重置信息中的短信代码,它将成为密码不一致的因为消息可能包含一个签名,这将导致消息被丢弃物联网云。我们发现,我们可以把物联网应用程序作为一个黑盒和控制其执行,那么我们可以重用应用程序代码来生成密码地一致的消息,当我们变异短信代码。我们也解决其他一些挑战,阻止我们执行自动攻击测试。我们提出我们的原型工具(部分的设计4)SACIntruder;它可以用来检查是否一个物联网设备容易受到基于短信的自动验证。我们实现了我们的工具,用它来找到12个零日漏洞。例如,我们发现了一个脆弱的智能锁和攻击者可以擅自进入受害者的房子。我们还发现一个脆弱的车,攻击者可以开走。
简而言之,我们提出以下主要贡献:(我)我们所知,它是第一个安全研究物联网设备的基于短信的验证,我们发现这可能是脆弱的。攻击者可以进行强力测试短信代码获得物联网设备的控制没有任何交互的受害者。(2)我们设计了一个工具SACIntruder可以自动执行的强力攻击测试,以检查是否一个物联网设备容易受到短信代码。我们的工具解决的重大挑战密码地一致的信息生成和其他一些挑战,如界面识别、参数识别、和时间过期。(3)我们实现了我们的工具和评估它在物联网设备包括智能锁,共享汽车、智能手表,和智能路由器,它自动发现12个零日漏洞。我们已经报告所有的他们CNCERT / CC(7帮助供应商解决问题,他们都已经固定了。
本文的其余部分的结构如下。节2介绍物联网安全的背景知识。然后,我们使用一个家庭应用为例案例研究来理解我们的问题和现在的概述SACIntruder节3。我们提出的详细设计部分4和评估部分5。我们讨论如何防止这种攻击的安全性和可用性的目标部分6。调查相关的部分工作7在部分后跟我们的结论吗8。
2。背景
传统的嵌入式设备离线,他们可以控制身体。相比之下,许多物联网设备是在线的,可以通过互联网访问。因此,攻击者可以获得远程控制这些设备,如果有安全缺陷。宽松的保护和普遍性的漏洞(8,9使这些设备很弱的攻击者。例如,关于独立的物联网有90多份报告攻击事件从2014年到2016年(10]。
为物联网的攻击,固件一直是一个重要的目标,因为固件的安全漏洞通常可以绕过所有底层系统的可访问性等局限性,攻击者可以找到大量的漏洞通过分析固件,因为它包含所有关键代码。2017年,f - secure安全研究人员分析了Foscam IP摄像机的固件,发现18岁零日漏洞包括不安全的默认凭证,命令注入,基于堆栈缓冲区溢出,等。有一些工作大约在固件检测漏洞,一些利用符号执行11,12)自动检测的缺陷,而其他构造的仿真运行时动态分析(13- - - - - -15]。然而,固件收购是通过固件分析检测漏洞的一个巨大的挑战,因为不是每个设备的固件是对外公开的。即使可用,它可能与未知密码算法或数据加密密钥。此外,固件通常是一个压缩存档文件,它无法解压存档文件格式的知识。不同体系结构的硬件芯片固件是另一个挑战分析,因为不同的芯片有不同的内存布局和指令集。
许多物联网设备可以控制通过官方的客户和他的物联网应用帐户(例如,智能锁,使主人远程门打开或关闭)。所以,如果攻击者可以妥协的帐户,他可以通过应用程序获得设备的控制。有一些方法来破解一个帐户。密码的强力攻击(16)是一种传统的帐户攻击通过所有可能的密码。在分析大量的物联网应用,我们观察到,大多数物联网帐户具有相同的密码策略:至少6个字符,每一个角色都可以无所不包的,无所不包的,0 - 9。因此,密码搜索空间的大小 十亿,这将花很长时间来测试所有可能的密码。跨站点脚本(17)(简称XSS)和跨站点请求伪造(简称XSRF) [18)也可以用于接管一个帐户,但它们特殊的浏览器和大部分物联网应用程序都不是建立在一个浏览器。所以,XSS和XSRF很少影响物联网帐户。网络钓鱼(19偷一个帐户)是另一个重要的方法,一个攻击者运行一个邪恶的网站非常类似于目标和导游受害者访问和输入他的凭据。然而,物联网的客户通常是引导安装程序从云供应商或官方应用商店的设备手册。因此,它是具有挑战性的网络钓鱼攻击将物联网应用的下载受害者凭据。人在中间(20.](简称MitM)攻击是另一种常见的方式窃取一个用户帐户。最近工作,密码重置MitM [21](简称PRMitM)攻击,利用相似的注册和密码重置流程发起MitM攻击流行网站和移动应用程序。然而,PRMitM受害者的交互依赖检索所有密码重置是至关重要的。所以,PRMitM袭击的成功依赖于几个强大的假设。首先,它要求受害人注册一个帐户或输入自己的手机和短信验证码破坏网站。其次,它假设许多受害者将忽略的细节密码重置信息只是短信代码复制到妥协的网站。第三,攻击者分析目标网站获得的知识每一个挑战。攻击不会发生任何不符合上述假设。
如上所述,短信代码中使用的搜索空间重置你的密码非常小,我们可以执行的强力攻击。一旦我们的突变满足正确的价值在时间到期之前,我们可以重置密码的物联网设备帐户。我们的以前的工作相比22),我们提出了一种新的UI模型,一种新方法来确定参数和方法来减少不必要的请求。所以,我们可以发现新的漏洞,无法找到通过我们之前的工作。
3所示。概述
这项工作的目标是理解的短信验证重置你的密码在物联网设备和自动识别设备是否脆弱。在本文中,我们专注于物联网的应用程序在Android平台是世界上最受欢迎的移动平台(23]。我们首先使用一个运行示例来讨论我们的问题3所示。1;节中我们讨论的主要挑战3所示。2和其他挑战部分实现3所示。3然后给的概述SACIntruder节3所示。4。
3.1。一个运行密码重置的例子
更好地理解我们的问题,我们选择一个android的物联网应用,旨在控制智能家居设备。盒子1- - - - - -4说明消息用于整个密码重置的进展。
|
||||||||||||
|
||||||
|
||||||||||||||||||||
|
||
当客户想重置他的物联网帐户密码,他将指导下应用程序UI为短信发送消息到云的代码,那么云将生成的代码,将其发送给客户电话,和响应消息的应用。1和2现在一双对请求和响应消息。从理论上讲,没有限制应用程序和云之间的消息格式。很多应用程序分析后,我们发现,他们中的大多数是建立在超文本传输协议(HTTP) (24]。一个可能的原因可能是具象状态传输(REST) (25]在发展领域很受欢迎,其他使用HTTP作为其低层传输协议。统一资源定位符(URL) (26]休息通常有完整的意义。在运行的例子中,getVerifyCode和电话= 1383815 意思是请求云发送一个验证码1383815 。
收到短信验证码后,输入客户代码和新密码并单击一个UI组件发送消息到云包含代码和密码,然后云验证他们取代旧的密码,最后以一个消息响应的应用。盒子3提出了一个密码重置请求消息,它包含四个关键参数,其中三个(密码,代码,电话)映射到用户输入,而标志无法映射到任何输入。此外,标志通常是由一个密码算法与参数包括密码,代码,电话和其他app-specific数据。很容易修改代码,但标志会阻止我们这样做。因为如果我们修改它,我们必须更新标志,或者将密码地不一致的,云的消息会丢弃它。除了密码生成一致的消息,一些实现挑战也需要解决,我们在以下部分中讨论。盒子4提出了一个密码重置密码重置成功的响应消息。
此外,一些物联网应用程序只支持与短信验证码登录帐户,客户从来没有拥有一个密码。他将请求一个短信代码每次他想登录帐户。这种类型的登录可以归类为一个特殊的密码重置,不含新密码。我们可以支持这些应用程序使用相同的蛮力攻击方法。
3.2。密码地一致的消息一代
短信的代码重置你的密码是一个数字的数字与搜索空间小,很容易为强力攻击。但是很多物联网应用程序使用至少一个加密策略来保护消息,有些选择签名以确保integerity [27),而其他人则选择加密,确保机密性(28]。物联网云将检查消息的机密或完整性。如果无效,丢弃消息。我们必须找到一种方法来生成密码一致的消息而变异代码。
一个简单的方法是提取密码算法中的应用,然后重装之外的物联网应用。一些符号执行等程序分析技术(29日- - - - - -31日)和污点分析(32,33)可以应用。这些技术可以分析一个程序来确定输入导致项目的每一部分通过监控每一个指令的执行及其引用的数据,所以他们被广泛研究探索程序的内部状态。他们适合许多程序逻辑,除了著名的密码算法,因为挑战命名路径爆炸(34,35]:在程序中可行的逻辑路径的数量呈指数级增长的增加项目大小,甚至可以无限使用无限循环迭代的项目。不幸的是,循环迭代中非常常见的加密算法。物联网应用商业软件,他们通常包含复杂的逻辑,开发人员更喜欢部署一些加强安全保护。此外,封隔器被广泛用于保护应用程序开发者,它包含代码混淆(36)、资源加密、antidebugging antiemulation等等。所以,是非常昂贵的程序分析提取密码算法从物联网的应用程序,因为这些保护措施。
基于这一事实现在大多数应用程序使用一个标准的加密算法进行加密和签名,左(37)利用API连接提取密码算法。他钩61定义的密码在Android SDK API拦截他们的参数和返回值,进行重构基于API的控制流和数据流连接日志,并重新制作的应用。在分析大量的物联网应用,我们发现这种方法缺乏灵活性,因为它只支持定义良好的加密API。在我们运行的示例中,生成的签名标志≔MessageDigest.getInstance (“MD5”)。dg(Base64.encodeToString(''...password=e10adc3949ba59abbe56e057f20f8电话83是= 7496 = 1383815 …”)。很明显,getInstance和dg将记录他们是众所周知的和被连接,但参数不会被记录encodeToString是不知名的,没有连接。因此,数据流将被打断,生成的密码算法标志不能从API连接重建日志。此外,私人密码算法也不支持这个方法。
事实上,我们的最终目标是输出,而不是密码算法的代码。如果我们把整个物联网应用密码算法,用户输入参数,输出密码重置信息,那么我们可以使用UI自动化(38)输入每一个可能的短信代码和密码重置请求,应用程序将执行其代码来计算标志。所以,我们可以生成一个密码一致的消息没有提取密码算法。此外,这种方法是独立的密码算法,所以它没有缺点的程序分析和API,它可以支持复杂应用程序逻辑,代码混淆,私人密码算法等等。基于UI自动化,我们可以生成密码地一致的消息当变异短信代码,但我们仍然需要解决其他几个自动实现挑战表演的强力攻击测试。
3.3。实现挑战和解决方案
有三种实现挑战利用UI自动化执行强力攻击自动短信代码:(1)确定密码重置UI,(2)确定有趣的参数,(3)时间短信验证码过期,和(4)不必要的强力请求。我们必须解决它们。
确定密码重置用户界面。之前,我们可以使用UI自动化输入电话,短信代码,新密码驱动程序来生成密码重置信息,我们需要确定密码重置界面首先。不幸的是,没有简单的信息申报密码重置在哪里UI。我们分析了很多应用程序,发现大多数密码重置UI包含共同的特点:(1)一个可编辑的UI组件与一个默认的描述输入你的电话号码指导用户输入电话,(2)一个可编辑的UI组件与一个默认的描述输入短信代码指导用户输入短信代码,(3)一个可编辑的UI组件与一个默认的描述输入新密码指导用户输入密码,和(4)可点击按钮默认的描述确认指导用户提交请求。这是因为开发人员通常需要人性化文本信息来指导用户输入密码重置参数正确的组件。我们可以列举每一个物联网应用程序的UI和检查哪一个包含此共同特征识别密码重置UI。此外,一些应用程序密码重置的逻辑划分为几个部分,所以他们将使用不止一个用户界面引导用户输入所有参数。我们可以分析一组连续的UI界面识别的根密码重置。细节确定密码重置UI节中给出4所示。1。
有趣的参数辨识。通常,有超过四个参数在密码重置信息。但有趣的实例电话、代码、密码符号,我们需要识别它们。基于REST的消息通常在URL编码参数作为键值或JSON / XML的内容(39,40]。等关键的名字是众所周知的,如果参数verifyCode和密码用于我们的运行示例中,很容易通过正则表达式匹配识别它们。但不同的应用程序可以使用不同的密钥名称,checkCode vCode, ck也可以接受短信代码,所以它是具有挑战性的自动识别它们。然而,物联网应用的输入是通过UI自动化控制我们,所以我们可以使用两个不同的参数值,分析了两个相应的信息来识别参数(例如,在运行的案例中,我们输入code1和code2为代码,我们可以找到消息中的值和推断名字短信代码的关键代码)。细节确定有趣的参数提出了部分4所示。2。
时间到期。物联网云总是分配一个到期限制(不同 分钟)的短信代码。强力测试必须以最快的速度,或身份验证代码将变得不可用在正确的突变。如果密码重置信息没有加密或不包含签名,我们就可以直接变异代码基于捕获消息和发送突变信息云计算速度快。或者我们使用UI自动化生成密码地一致的消息。事实上,UI自动化的速度非常慢,如果我们连续变异代码和请求云在实时的环境中,我们将满足到期。然而,我们可以使用离线环境来记录所有请求消息,然后回放都通过高性能计算机到云。因为这些请求消息包含所有可能的值的短信代码,所以成功的密码将被重置。关于时间过期了部分细节4所示。3。
不必要的请求。在密码重置的尝试与变异代码,如果账户密码重置成功,我们可以丢弃其余的消息来减少不必要的请求。但响应内容多样化,没有标准和文档密码重置的反应是否成功与否。我们观察到的反应通常包含状态信息等你的代码是无效的或太多的失败。不同的信息有不同的长度,这将使整个响应消息的长度不同。所以,我们可以监视响应长度。如果它改变了,它意味着一个新的状态等密码重置成功或被云挡住了。然后我们预定义的尝试登录帐号和密码,如果成功,我们丢弃其余消息,如果失败,我们推断这个物联网设备的账号不脆弱。
通过解决上述挑战,我们可以使用UI自动化生成密码一致的消息而变异代码,所有可能的值。此外,如果没有签名或加密密码重置信息,我们可以直接变异代码基于捕获密码重置信息进行强力攻击测试。
3.4。SACIntruder
检查是否一个给定的物联网设备容易受到SMS-base认证,我们设计一个工具SACIntruder,自动执行强力攻击短信代码。我们唯一需要的是知识的电话号码登记为该设备使用的帐户。PMitM [21)提出了一个方法如何获得受害者的电话,以及如何让电话超出了本文的范围。此外,物联网的应用程序可能会选择一个二进制协议建立一个请求消息。在这里我们只专注于HTTP协议,因为我们观察到大量的Android应用程序使用基于HTTP REST API。我们认为HTTPS HTTP, HTTPS使用SSL因为其较低的传输协议,我们可以使用一个自签名证书绕过HTTPS。
支持整个进展我们的强力攻击SACIntruder呈现在图1。有四个步骤:(1)SACIntruder开始一个物联网应用的每一个活动来识别密码重置UI。(2)SACIntruder驱动程序输入受害者电话和短信请求代码,那么它取代了受害者电话通过消息截获与测试手机,这个替换将防止云向受害者发送一个代码的开始。(3)SACIntruder驱动程序输入参数密码重置和请求云,然后确定有趣的参数。如果消息包含加密或签名,它会停止转发以下消息到云,并继续推动应用程序所有可能的输入短信代码并保存所有消息到一个数据库中。(4)最后,SACIntruder开始重播消息短信代码,密码重置到云的所有消息。如果帐户是脆弱的,它的成功密码将被重置。
的概述SACIntruder呈现在图2:它的输入是一个物联网应用和受害者电话和输出是否脆弱的物联网应用。有三个主要组件:(我)MessageGenerator使用UI自动化控制的执行物联网应用,它执行静态分析和动态分析来识别UI和驱动程序生成密码地一致的消息。(2)ParameterIdentifier使用不同的输入来确定参数的密码重置信息,它包含一个网络代理拦截应用和云之间的通信。它不能输入数据的应用程序,所以它与MessageGenerator实现这一目标。(3)RecordReplayer使用一个数据库来记录所有密码重置信息和重播最后到云平行;是高性能计算机上运行的速度快。
4所示。详细设计
在本节中,我们提出SACIntruder的三个关键组件的详细设计。我们首先描述如何MessageGenerator生成一个密码重置信息部分4所示。1,然后解释如何ParameterIdentifier确定有趣的参数部分4所示。2,然后现在如何RecordReplyer绕过时间到期短信代码部分4所示。3。
4.1。密码重置请求消息的一代
MessageGenerator负责密码信息生成,它利用UI自动化控制物联网应用程序的执行。首先,它运行应用程序并识别密码重置用户界面通过列举每一个活动和检查部分的共同特征3所示。3。如前所述,有两个密码重置UI模型。图3是典型的UI模型,命名单级密码重置,因为所有参数输入在一个UI。和图4是另一个模型,命名多级密码重置,因为所有参数分为两到三组,在几个界面输入。然后,MessageGenerator输入正确的界面,输入参数,并触发生成密码重置请求消息。
以下4.4.1。单级密码重置请求消息的一代
为单级密码重置所有UI元素,用于接收这些参数定义在一个活动中。首先,我们通过分析识别UI每个独立活动,然后输入每个参数这一活动驱动的应用程序来生成密码重置信息。
静态方法来识别UI。在Android,每个活动必须声明一个命名的文件AndroidManifext.xml可以从应用程序二进制文件中提取。一些其他作品如AppsPlayground、SMV-Hunter和Gui撕裂(41- - - - - -43)使用这个清单开始动态UI的探索。但是动态探测通常是缓慢的,所以我们首先使用静态方法。为一个活动,所有UI元素(例如,Buton ImageButon,复选框)中定义一个布局和活动使用setContentView加载布局。理论上,一个布局可以是一个独立的文件或一块关于动态布局生成的代码。很多应用程序分析后,我们发现,大多数应用程序使用一个独立的文件。因此,我们分析一个活动来推断的布局文件是否通过检查常见的人性化信息正确的UI。
因为一个活动加载它的布局通过调用APIsetContentView,我们需要分析活动的代码布局。一个物联网应用的源代码总是不可用,但它不是一个问题。因为Android应用程序非常类似于Java archive,很容易拆卸程序。我们可以使用apktool(44分解应用。应用程序的每个部分,可以提炼出基本的元素,比如字符串池文件,代码文件为每个类,布局文件、图像文件等等。在这些元素中,文件命名public.xml是非常重要的,因为一个活动的反汇编代码不会使用一个名称来引用它的布局,而是一个整数,在这个文件中定义。另一个文件命名strings.xml也很重要,因为人性化的信息密码重置UI通常这里定义。总共有五个主要步骤,以确定正确的UI通过静态方法:(我)拆卸一个物联网应用apktool。如果应用程序没有保护封隔器(45),我们可以得到每一个应用程序的一部分。否则,我们只能得到所有部分的一个子集,我们将动态方法。(2)名单的所有活动的清单。再次,每一个活动必须声明在这个文件中。如果应用程序包含一个密码重置活动,我们可以分析每个活动找出来。此外,我们的包名称的应用程序清单,结合包名称和活动名称生成活动的全名代码文件。这一步的输出是一个数组activityFullname。(3)找到每个活动的布局通过反汇编代码。活动的入口点是一个回调函数命名onCreate。我们扫描每一个活动的反汇编代码onCreate程序引用的布局。再次,拆卸的布局代码已被转换为一个整数。这一步的输出是一个数组(activityFullname layoutInteger)。(iv)布局文件通过public.xml;Android使用这个文件将整数映射到一个名字。这一步的输出是一个数组(activityFulname layoutName)。(v)分析布局文件引用来推断是否密码重置活动。一个布局文件是一个XML文件,其中包含所有UI元素定义类型名称和默认值。图3是一个典型的单级密码重置UI包含三个输入元素,两个提交元素,一些人性化的字符串。如果布局文件包含元素这样的定义,我们可以推断这是正确的UI。此步骤的输出activityFullname。
动态的方法来识别UI。如果一个物联网应用保护封隔器,真正的代码从静态分析和布局将隐藏除了清单。但是清单包含所有活动的名字,我们不能得到布局引用的一个活动。所以,我们搬到动态方法。
活动是由运行在Android,每个活动经理。维护所有活动通过一个栈,它们排列的顺序根据每个活动的时候打开,只有顶部的活动堆栈是画在屏幕上(46]。油漆的屏幕,活动经理保持屏幕布局包含顶级活动和其他UI元素,如系统虚拟键。此外,安卓系统允许将当前屏幕的布局支持调试。所以,我们可以运行一个应用程序的每一个活动和转储当前屏幕布局的布局运行活动没有关于封隔器和动态布局加载。总共有四个主要步骤,以确定正确的界面通过动态方法:(我)从清单中获得所有活动名称。这一步是一样的以前的静态方法。(2)物联网应用的每一个活动开始。这将带来一个活动在系统活动堆栈顶部。我们使用一个Android手机,打开调试支持,那么我们使用命令我开始计划/活动开始一个活动。(3)把当前屏幕布局。有一个android shell命令命名uiautomator(47)是专为倾销当前屏幕布局。我们用它来转储布局和电话将其保存为一个文件,然后使用Android调试桥(48)(ADB)命令来下载电话的布局文件。(iv)分析布局来推断是否密码重置的UI。与传统的独立布局、屏幕布局已经加载的值关联的字符串在另一个文件中定义。另一个区别是它可能包含一些不属于应用程序的UI元素,如当前屏幕的顶部状态栏或弹出窗口。减少噪音,我们首先排除这些因素,然后我们检查在静态方法中使用的共同特征。如果发现,我们推断这个活动是密码重置UI。
对比之前的静态法、动态法是慢得多,因为它运行应用程序和使用调试接口获得关键信息。但它是非常有用的应用时保护封隔器(45),或应用程序加载实现活动通过代码动态布局。
生成密码重置信息。识别密码重置界面后,我们可以使用UI自动化输入参数为驱动程序生成一个密码重置信息。方法很简单:列举参数元素布局,输入数据并单击submit按钮生成的消息。一些应用程序包含一个密码元素,而其他两个密码元素的应用。很容易确定这种差异,因为密码非常相似的两个元素根据他们的描述文本。
捕捉信息,我们可以使用Wireshark, tcpdump和libpcap49,50]。然而,我们只关注应用程序层的内容被应用和云。我们发现Android支持WIFI代理这意味着所有HTTP / HTTPS请求应用程序可以被重定向到WIFI代理。与此同时,有很多开源的HTTP代理服务器,我们可以利用它们来分析HTTP层的内容。所以,我们使用Android的WIFI代理和HTTP代理服务器捕捉生成的消息。
4.1.2。多级密码重置请求消息的一代
很多物联网应用程序使用单级密码重置,但是一些应用程序使用多级密码重置。我们直接使用动态分析来确定这个密码重置UI,因为我们不能推断出它通过分析单个活动。然后我们输入参数驱动程序来生成密码重置信息。
识别UI。一个示例的多级密码重置模型图4。活动有三个,第一个接收到电话号码,如果它被证实,这个应用程序将会切换到下一个和一个短信代码请求消息将被发送到云;第二个接收短信验证码,如果得到证实,该应用程序将切换到下一个;第三个接收密码,如果确认,密码重置信息将被发送到云上。
它是具有挑战性的认识到这种类型的密码重置UI,因为每一个活动不包含足够的信息。但是很明显,如果有一些连续的活动应用程序,和每一个活动都包含一个不同的整个参数密码重置的一部分,我们可以推断这是正确的UI。因此,我们使用一个状态机:(我)首先,我们定义一个3-bit-vector,第一位意味着存在一个电话号码的UI元素,第二位意味着存在一个短信代码,第三位意味着存在一个密码。我们定义四个州:s0是初始状态,s1意味着电话号码已经满足,s2意味着电话和短信代码已经满足,和s3是最后的状态,这意味着所有参数都满足。(2)第二,我们每一个活动和转储运行当前的屏幕布局。然后我们检查的电话号码,短信代码和密码,根据当前状态和改变状态。(3)第三,如果我们到达s3,我们推断改变政府的活动s1密码重置的UI。
生成密码重置信息。在这里,我们使用相同的方法中使用单级密码重置模型生成消息和捕获它们。唯一不同的是我们需要在多个界面输入参数,因为每个UI接收部分。
4.2。发现有趣的参数密码重置信息
通常,有超过四个参数的密码重置信息。但我们只是感兴趣电话、代码、密码符号。我们需要一个原则性的方法来解析请求消息和识别我们有趣的参数。
4.2.1。准备解析请求消息中的参数
再一次,我们专注于物联网应用建立在其他(51使用HTTP作为传输协议)。根据HTTP协议规范,每个请求消息包括(1)请求行(例如,GET / ci / user / getVerify代码? uid = 1和电话= 1383815 imei = HTTP / 1.1),(2)额外的请求头(例如,主持人: house.com.cn),(3)一个空行,(4)可选的消息体。主要有两个HTTP请求方法,得到和帖子。对于一个得到请求时,它可以举办一个小块数据的URL。对于一个帖子请求,它可以承载很多消息体中的数据。并在物联网应用这两种方法都很受欢迎。
根据URL规范(52),数据可以作为一个编码离子束进行块在URL参数。第一个离子束进行连接到基本URL通过符号“?”,离子束进行是通过符号“=”连接,每个离子束进行通过“&”连接。解析这些参数,我们首先解析路径段通过扫描预留路径标志”?“第一离子束进行(uid = 1在我们运行的例子)。然后我们使用“&”来解析离子束进行(电话= 1383815 和imei =)。很简单的指数参数名称和值,我们将它们存储在一双(名称、值)。
参数也可以在消息体的方法帖子。没有限制的格式,因为它请求者可以指定格式类型通过内容类型请求头。但是其他的最佳实践开发建议开发人员使用JSON和XML作为消息正文的格式和我们只解析这两个流行的格式。JSON和XML层次结构树状结构,这意味着每个值可以被跟踪的路径树的根。我们仍然在一对存储它们(名称、值)。
4.2.2。确定有趣的参数与不同的输入值
解析参数后,我们需要知道一个参数很有趣,比如签名。我们不在乎那些无趣的参数(例如,应用程序版本和手机版),因为他们是与密码重置的过程逻辑无关,我们只是保持他们的原始值。有四个有趣的参数:电话、代码、密码符号。电话号码,短信代码中使用请求消息和密码重置请求消息。短信代码是最重要的参数;我们想改变它所有可能的值。签名是一个隐藏的参数自动生成的应用程序逻辑。如果找到签名或加密,我们利用UI自动化驱动程序来生成密码地一致的消息。
这些参数的值是用户输入的密码重置用户界面,我们可以通过UI自动化控制输入值。所以,我们改变UI元素的输入值不同的值,那么我们分析生成的信息来定位两个不同的输入值。通过这种方式,我们推断出有趣的参数没有知识的钥匙名称:(我)为电话我们输入两个不同的电话号码,相同的代码,同一密码密码重置UI。然后触发UI消息发送密码重置和解析这两个消息。如果参数具有相同键包含两个不同的输入值,我们推断参数是电话号码。运行例子在盒子里1- - - - - -4,我们使用两个输入(phone1、密码代码)和(phone2、密码代码)驱动程序来生成两条消息。在以下的分析中,我们可以找到一个参数的键名电话包含两个不同的值(phone1 phone2)。所以我们得到手机参数没有任何知识它的键名。(2)为代码,我们输入两个不同的短信代码,相同的电话号码,和相同的密码。然后我们推断像电话号码的短信代码。(3)为标志,我们输入两个不同的短信代码,相同的电话号码,和相同的密码。与短信代码,我们没有任何输入值签名,所以我们不知道应该搜查了两条消息。加密算法有一个理想的属性命名的雪崩效应(53),这意味着不同输入将导致一个戏剧性的不同输出。签名是建立在一个加密算法,我们可以使用这个共同的性质来推断标志。我们解析这两个消息,如果我们发现一个参数有非常高的分数差异的两个值,我们推断这是标志。我们使用欧氏距离54)得分,我们也使用这种方法来检查是否加密整个消息。
4.3。时间过期绕过
我们利用UI自动化生成密码一致的信息,包括私人版本支持所有类型的算法。但是是非常缓慢的UI自动化,因为每个密码重置请求确实会(1)获得UI元素的参数和检查验证,(2)执行加密或签名,(3)创建一个新的TCP连接到云,(4)建立一个HTTP请求消息中包含的数据步骤2,(5)发送消息到云,(6)等待响应消息和解析,和(7)同步的UI事件。此外,对于一个Android手机,计算能力和网络是非常有限的。所以,如果我们直接使用UI自动化驱动程序执行强力短信验证码,我们将会失败,因为时间过期的短信代码。
分析物联网的应用程序后,我们发现,我们可以使用一个offline-style方法的核心思想是,我们只是把应用在离线环境中生成所有消息和回放他们所有人在一个网络环境:(我)拦截短信代码请求消息从物联网应用程序和记录,更换电话号码,另一个用于实验,修改后的消息转发到云,接收响应消息和记录,最后提出了应对应用。应用程序可以发送密码重置信息。(2)截获密码重置请求消息的物联网应用,其转发到云如果是第一个,接收响应和记录,提出了应对应用。在接下来的请求,我们不会提出云计算和使用记录的请求响应消息来模拟云的反应。通过这种方式,我们在离线环境生成所有密码重置信息没有沟通到云。(3)生成所有可能的消息后,我们进行强力测试。首先,我们回放记录短信代码请求消息到云上生成一个短信代码真正的电话号码。第二,我们回放所有密码重置消息到云上。我们使用套接字池和线程池的速度最大化。我们监控响应长度,如果发生了变化,我们不再重演,使用预定义的密码帐户登录。如果成功,我们推断出物联网设备帐户是脆弱的。
5。评价
我们实现了SACIntruder基于几个开源工具,一代是建立在我们的消息uiautomator(55),mitmproxy(56),我们的RecordReplayer部署SQLite(57)作为它的持久数据存储。我们写的python代码来驱动UI自动化和拦截消息,我们写C代码重复记录的消息。
5.1。实验设置
物联网设备。我们选择12个代表物联网设备从不同的类别,包括汽车,汽车共享,机器人,智能锁,smartwatch和智能路由器等等。所有这些设备都有一个官方Android应用程序用于管理他们。描述这些物联网应用的详细的规格表1。特别是,我们总结应用信息和他们的UI模型。有三种类型的UI模型,单级密码重置,单级短信登录,多级密码重置。单级短信登录可以被认为是一种特殊类型的吗单级密码重置。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
测试环境。我们的物联网UI自动化运行在一个Ubuntu 12.04 PC与英特尔酷睿i7四核3.6 GHz CPU 16 g内存,一个无线路由器TP-LINK TL-WAR1200L 1200和一个Android手机OnePlus。手机和电脑都连接到同一个无线路由器,无线代理OnePlus配置的电脑。我们没有测试物联网的其他客户,我们用实验电话注册一个账户来模拟被害人账户。在我们的测试中,短信验证码将被发送到我们的电话,但是我们从来没有使用它,我们只是执行强力的短信验证码。
5.2。评价结果
我们发现这些设备的官方应用程序很容易受到强力攻击短信代码,攻击者可以窃取这些设备远程控制他们的账户。如表所示2,我们发现12个零日漏洞,第三列显示是否在公开漏洞可以被索引中国国家漏洞数据库(58)(简称CNVD)。同样,所有漏洞我们创立已报告CNCERT / CC (7帮助供应商解决问题。
|
||||||||||||||||||||||||||||||||||||||||||||||||
有8个漏洞单级密码重置和登录,其中六个密码重置。还有其他4漏洞多级密码重置。我们的工具支持单级用户界面模型和多级UI模型。
5.3。案例研究
cnvd - 2017 - 03908是一个关于智能锁的密码重置的脆弱性,属于松下。首先,我们发现,应用程序使用的工具单级密码重置模型。第二,它使应用程序生成一个密码信息。第三,它发现没有加密和签名的信息,所以它直接短信代码在消息变异速度比智能手机在电脑上。第四,该工具将突变的消息发送到云重置密码成功。攻击者可以利用这个漏洞窃取被害人账户,那么他可以开门受害者的做任何事。松下现在已经修正这个问题。
cnvd - 2017 - 04583登录的脆弱性是一个共享汽车属于一个公司,拥有许多汽车租赁给客户。首先,我们的工具驱动程序来生成一个密码信息。第二,它发现消息都有一个签名,它不能直接变异短信代码。第三,它使用UI自动化驱动应用程序尝试所有可能的代码来生成密码信息,记录到数据库。最后,它回放所有消息到云来生成一个登录令牌和远期令牌给应用程序。因此,攻击者可以使用汽车共享服务在受害者的名字。现在已经固定。
cnvd - 2017 - 15147密码重置脆弱性是关于汽车智能互联系统,可以将命令发送到吗电子控制单元(ECU)打开/关闭门,窗户,汽车空调。该应用程序还使用单级密码重置短信代码参数模型,并使用一个奇怪的键名checknum,而不是传统的 代码。我们的工具可以找到它,因为我们使用不同的输入值来推断参数。攻击者可以利用这个漏洞开车走了。现在已经固定。
cnvd - 2017 - 12023密码重置脆弱性是关于智能家居控制器可以控制很多broadlink提供的设备,应用程序使用吗多级密码重置模型。我们的工具找到正确的用户界面通过分析几个连续的活动和驱动应用程序生成一个密码重置信息。然后我们的工具发现消息加密通过输入不同的值,所以它使用UI自动化生成所有密码信息,记录到数据库。最后,它回放所有消息到云重置密码成功。攻击者可以利用这个漏洞来控制家庭设备。现在已经固定。
6。讨论
可能的对策来防止这种攻击。本文表明,重置你的密码物联网的应用程序可能容易受到攻击,因为攻击者可以蛮力攻击短信验证码破解物联网设备的用户帐户没有任何受害者的交互。核心观点是(1)短信代码的搜索空间中使用的密码重置远小于密码,(2)云的数量没有限制账户管理的尝试。频率限制,如基于ip的策略和帐户策略,可能会带来一些问题。如果攻击者和法律背后的客户是同一个NAT (59网关,基于ip的策略将阻止合法用户访问他们的设备。帐户策略将块设备所有者访问设备,如果攻击者对他的帐户执行蛮力。最好的保护是部署验证码(59在密码重置信息,因为我们的方法依赖于pregeneration包含所有可能的密码重置所有消息短信代码。平衡安全性和可用性,我们可以激活验证码当失败的数量满足一个阈值。
可以在iOS SACIntruder作品吗。在iOS SACIntruder也可以实现,因为核心的观点是(1)重置你的密码是一个功能在应用程序级别,它是独立在低层的智能手机操作系统。(2)友好的信息,比如“重置你的密码输入你的手机”UI,旨在引导用户输入。我们可以用这个来识别UI,无论应用程序运行在Android和iOS。(3)短信验证码也独立于低层的智能手机操作系统。它通常是一个4位或6-digital号码。其搜索空间很小。在这两个平台的主要区别是UI自动化,因为它依赖于低层的智能手机操作系统。在Android上,我们可以使用uiautomator控制第三应用。iOS上但我们不能这样做,因为它应用沙箱,我们需要一个越狱iphone绕过这个限制。然后我们可以编写代码来控制整个iOS,如捕捉屏幕识别UI通过图像处理和输入数据到第三应用。
限制。我们的论文只是专注于HTTP / HTTPS协议,因为其他的流行。但没有限制的物联网应用,他们甚至可以使用任何协议私人版本基于二进制格式。我们的工具SACIntruder使用Android手机的无线代理帮助包拦截,所以一个物联网应用程序可以检测到无线代理防止数据包拦截。
7所示。相关工作
漏洞发现在嵌入式/物联网设备。损失(60)使用静态分析来分析超过30000固件镜像发现bug包括XSS,硬编码的私人密钥对和后门。崔和斯多夫61年]发现超过500000公共可访问包含默认凭证通过网络扫描设备。崔和科斯特洛62年)发现,远程固件升级功能可以被攻击者利用插入恶意软件。戴维森(11)使用克利象征性执行引擎在开源固件检测内存漏洞。李(63年)移植SoC的QEMU仿真器来检测漏洞。Zaddach [42)结合模拟器和真实设备检测漏洞。陈(13)移植QEMU运行基于linux的固件大规模检测漏洞。王(64年)设计了一个模糊的框架RPFuzzer通过发送正常的网络数据包和监视CPU和系统日志在路由器检测漏洞。损失(14]分析了管理网络接口设备来检测漏洞。陈(65年)设计了一个名为IoTFuzzer的侦察系统框架,使用丰富的物联网协议信息的官方应用起毛。这些作品相比,我们的论文侧重于脆弱的物联网帐户。如果帐户是脆弱的,攻击者可以通过账户使用账户控制装置。
账户安全。SQL注入、XSS攻击,和逻辑故障通常被用来攻击一个帐户。Halfond [66年)提供了一个广泛的对不同类型的SQL注入攻击。沃格特(67年)跟踪敏感信息的流动在防止XSS web浏览器。巴斯(68年)执行一个实验CSRF漏洞283945年广告和提出了一个新的变种CSRF攻击。道尔顿(69年)提出了一种新颖的基于动态信息流追踪的方法来减轻身份验证和访问控制漏洞。Pellegrino [70年)使用黑盒方法检测逻辑缺陷在web应用程序中基于数量的行为模式的自动识别。王(71年)进行了安全分析,基于cashier-as-a-service web商店和发现一些逻辑缺陷,可以允许攻击者在任意低的价格购买一个项目。格勒恩特尔(21]介绍了密码重置MitM攻击利用了相似的注册和密码重置流程,这种攻击可以用来接管用户帐户。左(37)通过自动伪造密码密码强力执行一致的请求消息,它连接算法的标准密码的API来获得知识。这些作品相比,我们的论文关注账户管理的短信验证码,攻击者可以对代码执行强力攻击偷物联网账户没有任何互动的受害者。
移动应用分析。猴子(72年)是一种动态探索应用程序UI自动测试工具。Machiry [73年)提出了一个系统命名Dynodroid生成相关输入修改的Android应用程序。Rastogi [41)提出了一个框架,自动化Android应用程序的分析,综合多个组件组成不同的检测和自动勘探技术。Anand, Mirzaei和左应用符号执行74年- - - - - -76年)进行更系统的动态分析,所以他们可以获取更多的内部知识但沉重的开销。崔(77年)提出了一个工具叫发现者自动协议逆向工程从网络痕迹。中心(78年)维护协议信息项目,逆向工程是非常有用的协议。我们的论文被猴子和特别项目协议信息,我们使用UI测试工具探索UI组件和输入测试数据,我们使用不同的输入值来确定有趣的参数。
8。结论
我们已经完成第一个安全的研究重置你的密码流行的物联网设备帐户,发现可能是脆弱的,因为基于短信的验证。我们提出的设计、实现和评价SACIntruder,一个工具,可以自动执行强力攻击短信代码来测试一个物联网账户是否脆弱。我们已经测试了SACIntruder代表物联网设备从不同的类别,包括汽车,汽车共享,机器人,智能锁,智能手表,和智能路由器,发现12个零日漏洞。我们报告所有漏洞CNCERT / CC帮助供应商去解决问题,现在所有的作品都是固定的。
数据可用性
使用的数据来支持本研究的发现可以从相应的作者。本文中的漏洞CNVD可以访问。
信息披露
版本的会议摘要是RESEC 2018。
的利益冲突
作者宣称没有利益冲突。
确认
这部分工作是支持中国国家电网公司科技项目,国家自然科学基金(批准号61572115),(2017年国家重点研究和发展计划YFB0802900),2117年和项目H14243年一个和四川研究和技术支持的计划,中国。
引用
- 谷歌。Android穿,2018。
- g . Ho·d·梁,p . Mishra a . Hosseini d的歌,和d·瓦格纳,“智能锁:课程获得商品物联网设备,”第11届ACM学报》亚洲计算机和通信安全会议上,2016年亚洲CCS西安,页461 - 472年,中国,2016年6月。视图:出版商的网站|谷歌学术搜索
- C.-L。许和j . c c。林”,实证检验消费者采用物联网服务:网络外部性和关心信息隐私的角度,“电脑在人类行为卷,62年,第527 - 516页,2016年。视图:出版商的网站|谷歌学术搜索
- J.-Y。李,观测。林,中州。黄”,物联网的一个轻量级的认证协议,”学报》第三届国际研讨会下一代电子、ISNE 20142014年5月,twn。视图:谷歌学术搜索
- c . Doukas Maglogiannis,诉Koufi f . Malamateniou和g . Vassilacopoulos”使数据通过PKI加密保护物联网移动医疗设备”学报》第12届IEEE国际生物信息学与生物工程会议,BIBE 2012,25 - 29页,2012年11月。视图:谷歌学术搜索
- j . x Wang, e·m·斯古乐和m .离子“绩效评估的基于属性的加密:物联网的数据隐私,”《学报》2014年1日IEEE国际会议通信(ICC的14)澳大利亚悉尼,页725 - 730,,2014年6月。视图:出版商的网站|谷歌学术搜索
- CNCERT / CC、国家计算机网络应急技术团队/协调中心,2018年。
- 卢西恩江诗丹顿,黑客发现47个新的漏洞在23个物联网设备def场骗局方案,2016年。
- 克里斯•布鲁克旅行路由器、Nas设备中容易入侵物联网设备,2017年。
- n, s . Demetriou m . Xianghang et al .,“理解物联网安全通过数据水晶球:我们现在,我们要去哪里,”https://arxiv.org/abs/1703.09809。视图:谷歌学术搜索
- d·戴维森m·本杰明·t·Ristenpart, j . Somesh”五固件:找到漏洞在嵌入式系统中使用符号执行,”学报在USENIX安全研讨会,第478 - 463页,2013年。视图:谷歌学术搜索
- g·埃尔南德斯,f . Fowze d, t .•k·r·巴特勒,“FirmUSB,”《2017年的ACM SIGSAC会议德克萨斯州达拉斯,页2245 - 2262,美国2017年10月。视图:出版商的网站|谷歌学术搜索
- d·d·陈,m . Egele m .哇,d . Brumley,“基于linux的嵌入式固件,朝着自动化动态分析”《网络和分布式系统安全座谈会圣地亚哥CA。视图:出版商的网站|谷歌学术搜索
- 答:损失、A . Zarras和A . Francillon”大规模自动化动态固件分析:一个案例研究在嵌入式web界面,”第11届ACM学报》亚洲计算机和通信安全会议上,2016年亚洲CCS中文,页437 - 448年,2016年6月。视图:谷歌学术搜索
- devttyS0。嵌入式设备黑客,2017。
- l·r·克努森和m . j . Robshaw“蛮力攻击,”分组密码的同伴、信息安全与密码学,页95 - 108,施普林格,2011年柏林,海德堡。视图:出版商的网站|谷歌学术搜索
- k . Spett跨站点脚本编制,卷1,SPI实验室,2005年。
- j·伯恩斯,跨站请求伪造。介绍一种常见的web应用程序的弱点,信息安全合作伙伴,2005年。
- m·吴r·c·米勒和s l·加芬克尔”安全工具栏是防止网络钓鱼攻击吗?“在《2006:人机交互会议上在计算系统的人为因素可以,页601 - 610年,2006年4月。视图:谷歌学术搜索
- n .同诉尼米,k .尼伯格“中间人在挖过的身份验证协议”安全协议卷,3364课堂讲稿的第一版。科学。页,28-48 Springer,柏林,2005年。视图:出版商的网站|谷歌学术搜索|MathSciNet
- b . Magnezi Kalma n格勒恩特尔,美国,和h . Porcilan“密码重置MitM攻击,”学报2017年IEEE研讨会上的安全与隐私,SP 20172017年5月,页251 - 267。视图:谷歌学术搜索
- j . d . Wang Ming, t·陈,x,和c·王,“破解物联网设备用户账户短信验证码,通过穷举式攻击”诉讼的第一次研讨会仁川,页年度,韩国,2018年6月。视图:出版商的网站|谷歌学术搜索
- 谷歌。Android,世界上最受欢迎的移动平台,2012年。
- r·菲尔丁j .盖j .大亨et al .,“超文本传输协议,HTTP / 1.1”RFC编辑器RFC2616, 1999年。视图:出版商的网站|谷歌学术搜索
- r .战斗和e·本森,“缩小语义Web和Web 2.0与具象状态传输(REST),“杂志Web语义:科学、服务和代理在万维网上》第六卷,没有。1,第69 - 61页,2008。视图:出版商的网站|谷歌学术搜索
- a . Warshavsky a . Fiske b Cinarkaya, r .客人,“系统、方法和计算机程序产品执行一个或多个操作使用统一资源定位符,“美国专利,8卷,第144 - 990页,2015年。视图:谷歌学术搜索
- s . g . Stubblebine和v . d . Gligor,“在加密协议、消息完整性”《1992年IEEE计算机学会学报在安全和隐私研讨会研究1992年5月,页85 - 104。视图:谷歌学术搜索
- w . Chung-Ping和碳碳。杰伊·郭“快速加密方法视听数据机密性,”《三世在多媒体系统和应用程序卷,4209年,第296 - 284页,2001年。视图:谷歌学术搜索
- m . Aizatulin公元戈登,j .简”提取和验证密码模型从C协议代码符号执行,”学报18 ACM计算机和通信安全会议上,CCS的112011年10月,页331 - 340。视图:谷歌学术搜索
- m . Boreale“象征性的痕量分析密码协议,”自动机、语言和编程卷,2076课堂讲稿的第一版。科学。施普林格,页667 - 681年,柏林,2001年。视图:出版商的网站|谷歌学术搜索|MathSciNet
- r . Corin f . a marble,“有效的符号执行分析密码协议实现,”工程安全的软件和系统卷,6542在计算机科学的课堂讲稿施普林格,页58 - 72年,柏林,德国,2011年。视图:出版商的网站|谷歌学术搜索
- f . Grobert c Willems, t·霍尔兹、“自动识别加密原语的二进制程序,”入侵检测的最新进展卷,6961在计算机科学的课堂讲稿页41-60 Springer,柏林,海德堡,2011年。视图:出版商的网站|谷歌学术搜索
- d·埃文斯和d . Larochelle“提高安全使用可扩展的轻量级静态分析,“IEEE软件,19卷,不。1,42-51,2002页。视图:出版商的网站|谷歌学术搜索
- Ramakrishnan c . r . j . Rehof”攻击路径爆炸在基于测试的一代”《国际会议工具和算法的建设和分析系统、366、351页,施普林格。视图:出版商的网站|谷歌学术搜索
- c . Cadar和k·森,”符号执行软件测试:三十年后,“ACM的通信卷,56号2、82 - 90年,2013页。视图:出版商的网站|谷歌学术搜索
- 你和k .严,“恶意软件混淆技术:一个简短的调查,”诉讼的第五届国际会议上宽带无线计算、通信和应用程序(BWCCA 10)IEEE,第300 - 297页,2010年11月。视图:出版商的网站|谷歌学术搜索
- r . c .左w . Wang Wang和z林,“自动伪造密码一致的信息,识别移动服务,安全漏洞”《网络和分布式系统安全座谈会2016年圣地亚哥CA。视图:出版商的网站|谷歌学术搜索
- s, s . Nath b . Liu w·g·j . Halfond r . Govindan,”彪马:可编程的ui自动化移动应用的大规模动态分析”学报》第12届国际会议在移动系统中,应用程序和服务,经验2014美国,页204 - 217年,2014年6月。视图:谷歌学术搜索
- d . Crockford“application / json媒体类型为JavaScript对象表示法(json),“RFC编辑器RFC4627, 2006年。视图:出版商的网站|谷歌学术搜索
- t·布雷j . Paoli和迈克尔Sperberg-McQueen。C。,“Extensible markup language (xml),”万维网杂志,4卷,不。2、27 - 66年,1997页。视图:谷歌学术搜索
- 诉Rastogi、陈y和w·Enck”AppsPlayground:智能手机应用程序的自动安全分析,”学报》第三届ACM数据和应用程序安全会议上和隐私(CODASPY 13)ACM,页209 - 220年,2013年2月。视图:出版商的网站|谷歌学术搜索
- d . Sounthiraraj j . sah g·格林伍德,z . Lin和l .汗”SMV-HUNTER:大规模、自动化检测的SSL / TLS中间人在Android应用程序的漏洞,”《网络和分布式系统安全座谈会2014年圣地亚哥CA。视图:出版商的网站|谷歌学术搜索
- a . Memon Banerjee i, a纳”的图形用户界面GUI撕扯:逆向工程测试,”程序在逆向工程工作会议10日WCRE 20032003年11月,页260 - 269。视图:谷歌学术搜索
- r . WinsniewskiAndroid-apktool:逆向工程android的apk文件的工具,2012年。
- 张y、x罗和h .阴”DexHunter:对提取隐藏的代码从拥挤的android应用程序,”《欧洲研究在计算机安全研讨会上,第311 - 293页,2015年。视图:谷歌学术搜索
- c .胡锦涛和Neamtiu,“android应用程序自动化GUI测试,”学报第六届国际研讨会软件测试的自动化,AST 2011年,共存与ICSE 20112011年5月,页77 - 83。视图:谷歌学术搜索
- 美国Gunasekaran诉Bargavi,“调查对移动应用程序的自动化测试工具国际先进的工程研究和科学》杂志上,卷2,不。11日,第6495 - 2349页,2015年。视图:谷歌学术搜索
- Android开发者。Android调试桥,2014年。
- e·h·韦格尔”,高速和高保真系统和收集网络流量的方法,”美国专利7卷,第739 - 783页,2010年。视图:谷歌学术搜索
- a . Orebaugh g·拉米雷斯,j .比尔Wireshark &飘渺的网络协议分析器工具包,爱思唯尔,2006年。
- l·理查森和Ruby,RESTful web服务O ' reilly Media, Inc ., 2008年。
- t·伯纳斯·李,l . masint和m . McCahill“统一资源定位器(URL),”RFC编辑器RFC1738, 1994年。视图:出版商的网站|谷歌学术搜索
- 美国Ramanujam和m . Karuppiah”设计一个算法高雪崩效应”,IJCSNS国际计算机科学杂志和网络安全,11卷,不。1,第111 - 106页,2011。视图:谷歌学术搜索
- 体育课程。挑出,“欧氏距离映射”,计算机图形学和图像处理,14卷,不。3、227 - 248年,1980页。视图:出版商的网站|谷歌学术搜索
- android uiautomator Xiaocong, Python包装器的测试框架,2014年。
- mitmproxy。一个交互式tls-capable拦截http代理,2016年。
- s . ParkesSqlite:一个可嵌入sql数据库引擎,2011年。
- CNCERT / CC。中国国家漏洞数据库,2018年。
- g . Tsirtsis和p . Srisuresh”,网络地址转换协议转换(NAT-PT),“RFC编辑器RFC2766, 2000年。视图:出版商的网站|谷歌学术搜索
- 损失,j . Zaddach A . Francillon d . Balzarotti和s . Antipolis”大规模的安全分析嵌入式软体,”学报在USENIX安全研讨会,第110 - 95页,2014年。视图:谷歌学术搜索
- 崔A和s·j·斯多夫”,定量分析的嵌入式网络设备的安全:广域扫描的结果,”第26届年度计算机安全应用程序研讨会论文集,ACSAC 20102010年12月,页97 - 106。视图:谷歌学术搜索
- 崔A、m·科斯特洛和j·s·斯多夫,“当固件修改攻击:一个案例研究的嵌入式开发,”《教你们,2013年。视图:谷歌学术搜索
- d·h . Li通、k·黄和x Cheng”FEMU: firmware-based SoC验证的仿真框架,”学报》第八届IEEE /硬件/ Software-Co-Design ACM国际会议和系统合成、代码+国际空间站2010美国,页257 - 266,2010年10月。视图:谷歌学术搜索
- y z . Wang张、刘问:“RPFuzzer:发现路由器协议漏洞的框架基于起毛,”KSII交易网络和信息系统,7卷,不。8,1989 - 2009年,2013页。视图:出版商的网站|谷歌学术搜索
- w . j . Chen刁,问:赵et al .,物联网中的Iotfuzzer:发现内存错误通过app-based起毛, 2018年。视图:出版商的网站
- w·g·Halfond和A . Orso”sql注入攻击的分类和对策”《IEEE安全软件工程国际研讨会的第1卷IEEE,13 - 15,2006页。视图:出版商的网站|谷歌学术搜索
- 诉菲利普·f·Nentwich:约万诺维奇,e . Kirda k . Christopher诉乔凡尼,“跨站脚本预防污染和静态与动态数据分析,”《教你们,卷2007,p . 2007。视图:谷歌学术搜索
- a·巴斯,c·杰克逊和j·c·米切尔,“跨站点请求伪造健壮的防御,”学报》第15届ACM计算机和通信安全会议上,CCS 08年美国,页75 - 87,2008年10月。视图:谷歌学术搜索
- d . Michael c . Kozyrakis, n . Zeldovich对手:防止身份验证,在web应用程序中访问控制的漏洞,2009年。
- g·佩莱格里诺和d . Balzarotti”,向黑盒检测在Web应用程序的逻辑缺陷,”《网络和分布式系统安全座谈会2014年圣地亚哥CA。视图:出版商的网站|谷歌学术搜索
- s . r . Wang Chen x Wang和s·卡迪尔,“如何购买免费的在线安全分析cashier-as-a-service基础网络商店,”学报2011年IEEE研讨会上的安全与隐私,SP 20112011年5月,页465 - 480。视图:谷歌学术搜索
- Android开发者。Ui /应用程序做运动的猴子,2012。
- a . Machiry r . Tahiliani, m .奈克,“Dynodroid: android应用程序生成一个输入系统,”诉讼的ACM SIGSOFT研讨会的基础软件工程工程师协会(13)ACM,页224 - 234年,2013年8月。视图:出版商的网站|谷歌学术搜索
- s阿南德·m·奈克,m·j·哈罗德h·杨,“智能手机应用程序的自动化concolic测试,”20 ACM SIGSOFT学报》国际研讨会的基础软件工程,工程师2012人,2012年11月。视图:谷歌学术搜索
- z Chaoshun和l .志强Smartgen:暴露服务器url的移动应用选择性象征性执行”第26届国际研讨会论文集在万维网上,页867 - 876,国际万维网会议指导委员会,2017年。视图:谷歌学术搜索
- n . Mirzaei马列,c . s . Păsăreanu n . Esfahani r·马哈茂德,“测试android应用程序通过符号执行,”ACM SIGSOFT软件工程,37卷,不。6 p。2012。视图:出版商的网站|谷歌学术搜索
- c、k . Jayanthkumar和j·h·王,“发现者:自动协议逆向工程从网络痕迹,”在USENIX安全研讨会,14页,2007。视图:谷歌学术搜索
- b•马歇尔协议信息项目,2004年。
版权
版权©2018越南盾王等。这是一个开放的分布式下文章知识共享归属许可,它允许无限制的使用、分配和复制在任何媒介,提供最初的工作是正确引用。