Arm erkent mogelijkheid voor sidechannelaanvallen op Cortex-M-architectuur

Arm erkent dat er een kwetsbaarheid in de Armv8-M-architectuur zit waarmee het mogelijk is via een sidechannelaanval informatie te achterhalen uit de Secure Zone-omgeving. Het bedrijf zegt echter dat dat geen specifieke kwetsbaarheid in Cortex-M is, maar een zwakte in alle cpu's.

Arm reageert in een supportdocument op een recente ontdekking van beveiligingsonderzoekers. Sandro Pinto en Cristiano Rodrigues van de Universidade do Minho in Portugal presenteerden vorige week tijdens de Black Hat Asia-beveiligingsconferentie een onderzoek naar het lekken van informatie uit Arm-chips. De twee onderzoekers vonden een sidechannelkwetsbaarheid in microcontroller units, of mcu's, van Arm. De onderzoekers toonden aan hoe het mogelijk was met een aanval op de Cortex-M-architectuur informatie te lekken uit een cpu. Dat lukte zelfs met informatie in de Secure Zone, de trusted execution environment van Arm-socs waarin gevoelige informatie wordt opgeslagen.

De onderzoekers wisten via de BUS-connectors informatie te achterhalen. De onderzoekers zagen dat als er informatie tussen twee BUS-masters wordt uitgewisseld, de cache van de chip die twee brokjes informatie opdeelt en een voor een doorlaat. Dat prioriteringsproces kan volgens de onderzoekers informatie weergeven over de data die wordt achtergehouden. Tijdens de presentatie lieten de onderzoekers zien hoe zij op die manier de secret van een verbonden deurslot konden achterhalen. Volgens Pinto en Rodrigues is het zelfs mogelijk zo'n aanval te automatiseren en die makkelijk uitvoerbaar te maken.

De aanval lijkt op methodes zoals Spectre en Meltdown, twee grote kwetsbaarheden in Intel- en AMD-chips die enkele jaren geleden bekend werden. Er werd lang aangenomen dat dergelijke sidechannelaanvallen alleen voorbehouden waren aan grote chips zoals de desktopchips van de twee grote bedrijven, maar dat dat voor Arm-architectuur lastiger was omdat die chips simpeler zijn en daardoor minder data door geheugencaches sturen.

Arm erkent de kwetsbaarheid nu, maar geeft daar nog geen definitieve oplossing voor. Zo'n oplossing zou via een microcodepatch via specifieke fabrikanten moeten worden uitgebracht. Het bedrijf erkent dat het gaat om 'de eerste werkende sidechannelaanval in de microarchitectuur van TrustZone-enabled Cortex-M-processors', maar Arm voegt eraan toe dat het probleem niet specifiek bij de Arm-architectuur ligt. Sidechannelaanvallen zouden niet op specifieke chipmodellen zijn gericht, maar voorkomen op alle soorten cpu's. "De Security Extensions voor de Armv8-M-architectuur zijn niet specifiek beschermd tegen sidechannelaanvallen vanwege de control flow en geheugentoegangpatronen. Dergelijke aanvallen zijn niet specifiek voor de Armv8-M-architectuur opgezet, maar kunnen worden toegepast op iedere code die gebruikmaakt van zulke patronen of control flows", zegt het bedrijf. Volgens het bedrijf kan dat gemitigeerd worden door bepaalde processen te optimaliseren om geheugenleaks te voorkomen, maar dat zouden fabrikanten al moeten doen als ze best practices volgen, zegt Arm.

Door Tijs Hofmans

Nieuwscoördinator

15-05-2023 • 08:57

17

Reacties (17)

17
17
6
0
0
6
Wijzig sortering
Interessant! Is dit een reële mogelijkheid voor een aanval of voorlopig meer een academische exercitie?
Volgens mij meer wetenschappelijk. Om bij een processor zoiets uit te halen heb je al een hack nodig of fysieke toegang. Interessant is het wel. Wat ik ervan begrijp een datastroom isoleren op basis van het gedrag van componenten die onbedoeld 'meebewegen'.
Het hele doelvan trustzone is nou net dat zelfs een root user niet bij secrets kan. Dus weinig "wetenschappelijks" aan in that sense. Als jou pinnen-met-je-mobiel secrets uit je telefoon getrokken kunnen worden is dat toch een wezenlijk probleem, zelfs al gaat daar nog een (of meerdere) hack-stap(pen) aan vooraf.

Verder wordt trustzone ook vaak gebruikt om secrets te beschermen tegen de eigenaar van de device. En die heeft natuurlijk alle nodige permissies.
Wordt lastig. Moet je eerst iets verzinnen om native machine-instructies uit te kunnen voeren. Dus in ieder geval rooten en de kernel aanpassen. Daarna heb je blijvend low-level I/O nodig, wat je pas kan krijgen na de Android of iOS bootloader + touchscreen aansturing.

[Reactie gewijzigd door blorf op 23 juli 2024 20:31]

De stappen die jij beschrijft geven aan dat je er van uit gaat dat er een Linux kernel op draait; dat zijn Cortex-A processoren.

Dit gaat over Cortex-M processoren die minder krachtig zijn en mede daarom werd altijd gezegd dat dit soort aanvallen niet mogelijk was; immers hebben deze geen out-of-order execution, meestal geen complexe caches etc - allemaal factoren die bij de andere side-channel attacks nodig waren.

Wat veel zorgwekkender is dat ARMv8 TrustZone gebruikt om de secure zone van de non-secure zone te scheiden. Hierdoor kunnen minder betrouwbare bronnen hun code er non-secure op draaien zonder dat de secure code in gevaar komt.

Althans, dat was de theorie...
Daar ging ik uit van een eindgebruiker achter de voorgeschreven interface, maar ze hangen draden aan een bus. Daar kun je waarschijnlijk ook via de host-computer bij komen maar niet met een normale OS-installatie.
Op zich zou ik het wel interessant vinden om een bepaalde SBC of telefoon met een dergelijke microconmtroller eraan zo ver te krijgen dat die controller een soort secundaire kern wordt die onafhankelijk software kan draaien.
Zoals vaak is dit een complexe aanval die 'in het wild' niet makkelijk uit te voeren valt... maar dat kan veranderen.
Overigens zijn ook de "academische exercities" mogelijk gevaarlijke kwetsbaarheden voor 'targeted attacks'
De aanval is pas mogelijk zodra je een applicatie of andere code kan draaien op de microcontroller. Dat is meestal lastig.

Eén theoretische aanval is dat de hardware trust store hiermee niet meer te vertrouwen is. Je kunt niet een geheime sleutel in de TEE inladen en je apparaat aan een eindgebruiker meegeven om hun eigen apps/updates op te draaien (in het geval van drones kan dat bijvoorbeeld soms); een applicatie kan die sleutel met deze aanval achterhalen waar dit eerst praktisch onmogelijk/extreem moeilijk was, zelfs met fysieke toegang.
De aanval is pas mogelijk zodra je een applicatie of andere code kan draaien op de microcontroller. Dat is meestal lastig.
Dat ligt aan het product. Omdat TrustZone werd gezien als "de" oplossing om een secure programma te kunnen gebruiken op dezelfde CPU als een non-secure programma was bijvoorbeeld minder te vertrouwen is, wordt dit ook gezien als de oplossing om bijvoorbeeld custom clock faces op een horloge te kunnen downloaden welke door derde partijen gemaakt kunnen worden. Of bijvoorbeeld widgets op een smart display.

Zodra de fabrikant iedereen deze laat ontwikkelen is het natuurlijk mogelijk om binnen te komen op zo'n embedded apparaat.

Overigens wordt hier specifiek over ARMv8 gesproken, maar de aanval werkt ook prima met oudere cores mits deze onderdeel zijn van een multi-core systeem; de timing analyse door middel van de DMA engine staat toe om profiling op elke andere core te doen.

Het is spijtig dat de slides van de BlackHat presentatie zo slecht zijn, want zonder het verbale verhaal zijn vele voorbeelden uit de slides moeilijk te volgen...
Quote<
Tijdens de presentatie lieten de onderzoekers zien hoe zij op die manier de secret van een verbonden deurslot konden achterhalen.
>Quote
??? Wat staat hier? Met andere woorden wat wordt er bedoeld.
Dat onderzoekers gedemonstreerd hebben dat ze de geheime code om de deur te openen konden uitlezen van een 'slim' deurslot, zoals deze: https://www.slimmedingen....lot-bluetooth-z-wave.html

[Reactie gewijzigd door pbruins84 op 23 juli 2024 20:31]

Offtopic: @Z80 om te quoten kun je de quote knop gebruiken of [ quote ] en [ /quote ] zonder spaties tussen de blokhaken gebruiken ;)
-

[Reactie gewijzigd door pbruins84 op 23 juli 2024 20:31]

Volgens het bedrijf kan dat gemitigeerd worden door bepaalde processen ...
Verminderd in normaal Nederlands...
Is een gewoon woord hoor wat gebruikt wordt in de infosec wereld ;)
Of verzacht of verbeterd.

[Reactie gewijzigd door RoyD op 23 juli 2024 20:31]

WikiWoordenboek: Mitigeren: Leenwoord uit het Frans, in de betekenis van ‘lenigen’ voor het eerst aangetroffen in het jaar 1547.

Naar mijn mening zijn "verminderen", "verzachten" of "verbeterd" geen goede alternatieven, de focus verschuift dan toch wel wat. "Verminderen" is dan wel het beste alternatief van de drie. Lenigen kan ook natuurlijk, maar dat werkt niet in de zin.

Op dit item kan niet meer gereageerd worden.