Nee, het is realistisch gezien niet mogelijk om een echt *veilig* besturingssysteem te bouwen voor computersystemen die geen door hardware ondersteunde bevoorrechte werkingsmodi hebben. Het fundamentele probleem ligt in de noodzaak om kritieke systeembronnen te beschermen tegen kwaadaardige of foutieve programma's op gebruikersniveau.
Dit is waarom:
* Bronnenbescherming: De bevoorrechte modus (vaak kernelmodus of supervisormodus genoemd) is essentieel voor het beschermen van kritieke bronnen zoals geheugen, I/O-apparaten en de CPU zelf. Zonder dit zou een gecompromitteerd programma op gebruikersniveau rechtstreeks toegang kunnen krijgen tot deze bronnen en deze kunnen wijzigen, wat kan leiden tot systeemcrashes, gegevenscorruptie of volledige systeemovername. Een gebruikersprogramma kan bijvoorbeeld de eigen code van het besturingssysteem overschrijven of de geheugenbeheertabellen wijzigen.
* Handhaving van systeemoproepen: Het besturingssysteem fungeert als intermediair tussen gebruikersprogramma's en hardware. Systeemaanroepen zijn het mechanisme waarmee gebruikersprogramma's diensten kunnen aanvragen (zoals het lezen van een bestand of het verzenden van gegevens via een netwerk). De bevoorrechte modus is vereist om ervoor te zorgen dat deze verzoeken correct worden gevalideerd en veilig worden afgehandeld. Zonder dit zou een gebruikersprogramma direct willekeurige instructies kunnen uitvoeren, waarbij alle veiligheidscontroles worden omzeild.
* Isolatie van processen: Besturingssystemen vertrouwen op de geprivilegieerde modus om processen van elkaar te isoleren. Zonder deze isolatie zou een kwaadaardig programma toegang kunnen krijgen tot het geheugen of de bronnen van andere processen, wat mogelijk kan leiden tot datalekken of denial-of-service-aanvallen.
Hoewel geavanceerde, op software gebaseerde technieken sommige van deze risico's kunnen beperken, kunnen ze deze niet volledig elimineren. Ze zouden onvermijdelijk vertrouwen op complexe en potentieel kwetsbare mechanismen (bijvoorbeeld geavanceerde geheugenbeschermingsschema's, een sterke afhankelijkheid van ondertekening en verificatie van code) die door geavanceerde aanvallers zouden kunnen worden omzeild. Deze technieken zouden aanzienlijk minder efficiënt zijn en aanzienlijke overhead met zich meebrengen.
Kortom, door hardware ondersteunde geprivilegieerde modi zijn een fundamentele vereiste voor het bouwen van veilige besturingssystemen. Ze bieden een cruciale beschermingslaag die niet op betrouwbare wijze kan worden gerepliceerd uitsluitend via software. De beveiliging die wordt geboden door een benadering die uitsluitend op software gebaseerd is, zou veel zwakker zijn en uiterst moeilijk te onderhouden. |