RSBAC overzicht

De ontwikkeling van RSBAC (Rule Set Based Access Control) is in 1996 begonnen, als afstudeerproject voor Amon Ott. Het baseert daarbij in de beste academische (en Open Source) tradities op voorwerk van diverse onderzoekers, onder meer op het werk van Abrams en LaPadula[1] die een generiek raamwerk voor toegangcontrole hebben ontworpen waar Amon gebruik van heeft gemaakt (GFAC - Generalized Framework for Access Control). Alle broncode is onafhankelijk en zonder sturende invloed van bedrijven of overheden geschreven en volledig onder de GPL geplaatst.

Programma's/processen kunnen niet om de kernel heen als ze gebruik willen maken van systeembronnen zoals disk, io-poorten en geheugen. De oorspronkelijke en enige juiste plaats om permissies af te dwingen is daarom binnen de kernel. Die filosofie heeft geleid tot de opkomst van een aantal security extensies op de standaard Linux kernel. Daaronder neemt RSBAC een bijzondere plaats in: het biedt een goed raamwerk, afgeleid van een generiek en algemeen geaccepteerd model, waarbinnen functionele eenheden (modules) kunnen worden opgenomen die 1 of meerdere beveiligingsmodellen implementeren.

Binnen het RSBAC kader wordt gebruik gemaakt van een objectgeorienteerd model, afgeleid van het generieke GFAC model. Het GFAC model maakt het mogelijk om de werking van beveiligingssoftware op een abstract niveau te definieren. Anders gezegd: het GFAC model is bruikbaar als model voor alle besturingssystemen. Op het GFAC niveau wordt het abstracte denkraam gehanteerd: "een subject stuurt een request naar een object, het request wordt dan al dan niet gehonoreerd". Op dit niveau worden ook dingen gezegd als 'er bestaat een component die de beslissing neemt, er bestaat ook een component die de beslissing afdwingt'.

RSBAC implementeert GFAC voor Unix. Het houdt het GFAC model staande, maar is specifieker: "het subject (proces) wat het programma /a/b/c/ heeft geladen mag het R_READ_WRITE_OPEN request niet naar het FILE object '/tmp/a' sturen" of "de component die de beslissing afdwingt noemen we de AEF, de component die de beslissing neemt de ADF, beide zijn onderdeel van de kernel'.

Op een nog lager niveau (RSBAC voor Linux) vertaalt zich dit naar code die implementeert 'als een process met het programma /a/b/c daarin probeert om de systeemaanroep "open('tmp/a', O_RDWR)" uit te voeren mag dit niet worden toegestaan" en 'de AEF en ADF zijn geimplementeerd als een serie patches op de kernel'.

Noten

[1]

La Padula, L. J., Rule Set Modeling of a Trusted Computer System, Essay, in: Information Security: An Integrated Collection of Essays, Hrsg.: Abrams, M. D., Jajodia, S., Podell, H. J., IEEE Computer Society Press, 1995