Datalek via Intel CPU-ringbus

Een team van onderzoekers van de Universiteit van Illinois heeft een nieuwe zijkanaalaanvaltechniek ontwikkeld die het lekken van informatie via de Ring Interconnect van Intel-processors manipuleert. Met de aanval kunt u informatie over het geheugengebruik in een andere toepassing onder de aandacht brengen en informatie over de timing van toetsaanslagen volgen. De onderzoekers publiceerden tools voor het uitvoeren van gerelateerde metingen en verschillende prototype-exploits.

Er zijn drie exploits voorgesteld die het volgende mogelijk maken:

  • Herstel individuele bits van encryptiesleutels bij gebruik van RSA- en EdDSA-implementaties die kwetsbaar zijn voor zijkanaalaanvallen (als rekenvertragingen afhankelijk zijn van de gegevens die worden verwerkt). Het lekken van individuele bits met informatie over de initialisatievector (nonce) van EdDSA is bijvoorbeeld voldoende om aanvallen te gebruiken om achtereenvolgens de volledige privésleutel te herstellen. De aanval is in de praktijk lastig uit te voeren en kan met een groot aantal voorbehouden worden uitgevoerd. Een succesvolle werking wordt bijvoorbeeld weergegeven wanneer SMT (HyperThreading) is uitgeschakeld en de LLC-cache is gesegmenteerd tussen CPU-kernen.
  • Definieer parameters over vertragingen tussen toetsaanslagen. De vertragingen zijn afhankelijk van de positie van de toetsen en maken het, door middel van statistische analyse, mogelijk om de gegevens die via het toetsenbord zijn ingevoerd met een bepaalde waarschijnlijkheid opnieuw te creëren (de meeste mensen typen bijvoorbeeld doorgaans veel sneller “s” na “a” dan “g” na "S").
  • Organiseer een verborgen communicatiekanaal om gegevens tussen processen over te dragen met een snelheid van ongeveer 4 megabits per seconde, waarbij geen gebruik wordt gemaakt van gedeeld geheugen, processorcache en CPU-kernspecifieke bronnen en processorstructuren. Opgemerkt wordt dat de voorgestelde methode voor het creëren van een verborgen kanaal zeer moeilijk te blokkeren is met de bestaande beschermingsmethoden tegen zijkanaalaanvallen.

Exploits vereisen geen verhoogde rechten en kunnen worden gebruikt door gewone, niet-bevoorrechte gebruikers. Opgemerkt wordt dat de aanval mogelijk kan worden aangepast om gegevenslekken tussen virtuele machines te organiseren, maar dit probleem viel buiten de reikwijdte van het onderzoek en het testen van virtualisatiesystemen werd niet uitgevoerd. De voorgestelde code is getest op een Intel i7-9700 CPU in Ubuntu 16.04. Over het algemeen is de aanvalsmethode getest op desktopprocessors uit de Intel Coffee Lake- en Skylake-familie, en is deze mogelijk ook toepasbaar op Xeon-serverprocessors uit de Broadwell-familie.

Ring Interconnect-technologie verscheen in processors gebaseerd op de Sandy Bridge-microarchitectuur en bestaat uit verschillende lusbussen die worden gebruikt om computer- en grafische kernen, een serverbrug en cache met elkaar te verbinden. De essentie van de aanvalsmethode is dat, als gevolg van de ringbusbandbreedtebeperking, geheugenbewerkingen in het ene proces de toegang tot het geheugen van een ander proces vertragen. Door implementatiedetails te identificeren via reverse engineering, kan een aanvaller een belasting genereren die vertragingen in de geheugentoegang in een ander proces veroorzaakt en deze vertragingen gebruiken als een zijkanaal om informatie te verkrijgen.

Aanvallen op interne CPU-bussen worden belemmerd door een gebrek aan informatie over de architectuur en bedieningsmethoden van de bus, evenals door een hoog ruisniveau, waardoor het moeilijk is om bruikbare gegevens te isoleren. Het was mogelijk om de werkingsprincipes van de bus te begrijpen door middel van reverse engineering van de protocollen die werden gebruikt bij het verzenden van gegevens via de bus. Er werd een dataclassificatiemodel gebruikt, gebaseerd op machine learning-methoden, om nuttige informatie van ruis te scheiden. Het voorgestelde model maakte het mogelijk om het monitoren van vertragingen tijdens berekeningen in een specifiek proces te organiseren, in omstandigheden waarin verschillende processen tegelijkertijd toegang hebben tot het geheugen en een bepaald deel van de gegevens wordt geretourneerd uit processorcaches.

Daarnaast kunnen we sporen vaststellen van het gebruik van een exploit voor de eerste variant van de Spectre-kwetsbaarheid (CVE-2017-5753) tijdens aanvallen op Linux-systemen. De exploit maakt gebruik van side-channel informatielekken om een ​​superblok in het geheugen te vinden, de inode van het bestand /etc/shadow te bepalen en het adres van de geheugenpagina te berekenen om het bestand uit de schijfcache op te halen.

Bron: opennet.ru

Voeg een reactie