现在,许多Android设备(包括Google Nexus系列)都通过OTA更新以及Android安全公告,每月收到一次安全补丁。但是,这些更新通常是在所谓的“交错推出”中发布的,随着时间的推移,该更新可用于更多设备(同一型号),而不是立即供所有用户使用。

我知道,对于功能更新,逐步推出允许在所有用户收到新软件之前修复错误或错误。但是,对于安全补丁程序,即使已经提供了适用于其设备型号的补丁程序,交错发行版也不会使Blackhat黑客更容易利用其针对尚未获得OTA的用户的公开漏洞吗? br />
例如,我有一台Google Nexus手机,应该是第一批接收所有Android更新的手机。最新的Android安全更新及其源代码已于2016年5月4日公开发布;现在已经是2016年5月16日,即使我单击“检查更新”按钮,我的Nexus设备仍告诉我“系统是最新的”。当然,我可以手动下载最新的固件映像并手动刷新它。但是,一旦公开,是否不应该尽快将安全更新提供给同一型号的所有设备?

编辑:感谢您的深思熟虑的答复。尽管此问题旨在广泛地适用于不同的设备,但我已经特别关注的是,一旦针对特定型号的补丁开发了针对相同型号的相同设备的有意“交错推出”。例如,本月初已针对Google Nexus 6P发布了2016年5月的安全更新,但截至5月16日,并非所有的Nexus 6P设备都收到了OTA更新。 Google每月都会为Nexus设备发布安全补丁,而且某些设备每个月都会比同型号的其他设备晚几周收到这些补丁。

评论

更新:今天是2016年5月19日,我的Google Nexus 6P终于收到了5月的安全补丁。

哇,只用了15天。 (-‸ლ)

同样,如果您有2个以上的数据中心(以提供容灾能力),在数据中心错开安全更新是否明智?

#1 楼

很好的问题。

是的,您的理解是正确的,也是其背后的道理。

错开新功能的推出通常很有意义。

很少将安全补丁分阶段推出是个好主意。正如您指出的那样,这为利用漏洞提供了更多机会。也许更重要的是,可以快速对补丁进行反向工程,以快速开发漏洞。

Microsoft经常在每月的第二个星期二(有时甚至是第四个星期二)公开发布补丁。 。这通常被称为“星期二补丁”。我们有一个理由将第二天称为“漏洞利用周三”。

不幸的是,Android生态系统的很大一部分都没有从这种现象中学到。

更新:
几位知识渊博的人指出了对互联网基础设施的潜在影响,包括担心整个互联网超载。互联网流量巨大。安全补丁,即使是非常大的补丁,也只有很小的一部分。微软每月在同一天向亿万用户发布大型补丁程序,而这些补丁程序尚未“使互联网崩溃”。 Netflix,YouTube和Twitch每天都会向成千上万的人流传输视频,即使他们的流量加在一起,他们仍然没有“使互联网崩溃”。

另一方面,Android补丁主要是( (但不限于)交付给无线用户。有解决所有潜在问题的解决方案:


为用户提供何时下载补丁的选择。这提供了许多好处:


不中断用户的工作流
由于人为交互和决策的可变性而导致流量错开
允许用户等待直到他们连接到更高带宽的系统(也许在工作中,他们的大学,在家中使用WiFi)
允许用户自担风险,等待并观察其他人是否报告了补丁问题。


将补丁分发到已知基础设施有限的特定区域时,请错开

在最短的几天内进行补丁修复,以避免基础架构超载。

关于Google Nexus 6P安全更新没有及时发布给所有用户的问题,这对于Google来说不是一个明智的选择。客户的最大利益。与庞大的互联网流量相比,这些补丁很小。

最重要的是,该设备在Android生态系统中相对较少。这进一步证明了立即向所有客户发布补丁程序不会损害任何互联网提供商的说法。

即使整个Google Nexus产品系列也仅占Android世界的一小部分。但是,作为产品线,对某些地区的基础设施可能会产生一点影响。因此,以下方法与上述建议相结合,将最大程度地减少基础架构的影响,同时最大化补丁的分发:


立即发布零日漏洞利用补丁
发布计划的更新每个月的不同日期,每种产品的日期都不同最后,根据您的陈述,自Google最初为Google Nexus 6P发行这些补丁以来,已经过去了两个多星期。这是足够的时间来了解其补丁是否正在造成严重破坏。我没有找到Google的文档来识别或道歉一堆不好的补丁,也没有任何严重问题的轶事证据。

有人可能会提出这样的论点,认为几天内错开补丁可能是合理的,以便检测有缺陷的补丁并减少流量负载。但是,从信息安全的角度来看,让客户连续数周不打补丁是不合理的,不必要的,而且不是有效的政策。

总而言之,基于以上陈述,以及您关于Google尚未推出安全性的陈述我的结论是,通过不向所有受影响的Google Nexus 6P客户提供安全补丁,Google做出的决定很糟糕,并且对他们的客户不利。

评论


如有疑问,请使用您能找到的最大的八角锤手动对其进行强制。我有自动更新的交错展示,第一个和最后一个应用程序之间有一周的差异。在零日里,这是不可原谅的,并且可以告诉您很多违法者对您的重视程度。

–惨败实验室
16年5月16日在5:13

@Kevin当我们谈论Google,Microsoft和Apple时,我认为这是一个借口。对于如此规模的公司,每天交付100mio补丁绝对不是问题(至少从网络角度而言)

–卢卡斯
16年5月16日在7:51

对于Google而言,同时在每台设备上提供更新肯定是微不足道的,尤其是如果它们已经将更新发布到世界各地的本地服务器上时。这不是问题。

–萨顿曼先生
16年5月16日在8:42

由于补丁不正确,可能会阻塞数百万个设备,而扩大漏洞窗口之间则存在紧张关系。对于公关,前者要糟糕得多。

–罗杰·利普斯科姆
16年5月16日在10:56

@RockPaperLizard-无论您的质量检查实验室多么出色,现实世界都无法与质量检查实验室匹配。担心新版本会破坏产品的原因是,非常好的公司(即使是最大的公司)也建立了经过完美测试的补丁,破坏了站点中的所有内容。

–迈克尔·科恩(Michael Kohne)
16年5月16日在11:26

#2 楼


但是,对于安全补丁程序来说,发行版本不会错综复杂
,让黑帽黑客更容易利用当前公开的漏洞来攻击尚未接收设备的用户。
> OTA,即使已经提供了其设备型号的补丁程序?


比什么还容易?是重要的问题。是的,在推出更新的过程中,黑客在几天之内会变得更加轻松。但是对于黑客而言,如果根本不发送更新,则将更加困难。

交错的发行版可以在每个人都获得更新的同时保持网络的移动,服务器的运行以及1和0的流动。如果那里的每个Android设备都试图一次全部更新,那么最终您将获得大量流量,从而浪费了很小的资源。

另一种选择是仅在人们“扫描”它时进行更新。那太可怕了。

因此,虽然交错方法并不是绝对最佳,但就资源而言却是最佳方法。

请记住,为了利用此窗口,您可以在补丁发布到更新之间(设备),需要寻找一个设备。

还要记住,Android是开源的。编写仍可行的漏洞利用程序比在下一发行版中知道的漏洞利用程序要有利得多(因为您可以看到代码)。

因此,在总结中:


无论如何,在安全推送开始之前,这些修复并不是秘密。
总比没有更新要好
比使移动网络或更新服务器崩溃要好。
机会之窗如此之多,以至于很少有人会成为尚未成为积极目标的人。


评论


我发现,Android更新极不可能使OS补丁之类的静态文件的下载崩溃。

–Paul Becotte
16年5月16日16:06

我不确定该如何回应。当然可以。它们的大小从10 Meg到1.1 Gig。移动互联网仍然吸引着全世界的大多数人。如果有460万人一次完成一次更新,那么下载100 MB的文件就需要花费很长时间,它将很快填充一台不错的服务器(销售从Nexus 7猜测)

–牛羚
16年5月16日在16:20

@coteyr我不认为这些较大的更新是安全更新,或者充其量不过是捆绑了某些安全更改的其他大多数更新-您是否有任何示例? (最好是带有变更日志?)

–user2813274
16年5月16日在17:24

Google可能是世界上最大的服务器集合。像Android的全球升级这样的小事情不会引起任何问题。

–马克
16年5月16日在21:27

#3 楼

我不会说我是专家,所以我的观点可能无效。

我很快在Wikipedia上阅读了


在诸如智能手机,空中更新可能只是指使用操作系统内置的功能通过Wi-Fi或移动宽带分发的软件更新。


从此报价我们可能会注意到,更新是通过WiFi或移动宽带分发的,例如,并非总是同时可用。如果我住在没有WiFi模块或信号强度较低的地方,那么我可能会错过发送更新的那一刻,然后过一会儿将其下载。



内置管理器执行的更新

某些内置的更新程序可能具有设置,这些设置可让您自定义何时要检查和下载OTA。更新。您的设置可以设置为在打开设备时每天两次,每天,每周,每月甚至手动检查更新。如果某些设备的设置不同,则它们可能会在不同的时间收到更新。




生产者执行的更新

在这种情况下,更新由固件生产商(在这种情况下为google)提供。
如上所述,您可能无法接收有关可用新更新的信息,因为例如电池电量耗尽,无信号等。
当用户不使用手机时,往往会进行更新,因此它不会阻止用户当前所做的任何事情,因此更新可能是


两个相同手机型号之间的硬件差异

(注意:这一点可能不适用于某些设备,包括您的设备,因为某些设备设备的第一版和最终版可能完全相同)

有时,即使是同一型号的设备也可能有所不同。例如,在开始时,xbox 360没有HDMI输出,但是一段时间后又添加了HDMI输出,这可能还需要制作其他软件。即使两种类型的xbox都不同,型号名称仍然相同。这会使某些具有相同型号名称的设备在内部实际上并不相同。

例如,之间存在一个主要区别。 Windows 10 64位和android。区别在于64位版本的Windows将在支持long mode(64位模式)的CPU上运行,并且其中设置的指令在AMD和Intel中将相同。 android的问题在于不同的设备可能具有不同的处理器以及不同的指令集,这导致手机甚至可能需要完全不同的代码。这导致不同设备的更新可能在不同的时间出现。

例如,如果您的WiFi卡很少,可能就是这样。可以说您为其中之一安装了驱动程序。其他卡极有可能无法与此驱动程序一起运行,因此您将需要安装其他驱动程序,该驱动程序肯定具有不同的代码。现在,如果该WiFi卡的生产商将在所有这些驱动程序中发现错误,则只能一一修复它,或者有很多人同时从事不同版本的工作。但是,即使多个人同时处理多个文件,一个人可能比另一个人更早完成修复。在这种情况下,更新的发布速度将比其他更新要快。

请注意,生产者还可以等待每个版本的代码修复后,再在所有设备上进行更新,但是即使在一个设备上更新bug,也减少了容易受到此bug影响的人数。

另请注意,Windows中的驱动程序是由您安装的,很可能使用.exe安装程序。在android中,所有这些驱动程序都是内置的,并且如前所述,如果您需要用于不同手机的不同版本的驱动程序,则您将花费​​一些时间来修复所有这些驱动程序。我猜想google处理更新的方式是,在得到修复后,他们会尽快更新手机。


还提到了,即使您手动单击“检查要更新”按钮,您的设备会说“系统是最新的”。这可能是由于无法使用更新服务引起的,这实际上与生产者执行的更新类似。

评论


问题是关于同一设备的交错推出。所有这些设备中都有100%相同的硬件,但Google决定不立即更新它们。

–约瑟夫说恢复莫妮卡
16年5月17日在9:09

@Josef我已经更新了我的答案以适合该主题。谢谢您通知我我没看清楚问题,因为我没有注意到

– vakus
16年5月17日在15:31