Ze zullen het al weten OpenBSD, een besturingssysteem van de BSD-familie. Als je het niet kent, het is een open source Unix-achtig systeem en het is natuurlijk niet gebaseerd op de Linux-kernel. Het is een afstammeling van NetBSD, maar laat portabiliteit op de tweede plaats staan om zich te concentreren op beveiliging als een sterk punt. Welnu, met de uitgave van OpenBSD 6.2 zal een kernel komen met een zeer interessante functie.
Het blijkt dat OpenBSD 6.2 een unieke kernel zal creëren elke keer dat een systeemgebruiker herstart of het systeem bijwerkt. Deze functie het heet KARL (Kernel Address Randomized Link) en werkt door de interne bestanden van de kernel in een willekeurige volgorde opnieuw te koppelen, zodat het elke keer een unieke binaire blob genereert. Dit is nieuw, aangezien de huidige versies van OpenBSD een vooraf gedefinieerde locatie gebruiken, wat erin resulteert dat de interne bestanden elke keer en voor alle gebruikers in hetzelfde binaire bestand worden gekoppeld en geladen.
De ontwikkeling van Theo de Raadt het zal werken door deze specifieke afbeelding te genereren tijdens de installatie, tijdens updates of opstarttijd. Als de gebruiker de machine opstart, bijwerkt of herstart, wordt de nieuw gegenereerde kernel vervangen door het nieuwe binaire bestand. En dit alles waarvoor? Welnu, op deze manier wordt een willekeurige locatie gemaakt voor de geheugenadressen waar de applicatie en kernelcode wordt uitgevoerd, in plaats van dat er voor elk ding al een hiërarchie of geheugensegmenten zijn gedefinieerd, wat het gebruik van exploits die naar een geheugengebied verwijzen, bemoeilijkt en verbetert veiligheid.
Er is nog een soortgelijke techniek genaamd KASLR (Randomisatie van kernelruimte-indeling), wat verschilt van KARL doordat in plaats van elke keer een ander binair bestand te genereren, KASLR hetzelfde binaire bestand op willekeurige locaties laadt, wat momenteel wordt gebruikt door besturingssystemen zoals Windows en Linux. Beiden voor hetzelfde doel.