解決內(nèi)存漏洞以通過(guò)設(shè)計(jì)實(shí)現(xiàn)數(shù)字安全
這是一次有趣的旅程,因?yàn)榫拖裎艺f(shuō)的那樣,學(xué)術(shù)界在 70 年代開(kāi)始關(guān)注計(jì)算機(jī)時(shí),因?yàn)樗鼈冋嬲_(kāi)始變得易于使用,開(kāi)始寫論文說(shuō)這里存在問(wèn)題。這將導(dǎo)致人們利用和影響機(jī)器操作的能力是他們使用的單詞類型。這確實(shí)啟動(dòng)了一些早期研究,包括 70 年代后期在劍橋圍繞所謂的能力系統(tǒng)進(jìn)行的一些研究,這些研究在采用方面并沒(méi)有真正取得進(jìn)展。另外,當(dāng)時(shí)的行業(yè)只是在遵循摩爾定律來(lái)構(gòu)建越來(lái)越快的處理器。安全不是一個(gè)大問(wèn)題,我們?cè)? 80 年代沒(méi)有遭遇過(guò)大規(guī)模的網(wǎng)絡(luò)犯罪之類的事情。
到了十年之交,它開(kāi)始成為一個(gè)問(wèn)題。然后在 10 年前,也就是 2010 年,劍橋啟動(dòng)了另一個(gè)項(xiàng)目,即 CHERI 項(xiàng)目,實(shí)際上在這一點(diǎn)上是 DARPA 投入了資金,并說(shuō)看起來(lái),我們可以做些什么來(lái)使計(jì)算機(jī)系統(tǒng)更安全,然后花了最后一筆錢10 年弄清楚它的樣子。最后四五個(gè),所以從 2015 年年中左右開(kāi)始,我們開(kāi)始在 Arm 中與他們合作,以評(píng)估它的外觀。這種變化不能與處理器的持續(xù)開(kāi)發(fā)同時(shí)進(jìn)行。
在某些方面,它比我必須用多核做的還要糟糕?;氐?2000 年,我們不得不說(shuō),好吧,我需要將多核引入嵌入式和移動(dòng)。沒(méi)有操作系統(tǒng),沒(méi)有多線程代碼,我鎖定了它。當(dāng)時(shí)的嵌入式系統(tǒng)非常不同,它都是基于優(yōu)先級(jí)或事件的。我們不得不改變它,顯然我親自做過(guò)那種事情。
我們正在重新審視它。我們?nèi)绾胃淖?因此,我們現(xiàn)在所處的位置是 DSbD 程序自 2019 年以來(lái)一直在運(yùn)行,這讓合作伙伴有時(shí)間研究 CHERI 的哪些部分,圍繞它的額外部分,概念,這在 Arm 架構(gòu)中意味著什么。Arm 已經(jīng)構(gòu)建了一個(gè)原型板,所以我們幫助資助了它的生成,我們稱之為技術(shù)原型。這是什么,是應(yīng)用于 Arm 架構(gòu)的 CHERI 概念。它關(guān)注的是他們的高性能,那種芯片——多核無(wú)序高性能處理器。它包含了這些 CHERI 概念,到 2022 年第一季度,該板將可用。我們一直在將其作為我們研究計(jì)劃的一部分進(jìn)行推廣,UKRI 一直資助的現(xiàn)有項(xiàng)目將交付給他們。然后還會(huì)有一些計(jì)劃,我們可以讓更廣泛的行業(yè)和研究人員了解這一根本性變化對(duì)他們的影響??赡苤档梦覀兛纯催@些變化是什么,我們對(duì)開(kāi)發(fā)人員的要求是什么,但我認(rèn)為這可以讓您了解今天的狀態(tài)。
我認(rèn)為我們正在嘗試討論并提高認(rèn)識(shí)以使人們意識(shí)到的最大問(wèn)題是,這與往常不同,好的。這與大多數(shù)從事 ICT 和技術(shù)工作的人一生中發(fā)生的任何事情都截然不同。如果你今天對(duì)構(gòu)建計(jì)算機(jī)的人說(shuō),“虛擬內(nèi)存是如何產(chǎn)生的以及它是如何使用的”,他們會(huì)說(shuō),“哦,那只是計(jì)算機(jī)的一部分”。
你今天可以看到,當(dāng)你知道人們?cè)诰帉憫?yīng)用程序時(shí),他們談?wù)撚布豢芍撜?,他們真的不認(rèn)為他們下面的東西可能有根本的不同。這就是我們?cè)谶@里談?wù)摰膬?nèi)容。
真的,是的,它根本不同,但這是否意味著我所做的一切都被浪費(fèi)了,這絕對(duì)不是我在這里要說(shuō)的。這是一個(gè)漸進(jìn)的過(guò)程,能夠改變?nèi)藗冸[式做某事或明確做某事的方式。我的意思是,計(jì)算機(jī)本身具有這些設(shè)計(jì)安全的功能,它實(shí)際上在兩個(gè)領(lǐng)域發(fā)揮作用。一個(gè)是圍繞指針,確保指針的能力,即計(jì)算機(jī)本身具有新數(shù)據(jù)類型,這是一個(gè)受保護(hù)的指針。好的,所以今天你已經(jīng)有了跨越不同數(shù)學(xué)的數(shù)據(jù)類型——你知道整數(shù)和浮點(diǎn)數(shù)等等——還有一個(gè)指針,它實(shí)際上是一個(gè)數(shù)學(xué)單位,但你不再需要了,你有一個(gè)叫做指針。
我們?cè)?2021 年讓英國(guó)的一些中小企業(yè)對(duì)此進(jìn)行了研究,他們基本上說(shuō),“當(dāng)我們打開(kāi)時(shí),這對(duì)我們的軟件意味著什么?” 還有一些很好的例子,其中一家公司在編譯狀態(tài)下發(fā)現(xiàn)了一些第三方代碼中的漏洞,他們只是看著它,“哦,親愛(ài)的,你知道,我們采用了一些第三方代碼”。它實(shí)際上也是商業(yè)代碼,它在指針周圍的數(shù)學(xué)中存在漏洞。如果黑客發(fā)現(xiàn)他們會(huì)找到進(jìn)入其安全系統(tǒng)的途徑。
所以,僅僅為了編譯階段,打開(kāi)它解決了一些問(wèn)題。現(xiàn)在是不允許打開(kāi)它嗎?不,因?yàn)榫拖裎艺f(shuō)的那樣,程序員通常假設(shè)指針是整數(shù)數(shù)據(jù)類型,有時(shí)他們會(huì)對(duì)其進(jìn)行數(shù)學(xué)運(yùn)算等等。但是到目前為止,該程序發(fā)現(xiàn),如果我們要在 Windows 中執(zhí)行整個(gè)圖形堆棧,代碼行會(huì)發(fā)生變化,大約 0.03% 到 1% 最壞情況和小數(shù)百分比。但它們基本上是相當(dāng)規(guī)范的編譯器錯(cuò)誤。
這是我們讓人們知道的技術(shù)介紹的第一部分。另一個(gè)實(shí)際上是使用該指針以細(xì)粒度的方式對(duì)代碼進(jìn)行分區(qū)。當(dāng)我有處理器和安全區(qū)域、TEE 和所有其他東西時(shí),我為什么要這樣做?好吧,這是細(xì)糧。這意味著在這些受保護(hù)域之間進(jìn)行上下文切換要快大約兩個(gè)數(shù)量級(jí)。
這意味著,例如 log4j 可以,如果它在這些容器之一中,它實(shí)際上不可能進(jìn)入日志系統(tǒng)以外的東西。因此,開(kāi)發(fā)人員然后可以構(gòu)建他們的軟件并將他們的軟件架構(gòu)為默認(rèn)情況下更安全,他們可以真正進(jìn)入這個(gè)過(guò)程,并說(shuō),“看加密庫(kù),我不希望加密庫(kù)靠近任何其他內(nèi)存系統(tǒng)。我不想讓我的鑰匙靠近系統(tǒng)中的任何地方”,而這實(shí)際上是另一家英國(guó)中小企業(yè)所做的。他們創(chuàng)建了按需軟件 TEE,即受信任的執(zhí)行環(huán)境,然后他們可以使用全局保護(hù)——我忘了確切的名稱是什么——但他們用于 TEE 的 API 能夠在硬件保護(hù)環(huán)境中與之對(duì)話。
所以,我們真正要做的是讓這個(gè)可用,并意識(shí)到從“我希望能夠編譯并消除這 70% 的持續(xù)漏洞,這意味著什么?”的變化水平。這意味著企業(yè)不必從零開(kāi)始就修補(bǔ)所有系統(tǒng)并找到他們正在做的事情。它可能運(yùn)行停止,至少它沒(méi)有運(yùn)行和被利用。那種事。因此,這將帶來(lái)更廣泛的需求,而實(shí)際構(gòu)建產(chǎn)品和服務(wù)的人開(kāi)始關(guān)注,“我將如何重新劃分這個(gè)系統(tǒng)?我如何從這種更快的處理器間通信中獲益?我怎樣才能使用第三方代碼,而不是成為我不知道的任何東西的奴隸?”
這確實(shí)是將在 2022 年第一季度宣布的計(jì)劃,我們基本上開(kāi)始向遇到此類問(wèn)題的人提供這些板,并開(kāi)始在這方面對(duì)其進(jìn)行評(píng)估,所以這確實(shí)是該計(jì)劃的目標(biāo)在 2022 年初,這將持續(xù)到 2022 年剩余時(shí)間到 2023 年。我們可能會(huì)在 2023-24 年的時(shí)間框架內(nèi)制定計(jì)劃,如果您愿意,終端市場(chǎng)將開(kāi)始了解這意味著什么到他們的業(yè)務(wù)。
目前,我們真的在努力與技術(shù)部門的人們合作,到 2022-23 年,通過(guò)這些委員會(huì),讓他們?cè)u(píng)估如何通過(guò)設(shè)計(jì)提高安全性,同時(shí)了解他們?nèi)绾卧跊](méi)有性能成本,我們相信無(wú)需在其他機(jī)制中做一些努力。因?yàn)楹苊黠@,如果您總是在資源使用方面與性能作斗爭(zhēng),那么在默認(rèn)情況下使用這些技術(shù)來(lái)制作商店安全產(chǎn)品會(huì)容易得多。
所以這是在工業(yè)應(yīng)用研究階段的研究,顯然理解這對(duì)我剛剛描述的人意味著什么是反饋步驟的一部分。我認(rèn)為微軟有一個(gè)名為 Verona 的程序,這是一種新的內(nèi)存安全語(yǔ)言,他們顯然正在研究這意味著什么。谷歌將研究這對(duì)他們的移動(dòng)環(huán)境意味著什么,然后 Arm 顯然已經(jīng)評(píng)估了這對(duì)他們處理器的實(shí)施成本意味著什么。這需要關(guān)閉那種工業(yè)研究反饋循環(huán),以便可以照常創(chuàng)建新產(chǎn)品。
老實(shí)說(shuō),如果有人說(shuō)一個(gè)概念從硬件到下一部手機(jī)需要多長(zhǎng)時(shí)間,我們會(huì)討論,如果他們要在 2022 年開(kāi)始。我們說(shuō)的是 2026 年。所以這個(gè)不是明天就能解決的問(wèn)題,所以零漏洞。這些事情需要時(shí)間。我們談?wù)摰氖峭ㄟ^(guò)操作系統(tǒng)將計(jì)算機(jī)內(nèi)部數(shù)據(jù)類型的相當(dāng)基本的架構(gòu)更改轉(zhuǎn)移到庫(kù)中,然后顯然構(gòu)建系統(tǒng)的人員會(huì)在其之上。
我認(rèn)為 Arm 引用了 64 位處理的引入是一個(gè) 10 年的計(jì)劃,他們已經(jīng)進(jìn)行了幾年,所以我們可能還有五年的時(shí)間,直到我們開(kāi)始看到顯著的市場(chǎng)接受度一個(gè)裝置。顯然,通過(guò) DSbD 計(jì)劃與開(kāi)發(fā)人員社區(qū)以及工業(yè)部門合作,創(chuàng)造需求將有助于加速這一進(jìn)程。
我們知道政府說(shuō)這是個(gè)好主意是一回事。企業(yè)說(shuō)你的意思是你可以擺脫我剛剛花費(fèi)的數(shù)百萬(wàn)的成本,因?yàn)槲也坏貌淮掖颐γΦ匦迯?fù)最新的補(bǔ)丁。