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