ASLR

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 31 december 2018; kontroller kräver 13 redigeringar .

ASLR ( adressutrymmeslayoutrandomisering - "  adressutrymmeslayoutrandomisering  ") är en teknik som används i operativsystem , som slumpmässigt ändrar platsen i adressutrymmet för en process av viktiga datastrukturer, nämligen exekverbara filbilder , laddningsbara bibliotek , heaps och stack .

ASLR är designat för att göra det svårare att utnyttja flera typer av sårbarheter . Till exempel, om en angripare får möjligheten att överföra kontroll till en godtycklig adress med ett buffertspill eller annan metod, måste han gissa på vilken adress stacken, högen eller andra datastrukturer kan placeras i skalkoden . Liknande problem kommer att uppstå med en retur -till-libc-attack: angriparen kommer inte att känna till adressen där biblioteket är laddat. I exemplen ovan är specifika adresser dolda för angriparen, och om den korrekta adressen inte kan gissas kommer programmet sannolikt att krascha, vilket berövar angriparen möjligheten att attackera igen och drar till sig systemadministratörens uppmärksamhet .

Implementeringar

OpenBSD

OpenBSD - utvecklarna var bland de första att implementera ASLR. ASLR är aktiverat som standard.

Linux

Linuxkärnan har haft en enkel variant av ASLR sedan 2005 (sedan version 2.6.12). Mer komplexa och kompletta ASLR-varianter erbjuds som patchar ( PaX , ExecShield, etc.). I distributioner som innehåller ordet "härdad" i sina namn, såväl som i moderna versioner av Ubuntu- distributionen , är hårda varianter aktiverade som standard.

För att ASLR ska fungera (för att placera körbara filer i minnet på slumpmässiga adresser) måste körbara filer kompileras i positionsoberoende körbart läge (en sorts positionsoberoende kod för körbara filer).

Microsoft Windows

Windows har ASLR stöds sedan Windows Vista (2007) [1] för körbara filer och bibliotek byggda med speciella flaggor.

ASLR stöds även på senare versioner av Windows som Windows Server 2008 , Windows 7 , Windows Server 2008 R2 , Windows 8 , Windows 8.1 , Windows 10 .

ASLR används inte för applikationer byggda utan speciella flaggor och när de körs i kompatibilitetsläge för tidigare versioner av Windows.

Windows XP och Windows Server 2003 kan ASLR aktiveras för alla valda program med hjälp av Microsoft EMET [2] (Enhanced Mitigation Experience Toolkit).

Mac OS X

Viss slumpmässighet i biblioteksladdning lades till i Mac OS X v10.5 Leopard (2007) [3] . I OS X 10.8 Mountain Lion (2012) är ASLR en del av systemets kärna [4] .

iOS

iOS har använt ASLR-teknik sedan version 4.3 [5] . För kärna, använd sedan iOS 6 [6] .

Inverkan av ASLR på virtuellt minne

ASLR är en kompromiss mellan ökad säkerhet och minskad tillgänglig 24-bitars, 31-bitars och 64-bitars privat lagring. Om du aktiverar 24-bitars och 31-bitars virtuell lagring minskar det tillgängliga privata lagringsutrymmet till 63 respektive 255 sidor. Den begärda arbetsytans storlek måste fortfarande uppfyllas från det minskade privata området för att jobbet ska köras. Jobb vars omfattningsstorlek inte kan uppfyllas kommer att resultera i ett ABEND 822-fel. Om jobbets begärda omfångsstorlek uppfyller, är det möjligt att den minskade storleken på privat lagring hindrar jobbet från att slutföras, vilket resulterar i ABEND-fel 878.

Ett sätt att avgöra om jobb inte kan köras med 24-bitars eller 31-bitars storleksgräns för privat lagring som kommer att inträffa med ASLR aktiverat är att ange ett större värde för CSA-parametern i parmlib. Att öka både 24-bitars och 31-bitars CSA-storlekarna med 1M minskar effektivt storleken på den 24-bitars och 31-bitars privata lagringen med 1M, vilket är mer än den maximala minskningen som kommer att ske med ASLR [7] .

Nackdelar

För att använda ASLR måste körbara filer byggas med speciella flaggor. Som ett resultat kommer permanenta adresser inte att användas i koden, men samtidigt:

Dessutom kan skyddet kringgås genom minnesutarmning [8] eller Heap Spray-metoder [9] .

Anteckningar

  1. Windows ISV Software Security Defense . msdn.microsoft.com. Hämtad 10 april 2012. Arkiverad från originalet 18 april 2012.
  2. Windows Interns: Inklusive Windows Server 2008 och Windows Vista, Fifth Edition (PRO-Developer) ISBN 978-0-7356-2530-3
  3. Minnesrandomisering (ASLR) kommer till Mac OS X Leopard | ZDNet . Hämtad 5 januari 2018. Arkiverad från originalet 15 augusti 2020.
  4. OS X Mountain Lion Core Technologies Översikt (juni 2012). Hämtad 25 juli 2012. Arkiverad från originalet 10 juli 2012.
  5. Pwn2Own dag 2: iPhone, BlackBerry slagen; Chrome, Firefox uteblivit . - "iOS 4.3 introducerar Address Space Layout Randomization (ASLR)". Hämtad 18 september 2014. Arkiverad från originalet 27 februari 2017.
  6. Yeongjin Jangs hemsida . Hämtad 5 januari 2018. Arkiverad från originalet 21 september 2020.
  7. Randomisering   av adressutrymmeslayout . www.ibm.com . Hämtad: 12 september 2022.
  8. Enkel förbikoppling av ASLR-skydd i Windows 7/8 . Hämtad 2 mars 2015. Arkiverad från originalet 19 april 2018.
  9. Arkiverad kopia . Hämtad 13 november 2016. Arkiverad från originalet 20 april 2018.

Litteratur

Länkar