[讲座] [保卫设备的背后:移动应用安全] [克里斯Wysopal] [哈佛大学] [这是CS50。] [CS50.TV] >>下午好。我的名字是克里斯Wysopal。 我是CTO和Veracode的共同创办人。 Veracode的是一个应用程序的安全公司。 我们测试各种不同的应用, 什么我要说说今天的移动应用程序的安全性。 我的背景是我一直在做的安全性研究 很长一段时间,大概只要任何人。 我开始在90年代中期, ,这是一个时间,这是非常有趣的,因为 我们曾在90年代中期范式转变。 突然间每个人的电脑被挂接到互联网, 然后我们有web应用的开端, 这就是我把重点放在了不少呢。 这很有趣。 现在我们有另一个范式变化发生与计算, 这是转移到移动应用。 >>我觉得这是一种类似的时间,然后它是在90年代末 当我们正在调查的web应用程序,并找到类似的缺陷 会话管理错误和SQL注入 这实际上是不存在的面前,突然他们无处不在 在Web应用程序,现在很多时候我花 正在寻找移动应用和看发生了什么事情赫然出现在野外。 移动应用程序真的要成为占主导地位的计算平台, 所以我们真的需要花费大量的时间,如果你在安全行业 专注于Web应用程序。 有29十亿在2011年下载的移动应用程序。 它预计为76十亿应用到2014年。 还有那些即将在今年购买6.86亿的设备, 所以这是那里的人都打算做  其大部分客户端计算的向前发展。 >>我是说在富达投资副总裁 几个月前,他说他们只是看到了更多的流量 做金融交易从他们的客户群 在他们的移动应用程序比在他们的网站, 所以对于网站在过去的一个常见用途已 检查你的股票行情,管理你的投资组合, 而我们实际上看到,在2012年超过开关 要在移动平台上更占优势。 当然,如果有将是任何犯罪活动, 任何恶意活动,它将会开始集中在移动平台上 随着时间的推移,人们切换到这一点。 如果你看看移动平台, 来看看这个平台来把它分解成不同的层是非常有用的风险, 就像你会做它在台式计算机上, 你想想不同的层,软件,操作系统, 网络层,硬件层,当然,还有在所有这些层漏洞。 >>同样的事情发生在移动。 但是,移动,似乎有些这些层是更糟。 其一,网络层上移动更成问题 因为很多人都在自己的办公室或家中 有线连接或者他们有安全的Wi-Fi连接, 和很多移动设备你明明在家外面 或办公室的外面很多,如果你正在使用Wi-Fi有 你可能正在使用不安全的Wi-Fi连接, 东西是一个公共Wi-Fi连接, 所以当我们想到的移动应用程序,我们必须考虑到 在网络环境是风险较高的为这些应用程序 当Wi-Fi已被使用。 而当我进入更多的移动应用程序的风险 你就会明白为什么这是更重要的。 有在移动设备上的硬件层面的风险。 这是正在进行的研究的一个领域。 人们称这些宽带攻击或基带攻击 在那里你攻击了在听收音机的固件。 >>这是真正可怕的攻击,因为 该用户没有做任何事情。 您可以射频范围内创下许多设备 在一次,好像每当这个研究冒泡 它很快被归类在那里 人一举周围,说,“在这里,告诉我们关于这一点,请停止谈论它。” 这里也有一些研究,在宽带领域回事, 但它似乎是非常嘘嘘。 我认为它是更多研究一个民族国家型这回事的。 活跃​​的研究领域,虽然是操作系统层, 又一次,这比在桌面计算领域的不同 因为在移动领域有一个人叫越狱这些球队, 和越狱比普通的漏洞研究者不同。 他们试图找到在操作系统中的漏洞, 但他们正试图找到漏洞的原因是不 闯入别人的机器和妥协了。 这是闯入自己的电脑。 >>他们想闯入自己的移动,修改自己的移动操作系统 使他们能够运行他们选择的应用 而改变的事情有完全的管理权限, 他们不想告诉这个供应商。 他们不喜欢的一位安全研究人员是一个白色的帽子安全研究员 这是会做负责任的披露,并告诉它的供应商。 他们想要做的这项研究,他们想实际发布它 在利用或一个rootkit或越狱的代码, 他们想这样做的战略,像右后 供应商船舶新的操作系统。 你有这样的敌对关系 与在移动操作系统级别的安全漏洞, 我认为这是挺有意思的,一个地方,我们看到它 是它使得有很好公布攻击代码在那里 内核级漏洞, 我们已经看到了那些实际被使用的恶意软件编写者。 它比PC世界有一点点不同。 然后将最后一层是顶层,应用层。 这就是我今天要谈论的话题。 >>其它层存在,而其他层打进去了, 但我主要是要谈什么,在应用层回事 其中代码运行在沙箱中。 它不具有管理权限。 它具有使用该装置的原料药, 但尽管如此,很多恶意活动和大量的风险可以在该层发生 因为那是所有的信息层。 应用程序可以访问设备上的所有信息 如果他们有正确的权限, 并且他们可以访问设备上的不同的传感器, GPS传感器,麦克风,摄像头,你有什么。 即使我们只谈论在应用层 我们有很多的风险存在。 另一件事是关于不同移动环境 在所有的操作系​​统的球员,无论是黑莓或Android 或iOS或Windows手机,他们都有一个细粒度的权限模型, 这是它们内置到操作系统的方法之一 的想法,它并不像你想象的那样危险的。 即使你把所有在那里的联系人,你的所有个人信息, 你有你的照片,你有你的位置在那里, 你存储你的银行引脚上有自动登录,这是安全的,因为 应用程序必须有一定的权限来获得某些部分 的设备上的信息,并且用户必须带有 这些权限和说还行。 >>它的问题是用户总是说没事。 作为安全性的人,我知道你可以提示用户, 说一些非常糟糕的事情发生,你希望它发生? 如果他们是在赶时间或有什么东西在认为对方确实诱人, 就像一个游戏是要安装的组件,他们一直在等待, 他们会按一下好。 这就是为什么我在我的幻灯片说,这里只是让我扔鸟在猪已经, 您可以在幻灯片上看到这里有一个黑莓许可箱的例子。 它说:“请设置黑莓手机旅游应用程序的权限 点击下面的按钮,“基本上,用户只是想说之后 设置权限和保存。 下面是一个Android的提示符,它显示的东西, 它其实是把东西几乎看起来像一个警告。 它有一种屈服的迹象说有网络通信,通电话, 但用户要点击安装,对不对? 然后苹果一个是完全无害的。 它不给任何警告。 这只是苹果想用你的当前位置。 当然,你要点击确定。 >>有这样细粒度的权限模型, 和应用程序必须有一个manifest文件,他们声明 的权限,他们所需要的,并且会得到显示给用户, 用户将不得不说,我授予这些权限。 但说实话。 用户只是将总是说还行。 让我们来快速浏览一下这些应用程序所要求的权限 有的认为是有权限的。 本公司禁卫军做了一个调查,去年 在Android Market和第三方市场分析53,000的应用程序, 所以这是所有的Andr​​oid。 和平均应用程序要求3的权限。 一些应用程序要求117的权限, 所以很明显,这些都是非常细粒度的方式太复杂了用户理解 如果他们提出了与此应用程序需要这些117权限。 这就像在最终用户许可协议这是45页长。 也许很快他们就会有一个选项,其中它就像 打印权限和给我发送电子邮件。 >>但是,如果你看看一些顶级有趣的权限 他们下载了53,000的应用程序24% 从设备请求的GPS信息。 8%读的联系人。 4%发来的短信,和3%接受短信。 2%,录制的音频。 1%处理拨出电话。 我不知道。 我不认为在App Store的应用程序的4%真的需要发送短信, 所以我认为这是一个暗示,一些不愉快的事情。 该应用程序的8%需要读取您的联系人列表中。 它可能不是必要的。 其中一个有关权限的其他有趣的事情是 如果您在共享库链接到应用程序中 那些继承应用程序的权限, 所以如果你的应用程序需要的联系人列表或需要GPS定位功能 你在一家广告链接库,例如, 该广告库也将能够访问联系人 并且也可以访问GPS位置, 和应用程序的开发人员并不了解该公司在广告库中运行的代码。 他们只是链接了,因为他们想赚钱的应用程序。 >>在这里,我将谈论一些这方面的例子有 叫潘多拉一个应用程序,应用程序开发人员 也许在不知不觉中被泄露信息 从他们的用户,他们已经挂英寸库,因为 测量景观在那里,看着所有不同的应用程序 已报道的消息为恶意或做一些用户不想要 然后检查了大量的应用程序,我们做了很多的静态二进制分析移动应用程序, 所以我们验过,看了看代码本身, 我们提出了我们所说的我们的前10的应用中危险行为的清单。 而且它分解成2个部分,恶意代码, 所以这些都是不好的事情,这些应用程序可能会做的 很可能是一些恶意的个体 特地放置在应用程序,但它是一个有点模糊。 这可能是一些开发人员认为是好的, 但它最终被用户认为是恶意的。 >>然后是第二部分就是我们所说的编码漏洞, 而这些事情,开发人员基本上是决策失误 或者只是不知道如何安全地编写应用程序,  而这把应用程序用户面临风险。 我会去通过这些细节,并给出一些例子。 作为参考,我想放了OWASP的手机前10名。 这些都是10的问题,一个组在OWASP, 开放Web应用安全项目,他们有一个工作组 工作在移动前10名名单。 他们有一个非常著名的网站前10名名单,这是前10名 最危险的事情,你可以在一个Web应用程序。 他们正在做同样的事情为移动, 而他们的名单是比我们有一点不同。 6列的10个是相同的。 它们具有4是不同的。 我认为他们有不同的看法的一点点 在移动应用程序的风险,其中很多自己的问题 真正应用程序是如何传达给后端服务器 或什么的后端服务器上的事情, 没有那么多的应用程序,具有高风险的行为,只是简单的客户端应用程序。 >>红色的那些这里有2个表之间的差异。 和我的一些研究团队实际上已经促成了这一项目, 所以我们将看看会发生在什么时间,但我觉得这里的重点是: 我们真的不知道该榜单前10名是在移动应用程序是什么原因 他们真的只存在了2或3年了, 而且一直没有足够的时间去研究真正的操作系统 以及他们是有能力,有没有足够的时间 对于恶意社区,如果你愿意,已经花了足够的时间 试图通过移动应用程序来攻击用户,所以我希望这些列表来改变一点点。 但现在,这是前10名的事情担心。 你可能想知道在移动一侧做恶意移动代码 它是如何得到的设备? 北卡罗来纳州有一个叫做移动恶意软件基因组计划项目 在那里他们正在收集尽可能多的手机恶意软件,因为他们可以和分析它, 他们已经打破了移动恶意软件使用的注射载体, 而86%的人使用一种叫做重新包装的技术, 而这仅仅是Android平台上 你能真正做到这一点的重新包装。 >>原因是Android的代码是建立在与 叫Dalvik的一个Java字节代码,它是易于反编译的。 什么坏家伙能做的就是 拿一个Android应用程序,反编译, 插入恶意代码,重新编译它, 然后把它在App Store声称是该应用程序的新版本, 或只是也许改变应用程序的名称。 如果它是某种游戏,稍微变更名称, 所以这个重新包装的是如何移动恶意软件的86%被分配。 还有另一种技术叫做update这是 非常相似,重新包装,但实际上你不把恶意代码英寸 你要做的就是你把一个小的更新机制。 你反编译,你把一个更新机制,并重新编译它, 然后当应用程序正在运行它拉下来的恶意软件到设备上。 >>到目前为止,大多数是那些2技术。 有没有手机真多下载驱动车处或偷渡式下载, 这可能是像钓鱼攻击。 嘿,看看这个非常酷的网站, 或者你需要去这个网站,并填写此表格 保持持续的做一些事情。 那些被网络钓鱼攻击。 同样的事情可以在移动平台上发生,他们 指向一个移动应用程序下载,说:“嗨,这是美国银行。” “我们看到你使用这个应用程序。” “你应该下载这个应用程序等。” 理论上,这可能会工作。 也许它只是没有被使用,足以确定它是否是成功或失败, 但他们发现的时候,技术不足1%使用。 大部分的时间这真是一个重新包装的代码。 >>还有一个独立的名为类 如果有人只是构建了一个全新的应用。 他们建立宣称是什么应用程序。 这不是别的东西重新包装,并具有恶意代码。 这是使用的时间14%。 现在我想谈谈什么是恶意代码在做什么? 其中第一恶意软件在那里 你可以考虑一个间谍软件。 它基本上用来观测用户。 它收集电子邮件,短信。 原来麦克风上。 它收成的联系簿,并将其发送其关闭,以别人。 存在于PC上的此类型的间谍软件, 所以它非常有意义,人们试图做到这一点在移动设备上。 >>一个这样的例子,第一个是所谓的秘密短信复制程序。 它是在Android市场在几年前, 而当时的想法是,如果你有机会访问某人的Andr​​oid手机 你想窥视,也许这是你的配偶 或您的显著其他和你想窥探他们的短信, 你可以下载这个程序,并安装它,配置它 发送短信给你一个副本 每一个SMS文本消息,他们得到了。 这显然​​是违反服务的应用程序商店方面, 这是从Android市场中删除18小时它在那里的内, 这样极少数的人是因为这个风险。 现在,我认为,如果该程序被称为东西,也许少一点挑衅 像秘密短信复制,它可能会工作好了很多。 但它是那种显而易见的。 >>有一件事我们可以做,以确定是否应用有这种行为,我们不希望 是检查的代码。 其实,这是很容易做到在Android上,因为我们可以反编译的应用程序。 在iOS上可以使用像IDA Pro的反汇编器 看什么API的应用程序被调用和它在做什么。 我们写我们自己的二进制静态分析仪,用于我们的代码 我们这样做,所以你可以做的是,你可以说 没有设备做任何事情,基本上是监视我或跟踪我? 我这里有关于iPhone的一些例子。 这第一个例子是如何访问手机上的UUID。 这实际上是苹果公司刚刚禁赛新应用的东西, 但是,你可能有你的手机上运行旧的应用程序仍然可以做到这一点, 和使唯一的标识符可以被用来追踪你 在许多不同的应用。 >>在Android,我有一个例子在这里得到设备的位置。 你可以看到,如果该API调用是有该应用程序的跟踪, 你可以看它是否是越来越精确的位置或粗略的位置信息。 然后在这里的底部,我对黑莓手机如何为例 一个应用程序可能会访问您的收件箱中的电子邮件。 这是什么样的东西,你可以检查看看 如果应用程序正在做这些事情。 第二个大类别的恶意行为,这可能是最大的类别现在, 未经授权拨号,未认可的优质短信 或未经授权的付款。 另一件事,是独特的手机 在设备挂到付费帐户, 而当活动发生在手机上 它可以建立收费。 您可以购买的东西通过电话, 当你发送一个溢价短信你居然给钱 向的另一侧的电话号码的账户持有人。 这些被设置为获取股票报价或得到您的每日星座运势或其他东西, 但他们可以设置通过发送短信订购产品。 人们把钱给红十字会通过发送文本消息。 你可以给10美元的方式。 >>袭击者,他们做了什么是他们成立了 户口在国外,他们在嵌入的恶意软件 该手机将发送溢价短信, 说,一天几次,并且在你意识到了月底你花 几十甚至上百美元,而他们的钱一走了之。 这变得如此糟糕,这是第一件事情是在Android 卖场或谷歌的地方,它是Android市场的时候, 并且它现在谷歌播放,第一件事情就是谷歌开始检查。 当谷歌开始分发Android应用程序在其应用程序商店 他们说他们不会检查任何东西。 我们将拉动应用程序一旦我们被告知他们已经打破我们的服务条款, 但我们不打算来检查任何东西。 好了,大约一年前它变得如此糟糕与此溢价短信的恶意软件 这是他们开始检查的第一件事。 如果一个应用程序可以发送短信 他们进一步的手动审查该应用程序。 他们寻找调用这个API的, 现在既然那么谷歌已经扩大, 但是这是他们开始寻找的第一件事。 >>是做了一些短信的一些其他应用程序, 这款Android Qicsomos,我想这就是所谓。 有关于这个地方CarrierIQ出来了移动这个当前事件 间谍软件把设备上的运营商, 所以人们想知道他们的电话是脆弱到这一点, 这是一个免费的应用程序,测试过。 嗯,当然,这是什么应用程序所做的就是它发出溢价短信, 所以通过测试,看看你感染了间谍软件 你加载恶意软件到您的设备。 我们看到同样的事情发生在去年超级碗。 有劲爆足球比赛的假版本 发送溢价短信。 它实际上是试图在设备上创建了一个僵尸网络。 在这里,我有一些例子。 有趣的是,苹果是很聪明的, 他们不允许应用程序在所有发送短信。 没有应用程序可以做到这一点。 这是摆脱一整类脆弱性的一个好方法, 但在Android上你可以做到这一点,当然,对黑莓手机可以做到这一点。 有趣的是,在BlackBerry所有你需要的是互联网的权限 发送SMS文本消息。 >>其他的事情真的是我们寻找 当我们想看看,如果事情是恶意的只是任何形式的 未经授权的网络活动,如看网络活动 应用程序应该要有它的功能, 看看这个其他的网络活动。 也许一个应用程序,工作,必须获得的数据通过HTTP, 但如果它做的事情通过电子邮件或手机短信或蓝牙或类似的东西 现在,该应用程序可能是恶意的,所以这是另一件你可以检查。 并在此幻灯片在这里我有一些例子。 我们看到了恶意软件的另一个有趣的事情发生在2009年, 它发生在一个大的方式。 我不知道,如果它发生了这么多从那时起,但它是一个应用程序 该模拟其他应用程序。 有一组应用程序,它被戏称为09Droid攻击, 有人决定,有很多小的区域,中型银行 那些没有网上银行的应用, 所以他们做了什么是他们兴建了约50网上银行的应用 所有他们所做的是把用户名和密码 和您重定向​​到该网站。 所以他们在谷歌市场把这些都起来, 在Android市场,当有人搜索,看看自己的银行 有一个应用程序,就会发现假的应用程序, 其中收集他们的凭据,然后将它们重定向到他们的网站。 的办法,这实际上成了,这些应用程序都在那里几个星期, 并有成千上万的下载和数以千计。 >>该曝光的方式是有人有问题 有一个应用程序,他们称他们的银行, 他们称他们的银行的客户支持热线,说: “我在与你的移动银行应用程序的问题。” “你能帮我吗?” 他们说,“我们没有一个移动银行应用程序。” 这开始了调查。 该银行名为谷歌,然后谷歌看了看说, “哇,同一作者写了50行的应用程序,”把他们全都下来。 但可以肯定,这可能再次发生。 有所有不同银行的名单在这里 这是这个骗局的一部分。 另一件事是一个应用程序可以做的是目前的另一个应用程序的用户界面。 而它的运行也可能弹出Facebook的用户界面。 它说,你有你的用户名和密码将继续 或把任何用户名和密码的用户界面的一个网站 也许用户使用只是为了试图欺骗用户 为把他们的凭据英寸 这是真的的电子邮件钓鱼攻击一条直线平行 如果有人向您发送一封电子邮件 并为您提供基本上是假的UI的网站 您可以访问。 >>我们期待在恶意代码的另一件事是系统修改。 你可以看看所有那些需要root权限的API调用 正确执行。 更改设备的Web代理会是这样一个应用程序 不应该是能够做到的。 但是,如果应用程序有在那里的代码做到这一点 你知道,它可能是一个恶意应用程序 或非常高度可能是恶意的应用, 所以会发生什么,是该应用程序将不得不升级特权的办法。 这将有一些特权提升漏洞 在应用程序中,然后一旦提升权限 它会做这些系统的修改。 你可以找到的恶意软件,有特权升级 在它甚至不知道如何提升权限 利用将要发生,这是一个不错的,简单的方法 寻找恶意软件。 DroidDream可能是最有名的作品的Andr​​oid恶意软件。 我想好了几天受影响的约25万用户 然后才发现。 他们重新包装50假的应用程序, 把它们放在Android应用商店, 而本质上,它使用的Andr​​oid越狱代码升级特权 然后安装一个命令和控制,把所有的受害者 成僵尸网络,但也可以检测到该 如果你扫描的应用程序,只是在寻找 API调用,需要root权限才能正确执行。 >>还有的一个例子在这里我有一个正在改变的代理, 而这实际上是仅适用于Android系统。 你可以看到我给你很多Android上的例子 因为这是最活跃的恶意软件生态系统 因为它是攻击者很容易获得恶意代码 进入Android市场。 这不是那么容易的事情,在苹果App Store 由于苹果要求开发者自己的身份 并签署了代码。 他们实际检查你是谁,和苹果实际上是审议申请。 我们并没有看到很多真正的恶意软件,其中该设备是越来越打折扣。 我会讲一些例子,这是真的是越来越泄露隐私, 这就是真正发生在苹果设备上。 另一件要查找恶意代码,设备代码风险 是逻辑或时间炸弹,定时炸弹可能是 更容易找比逻辑炸弹。 但随着时间的炸弹,你可以做的是,你可以看看的 在时间被测试的代码或绝对时间的地方进行寻找 之前,在应用程序的某些功能发生。 而能够做到这一点,以隐藏该活动从用户, 所以它的后期发生在夜间。 DroidDream做了11点和8点本地时间之间所有活动 尝试用户可​​能不使用他们的设备,而这样做。 >>另一个原因要做到这一点,如果人们使用的应用程序的行为分析, 运行在沙箱中的应用程序,看看有什么应用程序的行为, 他们可以使用基于时间的逻辑来执行活动 当应用程序是不是在沙箱中。 例如,一个应用程序商店,如苹果 运行该应用程序,但他们可能不运行的每个应用程序,比如说,30天 批准之前,所以你可以把 在你的应用程序,它说好,只做了一件坏事逻辑 后30天已经过去了,或者30天之后申请的公布日期后, 并且,可以帮助恶意代码隐藏在人检查它。 如果反病毒公司正在运行的东西在沙箱中 或应用程序商店本身这能帮助 隐藏从该检查。 现在,另一面是很容易找到与静态分析, 所以实际上检查可以查找所有的地方的代码 其中应用程序测试时间和检查的方式。 在这里我有一些例子在这3个不同的平台 如何时间可以由应用设备被检查 所以你知道要寻找什么,如果你正在检查该应用程序静态。 >>我刚刚经历了一大堆不同的恶意活动中去 我们已经看到在野外,但哪些是最流行的? 来自北卡罗莱纳州立移动基因组计划是相同的研究 公布的一些数据,基本上有4个区域 他们看到那里有很多活动。 该应用程序的37%做了权限提升, 所以他们有一些类型的越狱代码在那里 在那里,他们试图提升自己的权限,让他们可以 做API命令运行的操作系统。 该应用程序的45%在那里做溢价短信, 所以这是一个巨大的百分比是试图直接赚钱。 93%没有遥控器,所以他们试图建立一个僵尸网络,移动僵尸网络。 和45%的收获识别信息 如电话号码,的UUID,GPS定位,用户帐户, 这加起来超过100,因为大多数恶意软件会尝试做一些这些事情。 >>我要切换到下半年,谈谈代码漏洞。 这是有风险的活动的下半年。 这是在基本上与显影剂正误差。 一个合法的开发人员编写一个合法的应用程序 正在错误或无知的移动平台的风险。 他们只是不知道如何使一个安全的移动应用程序, 或有时开发人员并不关心把用户处于危险之中。 有时,他们的商业模式的一部分可能是 收获了用户的个人信息。 这是某种其他类别的,这就是为什么一些这方面恶意的 对合法开始流血了,因为有意见差异 之间有什么用户想要与用户认为哪些风险 和什么样的应用程序开发人员认为有风险的。 当然,这不是应用程序开发者的数据在大多数情况下。 >>然后终于,另一种方式出现这种情况是开发者可能会在链接 已在它的漏洞还是这个危险行为的共享库 瞒着他们。 第一类是敏感数据泄漏, 这是当应用程序收集信息 如位置,地址簿信息,车主信息 和发送关闭设备。 而一旦它的关闭设备,我们不知道发生了什么与该信息。 它可能不安全的应用程序开发人员可以存储。 我们已经看到了应用程序开发者获得妥协, 而且他们要存储的数据被采取。 这件事发生在几个月前就在佛罗里达州的开发商下来 其中一个巨大的它的号码是iPad的的UUID和设备名称 被泄露,因为一个人,我想应该是匿名的, 声称这样做,闯进这个开发者的服务器 并偷走数以百万计的iPad的UUID 和电脑名称。 这不是最危险的信息, 但如果这是用户名和密码的存储 和家庭住址? 还有很多存储这类信息的应用程序。 风险是存在的。 >>可能发生的另一件事是,如果开发商不照顾 以确保数据通道,这就是我要谈的另一大弱点, 该数据被发送的清楚。 如果用户是一个公共Wi-Fi网络 或有人在某处嗅探互联网 沿路径的数据正被暴露。 此信息泄漏的一个非常著名的案例发生了与潘多拉, 这是我们在研究Veracode的。 我们听说,有一个,我觉得这是一个联邦贸易委员会 调查与潘多拉回事。 我们说:“这是怎么回事呢?让我们开始挖成潘多拉的应用程序。” 和我们确定的是收集到的潘多拉的应用 你的性别和年龄, 同时也访问了您的GPS位置,以及潘多拉的应用 这样做是为了什么,他们说是正当理由。 他们是扮演潘多拉的音乐是一个音乐流媒体应用 - 他们演奏的音乐是唯一获准在美国, 所以他们不得不检查,以符合他们有自己的许可协议 该用户是在美国的音乐。 他们还希望以符合家长咨询 围绕成人语言的音乐, 所以它是一个自愿性计划,但他们要遵守的 并没有起到显歌词儿童13下。 >>他们有正当的理由收集这些数据。 他们的应用程序不得不这样做的权限。 用户认为这是合法的。但是,发生了什么事? 他们在3或4个不同的广告库链接。 现在,突然之间所有这些广告库 越来越获得此相同的信息。 广告库,如果你看一下代码中的广告库 他们所做的是每一个广告说库 “难道我的应用程序有权限获取GPS位置?” “哦,它不?好吧,告诉我的GPS位置。” 每一个广告库这样做, 如果应用程序不具备GPS功能的权限 它不会是能够得到它,但如果这样做,就会得到它。 这是广告库所在的商业模式 对着使用者的隐私。 并有过研究,在那里,会说,如果你知道的年龄 你知道他们的位置的人,并 他们晚上睡觉,因为你有自己的GPS坐标 而他们或许都在睡觉,你知道到底是谁的人 因为你可以决定哪些该家庭的成员是那个人。 实际上这是一种用于识别广告 究竟你是谁,它看起来就像是合法的。 我只是希望我的流媒体音乐,这是得到它的唯一途径。 >>好吧,我们暴露了。 我们在几个博客文章写道:这件事, 而事实证明,有人从滚石杂志 阅读我们的博客文章之一,并写下自己的博客在滚石一下吧, 而就在第二天,潘多拉认为这是一个好主意 从他们的应用程序中删除的广告库。 据我所知,他们是唯一的,他们应该受到表扬。 我认为他们是唯一的免费增值类型的应用程序已经做到了这一点。 所有其他免费增值应用有同样的行为, 所以你要考虑什么样的数据你给 这些免费增值应用程序,因为这一切都将会给广告商。 禁卫军也做了一个关于共享库的研究,说: “让我们来看看什么是共享库的顶部共享库”,这是该数据。 >>他们分析了53,000的应用程序, 和数字1的共享库是AdMob的。 它实际上是在应用程序那里的38%, 您正在使用的应用程序,使38% 有可能收获您的个人信息 并将其发送给广告网络。 阿帕奇和Android分别为8%和6%, 然后将这些其他的倒在底部,谷歌广告,乱舞, 手机城和千年媒体, 这些都是广告公司,然后,有趣的是, 在Facebook的库4%挂钩 可能是通过Facebook做认证 因此应用程序可以验证了Facebook。 但是,这也意味着Facebook的控制代码的公司 这是在Android移动应用程序的4%跑在那里, 他们可以访问所有的数据的应用程序有权限来获得。 Facebook的基本上是试图出售广告空间。 这就是他们的商业模式。 >>如果你看看这整个生态系统,这些权限 你开始看到共享库 你有很多的风险在一个假定的合法的应用程序。 发生与潘多拉同样类似的事情 发生了与所谓的路径的应用程序, 和路径以为他们是有帮助的,友好的开发者。 他们只是想给你一个很好的用户体验, 而事实证明,不提示用户或告诉用户什么 - 而这发生在iPhone和Android上, 潘多拉的应用程序是在iPhone和Android- 该应用程序的路径被抓住你的整个通讯录 它只是当你安装并运行该应用程序上传到路径, 他们没有告诉你这一点。 他们认为这是对你非常有帮助 能够与所有的人在您的地址簿共享 您正在使用的应用程序的路径。 >>嗯,很明显的路径认为这是非常适合他们的公司。 没有那么大的用户。 你要认为这是一件事情,如果可能的少年 使用这个应用程序和他们的几十个朋友都在那里, 但如果它是一个公司,安装路径的行政总裁 然后突然他们的整个地址簿是在那里? 你会得到很多潜在的有价值的联系信息 对于很多人。 来自纽约时报的记者,你也许可以得到的电话号码 从他们的地址簿中的前总统, 所以很明显了大量的敏感信息被转移这样的事情。 有关于这个这么大瓣的路径道歉。 他们改变了自己的应用程序,它甚至影响了苹果公司。 苹果表示,“我们将迫使应用程序供应商以提示用户 如果他们要收集他们的整个通讯录。“ >>它看起来像这里发生了什么是 当有一个大的隐私侵犯,这让记者 我们看到了一个变化在那里。 但当然,还有其他的东西在那里。 LinkedIn的应用收割你的日历项, 但苹果并没有让用户提示有关。 日历项可以有太多在他们的敏感信息。 你要去哪里划清界线? 这实在是一种不断发展的地方 那里真的没有很好的标准在那里 为用户时,他们的信息将是有风险理解 而当他们要知道它上当受骗。 我们写在Veracode的一个应用程序称为一路平安, 而且基本上它允许你在你的iTunes目录指向应用程序 并期待在所有被收获您的详细地址簿应用程序。 并且,你可以在此列表中看到这里,愤怒的小鸟, AIM,AroundMe。 为什么愤怒的小鸟需要你的通讯录? 我不知道,但它确实不知。 >>这是许多,许多应用程序做的。 你可以检查代码的。 有定义良好的API为iPhone,Android和黑莓 得到的地址簿。 你真的可以很容易地检查这一点,而这正是我们在一路平安的应用程序一样。 下一个类别,不安全的敏感数据存储, 是什么地方开发商拿东西就像一个针账户号码 或一个口令,并将其存储在设备上的清晰。 更糟的是,他们可能在一个地区它存储在手机上 这是全局可访问的,像SD卡。 你看这往往在Android上因为Android允许一个SD卡。 IPhone的设备没有。 但是,我们甚至看到这种情况发生在花旗集团的应用。 他们的网上银行应用程序存储在账号不安全, 只是在清澈的,所以如果你失去了你的设备, 基本上你失去了你的银行帐户。 这就是为什么我个人不这样做银行在我的iPhone。 我认为这是太冒险了,现在做这些类型的活动。 Skype公司也做了同样的事情。 Skype的,当然,有一个账户余额,用户名和密码 访问这种平衡。 它们被存储在清澈的移动设备上的所有信息。 我有创建文件的一些例子 没有正确的权限或写入光盘 并且没有任何加密发生了点。 这下一个区域,不安全的敏感数据传输, 我已经提到了这几次,而且由于公共Wi-Fi 这是一些应用程序绝对需要做的, 这大概就是我们看到出问题最多。 我想说,其实,我觉得我有实际的数据, 但它接近一半的移动应用 搞砸了做SSL。 他们只是不使用API​​正确。 我的意思是,所有你必须​​做的就是按照说明进行操作,并使用API​​, 但他们不喜欢的东西不检查是否有在另一端的证书无效, 不检查另一端试图做一个协议降级攻击。 >>开发商,他们希望得到他们的复选框,对不对? 他们的要求是用这个来卖。他们已经用这个来卖。 要求是不是用这个来安全地卖, 所以这就是为什么所有使用SSL的应用程序以便保护数据 因为它是被发送到器件真的需要检查 确保正确实施。 在这里我有一些例子,你可以看到一个应用程序 可能会使用HTTP而不是HTTPS。 在某些情况下,应用程序将回落到HTTP 如果HTTPS不工作。 我有另一个来电来访Android上,他们已经禁用证书检查, 所以一个人在这方面的中间人攻击可能发生。 一个无效的证书将被接受。 这些是攻击者将能够获得在所有情况下 相同的Wi-Fi连接的用户和访问所有数据 这是正在通过互联网发送。 >>最后,最后一类我这里是硬编码的密码和钥匙。 事实上,我们看到很多开发者使用相同的编码风格 他们做当他们构建Web服务器应用程序, 所以他们正在构建一个Java服务器应用程序,而且他们硬编码的关键。 那么,当你建立一个服务器应用程序,是啊, 硬编码的关键是不是一个好主意。 这使得它很难改变。 但它不是那么糟糕,在服务器端,因为谁有权访问服务器端? 只有管​​理员。 但如果你把相同的代码和你过倒到一个移动应用程序 现在大家谁都有移动应用程序有权访问该硬编码的关键, 我们实际上看到这个了很多次,我有一些统计数据 我们如何经常看到这种情况发生。 它实际上是在万事达卡发布的示例代码 关于如何使用他们的服务。 该示例代码显示了如何将只取密码 并把它放在一个硬编码的字符串就在那里, 我们知道开发者如何爱复制和粘贴代码片段 当他们试图做一些事情,所以你复制并粘贴代码片段 他们给的示例代码,和你有一个不安全的应用程序。 >>在这里,我们有一些例子。 这第一个是我们看到了很多,他们硬编码 数据右成被发送的URL。 有时候,我们看到字符串密码=密码。 这是很容易察觉,或字符串密码黑莓和Android。 这其实很容易检查,因为几乎总是 开发商的名称的控股密码的变量 密码的一些变化。 我提到,我们做静态分析在Veracode的, 因此,我们已经分析了几百Android和iOS应用程序。 我们已经建立了他们的全款,并且我们能够对其进行扫描 针对不同的弱点,尤其是我说的漏洞, 我这里有一些数据。 我们看了一下Android应用程序的68.5% 打破了加密代码, 这对于我们来说,我们无法检测,如果你做你自己的加密程序, 不是说这是一个好主意,但其实这是使用发布的API 这是在平台上,但这样做他们以这样的方式 该密码将是脆弱的,68.5。 这对那些实际发送我们自己的应用程序的人,因为 他们认为这是一个好主意,做安全测试。 这些已经有人认为可能在想安全地, 因此它可能更糟糕。 >>我没有谈论控制换行注射。 这是我们检查的东西,但它不是风险的问题。 信息泄漏,这就是敏感数据被发送关闭设备。 我们发现,在应用程序的40%。 时间和状态,这些都是竞争条件类型的问题,通常是相当困难的剥削, 所以我没有说这些了,但我们看着它。 23%有SQL注入的问题。 很多人不知道,很多应用程序 用自己的后端的一个小一点的SQL数据库来存储数据。 好吧,如果你正在抓在网络中的数据 有SQL注入攻击的字符串在里面 有人可以通过妥协的设备, 所以我觉得,我们发现大约40%的Web应用程序有这个问题, 这是一个巨大的流行问题。 我们发现它的时候23%的移动应用程序 而这可能是因为许多Web应用程序使用SQL比移动。 >>然后,我们仍然看到一些跨站点脚本,授权问题, 然后凭证管理,这就是你有你的硬编码密码。 在该应用中的5%,我们看到这一点。 然后我们对iOS的一些数据。 81%有错误处理的问题。 这更是一个代码质量问题, 但67%有密码的问题,所以没有那么糟糕,因为Android系统。 也许API是有点容易,示例代码好一点的iOS。 但仍然是一个非常高的比例。 我们有54%的信息泄漏, 约30%用缓冲管理的错误。 这地方有可能是内存损坏问题。 事实证明,这不是尽可能多的剥削问题 在iOS上,因为所有的代码必须加以签署, 所以很难攻击者在iOS上执行任意代码。 代码质量,目录遍历,但随后凭据管理这里为14.6%, 这样比在Android更糟。 我们有人不能正确处理密码。 然后将数字错误和缓冲区溢出, 那些更将是iOS上的代码质量问题。 >>这是它为我的演讲。我不知道,如果我们没时间了还是不行。 我不知道是否有任何问题。 [男]周围碎片和Android市场的一个快速的问题。 苹果公司至少拥有修补。 他们在Android空间得到它在那里,而没有那么的好。 你几乎需要越狱你的手机保持电流 随着Android的最新版本。 是啊,这是一个巨大的问题,所以如果你仔细想想, [男]你为什么不能重复一次吗? >>哦,对了,所以这个问题是怎么样的碎片 在Android平台上的操作系统? 如何影响这些设备的风险程度? 它实际上是一个巨大的问题,因为发生的事情是 早期的设备,当有人想出了一个越狱的设备, 基本上这就是特权升级,直到该作业系统更新 那么任何恶意软件可以利用该漏洞完全妥协的设备, 而且我们看到在Android是什么,以获得新的操作系统 谷歌已经推出了操作系统,然后硬件制造商 具有自定义,然后承运人有权对其进行自定义,并提供它。 你已经基本上这里3移动部件, 和它的转向出,运营商不关心, 与硬件制造商不关心,而谷歌是不是怂恿他们足够 做任何事情,所以基本上一半以上的设备在那里 必须具有这些权限提升漏洞在他们的操作系统, 所以,如果你得到的恶意软件在Android设备上它更是一个问题。 >>好的,非常感谢你。 [鼓掌] [CS50.TV]