英国航空娱乐系统聊天App Crash(2019年)

2020-08-13 12:09:25

是。我立即联系了受影响的利益相关者。我已经提供了更多的细节,我正在支持它们。当某件事接触到足够多的人时,你总会找到支持和反对的人。这两个部分我都能理解,因为他们处理的信息并不完整,其中一部分描述了一个假想的场景。大声说出这些想法是为了避免这个问题被忽视,仅此而已,因为我真的认为这个问题应该得到解决,我们正在支持利益相关者。不幸的是,为了他们自己的利益,有假新闻夸大了这一点。

我不认为我是世界上第一个知道这个问题的人,但我知道现在这个问题有更多的机会得到解决,这就是发布这篇文章的目的。

无论如何,一些安全问题不能在公开场合认真讨论,这是一件令人遗憾的事情。

安装在波音777-36N(ER)和可能的其他飞机上的英国航空娱乐系统允许USB充电/数据传输功能与USB键盘和鼠标设备交互,这使得物理上接近的攻击者能够对娱乐应用程序进行意想不到的攻击。

易受攻击的应用程序是允许向其他乘客发送消息的交互式聊天应用程序。攻击者可以插入USB鼠标并触发缓冲区溢出或其他类型的内存错误,从而产生拒绝服务和可能的其他不明影响。

成功利用此漏洞的攻击者将使聊天客户端应用程序崩溃。聊天将不再工作,从而产生拒绝服务。基于此,不能宣称其他影响。有时这类软件错误可以进一步利用,有时则不能。

弱点在于聊天应用程序,但由于它没有被利用或分析,我们没有详细信息。我们猜测这是溢出或者内存耗尽的可能性较小。

USB端口允许为设备充电,但也可以与它们交互。例如,娱乐系统有一个应用程序,当电话通过USB连接到系统时,您可以在屏幕上看到图片。

下面的照片是在真实飞行中拍摄的,它显示了由英国航空公司运营的波音777-36N(ER)中USB插座的位置。

要利用该漏洞,攻击者需要物理访问USB端口。在我们的测试中,将鼠标插入USB插座,并立即将其检测为有效设备。此时,我认为这是故意的,因为不需要用户执行任何操作。

我注意到并非所有应用程序都显示鼠标。打开聊天应用程序后,鼠标指针出现。我想发送一条长消息到另一个聊天室,我决定使用鼠标来实现。在多次复制和粘贴之后,聊天应用程序出人意料地消失在我面前。这一意外发现现在已被确定为CVE-2019-9019的漏洞。

上面的视频显示了我如何使用复制和粘贴选项向另一个聊天座位发送一条长消息,以及聊天应用程序是如何意外关闭的。

我们在PoC中看到的是由应用程序的用户导致的在单席位上运行的应用程序上的拒绝服务。不影响其他用户。

假设故障是缓冲区溢出,那么如果可能的话,利用这类错误来执行代码现在是非常复杂的。在这种情况下,当检测到单个错误时,应用程序停止工作,这会阻止进行进一步的分析。当前的系统包含几种缓解技术,如ASLR(地址空间布局随机化),它迫使攻击者知道内存布局,因此攻击者将只有一次尝试(没有暴力)。此外,当溢出的缓冲区位于堆栈中时,SSP(堆栈粉碎保护器)是非常有效的保护。以及旧的、但快速有效的NX或DEP技术,它阻止了执行注入代码的可能性。

除了这些经典的保护之外,还有其他应该绕过的限制。作为对缓冲区中可以引入的值的限制;由于它是人类可读的字符串,因此可能被限制为ASCII字符。因此,任何需要控制的地址中出现零(字节设置为零)也会阻止攻击。

最后但并非最不重要的问题是,攻击者应该知道系统的类型(Windows、Linux、版本等)。以及处理器类型(x86、ARM等)。

这些障碍中的任何一个都可能使代码不太可能执行,而且所有这些障碍几乎都是不可能的或不切实际的。

尽管如此,错误应该被修复。幸运的是,此类错误的解决方案通常很简单。

请务必区分漏洞和您可以达到的程度,以及我们在此简短报告中显示的概念证明(PoC)。此报告中提供的PoC只能用于对聊天应用程序执行拒绝服务攻击。有耸人听闻的新闻声称权限提升或代码执行,但这完全是错误的。

问:我在新闻上看到这是一次特权升级,是真的吗?