WCMC
无线通信和移动计算
1530 - 8677
1530 - 8669
Hindawi
10.1155 / 2018/7849065
7849065
研究文章
重置你的密码是脆弱:常见的基于短信的身份验证的安全研究物联网设备
http://orcid.org/0000 - 0002 - 5141 - 9296
王
越南盾
1
http://orcid.org/0000 - 0001 - 9886 - 1412
张
本期
1
明
江
2
程ydF4y2Ba
停
1
http://orcid.org/0000 - 0002 - 1372 - 2366
王
曹国伟
3
http://orcid.org/0000 - 0002 - 3235 - 3463
妞妞
维娜
1
4
刘
Ximeng
1
中国电子科技大学
中国
uestc.edu.cn
2
德克萨斯大学阿灵顿
美国
uta.edu
3
ADLab Venustech的
中国
venustech.com.cn
4
学院网络安全
四川大学
中国
scu.edu.cn
2018年
4
7
2018年
2018年
08年
03
2018年
28
05年
2018年
04
06
2018年
4
7
2018年
2018年
版权©2018越南盾王等。
这是一个开放的文章在知识共享归属许可下发布的,它允许无限制的使用,分布和繁殖在任何媒介,提供最初的工作是正确的引用。
固件脆弱性是物联网的一个重要目标的攻击,但它是具有挑战性的,因为固件可能公开不可用或与一个未知的密钥加密。我们提出本文攻击短消息服务(SMS)身份验证代码,旨在获得没有固件分析物联网设备的控制。的关键思想是基于这样的观察:物联网设备通常有一个官方应用程序(应用程序)用来控制本身。客户需要注册一个帐号在使用这个程序之前,电话号码通常建议帐户名称,和大多数的应用程序都有一个共同特点,
重置你的密码,使用一个短信验证码发送到客户电话对客户进行身份验证时,他忘记了他的密码。我们发现,攻击者可以对这短信验证码自动执行的强力攻击,克服一些挑战,那么他可以盗取帐号获得物联网设备的控制。在我们的研究中,我们实现了一个原型工具,叫做
SACIntruder执行这样的强力攻击,使物联网设备上的自动测试。我们评估并成功发现12个零日漏洞包括智能锁,共享汽车、智能手表,智能路由器等。我们还讨论了如何防止这种攻击。
中国国家电网公司科技项目
中国国家自然科学基金
61572115
国家重点研究和发展计划
2017年yfb0802900
2117年h14243a
四川研究和技术支持的计划
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个零日漏洞。例如,我们发现了一个脆弱的智能锁和攻击者可以擅自进入受害者的房子。我们还发现一个脆弱的车,攻击者可以开走。
简而言之,我们提出以下主要贡献:
我们所知,它是
第一个安全研究物联网设备的基于短信的验证,我们发现这可能是脆弱的。攻击者可以进行强力测试短信代码获得物联网设备的控制没有任何交互的受害者。
我们设计了一个工具
SACIntruder可以自动执行的强力攻击测试,以检查是否一个物联网设备容易受到短信代码。我们的工具解决的重大挑战密码地一致的信息生成和其他一些挑战,如界面识别、参数识别、和时间过期。
我们实现了我们的工具和评估它在物联网设备包括智能锁,共享汽车、智能手表,和智能路由器,它自动发现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。因此,密码搜索空间的大小
(
26
+
26
+
10
)
6
=
56
十亿,这将花很长时间来测试所有可能的密码。跨站点脚本(
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说明消息用于整个密码重置的进展。
<大胆>盒1 < /大胆>消息密码重置的应用。<等宽字体>应用程序请求短信验证码< /等宽字体>。
GET / ci / user /
getVerifyCode
uid ?
= 1和电话= 1383815
∗
∗
∗
∗
&
imei
= HTTP / 1.1
主机
:
∗
∗
∗
。
∗
∗
∗
house.com.cn
连接:维生
接受编码:
gzip
用户代理:
okhttp
/ 3.3.1
<大胆>框2:< /大胆>消息应用程序密码重置的家里。<等宽字体>云反应短信验证码< /等宽字体>。
“代码”:200年,“味精”:“”,“结果”:
:“session_id f7b532
83 - 3 -甜2 - 400 d - b0ee - 76 a171036414”、“code_-1”: -
1、“error_code”:“0”
<大胆>盒3:< /大胆>消息密码重置的应用。<等宽字体>应用程序请求密码重置< /等宽字体>。
POST / ci /用户/
燃煤
/
pwd ?密码
= e10adc3949ba59abbe56
e057f20F883e&code = 7496和电话= 1383815
∗
∗
∗
∗
及注册= d3db1
a89d68cd72cbd2 a3fcbf9822876 HTTP / 1.1
饼干:JSESSIONID = f7b53283 - 3 -甜2 - 400 d - b0ee - 76 a17103
6414年
内容长度:0
主机
:
∗
∗
∗
。
∗
∗
∗
house.com.cn
连接:维生
接受编码:
gzip
用户代理:
okhttp
/ 3.3.1
<大胆>框4:< /大胆>消息密码重置的应用。<等宽字体>云响应密码重置< /等宽字体>。
“代码”:0,“味精”:“重置成功”
当客户想重置他的物联网帐户密码,他将指导下应用程序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=e10adc3949ba59abbe56
e057f20f8电话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。
时间到期。物联网云总是分配一个到期限制(不同
2
~
30.
分钟)的短信代码。强力测试必须以最快的速度,或身份验证代码将变得不可用在正确的突变。如果密码重置信息没有加密或不包含签名,我们就可以直接变异代码基于捕获消息和发送突变信息云计算速度快。或者我们使用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开始重播消息短信代码,密码重置到云的所有消息。如果帐户是脆弱的,它的成功密码将被重置。
短信验证码通过蛮力攻击密码重置:code0000短信验证码的值是0000,codeNNNN实例的所有可能的短信验证码值范围从0000到9999。
的概述
SACIntruder呈现在图
2:它的输入是一个物联网应用和受害者电话和输出是否脆弱的物联网应用。有三个主要组件:
MessageGenerator使用UI自动化控制的执行物联网应用,它执行静态分析和动态分析来识别UI和驱动程序生成密码地一致的消息。
ParameterIdentifier使用不同的输入来确定参数的密码重置信息,它包含一个网络代理拦截应用和云之间的通信。它不能输入数据的应用程序,所以它与MessageGenerator实现这一目标。
RecordReplayer使用一个数据库来记录所有密码重置信息和重播最后到云平行;是高性能计算机上运行的速度快。
SACIntruder的概述。
4所示。详细设计
在本节中,我们提出SACIntruder的三个关键组件的详细设计。我们首先描述如何
MessageGenerator生成一个密码重置信息部分
4所示。1,然后解释如何
ParameterIdentifier确定有趣的参数部分
4所示。2,然后现在如何
RecordReplyer绕过时间到期短信代码部分
4所示。3。
4.1。密码重置请求消息的一代
MessageGenerator负责密码信息生成,它利用UI自动化控制物联网应用程序的执行。首先,它运行应用程序并识别密码重置用户界面通过列举每一个活动和检查部分的共同特征
3所示。3。如前所述,有两个密码重置UI模型。图
3是典型的UI模型,命名
单级密码重置,因为所有参数输入在一个UI。和图
4是另一个模型,命名
多级密码重置,因为所有参数分为两到三组,在几个界面输入。然后,
MessageGenerator输入正确的界面,输入参数,并触发生成密码重置请求消息。
单级密码重置UI模型。
多级密码重置UI模型。
以下4.4.1。单级密码重置请求消息的一代
为
单级密码重置所有UI元素,用于接收这些参数定义在一个活动中。首先,我们通过分析识别UI每个独立活动,然后输入每个参数这一活动驱动的应用程序来生成密码重置信息。
静态方法来识别UI。在Android,每个活动必须声明一个命名的文件
AndroidManifext.xml可以从应用程序二进制文件中提取。一些其他作品如AppsPlayground、SMV-Hunter和Gui撕裂(
41- - - - - -
43)使用这个清单开始动态UI的探索。但是动态探测通常是缓慢的,所以我们首先使用静态方法。为一个活动,所有UI元素(例如,
Buton ImageButon,复选框)中定义一个布局和活动使用
setContentView加载布局。理论上,一个布局可以是一个独立的文件或一块关于动态布局生成的代码。很多应用程序分析后,我们发现,大多数应用程序使用一个独立的文件。因此,我们分析一个活动来推断的布局文件是否通过检查常见的人性化信息正确的UI。
因为一个活动加载它的布局通过调用API
setContentView,我们需要分析活动的代码布局。一个物联网应用的源代码总是不可用,但它不是一个问题。因为Android应用程序非常类似于Java archive,很容易拆卸程序。我们可以使用
apktool(
44分解应用。应用程序的每个部分,可以提炼出基本的元素,比如字符串池文件,代码文件为每个类,布局文件、图像文件等等。在这些元素中,文件命名
public.xml是非常重要的,因为一个活动的反汇编代码不会使用一个名称来引用它的布局,而是一个整数,在这个文件中定义。另一个文件命名
strings.xml也很重要,因为人性化的信息密码重置UI通常这里定义。总共有五个主要步骤,以确定正确的UI通过静态方法:
拆卸一个物联网应用
apktool。如果应用程序没有保护封隔器(
45),我们可以得到每一个应用程序的一部分。否则,我们只能得到所有部分的一个子集,我们将动态方法。
名单的所有活动的清单。再次,每一个活动必须声明在这个文件中。如果应用程序包含一个密码重置活动,我们可以分析每个活动找出来。此外,我们的包名称的应用程序清单,结合包名称和活动名称生成活动的全名代码文件。这一步的输出是一个数组
activityFullname。
找到每个活动的布局通过反汇编代码。活动的入口点是一个回调函数命名
onCreate。我们扫描每一个活动的反汇编代码
onCreate程序引用的布局。再次,拆卸的布局代码已被转换为一个整数。这一步的输出是一个数组
(activityFullname layoutInteger)。
布局文件通过
public.xml;Android使用这个文件将整数映射到一个名字。这一步的输出是一个数组
(activityFulname layoutName)。
分析布局文件引用来推断是否密码重置活动。一个布局文件是一个XML文件,其中包含所有UI元素定义类型名称和默认值。图
3是一个典型的
单级密码重置UI包含三个输入元素,两个提交元素,一些人性化的字符串。如果布局文件包含元素这样的定义,我们可以推断这是正确的UI。此步骤的输出
activityFullname。
动态的方法来识别UI。如果一个物联网应用保护封隔器,真正的代码从静态分析和布局将隐藏除了清单。但是清单包含所有活动的名字,我们不能得到布局引用的一个活动。所以,我们搬到动态方法。
活动是由运行在Android,每个活动经理。维护所有活动通过一个栈,它们排列的顺序根据每个活动的时候打开,只有顶部的活动堆栈是画在屏幕上(
46]。油漆的屏幕,活动经理保持屏幕布局包含顶级活动和其他UI元素,如系统虚拟键。此外,安卓系统允许将当前屏幕的布局支持调试。所以,我们可以运行一个应用程序的每一个活动和转储当前屏幕布局的布局运行活动没有关于封隔器和动态布局加载。总共有四个主要步骤,以确定正确的界面通过动态方法:
从清单中获得所有活动名称。这一步是一样的以前的静态方法。
物联网应用的每一个活动开始。这将带来一个活动在系统活动堆栈顶部。我们使用一个Android手机,打开调试支持,那么我们使用命令
我开始计划/活动开始一个活动。
把当前屏幕布局。有一个android shell命令命名
uiautomator(
47)是专为倾销当前屏幕布局。我们用它来转储布局和电话将其保存为一个文件,然后使用Android调试桥(
48)(ADB)命令来下载电话的布局文件。
分析布局来推断是否密码重置的UI。与传统的独立布局、屏幕布局已经加载的值关联的字符串在另一个文件中定义。另一个区别是它可能包含一些不属于应用程序的UI元素,如当前屏幕的顶部状态栏或弹出窗口。减少噪音,我们首先排除这些因素,然后我们检查在静态方法中使用的共同特征。如果发现,我们推断这个活动是密码重置UI。
对比之前的静态法、动态法是慢得多,因为它运行应用程序和使用调试接口获得关键信息。但它是非常有用的应用时保护封隔器(
45),或应用程序加载实现活动通过代码动态布局。
生成密码重置信息。识别密码重置界面后,我们可以使用UI自动化输入参数为驱动程序生成一个密码重置信息。方法很简单:列举参数元素布局,输入数据并单击submit按钮生成的消息。一些应用程序包含一个密码元素,而其他两个密码元素的应用。很容易确定这种差异,因为密码非常相似的两个元素根据他们的描述文本。
捕捉信息,我们可以使用Wireshark, tcpdump和libpcap
49,
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是最后的状态,这意味着所有参数都满足。
第二,我们每一个活动和转储运行当前的屏幕布局。然后我们检查的电话号码,短信代码和密码,根据当前状态和改变状态。
第三,如果我们到达
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)。所以我们得到手机参数没有任何知识它的键名。
为
代码,我们输入两个不同的短信代码,相同的电话号码,和相同的密码。然后我们推断像电话号码的短信代码。
为
标志,我们输入两个不同的短信代码,相同的电话号码,和相同的密码。与短信代码,我们没有任何输入值签名,所以我们不知道应该搜查了两条消息。加密算法有一个理想的属性命名的雪崩效应(
53),这意味着不同输入将导致一个戏剧性的不同输出。签名是建立在一个加密算法,我们可以使用这个共同的性质来推断
标志。我们解析这两个消息,如果我们发现一个参数有非常高的分数差异的两个值,我们推断这是
标志。我们使用欧氏距离
54)得分,我们也使用这种方法来检查是否加密整个消息。
4.3。时间过期绕过
我们利用UI自动化生成密码一致的信息,包括私人版本支持所有类型的算法。但是是非常缓慢的UI自动化,因为每个密码重置请求确实会(1)获得UI元素的参数和检查验证,(2)执行加密或签名,(3)创建一个新的TCP连接到云,(4)建立一个HTTP请求消息中包含的数据步骤2,(5)发送消息到云,(6)等待响应消息和解析,和(7)同步的UI事件。此外,对于一个Android手机,计算能力和网络是非常有限的。所以,如果我们直接使用UI自动化驱动程序执行强力短信验证码,我们将会失败,因为时间过期的短信代码。
分析物联网的应用程序后,我们发现,我们可以使用一个offline-style方法的核心思想是,我们只是把应用在离线环境中生成所有消息和回放他们所有人在一个网络环境:
拦截短信代码请求消息从物联网应用程序和记录,更换电话号码,另一个用于实验,修改后的消息转发到云,接收响应消息和记录,最后提出了应对应用。应用程序可以发送密码重置信息。
截获密码重置请求消息的物联网应用,其转发到云如果是第一个,接收响应和记录,提出了应对应用。在接下来的请求,我们不会提出云计算和使用记录的请求响应消息来模拟云的反应。通过这种方式,我们在离线环境生成所有密码重置信息没有沟通到云。
生成所有可能的消息后,我们进行强力测试。首先,我们回放记录短信代码请求消息到云上生成一个短信代码真正的电话号码。第二,我们回放所有密码重置消息到云上。我们使用套接字池和线程池的速度最大化。我们监控响应长度,如果发生了变化,我们不再重演,使用预定义的密码帐户登录。如果成功,我们推断出物联网设备帐户是脆弱的。
5。评价
我们实现了
SACIntruder基于几个开源工具,一代是建立在我们的消息
uiautomator(
55),
mitmproxy(
56),我们的RecordReplayer部署
SQLite(
57)作为它的持久数据存储。我们写的python代码来驱动UI自动化和拦截消息,我们写C代码重复记录的消息。
5.1。实验设置
物联网设备。我们选择12个代表物联网设备从不同的类别,包括汽车,汽车共享,机器人,智能锁,smartwatch和智能路由器等等。所有这些设备都有一个官方Android应用程序用于管理他们。描述这些物联网应用的详细的规格表
1。特别是,我们总结应用信息和他们的UI模型。有三种类型的UI模型,
单级密码重置,
单级短信登录,
多级密码重置。
单级短信登录可以被认为是一种特殊类型的吗
单级密码重置。
总结下的物联网应用测试。
| 类型 |
供应商 |
AndroidApp |
用户界面模型 |
| 看 |
ToyCloud |
com.watch
∗
∗
∗
.www |
单级密码重置 |
| 锁 |
松下 |
com。
∗
∗
∗
.digitallock |
单级密码重置 |
| SharingCar |
熊猫 |
com。
∗
∗
∗
.usecar |
单级短信登录 |
| SharingCar |
win-sky |
com。
∗
∗
∗
.drivevi |
单级短信登录 |
| 路由器 |
ximo |
com。
∗
∗
∗
.router |
单级密码重置 |
| HomeGate |
HuiJu |
com。
∗
∗
∗
.devices |
单级密码重置 |
| 机器人 |
lejurobot |
com。
∗
.zelos |
多级密码重置 |
| 汽车Cmera |
嘟嘟 |
com。
∗
∗
∗
。
∗
∗
∗
.laucher |
单级密码重置 |
| HomeGate |
BroadLink |
com。
∗
∗
∗
rmt |
多级密码重置 |
| 车 |
DasAuto |
com。
∗
∗
∗
.faw.vw。
∗
∗
∗
|
多级密码重置 |
| IP相机 |
uniview |
com。
∗
∗
∗
.ezview |
多级密码重置 |
| 车 |
东风 |
com。
∗
∗
∗
.windlink |
单级密码重置 |
测试环境。我们的物联网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帮助供应商解决问题。
总结发现的漏洞。
| AndroidApp |
CNVD |
公共 |
| com.watch
∗
∗
∗
.www |
cnvd - 2017 - 02059 |
是的 |
| com。
∗
∗
∗
.digitallock |
cnvd - 2017 - 03908 |
是的 |
| com。
∗
∗
∗
.usecar |
cnvd - 2017 - 04583 |
是的 |
| com。
∗
∗
∗
.drivevi |
cnvd - 2017 - 06343 |
是的 |
| com。
∗
∗
∗
.router |
cnvd - 2017 - 15081 |
是的 |
| com。
∗
∗
∗
.devices |
cnvd - 2017 - 03909 |
是的 |
| com。
∗
.zelos |
cnvd - 2017 - 01003 |
是的 |
| com。
∗
∗
∗
。
∗
∗
∗
.laucher |
cnvd - 2017 - 09696 |
是的 |
| com。
∗
∗
∗
rmt |
cnvd - 2017 - 12023 |
是的 |
| com。
∗
∗
∗
.faw.vw。
∗
∗
∗
|
cnvd - 2017 - 25143 |
是的 |
| com。
∗
∗
∗
.ezview |
cnvd - 2017 - 12075 |
是的 |
| com。
∗
∗
∗
.windlink |
cnvd - 2017 - 15147 |
是的 |
有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。
梁
D。
Mishra
P。
Hosseini
一个。
首歌
D。
瓦格纳
D。
智能锁:课程获得商品物联网设备
第11届ACM学报》亚洲计算机和通信安全会议上,2016年亚洲CCS
2016年6月
西安,中国
461年
472年
10.1145/2897845.2897886
2 - s2.0 - 84979650451
]
[
许
C.-L。
林
j . c c。
实证检验的消费者采用物联网服务:网络外部性和关心信息隐私的角度
电脑在人类行为
2016年
62年
516年
527年
2 - s2.0 - 84964325332
10.1016 / j.chb.2016.04.023
]
[
李
J.-Y。
林
观测。
黄
中州。
物联网的一个轻量级的认证协议
学报》第三届国际研讨会下一代电子、ISNE 2014
2014年5月
twn
2 - s2.0 - 84903851734
]
[
Doukas
C。
Maglogiannis
我。
Koufi
V。
Malamateniou
F。
Vassilacopoulos
G。
使数据通过PKI加密保护物联网移动医疗设备
学报》第12届IEEE国际生物信息学与生物工程会议,BIBE 2012
2012年11月
25
29日
2 - s2.0 - 84872855613
]
[
王
X。
张
J。
斯古乐
e . M。
离子
M。
绩效评估的基于属性的加密:对物联网的数据隐私
《学报》2014年1日IEEE国际会议通信(ICC的14)
2014年6月
澳大利亚悉尼
725年
730年
10.1109 / ICC.2014.6883405
2 - s2.0 - 84906994292
]
[
CNCERT / CC
国家计算机网络应急技术团队/协调中心,2018年
]
[
卢西恩江诗丹顿
黑客发现47个新的漏洞在23个物联网设备def场骗局方案,2016年
]
[
克里斯•布鲁克
旅行路由器、Nas设备中容易入侵物联网设备
2017年
]
[
张
N。
Demetriou
年代。
Xianghang
M。
非常
D。
元
K。
培元中学
Z。
钱
F。
现任
W。
程ydF4y2Ba
K。
田
Y。
通过数据了解物联网安全水晶球:我们现在和我们要的地方
https://arxiv.org/abs/1703.09809
]
[
戴维森
D。
便雅悯
M。
Ristenpart
T。
Somesh
J。
5固件:找到漏洞在嵌入式系统中使用符号执行
学报在USENIX安全研讨会
2013年
463年
478年
]
[
埃尔南德斯
G。
Fowze
F。
田
D。
•
T。
巴特勒
k·R。
FirmUSB
《2017年的ACM SIGSAC会议
2017年10月
美国德州达拉斯
2245年
2262年
10.1145/3133956.3134050
]
[
程ydF4y2Ba
D D。
Egele
M。
吸引
M。
Brumley
D。
对自动化动态分析基于linux的嵌入式固件
《网络和分布式系统安全座谈会
圣地亚哥,
10.14722 / ndss.2016.23415
]
[
损失
一个。
Zarras
一个。
Francillon
一个。
大规模自动化动态固件分析:一个案例研究在嵌入式web界面
第11届ACM学报》亚洲计算机和通信安全会议上,2016年亚洲CCS
2016年6月
中文
437年
448年
2 - s2.0 - 84979665771
]
[
devttyS0。嵌入式设备黑客,2017
]
[
克努森
l R。
Robshaw
m·J。
蛮力攻击
分组密码的同伴
2011年
柏林,海德堡
施普林格
95年
108年
信息安全与密码学
10.1007 / 978 - 3 - 642 - 17342 - 4 _5
]
[
Spett
K。
跨站点脚本编制
2005年
1
SPI实验室
]
[
伯恩斯
J。
跨站请求伪造。介绍一种常见的web应用程序的弱点,信息安全合作伙伴
2005年
]
[
吴
M。
米勒
r . C。
加芬克尔
s . L。
安全工具栏是防止网络钓鱼攻击吗?
《2006:人机交互会议上在计算系统的人为因素
2006年4月
可以
601年
610年
2 - s2.0 - 33745867321
]
[
同
N。
尼米
V。
尼伯格
K。
中间人在挖过的身份验证协议
安全协议
2005年
3364年
施普林格,柏林
28
48
课堂讲稿的第一版。科学。
10.1007 / 11542322 _6
MR2214263
]
[
格勒恩特尔
N。
卡尔马
年代。
Magnezi
B。
Porcilan
H。
密码重置MitM攻击
学报2017年IEEE研讨会上的安全与隐私,SP 2017
2017年5月
251年
267年
2 - s2.0 - 85024479010
]
[
王
D。
明
J。
程ydF4y2Ba
T。
张
X。
王
C。
裂解物联网设备的用户帐户通过短信验证码的强力攻击
诉讼的第一次研讨会
2018年6月
韩国仁川
57
60
10.1145/3203422.3203426
]
[
谷歌。Android,世界上最受欢迎的移动平台,2012年
]
[
菲尔丁
R。
盖提
J。
大亨
J。
Frystyk
H。
masint
l
浸出
P。
伯纳斯-李
T。
超文本传输协议(HTTP / 1.1
RFC编辑器
1999年
RFC2616
10.17487 / rfc2616
]
[
战斗
R。
本森
E。
桥接语义Web和Web 2.0与具象状态传输(REST)
杂志Web语义:科学、服务和代理在万维网上
2008年
6
1
61年
69年
2 - s2.0 - 44549088337
10.1016 / j.websem.2007.11.002
]
[
Warshavsky
一个。
菲斯克
一个。
Cinarkaya
B。
客人
R。
系统、方法和计算机程序产品执行一个或多个操作使用统一资源定位符
美国专利
2015年
8
990年
144年
]
[
Stubblebine
s G。
Gligor
诉D。
在加密协议消息的完整性
《1992年IEEE计算机学会学报在安全和隐私研讨会研究
1992年5月
85年
104年
2 - s2.0 - 0026851843
]
[
Chung-Ping
W。
杰伊·郭
碳碳。
快速加密方法视听数据机密性
4209年
《三世在多媒体系统和应用程序
2001年
284年
296年
]
[
Aizatulin
M。
戈登
答:D。
1月
J。
提取和验证密码模型从C协议代码符号执行
学报18 ACM计算机和通信安全会议上,CCS的11
2011年10月
331年
340年
2 - s2.0 - 80755187803
]
[
Boreale
M。
象征性的痕量分析密码协议
自动机、语言和编程
2001年
2076年
施普林格,柏林
667年
681年
课堂讲稿的第一版。科学。
10.1007 / 3 - 540 - 48224 - 5 - _55
MR2066542
Zbl0986.94022
]
[
Corin
R。
曼扎诺还
f。
有效的符号执行分析密码协议的实现
工程安全的软件和系统
2011年
6542年
柏林,德国
施普林格
58
72年
在计算机科学的课堂讲稿
10.1007 / 978 - 3 - 642 - 19125 - 1 - _5
]
[
Grobert
F。
Willems
C。
霍尔兹
T。
自动识别加密原语的二进制程序
入侵检测的最新进展
2011年
6961年
柏林,海德堡
施普林格
41
60
在计算机科学的课堂讲稿
10.1007 / 978 - 3 - 642 - 23644 - 0 - _3
]
[
埃文斯
D。
Larochelle
D。
提高安全使用可扩展的轻量级静态分析
IEEE软件
2002年
19
1
42
51
2 - s2.0 - 0036147522
10.1109/52.976940
]
[
Ramakrishnan
c·R。
Rehof
J。
在基于约束测试生成攻击路径爆炸
《国际会议工具和算法的建设和分析系统
施普林格
351年
366年
10.1007 / 978-3-540-78800-3
Zbl1133.68009
]
[
Cadar
C。
森
K。
象征性执行软件测试:三十年后
ACM的通信
2013年
56
2
82年
90年
2 - s2.0 - 84873677532
10.1145/2408776.2408795
]
[
你
我。
严
K。
恶意软件混淆技术:一个简短的调查
诉讼的第五届国际会议上宽带无线计算、通信和应用程序(BWCCA 10)
2010年11月
297年
300年
IEEE
10.1109 / BWCCA.2010.85
2 - s2.0 - 79952099736
]
[
左
C。
王
W。
王
R。
林
Z。
伪造密码一致的信息,自动识别移动服务中的安全漏洞
《网络和分布式系统安全座谈会
2016年
圣地亚哥,
10.14722 / ndss.2016.23146
]
[
郝
年代。
刘
B。
纳
年代。
Halfond
w·g·J。
Govindan
R。
彪马:可编程大规模动态分析移动应用程序的ui自动化
学报》第12届国际会议在移动系统中,应用程序和服务,经验2014
2014年6月
美国
204年
217年
2 - s2.0 - 84903214230
]
[
Crockford
D。
application / json的媒体类型为JavaScript对象表示法(json)
RFC编辑器
2006年
RFC4627
10.17487 / rfc4627
]
[
布雷
T。
Paoli
J。
迈克尔Sperberg-McQueen。C。
可扩展标记语言(xml)
万维网杂志
1997年
4
2
27
66年
]
[
Rastogi
V。
程ydF4y2Ba
Y。
Enck
W。
AppsPlayground:自动安全分析的智能手机应用程序
学报》第三届ACM数据和应用程序安全会议上和隐私(CODASPY 13)
2013年2月
ACM
209年
220年
10.1145/2435349.2435379
2 - s2.0 - 84874865861
]
[
Sounthiraraj
D。
长官
J。
格林伍德
G。
林
Z。
汗
l
SMV-HUNTER:大规模、自动化检测的SSL / TLS中间人在Android应用程序漏洞
《网络和分布式系统安全座谈会
2014年
圣地亚哥,
10.14722 / ndss.2014.23205
]
[
Memon
一个。
巴纳吉
我。
纳
一个。
的图形用户界面GUI撕扯:逆向工程测试
程序在逆向工程工作会议10日WCRE 2003
2003年11月
260年
269年
2 - s2.0 - 84944605040
]
[
Winsniewski
R。
Android-apktool:逆向工程android的apk文件的工具
2012年
]
[
张
Y。
罗
X。
阴
H。
DexHunter:对提取隐藏的代码从拥挤的android应用程序
《欧洲研究在计算机安全研讨会上
2015年
293年
311年
2 - s2.0 - 84951813700
]
[
胡
C。
Neamtiu
我。
android应用程序的自动化GUI测试
学报第六届国际研讨会软件测试的自动化,AST 2011年,共存与ICSE 2011
2011年5月
77年
83年
2 - s2.0 - 79959449597
]
[
Gunasekaran
年代。
Bargavi
V。
调查移动应用程序的自动化测试工具
国际先进的工程研究和科学》杂志上
2015年
2
11
2349年
6495年
]
[
Android开发者。Android调试桥,2014年
]
[
韦格尔
e . H。
高速和高保真系统和收集网络流量的方法
美国专利
2010年
7
783年
739年
]
[
Orebaugh
一个。
拉米雷斯
G。
比尔
J。
Wireshark &飘渺的网络协议分析器工具包
2006年
爱思唯尔
]
[
理查森
l
Ruby
年代。
RESTful web服务
2008年
O ' reilly Media, Inc .)
]
[
伯纳斯-李
T。
masint
l
McCahill
M。
统一资源定位器(URL)
RFC编辑器
1994年
RFC1738
10.17487 / rfc1738
]
[
Ramanujam
年代。
Karuppiah
M。
设计一个算法高雪崩效应
IJCSNS国际计算机科学杂志和网络安全
2011年
11
1
106年
111年
]
[
挑出
体育课程。
欧氏距离映射
计算机图形学和图像处理
1980年
14
3
227年
248年
2 - s2.0 - 0019229539
10.1016 / 0146 - 664 x (80) 90054 - 4
]
[
Xiaocong
Python包装器的android uiautomator测试框架,2014年
]
[
mitmproxy。一个交互式tls-capable拦截http代理,2016年
]
[
帕克斯
年代。
Sqlite:一个可嵌入sql数据库引擎
2011年
]
[
CNCERT / CC。中国国家漏洞数据库,2018年
]
[
Tsirtsis
G。
Srisuresh
P。
网络地址转换协议转换(NAT-PT)
RFC编辑器
2000年
RFC2766
10.17487 / rfc2766
]
[
损失
一个。
Zaddach
J。
Francillon
一个。
Balzarotti
D。
Antipolis
年代。
大规模的安全分析嵌入式软体
学报在USENIX安全研讨会
2014年
95年
110年
]
[
崔
一个。
斯多夫
美国J。
定量分析的嵌入式网络设备的安全:广域扫描的结果
第26届年度计算机安全应用程序研讨会论文集,ACSAC 2010
2010年12月
97年
106年
2 - s2.0 - 78751540482
]
[
崔
一个。
科斯特洛
M。
斯多夫
j·S。
当固件修改攻击:一个案例研究的嵌入式开发
《教你们
2013年
]
[
李
H。
通
D。
黄
K。
程
X。
FEMU: firmware-based SoC验证仿真框架
学报》第八届IEEE /硬件/ Software-Co-Design ACM国际会议和系统合成、代码+国际空间站2010
2010年10月
美国
257年
266年
2 - s2.0 - 79956054973
]
[
王
Z。
张
Y。
刘
Q。
RPFuzzer:发现路由器协议漏洞的框架基于起毛
KSII交易网络和信息系统
2013年
7
8
1989年
2009年
2 - s2.0 - 84883388403
10.3837 / tiis.2013.08.014
]
[
程ydF4y2Ba
J。
刁
W。
赵
Q。
左
C。
林
Z。
王
X。
刘
w . C。
太阳
M。
杨
R。
张
K。
物联网中的Iotfuzzer:发现内存错误通过app-based起毛
2018年
10.14722 / ndss.2018.23159
]
[
Halfond
w·G。
人的
一个。
一个分类的sql注入攻击和对策
1
《IEEE安全软件工程国际研讨会
2006年
13
15
IEEE
10.1145/1134285.1134416
]
[
菲利普
V。
Nentwich
F。
约万诺维奇
N。
Kirda
E。
克里斯多夫
K。
乔凡尼
V。
跨站脚本预防污染和静态分析与动态数据
2007年
《教你们
2007年
12
]
[
巴斯
一个。
杰克逊
C。
米切尔
j . C。
跨站点请求伪造的强大的防御
学报》第15届ACM计算机和通信安全会议上,CCS 08年
2008年10月
美国
75年
87年
2 - s2.0 - 70349266257
]
[
迈克尔
D。
Kozyrakis
C。
Zeldovich
N。
Nemesis: Preventing authentication & access control vulnerabilities in web applications
2009年
]
[
培
G。
Balzarotti
D。
对黑盒检测缺陷在Web应用程序的逻辑
《网络和分布式系统安全座谈会
2014年
圣地亚哥,
10.14722 / ndss.2014.23021
]
[
王
R。
程ydF4y2Ba
年代。
王
X。
卡迪尔
年代。
如何购买免费的在线安全分析基于cashier-as-a-service网络商店吗
学报2011年IEEE研讨会上的安全与隐私,SP 2011
2011年5月
465年
480年
2 - s2.0 - 80051991045
]
[
Android开发者。Ui /应用程序做运动的猴子,2012
]
[
Machiry
一个。
Tahiliani
R。
奈克
M。
Dynodroid: android应用程序生成一个输入系统
诉讼的ACM SIGSOFT研讨会的基础软件工程工程师协会(13)
2013年8月
ACM
224年
234年
10.1145/2491411.2491450
2 - s2.0 - 84883731598
]
[
阿南德
年代。
奈克
M。
哈罗德
m·J。
杨
H。
智能手机应用程序的自动化concolic测试
20 ACM SIGSOFT学报》国际研讨会的基础软件工程,工程师2012人
2012年11月
2 - s2.0 - 84871278310
]
[
Chaoshun
Z。
志强
l
Smartgen:暴露服务器url的移动应用选择性象征性执行
第26届国际研讨会论文集在万维网上
2017年
国际万维网会议指导委员会
867年
876年
]
[
Mirzaei
N。
马列
年代。
Păsăreanu
c·S。
Esfahani
N。
马哈茂德
R。
通过符号执行测试android应用程序
ACM SIGSOFT软件工程
2012年
37
6
1
10.1145/2382756.2382798
]
[
Weidong
C。
Jayanthkumar
K。
王
j . H。
发现者:自动协议逆向工程从网络痕迹
在USENIX安全研讨会
2007年
1
14
]
[
马歇尔
B。
协议信息项目
2004年
]