Bescherm Linux of Windows tegen Spectre- en Meltdown-kwetsbaarheden

Een van de fundamentele componenten van elke computer die is ontworpen om een ​​besturingssysteem te gebruiken, ongeacht de ontwikkelaar ervan, is de CPU of processor die in gigantische stappen vooruit is gegaan en ons nieuwe verwerkingssnelheden, nieuwe technologieën, meer kernen en dit alles biedt om optimaliseren en verbeteren van het opstarten van het systeem en de uitvoering van de programma's die we daar hebben geïnstalleerd.

Dit alles is innovatief en vervult ons met emotie wanneer we een computer met een uitstekende processor kopen, omdat we er zeker van zijn dat het een goede investering zal zijn, maar wat gebeurt er als de processor, of het nu Intel, AMD of een andere is, binnen zijn ontwerp beveiligingsproblemen vertoont dat Ze onze informatie en onze vertrouwelijkheid in gevaar brengen, daar verandert het onderwerp van koers en zet ons aan het denken over hoe dit soort situaties kan gebeuren bij gerenommeerde verwerkers en grote bedrijven wereldwijd.

Welnu, deze kwetsbaarheid is een realiteit die een paar dagen geleden werd ontdekt, op 4 januari, waar de Spectre- en Meltdown-kwetsbaarheden werden ontdekt, die verband houden met het ontwerp van de processor waar een aanvaller toegang krijgt tot systeeminformatie en geheugen waar essentieel elementen zoals coderingssleutels of wachtwoorden zijn ondergebracht.

Het ergste van dit hele probleem is dat deze kwetsbaarheden Intel-, ARM- en AMD-processors treffen. Daarom staan ​​we er allemaal voor open om het slachtoffer te worden van deze kwetsbaarheden en daarom zullen we vandaag bij Solvetic grondig analyseren wat deze kwetsbaarheden zijn, hoe ze aanval en hoe we onze servers en apparatuur ertegen kunnen beschermen.

Laten we niet vergeten dat deze kwetsbaarheden alle soorten apparatuur zullen aanvallen, zowel op thuis- als op bedrijfsniveau en momenteel worden de patches die ons zullen beschermen tegen Spectre en Meltdown vrijgegeven door de ontwikkelaars van besturingssystemen en applicaties.

Wat is Spectre?

Spectre is een kwetsbaarheid die de processor kan misleiden om het speculatieve uitvoeringsproces te starten, omdat moderne processors gebruik maken van vertakkingsvoorspelling en speculatieve uitvoering het mogelijk maakt om de processorprestaties te maximaliseren.

Spectre-aanvallen maken het mogelijk een slachtoffer ertoe aan te zetten om speculatief bepaalde operaties uit te voeren die niet zouden plaatsvinden tijdens de juiste uitvoering van het programma, en hierdoor kan op een zeer eenvoudige manier vertrouwelijke informatie worden gelekt via een zijkanaal voor de aanvaller.

De openbaarmakingsberichten van deze kwetsbaarheden hebben twee varianten ontdekt met verschillende niveaus van complexiteit en impact van Spectre op de processor en daarmee op de veiligheid van de gebruiker.

Deze varianten zijn:

Variant 1 (CVE-2017-5753)Dit beveiligingslek treft Intel-, AMD- en ARM-processors, waardoor de aanvaller de programma's kan misleiden zonder enige vorm van fout, volgens best practices, om alle gebruikersinformatie die op de computer is opgeslagen te filteren.

Dit werd op 3 januari van dit jaar ontdekt door het Google Project Zero-team en deze variant maakt overmatig gebruik van speculatieve uitvoering om limietcontrole-bypasstaken uit te voeren, waardoor de kernelcode speculatief wordt omgeleid met controle van de aanvaller.

Een lijst met systemen die door deze variant kunnen worden aangevallen zijn:

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6"
  • Red Hat Enterprise Linux 7"
  • RHEV-M 4.0
  • RHEV-M voor servers
  • Red Hat Enterprise Linux OpenStack Platform 7.0 (Kilo) voor RHEL 7
  • Red Hat Enterprise Linux OpenStack Platform 6.0 (Juno) voor RHEL 7
  • Red Hat Enterprise MRG 2
  • Red Hat OpenStack Platform v 8/9/10/11/12
  • Debian Linux wheezy
  • Debian Linux jessie
  • Debian Linux stretch
  • Debian Linux-buster, sid
  • SUSE Linux Enterprise Server voor Raspberry Pi 12 SP2
  • SUSE OpenStack Cloud 6
  • Openstack Cloud Magnum Orchestration 7"
  • SUSE Container as a Service Platform ALL
  • SUSE Linux Enterprise Hoge beschikbaarheid 12 SP2 / SP3
  • SUSE Linux Enterprise Live-patching 12
  • SUSE Linux Enterprise-module voor openbare cloud 12
  • SUSE Linux Enterprise Server 11 SP3-LTSS
  • SUSE Linux Enterprise Server 11 SP4
  • SUSE Linux Enterprise Software Development Kit 11/12 SP3 / SP4
  • SUSE Linux Enterprise voor SAP 12 SP1
  • SUSE Linux Enterprise 11
  • SUSE Linux Enterprise 12"
  • OpenSuse Linux gebaseerd op SUSE 12/11
  • Fedora Linux 26
  • Fedora Linux 27
  • Amazon Linux AMI

Variant 2 (CVE-2017-5715)Deze variant is verantwoordelijk voor het triggeren van speculatieve uitvoering door gebruik te maken van branch target-injectie. Het is gebaseerd op de aanwezigheid van een specifieke, nauwkeurig gedefinieerde reeks instructies in de geprivilegieerde code, evenals op de situatie dat geheugentoegangen de gegevenscaching van de microprocessor kunnen veroorzaken, inclusief speculatief uitgevoerde instructies die nooit in gevaar zullen komen.

Dankzij deze variant zou een aanvaller zonder enige privileges de limieten van het systeem en de computer kunnen overschrijden om het geprivilegieerde geheugen te lezen door gerichte side channel cache-aanvallen uit te voeren en zo de beveiliging van de gebruiker doorbroken te zien.

De getroffen systemen zijn dezelfde als de hierboven genoemde.

Om deze varianten in Linux te voorkomen, kunnen we het volgende proces uitvoeren.

In CentOS- of RedHat-omgevingen voeren we allereerst de volgende regels uit:

 uname -r sudo yum update

Nadat het systeem is bijgewerkt, gaan we verder met het opnieuw opstarten van het systeem door de regel uit te voeren:

 sudo reboot
Vervolgens bevestigen we dat de kernel is bijgewerkt met de opdracht opnieuw:
 uname -r
Tot slot verifiëren we dat de varianten worden toegepast in het systeem door het volgende uit te voeren:
 rpm -q --changelog kernel | egrep 'CVE-2017-5715 | CVE-2017-5753 | CVE-2017-5754' 

VERGROTEN

In het geval van het gebruik van Ubuntu of Debian kunnen we de volgende regels uitvoeren:

 sudo apt-get update sudo apt-get upgrade sudo shutdown -r 0

Spectre aanvalsvormenSpectre maakt gebruik van enkele aanvalstechnieken zoals:

  • Het exploiteren van speculatieve executie. Met deze techniek valt Spectre de processortaak aan op het niveau van speculatieve uitvoeringsinstructies met sequenties die niet hadden mogen worden uitgevoerd tijdens de juiste uitvoering van het programma en deze sequenties zullen uiteindelijk worden omgekeerd, waardoor tijdelijke instructies worden gecreëerd waarvan de aanvaller profiteert om gebruikers te filteren. informatie getroffen.
  • Aanvallen met native code :. Deze aanval creëert een programma dat geheime gegevens in zijn toegangsgeheugen bevat en zodra dit programma is gecompileerd, worden de binaire bestanden en gedeelde bibliotheken op het systeem geanalyseerd om gebruikersinformatie te filteren.

Ten slotte is er nog een aanvalsprogramma geschreven dat gebruikmaakt van de speculatieve uitvoeringsfunctie van de CPU om de eerder aangetroffen reeksen als tijdelijke instructies uit te voeren.

  • Aanvallen met JavaScript. Deze aanval wordt gebruikt om de sandbox van de browser te doorbreken door er draagbare JavaScript-code doorheen te monteren.

Hardware beïnvloed door SpectreMomenteel is ontdekt dat Spectre in staat is om hardware te schenden zoals:

  • Op Ivy Bridge gebaseerde processors
  • AMD Ryzen
  • Intel-processors
  • Qualcomm-processors

Samengevat bestaat de Spectre-aanval uit de volgende fasen:

  • Fase 1. Ten eerste begint de aanval met een configuratiefase, waarbij de aanvaller bewerkingen uitvoert die processorstoringen veroorzaken, zodat vervolgens onjuiste speculatieve uitbuiting kan worden uitgevoerd.

Tijdens deze fase kan de aanvaller het zijkanaal voorbereiden dat zal worden gebruikt om de informatie van het slachtoffer te extraheren.

  • Fase 2. In deze fase voert de processor speculatief een of meer instructies uit die vertrouwelijke informatie uit de context van het slachtoffer overbrengen naar een zijkanaalmicroarchitectuur.

Hierdoor kan de aanvaller een actie uitvoeren, zoals syscall, socket, en in andere gevallen kan de aanvaller profiteren van de speculatieve uitvoering van zijn eigen code om gevoelige informatie van hetzelfde proces door de gebruiker te verkrijgen.

  • Fase 3. In deze fase worden vertrouwelijke gegevens van Spectre hersteld met behulp van technieken zoals flush + reload of evict + reload. Dit herstelproces bestaat uit het meten hoe lang het duurt om de geheugenadressen in de cacheregels te lezen die periodiek worden gecontroleerd.

Wat is Kernsmelting?

De andere aanval die de veiligheid van gebruikers aantast, is Meltdown, waarmee een aanvaller toegang kan krijgen tot de privégegevens van de gebruiker via het geïnstalleerde besturingssysteem, zoals Microsoft Windows of High Sierra.

De naam is toegewezen aan de mogelijkheid om de beveiligingslimieten te schenden die normaal worden opgelegd door systeemhardware.

De Meltdown-kwetsbaarheid is gecatalogiseerd als CVE-2017-5754, waar wordt vermeld dat Meltdown de mogelijkheid heeft om de basisisolatie tussen gebruikerstoepassingen en het besturingssysteem te doorbreken, wat het ook is. Door deze aanval kan een programma toegang krijgen tot het geheugen en daarmee ook tot de vertrouwelijke informatie van andere programma's en van het besturingssysteem zelf.

Deze fout werd ook op 3 januari ontdekt door het Google Project Zero-team en andere aanvullende teams.
Dit beveiligingslek treft Intel x86-64-processors, maar niet AMD x86-64-processors.

Kernsmelting kan van invloed zijn op systemen zoals:

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6"
  • Red Hat Enterprise Linux
  • Debian Linux wheezy
  • Debian Linux jessie
  • Debian Linux stretch
  • Deiban Linux-buster, sid
  • SUSE Linux Enterprise 11
  • SUSE Linux Enterprise 12"
  • OpenSuse Linux gebaseerd op SUSE 12/11
  • Fedora Linux 26
  • Fedora Linux 27
  • Amazon Linux AMI
  • ramen
Momenteel hebben we de oplossing voor deze kwetsbaarheid voor de volgende Linux-distributies met hun kernelversie als deze:
  • RHEL 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
  • CentOS 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
  • Fedora 26 [4.14.11-200] / 27 [4.14.11-300]
  • Debian stretch [4.9.0-5-amd64] / jessie [3.16.0-5-amd6] / piepende ademhaling [3.2.0-5-amd64]
  • CoreOS [4.14.11-Coreos]
  • Arch Linux [update naar huidige rollen]
  • Gentoo Linux [update naar huidige rollend]
  • Ubuntu Linux v16.04 [4.4.0-109-generiek of 4.13.0-26-generiek] /v17.10 [4.13.0-25-generiek] /14.04 [3.13.0-139-generiek]
  • SUSE - SLES 12 SP3 [4.4.103-6.38.1] / SLES 12 SP2 [4.4.103-92.59.1] / SLES 11 SP4 [3.0.101-108.21.1] / SLES 11 SP3-LTSS [3.0.101 -0.47.106.11.1]

Om onszelf te beschermen tegen deze kwetsbaarheid CVE-2017-5754 kunnen we het volgende uitvoeren:

  • Op CentOS en RedHat:
 uname -r sudo yum update sudo reboot
  • In Fedora:
 sudo dnf --refresh update kernel 
  • Op Debian en Ubuntu:
 uname -r sudo apt-get update sudo apt-get dist-upgrade sudo shutdown -r 0

Hoe Meltdown werktLaten we niet vergeten dat een van de centrale beveiligingsfuncties op operationeel niveau in moderne besturingssystemen geheugenisolatie is, die ervoor zorgt dat gebruikersapplicaties geen toegang hebben tot de geheugens van andere gebruikers en programma's en zo voorkomen dat applicaties van gebruikers kunnen lezen of schrijven naar het kernelgeheugen.

In moderne processors wordt de isolatie tussen de kernel en gebruikersprocessen normaal gesproken uitgevoerd door een processorbitmonitor die bepaalt of een geheugen de mogelijkheid heeft om toegang te krijgen tot de kernelpagina of niet.
Meltdown is ontwikkeld als een nieuwe aanval die de kracht heeft om geheugenisolatie volledig te overwinnen door een eenvoudige manier te bieden voor elk gebruikersproces om het kernelgeheugen van de draaiende machine te lezen, inclusief al het fysieke geheugen dat is toegewezen aan de kernelregio.

Meltdown werkt tegenwoordig op alle belangrijke besturingssystemen en dit beveiligingslek maakt misbruik van de zijkanaalinformatie die beschikbaar is op de meeste moderne processors zoals Intel of AMD.

Meltdown geeft een aanvaller de mogelijkheid om code uit te voeren op een kwetsbare processor om de hele kernel in de adresruimte te dumpen, inclusief eventueel toegewezen fysiek geheugen.

De oorzaak van de eenvoud en omvang van Meltdown zijn bijwerkingen die worden veroorzaakt door uitvoering die niet in orde is, dat wil zeggen, het is een functie van de huidige processors die is ontwikkeld om de latenties van drukke uitvoeringseenheden te overwinnen.

De werkfasen van Meltdown zijn:

  • Fase 1. In deze fase wordt een aanvraag gedaan voor een illegale geheugenlocatie in de processorkernel.
  • Fase 2. In deze fase wordt een tweede verzoek uitgevoerd om een ​​geldige geheugenplaats voorwaardelijk alleen uit te lezen als het eerste verzoek een bepaalde actieve waarde bevat.
  • Fase 3. In deze fase wordt de speculatieve uitvoeringstaak uitgevoerd waarbij de processor het achtergrondwerk voor de twee voorgaande verzoeken voltooit voordat wordt geverifieerd dat het oorspronkelijke verzoek ongeldig is. Zodra de processor begrijpt dat de verzoeken betrekking hebben op out-of-bounds geheugen, weigert hij beide verzoeken.
  • Fase 4. Daar wordt een nieuwe aanvraag gedaan voor de geldige geheugenplaats.

We kunnen dus het volgende definiëren met de Meltdown-kwetsbaarheid:

De inhoud van een door de aanvaller gekozen geheugenlocatie, die voor de aanvaller niet toegankelijk is, wordt in een systeemregister geladen.

Een tijdelijke instructie benadert een cacheregel op basis van de geheime inhoud van het register.

De aanvaller gebruikt Flush + Reload om de toegang tot de cacheregel te bepalen en zo toegang te krijgen tot de informatie die is opgeslagen op de gekozen geheugenlocatie.

Als we eenmaal hebben begrepen hoe deze kwetsbaarheden werken, zullen we zien hoe we onze computers ertegen kunnen beschermen, hoewel we moeten verduidelijken dat er tot op heden geen aanval is gemeld waarbij zowel gebruikers als beheerders betrokken zijn.

1. Hoe u uzelf kunt beschermen tegen Spectre en Meltdown op Linux-systemen


In het geval van Linux zullen we spectre-meltdown-checker.sh gebruiken, wat een shellscript is om te bepalen of de Linux-kernel kwetsbaar is voor de 3 CVE's die we van deze kwetsbaarheden hebben genoemd.

OpmerkingDit script moet worden uitgevoerd als rootgebruiker.

Stap 1
Om dit script te installeren gaan we eerst als volgt naar de /tmp directory:

 cd / tmp / 
Stap 2
Zodra we in de genoemde map zijn, gaan we verder met het verkrijgen van het script door de volgende regel uit te voeren:
 wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh 

OpmerkingEen andere optie om het te verkrijgen is door de volgende regel uit te voeren:

 git clone https://github.com/speed47/spectre-meltdown-checker.git 

Hoe te controleren of we kwetsbaar zijn voor Spectre of Meltdown?Om de veiligheid van onze distributie te controleren, kunnen we de volgende regel uitvoeren:

 sudo sh spook-meltdown-checker.sh

Zo eenvoudig is het We kunnen controleren of ons systeem kwetsbaar is voor deze nieuwe bedreigingen.

2. Hoe u uzelf kunt beschermen tegen Spectre en Meltdown op Windows-systemen


In dit geval zullen we Windows 10 gebruiken en hiervoor moeten we Windows PowerShell als administrator openen door met de rechtermuisknop op de applicatie te klikken en de optie "Als administrator uitvoeren" te selecteren.

Stap 1
Zodra de PowerShell-terminal is geopend, gaan we verder met het uitvoeren van de volgende regel:

 Install-Module SpeculationControl
Stap 2
In de weergegeven vragen zullen we de letter S invoeren om te bevestigen:

VERGROTEN

Stap 3
Het standaard Windows-uitvoeringsbeleid staat ons niet toe om dit script uit te voeren, hiervoor moeten we, om het script uit te voeren, de huidige configuratie opslaan zodat deze later kan worden hersteld en vervolgens het uitvoeringsbeleid wijzigen zodat het kan worden uitgevoerd script. Hiervoor zullen we de volgende twee commando's uitvoeren:

 $ SaveExecutionPolicy = Get-ExecutionPolicy Set-ExecutionPolicy RemoteSigned -Scope Currentuser

VERGROTEN

Stap 4
Nu kunnen we het script uitvoeren door het volgende uit te voeren:

 Import-Module SpeculationControl Get-SpeculationControlSettings

VERGROTEN

Stap 5
We kunnen gedetailleerde informatie over het systeem zien en we moeten in het bijzonder naar twee regels kijken:

Ondersteuning van Windows-besturingssysteem voor beperking van injectie van vertakkingsdoelenDeze regel geeft de Microsoft-software-update aan en of de waarde ervan is: waar betekent dat de computer is beschermd tegen Meltdown- en Spectre-aanvallen.

Hardwareondersteuning voor beperking van injectie van vertakkingsdoelenDeze regel verwijst naar de firmware- of BIOS / UEFI-update die vereist is van de computerfabrikant als de waarde ervan is: waar het betekent dat we worden beschermd tegen de Spectre-kwetsbaarheid.

Stap 6
Om het uitvoeringsbeleid terug te zetten naar de oorspronkelijke configuratie nadat we de beveiliging van het systeem hebben gecontroleerd, kunnen we de volgende regel uitvoeren:

 Set-ExecutionPolicy $ SaveExecutionPolicy -Scope Currentuser 

VERGROTEN

Stap 7
Het is de moeite waard om te onthouden hoe belangrijk het is om het besturingssysteem up-to-date te houden, aangezien ontwikkelaars beveiligingspatches zullen uitbrengen om deze beveiligingsfouten te voorkomen:

3. Officiële informatie over spook en kernsmelting door fabrikanten


In de volgende links kunnen we informatie vinden over deze kwetsbaarheden op elk van de belangrijkste ontwikkelaarssites en hebben we dus meer gedetailleerde informatie over hoe we het probleem kunnen voorkomen en een stap voor zijn:
  • Intel
  • ARM
  • AMD
  • NVIDIA
  • Microsoft Windows
  • Windows-server
  • Amazone
  • Google
  • Android
  • Manzana
  • Lenovo
  • HP
  • Huawei
  • Cisco
  • Mozilla
  • Rode Hoed
  • Debian
  • Ubuntu
  • Fedora
  • VMWare

Zoals we kunnen zien, hoewel kwetsbaarheden altijd aanwezig zullen zijn, kunnen we de nodige maatregelen nemen om alert te zijn op eventuele storingen en zo te voorkomen dat onze informatie wordt aangetast.

wave wave wave wave wave