Patches ingestel om Linux-kernstapeladresse vir stelseloproepe ewekansig te maak

Kees Cook, voormalige hoofstelseladministrateur van kernel.org en leier van die Ubuntu-sekuriteitspan, wat nou by Google werk om Android en ChromeOS te beveilig, het 'n stel pleisters gepubliseer om afwykings in die kernstapel ewekansig te maak wanneer stelseloproepe verwerk word. Patches verbeter kernsekuriteit deur stapelplasing te verander, wat aanvalle op die stapel baie moeiliker en minder suksesvol maak. Die aanvanklike implementering ondersteun ARM64- en x86/x86_64-verwerkers.

Die oorspronklike idee vir die pleister behoort aan die PaX RANDKSTACK-projek. In 2019 het Elena Reshetova, 'n ingenieur van Intel, probeer om 'n implementering van hierdie idee te skep wat geskik is vir insluiting in die hoof Linux-kern. Later is die inisiatief geneem deur Kees Cook, wat 'n implementering aangebied het wat geskik is vir die hoofweergawe van die kern. Die pleisters word beplan om ingesluit te word as deel van die 5.13-vrystelling. Die modus sal by verstek gedeaktiveer word. Om dit te aktiveer, word die kern-opdragreëlparameter “randomize_kstack_offset=aan/af” en die CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT-instelling voorgestel. Die bokoste van die aktivering van die modus word geskat op ongeveer 1% prestasieverlies.

Die essensie van die voorgestelde beskerming is om 'n ewekansige stapelverskuiwing vir elke stelseloproep te kies, wat dit moeilik maak om die stapeluitleg in die geheue te bepaal, selfs nadat adresdata ontvang is, aangesien die volgende stelseloproep die basisadres van die stapel sal verander. Anders as die PaX RANDKSTACK-implementering, in die kolle wat voorgestel word vir insluiting in die kern, word ewekansigheid nie in die aanvanklike stadium (cpu_current_top_of_stack) uitgevoer nie, maar nadat die pt_regs-struktuur gestel is, wat dit onmoontlik maak om ptrace-gebaseerde metodes te gebruik om die ewekansige offset te bepaal tydens 'n langlopende stelseloproep.

Bron: opennet.ru

Voeg 'n opmerking