DEFCON 27 会议。你的车就是我的车。 第2部分

DEFCON 27 会议。你的车就是我的车。 第1部分

视频结束时,您会听到咔哒声 - 这是机械方向盘锁的解锁,我们无法使用电子设备绕过该锁。 你必须使用机械的东西,用手打破锁芯,或者做类似的事情,而我不会对她的车做这些事情。 在我的演讲结束后,这些视频中演示的所有固件都将在 GitHub 上提供,因此只需转到幻灯片上的 URL 并下载 OpenRemoteStart 文件即可。

让我们谈谈当我们将互联网添加到这个系统时到底会发生什么,因为它一定对我们有好处,对吗? 正如我所说,我购买了一个名为 MyCar 的远程报警控制模块。 它有各种修改,我有 Linkr LT-1 型号。

DEFCON 27 会议。你的车就是我的车。 第2部分

MyCar 只是一个品牌,此类模块以 Linkr LT-1、MyCar KIA、Visions MyCar、Carlink (CL6) 等名称出售。 事实证明,一段时间以来,加拿大的起亚经销商一直在他们的汽车上安装这个系统,或者至少是一个名为 MyCar KIA 的应用程序。 有趣的是,这个应用程序不再可以在 AppStore 上下载。 我还想指出的是,我选择了 Fortin 和 MyCar 产品,但根据自由汽车警报器主题论坛上的用户评论,其他系统的表现并不好,并且存在类似的问题。

我有一个重要的问题:为什么售后汽车防盗器市场出售有安全问题的产品却无人关心? 因此,如果你们中有人对远程启动系统感兴趣,请注意几个重要情况。 首先,正如我前面提到的,如果DS系统没有正确安装在手动变速箱的汽车上,那么很可能在远程启动发动机后,如果变速箱挂入某些档位,汽车就会在无人驾驶的情况下行驶。 这真的很危险。 第二个危险是,如果有人将汽车停在附属车库并意外远程启动发动机,他们可能会因积聚的一氧化碳而窒息。 因此,如果您有二氧化碳系统和附属车库,那么您绝对应该配备一氧化碳探测器。

如果您使用 DS 系统,切勿在不知道汽车发动机确切位置的情况下尝试启动汽车发动机,因为后果可能是灾难性的。

MyCar 设备是一个带有两根电线的小黑盒,有 8 个端口,其中两个专用于调试器接口。 连接到这个接口表明该设备运行Linux,但制造商对此保持沉默。 使用oelinux 123密码很容易进入固件shell,但无需登录即可使用AE Engine,它允许您从命令行输入AT命令,包括更改设备IP地址的命令该模块进行通信。

DEFCON 27 会议。你的车就是我的车。 第2部分

如果我们查看下面的行,我们可以看到 MyCar 模块接收固件更新的服务器的 IP 地址。 该设备配备有一个 L 端口,可让您“监听”模块接收到的命令。 使用 AE 引擎并更改配对设备的 IP,我能够确定该设备使用未加密的 UDP 协议与 DS 进行通信。

我没有对此进行过多研究,但我认为这是一个非常重要且有趣的事实。 如果您对有关该设备的更多信息感兴趣,请看一下这张幻灯片 - 它显示了 3,3V 的电源电压、115200 波特的数据传输速率、用于更新固件的服务器地址、root 密码和链接至用户手册。

DEFCON 27 会议。你的车就是我的车。 第2部分

该器件可以“承受”更高的电源电压。

正如我所说,这里很冷。 在我把这个系统送给我女朋友大约一个月后,我决定把这个装置从车里拿出来好好运行一下。 事实上,这个月我一直在回避有关该设备漏洞的想法。 他们预计下周气温将降至-30F°,所以我必须抓紧时间。 我连接到外壳并让它工作,但由于我的家庭实验室的蜂窝接收不是很好,我决定在另一台计算机上使用盒子。 我用的FTDI设备有一根短线,所以我找了一根更长的,把它插到DS设备上,再插到电脑上,一打开电源,我的设备就开始冒烟了!

从中吸取的教训是:如果您正在破解硬件,请准备好备用设备! 我女朋友这样说这个故事的寓意:如果你的另一半是黑客,不要让他玩弄你的圣诞礼物! 现在我们看一下软件,我想这里不会有什么冒烟的。

DEFCON 27 会议。你的车就是我的车。 第2部分

我启动了中间人代理,在手机上禁用了 SSL 验证,并观察了应用程序发送到后端的流量。 注册时,我注意到系统获取了我的电子邮件地址并将其发送到网络服务,以确保该地址与现有帐户关联。 有趣的是,系统使用基本身份验证,因为我还没有创建帐户。 我不知道如何处理这些信息,所以我只是把它写在笔记本上然后继续前进。 我创建了帐户并登录,登录时应用程序执行的第一件事是调用 Web 服务来验证当前用户。 因此,我只是使用我之前见过的凭据调用此网络服务器,这些凭据用于检查我的电子邮件地址是否存在,并作为响应授予 Mycar 管理员访问权限。

DEFCON 27 会议。你的车就是我的车。 第2部分

我怀疑这是一个真正的系统管理员帐户,因为尽管听起来很大,但它的权限很低。 毕竟我们都认识这样的人。

因此,我创建另一个请求 - EngineStart 命令,从该帐户启动汽车,单击“发送”,收到响应的命令状态 - “200 OK”,大约三秒后我的汽车开始移动。

DEFCON 27 会议。你的车就是我的车。 第2部分

事实证明,Mycar 管理员帐户确实是硬编码到移动应用程序中的管理员帐户。 但这还不是全部。 在之前的一张幻灯片中,您看到了 API 密钥之类的东西。 同样,通过监控我的假代理服务器流量,我了解到这些 API 密钥可以用来代替用户名和密码。 如果您使用“API”作为用户名和这些密钥之一,则可以对用户进行身份验证。

DEFCON 27 会议。你的车就是我的车。 第2部分

因此,我复制了“APIKey”行的内容,将其粘贴到 POST 应用程序的“密码”行中,然后单击“发送”按钮。

DEFCON 27 会议。你的车就是我的车。 第2部分

然而,它并没有起作用,我长达 5 分钟都无法弄清楚为什么。 最后,我意识到我忘记删除复制的 API 密钥中的引号和逗号,这就是我被告知的:“你在 SQL 语法中犯了一个错误。” 我清楚地意识到,您可以简单地使用基本的 SQL 注入来绕过整个登录过程,并成为管理员或您想要的任何用户。 我认为没有人尝试过使用 SQL 注入来偷车,所以让我们尝试一下。

DEFCON 27 会议。你的车就是我的车。 第2部分

DEFCON 27 会议。你的车就是我的车。 第2部分

一般来说,我登录我的帐户,单击“发送”并收到“200 OK”状态响应。 这次我想录一个视频。 由于我是在深夜从办公室窗户拍摄的,所以有点暗。 所以,我输入命令,你透过窗户看到汽车的前灯在下面的院子里闪烁。 起初它们的光很弱,但随后车头灯开始全功率发光 - 这是发动机启动的情况。 于是,我用SQL注入启动了汽车(观众鼓掌)。

但这还不是全部。 SQL注入不仅可以用于授权,还可以替换其他参数,例如URL、查询字符串主体参数等。 事实上,这个系统到处都使用了SQL注入。 查看错误消息,我们可以看到我们输入的密码直接与数据库中的密码列进行比较。

DEFCON 27 会议。你的车就是我的车。 第2部分

这意味着他们在 SQL 注入中使用纯文本密码。 正如他们所说,“这一点都不好,甚至很糟糕!” 关于 SQL 的介绍已经够多了,让我们看看您还可以做什么来远程启动您的汽车。 您只需发送“EngineStart”命令,作为响应,您会收到一个表示该命令标识符的整数标识符,在本例中为 ID = 3。知道了该标识符,您就可以“拉取”一个服务,该服务将报告该命令的状态命令。

DEFCON 27 会议。你的车就是我的车。 第2部分

因此,通过增加或减少 ID 值,我可以“拉取”该系统上发送过的任何命令的状态。

DEFCON 27 会议。你的车就是我的车。 第2部分

不过,它并没有什么特别有趣的地方,我想知道这里是否有对一个对象的直接引用,我可以用它来启动我的汽车。 因此,我以合法用户的身份从我的帐户运行“EngineStart”命令,然后尝试通过另一个用户的帐户调用它,该帐户不应访问系统。 作为回应,我收到一条错误消息:“此帐户不在层次结构的上下文中。” 所以也许这个 hack 不会起作用。 但是,如果您查看此 API,您会发现它重复信息 - 用户的电子邮件地址映射到他们的帐户 ID。

DEFCON 27 会议。你的车就是我的车。 第2部分

如果您正在开发 API 或破解 API,我们在此 URL 中看到的重复信息可能会导致错误。 在这种情况下,API 错误可以通过四种不同的方式表现出来。

DEFCON 27 会议。你的车就是我的车。 第2部分

如果您查看红色框所示的情况 2 和 3,您可以看到对该对象的直接引用。 在这两种情况下,系统都不会检查您是否有权执行该命令。 我尝试了情况2,但没有成功,那么情况3呢? 这里我们只需替换 URL 中的 USER_EMAIL 帐户 ID,因为它与 ACCOUNT_ID 帐户 ID 直接相关。 之前我们使用受害者的账户ID,但现在我们使用攻击者的账户。 因此,我使用黑客的帐户 ID 和受害者的设备 ID,发送命令并预期收到“200 OK”命令状态,并获得了 MyCar 应用程序的控制权。
因此,通过三种不同的攻击向量,我们能够执行该应用程序的合法用户可以执行的所有操作。 这意味着您可以找到城市中的任何汽车,在应用程序中设置其品牌和型号,然后远程解锁汽车并启动它。 我们可以关闭或打开警报,更改汽车的服务菜单并检查任何命令的状态。 所有这一切都可以通过三种不同的方式来完成。

DEFCON 27 会议。你的车就是我的车。 第2部分

很明显,MyCar 开发人员试图以某种方式修复系统错误。 因此,对于硬编码密码,他们只需在应用程序前面放置一个反向代理即可隐藏用于授权的凭据。 问题是反向代理并不神奇,并不能解决所有问题。 他们将 SQL 注入存储在第三方服务中,这样即使没有密码我仍然可以通过用户验证过程使用它。

DEFCON 27 会议。你的车就是我的车。 第2部分

我决定仔细研究一下 URL 结构。 您可能已经注意到,系统使用的所有地址都包含 m2m。 确定这是 MyCar 应用程序中授权机制的某种内部交互,我将这些字母输入 Google 并发现了 M2M Suite 网站。 当您看到此表单时,您唯一能做的就是在其中添加几个单引号,然后看看会发生什么。 将会发生的事情是,您将获得所需的 SQL 注入(观众鼓掌)。

DEFCON 27 会议。你的车就是我的车。 第2部分

DEFCON 27 会议。你的车就是我的车。 第2部分

这是在开发人员报告 SQL 注入问题几个月后发生的。 如果一个应用程序出现这样的问题,就需要尽快修复,但正如你所看到的,开发者并没有采取任何措施。 我觉得这种对用户的漠视是令人反感的。

MyCar 模块具有 GPS 单元,因此它可以跟踪您的汽车的位置并将其显示在应用程序中。 但事实证明,它们不仅存储汽车的当前位置。 它们存储了大量的信息,远远超过了跟踪汽车当前位置所需的信息。 就我而言,在使用该应用程序超过 13 天的时间里,他们积累了我的汽车去过的地方的不到 XNUMX 个地理定位点。 MyCar 开发公司的隐私政策没有提及此类信息收集。

然而,情况变得更糟。 您可能会说这只是位置服务实施的副作用。 但问题是,他们不只是创建你的汽车去的地方的列表,而是使用另一个 API 来分析该数据并确定你的汽车最常去的地方。 同样,据我所知,隐私政策中没有任何此类功能的暗示。 也许这并不奇怪,因为经过大量搜索后,我找到了 MyCar 的母公司 Procon Analytics,访问了他们的网站并访问了常见问题解答部分。 在这里我遇到了一个问题:“你们如何保证数据安全?” 该公司的回应是:“与争夺数据存储优先权的公共云不同,Procon Analytics 使用自己的虚拟云,该虚拟云专门供我们应用程序的用户使用,并免受其他用户的干扰。 这是一个具有高度安全性的特殊云环境,可确保轻松可用性和服务交付速度。 通过与 Procon Analytics 合作,您可以确信您的数据受到安全保护。” 我什至不知道该说什么......

DEFCON 27 会议。你的车就是我的车。 第2部分

如果你去他们的 Facebook 页面,你可以找到更多有趣的事情。 他们在这里简单地写道:“保护有关您车辆的信息至关重要!” 嗯,我只能同意这样的说法。

那么,回到我开始的问题:“这种情况是如何发生的以及如何避免”? 更重要的是,作为一个社区,我们如何才能防止这种情况发生?

我的报告到此结束,但我仍然可以回答几个问题(观众鼓掌)。

你问他们是否修复了所有问题? 至此,我认为他们已经修复了我向他们报告的所有错误,除了我在演讲结束时提到的隐私政策缺陷。 上次我检查时,一切都没有变化。 当被问到我是否可以以类似的方式编辑汽车电子发动机控制单元(ECU)的参数时,我会回答说我的任务是仅在 MyCar 应用程序中编辑汽车的参数。 它存储通过直接对象访问、SQL 注入或其他攻击媒介进行编辑的车辆的数字表示。

最后一个问题是:我的车上是否有带“启动”按钮的无钥匙发动机启动系统?这种情况下方向盘锁的情况如何? 我的回答是MyCar有这样一个按钮,所以这个系统没有方向盘锁。 我怀疑如果你安装了这个系统,你肯定就无法依赖方向盘锁了。

一些广告🙂

感谢您与我们在一起。 你喜欢我们的文章吗? 想看更多有趣的内容? 通过下订单或推荐给朋友来支持我们, 面向开发人员的云 VPS,4.99 美元起, 我们为您发明的入门级服务器的独特模拟: VPS (KVM) E5-2697 v3(6 核)10​​4GB DDR480 1GB SSD 19Gbps XNUMX 美元或如何共享服务器的全部真相? (适用于 RAID1 和 RAID10,最多 24 个内核和最多 40GB DDR4)。

Dell R730xd 在阿姆斯特丹的 Equinix Tier IV 数据中心便宜 2 倍? 只有这里 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 电视低至 199 美元 在荷兰! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 美元起! 阅读 如何建设基础设施公司同级使用价值730欧元的Dell R5xd E2650-4 v9000服务器一分钱?

来源: habr.com

添加评论