From owner-p4-projects@FreeBSD.ORG Mon May 19 20:04:06 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5E24E1065689; Mon, 19 May 2008 20:04:06 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1F21F1065681 for ; Mon, 19 May 2008 20:04:06 +0000 (UTC) (envelope-from remko@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0E1698FC1F for ; Mon, 19 May 2008 20:04:06 +0000 (UTC) (envelope-from remko@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m4JK46uP009240 for ; Mon, 19 May 2008 20:04:06 GMT (envelope-from remko@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m4JK45uC009238 for perforce@freebsd.org; Mon, 19 May 2008 20:04:05 GMT (envelope-from remko@freebsd.org) Date: Mon, 19 May 2008 20:04:05 GMT Message-Id: <200805192004.m4JK45uC009238@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to remko@freebsd.org using -f From: Remko Lodder To: Perforce Change Reviews Cc: Subject: PERFORCE change 141873 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 May 2008 20:04:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=141873 Change 141873 by remko@remko_guardian on 2008/05/19 20:03:10 WIP for the MAC chapter, should be around 80%. Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/mac/chapter.sgml#3 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/mac/chapter.sgml#3 (text+ko) ==== @@ -1,7 +1,9 @@ @@ -14,224 +16,2350 @@ - * Mandatory Access Control + + Verplichte Toegangscontrole (MAC) - * Samenvatting + Overzicht + + MAC + + + verplichte toegangscontrole + + MAC + + + mandatory access control + + In &os; 5.X worden nieuwe beveiligingsuitbreidingen + geïntroduceerd uit het TrustedBSD project, dat is gebaseerd + op de &posix;.1e draft. Twee van de meest significante nieuwe + beveiligingsmechanismen zijn bestandssysteem + Toegangscontrolelijsten (ACL's) en + Verplichte Toegangscontrole (Mandatory Access Control of + MAC) facilities. Met Verplichte + Toegangscontrole kunnen nieuwe toegangscontrolemodules geladen + worden, waarmee nieuw beveiligingsbeleid opgelegd kan worden. + Een aantal daarvan bieden beveiliging aan hele kleine onderdelen + van het systeem, waardoor een bepaalde dienst weerbaarder wordt, + terwijl andere allesomvattende gelabelde beveiliging bieden op + alle vlakken en objecten. Het verplichte deel van de definitie + komt van het feit dat het opleggen van de controle wordt gedaan + door beheerders en het systeem en niet wordt overgelaten aan + de nukken van gebruikers, zoals wel wordt gedaan met + toegangscontrole naar goeddunken (discretionary access control of + DAC, de standaard bestands- en System V + IPC rechten in &os;). + + In dit hoofdstuk wordt de nadruk gelegd op het + Verplichte Toegangscontrole Framework (MAC Framework) en een set + van te activeren beveiligingsbeleidsmodules waarmee verschillende + soorten beveiligingmechanismen wordt ingeschakeld. + + Na het lezen van dit hoofdstuk weet de lezer: + + + + Welke MAC beveiligingsbeleidsmodules + op dit moment in &os; beschikbaar zijn en welke mechanismen + daarbij horen; + + + + Wat MAC beveiligingsbeleidsmodules + implementeren en het verschil tussen gelabeld en + niet-gelabeld beleid; + + + + Hoe een systeem efficiënt ingesteld kan worden om + met het MAC framework te werken; + + + + Hoe het beleid van de verschillende + beveiligingsbeleidsmodules die in het MAC + framework zitten ingesteld kunnen worden; + + + + Hoe een veiliger omgeving gemaakt kan worden met het + MAC framework en de getoonde + voorbeelden; + + + + Hoe de MAC instellingen getest + kunnen worden om er zeker van te zijn dat het framework juist + is geïmplementeerd. + + + + Aangeraden voorkennis: + + + + Begrip van &unix; en &os; basiskennis (); + + + + Bekend zijn met de beginselen van het instellen en + compileren van de kernel (); + + + + Enigszins bekend zijn met beveiliging en wat dat te maken + heeft met &os; (). + + + + + Het verkeerd gebruiken van de informatie in dit hoofdstuk + kan leiden tot het niet langer toegang hebben tot een systeem, + grote ergernis bij gebruikers of het niet langer kunnen + gebruiken van de mogelijkheden die X11 biedt. Nog belangrijker + is dat niet alleen op MAC vertrouwd moet + worden voor de beveiliging van een systeem. Het + MAC framework vergroot alleen het bestaande + beveiligingsbeleid. Zonder goede beveiligingsprocedures en + regelmatige beveiligingscontroles is een systeem nooit helemaal + veilig. + + Het is ook van belang op te merken dat de voorbeelden in + dit hoofdstuk alleen voorbeelden zijn. Het is niet aan te + raden ze uit te rollen op een productiesysteem. Het + implementeren van de verschillende beveiligingsbeleidmodules + dient goed overdacht te worden. Iemand die niet helemaal + begrijpt hoe alles werkt, komt er waarschijnlijk achter dat die + het complete systeem van voor naar achter en weer terug + doorloopt en heel erg veel bestanden en mappen opnieuw moet + instellen. + - * Wat zal niet worden behandeld + Wat niet wordt behandeld - + In dit hoofdstuk wordt een brede reeks + beveiligingsonderwerpen met betrekking tot het + MAC framework behandeld. De ontwikkeling + van nieuwe MAC beveiligingsbeleidmodules + wordt niet behandeld. Een aantal modules die bij het + MAC framework zitten hebben specifieke + eigenschappen voor het testen en ontwikkelen van (nieuwe) + modules. Daaronder vallen &man.mac.test.4;, &man.mac.stub.4; + en &man.mac.none.4;. Meer informatie over deze + beveiligingsbeleidsmodules en de mogelijkheden die ze bieden + staan in de hulppagina's. - * Sleutelwoorden in dit hoofdstuk + Sleuteltermen in dit hoofdstuk + + Voordat het lezen van dit hoofdstuk zonder voorkennis + mogelijk is, moeten er eerst een aantal sleuteltermen toegelicht + worden. Hiermee wordt hopelijk mogelijke verwarring en de + abrupte introductie van nieuwe termen en informatie + voorkomen. + + + + compartiment: een compartiment is + een verzameling van programma's en data die gepartitioneerd + of gescheiden dient te worden en waartoe gebruikers expliciet + toegang moeten krijgen op een systeem. Een compartiment + staat ook voor een groep - werkgroep, afdeling, project of + onderwerp. Door gebruik te maken van compartimenten is het + mogelijk om need-to-know beveiligingsbeleid in + te stellen. + + + + integriteit: integriteit, als + sleutelconcept, is het niveau van vertrouwen dat in data + gesteld kan worden. Als de integriteit van data wordt + vergroot, dan geldt dat ook voor het vertrouwen dat in die + data gesteld kan worden. + + + + label: een label is een + beveiligingsattribuut dat toegepast kan worden op bestanden, + mappen of andere onderdelen van een systeem. Het kan gezien + worden als een vertrouwelijkheidsstempel: als er een label op + een bestand is geplaatst, beschrijft dat de + beveiligingseigenschappen voor dat specifieke bestand en is + daarop alleen toegang voor bestanden, gebruikers, bronnen, + enzovoort, met gelijke beveiligingsinstellingen. De + betekenis en interpretatie van labelwaarden hangt af van de + instelling van de beleidseeneheid: hoewel sommige + beleidseenheden een label beschouwen als representatie van de + integriteit of het geheimhoudingsniveau van een object, + kunnen andere beleidseenheden label gebruik om regels voor + toegang in op te slaan. + + + + niveau: de verhoogde of verlaagde + instelling van een beveiligingsattribuut. Met het stijgen + van het niveau wordt ook aangenomen dat de veiligheid + stijgt. + + + + meervoudig label: de eigenschap + is een optie van het + bestandssysteem die in single user modus met &man.tunefs.8;, + tijdens het opstarten via het bestand &man.fstab.5; of + tijdens het maken van een nieuw bestandssysteem ingesteld kan + worden. Met deze optie wordt het voor een beheerder mogelijk + om verschillende MAC labels op + verschillende objecten toe te passen. Deze optie is alleen + van toepassing op beveiligingsbeleidsmodules die labels + ondersteunen. + + + + object: een object of systeemobject + is een entiteit waar informatie doorheen stroomt op + aanwijzing van een subject. Hieronder + valleen mappen, bestanden, velden, schermen, toetsenborden, + geheugen, maganetische opslag, printers en alle andere + denkbare apparaten waarmee data kan worden vervoerd of data + op kan worden opgeslagen. In de basis is een object een + opslageenheid voor data of een systeembron; toegang tot een + object betekent in feite toegang tot de + data. + + + + beleidseenheid: een verzameling van + regels die aangeven hoe doelstellingen bereikt moeten worden. + In een beleidseenheid staat meestal + beschreven hoe bepaalde eenheden behandeld dienen te worden. + In dit hoofdstuk wordt de term + beleidseenheid in deze context gezien + als een beveiligingsbeleidseenheid, wat + zoveel wil zeggen als een verzameling regels die bepaalt hoe + data en informatie stroomt en aangeeft wie toegang tot welke + data en informatie heeft. + + + + gevoeligheid: meestal gebruikt bij + het bespreken vna MLS. Een + gevoeligheidsniveau is een term die gebruikt wordt om te + beschrijven hoe belangrijk of geheim de data hoort te zijn. + Met het stijgen van het gevoeligheidsniveau stijgt ook het + belang van de geheimhouding of de confidentialiteit van de + data. + + + + enkelvoudig label: een enkelvoudig + label wordt gebruikt als een heel bestandssysteem gebruik + maakt van één label om het toegangsbeleid over + de datastromen af te dwingen. Als dit voor een + bestandssysteem is ingesteld, wat geldt als er geen gebruik + gemaakt wordt van de optie , dan + gehoorzamen alle bestanden aan dezelfde + labelinstelling. + - + + subject: een subject is een gegeven + actieve entiteit die het stromen van informatie tussen + objects veroorzaakt, bijvoorbeekd een + gebruiker, gebruikersprocessortijd, systeemproces, enzovoort. + Op &os; is dit bijna altijd een thread die in een proces + namens een gebruiker optreedt. + + - * Uitleg van MAC + Uitleg over MAC + + Met al deze nieuwe termen in gedachten, kan overdacht worden + het MAC framework de complete beveiliging van + een systeem kan vergroten. De verschillende + beveiligingsbeleidsmodules die het MAC + framework biedt zouden gebruikt kunnen worden om het netwerk en + bestandssystemen te beschermen, gebruikers toegang tot bepaalde + poorten en sockets kunnen ontzeggen en nog veel meer. Misschien + kunnen de beleidsmodules het beste gebruikt worden door ze samen + in te zetten, door meerdere beveiligingsbeleidsmodules te laden + om te komen tot een omgeving waarin de beveiliging uit meerdere + lagen is opgebouwd. In een omgeving waarin de beveiliging uit + meerdere lagen is opgebouwd zijn meedere beleidsmodules actief + om de beveiliging in de hand te houden. Deze aanpak is anders + dan een beleid om de beveiliging sec beter te maken, omdat + daarmee in het algemeen elementen in een systeem beveiligd worden + dat voor een specifiek doel wordt gebruikt. Het enige nadeel is + het benodigde beheer in het geval van meervoudige + bestandssysteemlabels, het instellen van toegang tot het netwerk + per gebruiker, enzovoort. + + De nadelen zijn wel minimaal als ze worden vergeleken met + het immer durende effect van het framework. Zo zorgt + bijvoorbeeld de mogelijkheid om te kiezen welke beleidseenheden + voor een specifiek gebruik nodig zijn voor het zo laag mogelijk + houden van de beheerslast. Het terugdringen van ondersteuning + voor onnodige beleidseenheden kan de beschikbaarheid van systemen + verhogen en ook de keuzevrijheid vergroten. Voor een goede + implementatie worden alle beveiligingseisen in beschouwing + genomen en daarna worden de verschillende + beveiligingsbeleidsmodules effectief door het framework + geïmplementeerd. + + Een systeem dat gebruik maakt van de mogelijkheden van + MAC dient dus tenminste de garantie te hebben + dat een gebruiker niet de mogelijkheid heeft naar eigen inzicht + beveiligingsattributen te wijzigen. Alle gebruikersprogramma's + en scripts moeten werken binnen de beperkingen die de + toegangsregels voorschrijven volgens de geselecteerde + beveiligingsbeleidsmodules. Het voorgaande impliceert ook dat de + volledige controle over de MAC toegangsregels + bij de systeembeheerder ligt. + + Het is de taak van de systeembeheerder om zorgvuldig de + juiste beveiligingsbeleidsmodules te kiezen. Voor sommige + omgevingen kan het nodig zijn dat de toegang tot het netwerk + wordt beperkt. In dat soort gevallen zijn de beleidsmodules + &man.mac.portacl.4;, &man.mac.ifoff.4; en zelfs &man.mac.biba.4; + goede startpunten. In andere gevallen kan het nodig zijn dat + alleen de vertrouwelijkheid van bestandssysteemobjecten van + belang is. Dan zijn beleidsmodules zoals &man.mac.bsdextended.4; + en &man.mac.mls.4; voor dit doel gemaakt. + + Beslissingen over beleid zouden gemaakt kunnen worden op + basis van het netwerkontwerp. Wellicht wordt alleen bepaalde + gebruikers toegestaan gebruik te maken van de mogelijkheden van + &man.ssh.1; om toegang te krijgen tot het netwerk of internet. + In dat geval is de juiste beleidsmodule &man.mac.portacl.4;. + Maar wat te doen voor bestandssystemen? Moet alle toegang tot + bepaalde mappen worden afgesneeden van andere gebruikersgroepen + of specifieke gebruikers, of moeten de toegang voor gebruikers + of programma's tot bespaalde bestanden worden ingesteld door + bepaalde objecten als geheim te bestempelen? + + In het geval van het bestandssysteem, kan ervoor gekozen + worden om de toegang voor sommige objecten voor bepaalde + gebruikers als geheim te bestempelen, maar voor andere niet. + Bijvoorbeeld: een groot ontwikkelteam wordt opgedeeld in + kleinere eenheden individuen. Ontwikkelaars in project A horen + geen toegang te hebben tot objecten die zijn geschreven door + ontwikkelaars in project B. Maar misschien moeten ze wel toegang + hebben tot objecten die zijn geschreven door ontwikkelaars in + project C. Dat is nogal wat. Door gebruik te maken van de + verschillende beveiligingsbeleidsmodules in het + MAC framework kunnen gebruikers in hun groepen + worden opgedeeld en kan ze toegang gegeven worden tot de juiste + locaties zonder dat er angst hoeft te zijn voor het lekken van + informatie. + + Zo heeft dus iedere beveiligingsbeleidsmodule een unieke + wijze om om te gaan met de totale beveiliging van een systeem. + Het kiezen van modules hoort gebaseerd te zijn op een zorgvuldig + uitgedacht beveiligingsbeleid. In veel gevallen wordt het totale + beveiligingsbeleid aangepast en opnieuw toegepast op een systeem. + Een goed begrip van de verschillende beveiligingsbeleidsmodules + die het MAC framework biedt helpt beheerders + bij het kiezen van de juiste beleidseenheden voor hun + situatie. + + De standaard &os; kernel kent geen ondersteuning voor het + MAC framework en daarom dient de volgende + kerneloptie toegevoegd te worden voordat op basis van de + voorbeelden of informatie uit dit hoofdstuk wijzigen worden + gemaakt: + + options MAC + + Hierna dient de kernel herbouwd en geïnstalleerd te + worden. - + + Hoewel in de verschillende hulppagina's voor + MAC beleidsmodules staat dat ze in de kernel + gebouwd kunnen worden, is het mogelijk het systeem van het + netwerk af te sluiten en meer. Het implementeren van + MAC is net zoiets als het implementeren van + een firewall en er moet opgepast worden dat een systeem niet + totaal op slot gaat. Er dient rekening gehouden te worden met + het teruggaan naar een vorige instelling en het op afstand + implementeren van MAC dient bijzonder + voorzichtig te gebeuren. + - * MAC labels begrijpen + MAC labels begrijpen + + Een MAC label is een beveiligingsattribuut + dat toegepast kan worden op subjects en objecten die door het + systeem gaan. + + Bij het instellen van een label moet de gebruiker in staat + zijn om precies te begrijpen wat er gebeurt. De attributen die + voor een object beschikbaar zijn hangen af van de geladen + beleidsmodule en die interpreteren hun attributen op nogal + verschillende manieren. Het resultaat kan resulteren in + onverwacht en wellicht ongewenst gedrag van een systeem als + het beleid door een gebrek aan begrip verkeerd is + ingesteld. + + Het beveiligingslaven op een object wordt gebruikt als + onderdeel van een beveiligingstoegangscontrolebeslissing door een + beleidseenheid. Voor sommige beleidseenheden bevat het label + zelf alle informatie die nodig is voor het maken van een + beslissing; in andere modellen kunnen de labels als onderdeel van + een grotere set verwerkt worden, enzovoort. + + Zo staat bijvoorbeeld het instellen van het label + biba/low op een bestand voor een label dat + wordt beheerd door de beveiligingsbeleidsmodule Biba, met een + waarde van low. + + Een aantal beleidsmodules die in &os; de mogelijkheid voor + labelen ondersteunen, bieden drie specifieke voorgedefinieerde + labels: low, high en equal. Hoewel ze in verschillende + beleidsmodules op een andere manier toegangscontrole afdwingen, + is er de garantie dat het label low de laagst + mogelijke instelling is, het label equal het + subject of object uitschakelt of ongemoeid laat en het label + high de hoogst mogelijk instelling afdwingt + die beschikbaar is in de beleidsmodules Biba en + MLS. + + Binnen een bestandssysteemomgeving met een enkelvoudig label + kan er maar één label gebruikt worden op objecten. + Hiermee wordt een set van toegangsrechten op het hele systeem + opgelegd en dat is voor veel omgevingen voldoende. Er zijn + echter een aantal gevallen waarin het wenselijk is meervoudige + label in te stellen op subject of objecten in het + bestandssysteem. In die gevallen kan de optie + meergegeven worden aan + &man.tunefs.8;. + + In het geval van Biba en MLS, kan er een + numeriek label gezet worden om het precieze niveau van de + hiërarchische controle kan worden aangegeven. Dit + numerieke niveau wordt gebruikt om informatie in verschillende + groepen te partitioneren of te sorteren voor het klassificeren + voor het geven van toegang voor een bepaalde groep of een groep + van een hoger niveau. + + In de meeste gevallen stelt een beheerder alleen maar een + enkelvoudig label in dat door het hele bestandssysteem wordt + gebruikt. + + Wacht eens, dat klinkt net als + DAC! MAC gaf de controle + toch strikt aan de beheerder? Dat klopt nog steeds, + root heeft nog steeds de controle in handen + en is degene die het beleid instelt zodat gebruikers in de + juiste categorie en/of toegangsniveau's worden geplaatst. + Daarnaast kunnen veel beleidsmodules ook de gebruiker + root beperkingen opleggen. Dan wordt de + controle overgedragen aan een groep, maar kan + root de instellingen op ieder gewenst + moment intrekken of wijzigen. Dit is het + hiërarchische/toegangsmodel dat wordt afgedekt door + beleidseenheden zoals Biba en MLS. - * Label configuratie + Labelinstellingen + + Vrijwel alle aspecten voor het instellen van labelbeleid + worden uitgevoerd met basissysteemprogramma's. Die commando's + bieden een eenvoudige interface voor object- of + subjectinstellingen of de manipulatie en verificatie van de + instellingen. + + Alle instellingen kunnen gemaakt worden met de + hulpprogramma's &man.setfmac.8; and &man.setpmac.8;. + Het commando setfmac wordt gebruikt om + MAC labels op systeemobjecten in te stellen + en setpmac voor het instellen van de labels + op on systeemsubjects: + + &prompt.root; setfmac biba/high test + + Als het bovenstaande commando geen foutmeldingen heeft + veroorzaakt, dan komt er een prompt terug. Deze commando's + geven altijd geen uitvoer, tenzij er een fout is tegengekomen; + net als bij &man.chmod.1; en &man.chown.8;. In sommige + gevallen kan de foutmelding Permission + denied zijn en deze ontstaat meestal als het + label wordt ingesteld of gewijzigd op een object dat is + beperkt. + + + Andere condities kunnen andere foutmeldingen + veroorzaken. De gebruiker die het object probeert te + herlabelen kan bijvoorbeeld niet de eigenaar zijn, het + object kan niet bestaan of alleen-lezen zijn. Een + verplichte beleidsinstelling kan het proces niet toestaan + om een bestand te herlabelen, misschien om een + eigenschap van het bestand, een eigenschap van het proces + of een eigenschap van de voorgestelde nieuwe waarde van het + label. Een gebruiker die met een lage integriteit draait, + probeert bijvoorbeeld het label van een bestand met een + hoge integriteit te veranderen of diezelfde gebruiker kan + proberen het label van een bestand met lage integriteit te + wijzigen in een label van een hoge integriteit. + + + De systeembeheerder kan de volgende commando's gebruiken om dit + probleem te voorkomen: + + &prompt.root; setfmac biba/high test +Permission denied +&prompt.root; setpmac biba/low setfmac biba/high test +&prompt.root; getfmac test +test: biba/high + + Hierboven is te zien dat setpmac + gebruikt kan worden om aan de instellingen van een + beleidsmodules voorbij te gaan door een ander label toe te + wijzen aan het aangeroepen proces. Het hulpprogramma + getpmac wordt meestal toegepast op processen + die al draaien, zoals sendmail: + hoewel er een proces ID nodig is in plaats van een commando, is + de logica gelijk. Als gebruikers proberen een bestand te + manipuleren waar ze geen toegang to hebben, onderhevig aan de + regels van een geladen beleidsmodule, dan wordt de foutmelding + Operation not permitted weergegeven door + de functie mac_set_link. + + + Labeltypen + + Met de beleidsmodules &man.mac.biba.4;, &man.mac.mls.4; + en &man.mac.lomac.4; is het mogelijk eenvoudige labels toe te + wijzen. Die kunnen hoog, gelijk aan en laag zijn. Hieronder + een beschrijving van wat die labels betekenen: + + + + Het label low is de laagst + mogelijke labelinstellingen die een object of subject kan + hebben. Deze instelling op objecten of subjects blokkeert + hun toegang tot objecten or subjects met de markering + hoog. + + + + Het label equal hoort alleen + ingesteld te worden op objecten die uitgesloten moeten + worden van een beleidsinstelling. + + + + Het label high geeft een object of + subject de hoogst mogelijke instelling. + + + + Afhankelijke van iedere beleidsmodule heeft iedere + instelling een ander informatiestroomdirectief tot gevolg. + Het lezen van de hulppagina's die van toepassing zijn geeft + inzicht in de precieze eigenschappen van de standaard + labelinstellingen. + + + Gevorderde labelinstellingen + + Dit zijn numerieke graden die gebruikt worden voor + vergelijking:afdeling+afdeling;. + + biba/10:2+3+6(5:2+3-20:2+3+4+5+6) + + Het bovenstaande kan dus geiuml;nterpreteerd worden + als: + + Biba Policy Label/Graad + 10:Afdelingen 2, 3 en 6: + (graad 5 ...) + + In dit voorbeeld is de eerste graad de + effectieve graad met de effectieve + afdelingen, de tweede graag is is lage graagd en de + laatste is de hoge graad. In de meeste instellingen worden + deze instellingen niet gebruikt. Ze zijn inderdaad + instellingen voor gevorderden. + + Als ze worden toegepast op systeemobjecten, hebben ze + alleen een huidige graad/afdeling in vergelijking met + systeemsubjects, omdat ze de reikwijdte van rechten in het + systeem en op netwerkinterfaces aangeven, waar ze gebruikt + worden door toegangscontrole. + + De graad en afdelingen in een subject en object paar + wordt gebruikt om een relatie te construeren die ook wel + dominantie heet, waar een subject een object + domineert, geen van beiden domineert, of beiden elkaar + domineren. Het geval beiden domineren komt + voor als de twee labels gelijk zijn. Vanwege de natuur van + de informatiestroom van Biba, heeft een gebruiker rechten + op een set van afdelingen, need to know, die + overeen zouden kunnen komen met projecten, maar objecten + hebben ook een set van afdelingen. Gebruikers dienen + wellicht hun rechten te subsetten met su + of setpmac om toegang te krijgen tot + objecten in een afdeling die geen verboden terrein voor + ze zijn. + + - * Gebruiker en label instellingen + Gebruikers en labelinstellingen + + Gebruikers moeten zelf labels hebben, zodat hun bestanden + en processen juist kunnen samenwerken met het + beveiligingsbeleid dat op een systeem is ingesteld. Dit + wordt ingesteld via het bestand + login.conf door gebruik te maken van + aanmeldklassen. Iedere beleidsmodule die labels gebruikt + maakt ook gebruik van de instelling voor + aanmeldklasse. + + Een voorbeeld dat iedere instelling uit de beleidsmodule + bevat is hieronder te zien: + + default:\ + :copyright=/etc/COPYRIGHT:\ + :welcome=/etc/motd:\ + :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ + :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\ + :manpath=/usr/share/man /usr/local/man:\ + :nologin=/usr/sbin/nologin:\ + :cputime=1h30m:\ + :datasize=8M:\ + :vmemoryuse=100M:\ + :stacksize=2M:\ + :memorylocked=4M:\ + :memoryuse=8M:\ + :filesize=8M:\ + :coredumpsize=8M:\ + :openfiles=24:\ + :maxproc=32:\ + :priority=0:\ + :requirehome:\ + :passwordtime=91d:\ + :umask=022:\ + :ignoretime@:\ + :label=partition/13,mls/5,biba/10(5-15),lomac10[2]: + + De optie label wordt gebruikt om het + standaardlabel voor aanmeldklasse in te stellen dat door + MAC wordt afgedwongen. Het wordt + gebruikers nooit toegestaan deze waarde te wijzigen, dus kan + het gezien worden als niet optioneel vanuit het perspectief + van de gebruiker. In de echte wereld besluit een beheerder + echter nooit iedere beleidsmodule te activeren. Het wordt + sterk aangeraden de rest van die hoofdstuk te lezen alvorens + (een deel van) de bovenstaande instellingen te + implementeren. + + + Gebruikers kunnen hun label wijzigen na het aanmelden, + maar dit is wel afhankelijk van de beperkingen van een + beleidsinstelling. De instelling in het bovenstaande + voorbeeld is zodanig in de beleidseenheid Biba, dat de + minimale integriteit van een proces 5 en het maximum 15 is. + Standaard is het effectieve label 10. Het proces draait + op niveau 10, totdat het label wordt gewijzigd, misschien + door een gebruiker die setpmac gebruikt, + bij het aanmelden beperkt tot de door Biba ingestelde + reeks. + + + In alle gevallen die de aanmeldklasse mogelijkheden + database opnieuw gebouwd te worden met + cap_mkdb na het wijzigen van + login.conf. Dit wordt ook in alle + komende voorbeelden en beschijvingen gedaan. + + Het is belangrijk op te merken dat in veel gevallen + implementaties te maken hebben met bijzonder grote aantallen + gebruikers waardoor er een aantal verschillende + aanmeldklassen nodig zijn. Het is dan nodig gedetailleerd + te plannen omdat de implementatie anders bijzonder complex + wordt om te onderhouden. - + Toekomstige versies van &os; kennen een nieuwe manier om + om te gaan met het koppelen van gebruikers aan labels. Dit + komt echter niet beschikbaar tot enige tijd na + &os; 5.3. - * Netwerk Interfaces en label instellingen + Netwerkinterfaces en labelinstellingen + + Labels kunnen ook ingesteld worden op netwerkinterfaces + om te assisteren bij het controleren van het stromen van + gegevens over het netwerk. In alle gevallen werken ze op + dezelfde wijze als het beleid werkt ten aanzien van objecten. + Gebruikers met bijvoorbeeld een hoge instelling in + biba krijgen geen toegang tot interfaces + met een laag label. + + Het kan meegegeven worden aan + ifconfig als het MAC + label op netwerkinterfaces wordt ingesteld: + + &prompt.root; ifconfig bge0 maclabel biba/equal + + In het bovenstaande voorbeeld wordt het + MAC label van + biba/equal ingesteld op de &man.bge.4; + interface. Als er een instelling wordt gebruikt die + gelijkvormig is aan biba/high(low-high), + dan moet het volledige label worden ingegeven, anders treedt + er een fout op. - + Iedere beleidsmodule die labels ondersteunt een + instelling waarmee het MAC op + netwerkinterfaces kan worden uitgeschakeld. Het label + instellen op heeft hetzelfde effect. + Deze instellingen zijn na te kijken in de uitvoer van + sysctl, de hulppagina van het beleid en + zelfs later in dit hoofdstuk. - * Singlelabel of Multilabel? + Enkelvoudig label of meervoudig label? + + Standaard gebruikt een systeem de optie + option. Wat betekent dit voor een + beheerder? Er zijn een aantal verschillen die allemaal hun + eigen voor- en nadelen hebben voor de flexibiliteit in het + beveiligingsmodel voor een systeem. + + Bij gebruik van kan er maar + één label, bijvoorbeeld + biba/high, gebruikt worden voor ieder + subject of object. Hierdoor is er minder beheer nodig, maar de + flexibiliteit voor beleid dat labels ondersteunt daalt erdoor. + Veel beheerders willen de optie + gebruiken in hun beveiligingsmodel. + + De optie staat ieder subject of + object toe om zijn eigen onafhankelijke MAC + label te hebben in plaats van de standaardoptie + , die maar één label + toestaat op een hele partitie. De labelopties + en zijn + alleen verplicht voor de beleidseenheden die de mogelijkheid + bieden om te labelen, waaronder de beleidsmorgelijkheden van + Biba, Lomac, MLS en + SEBSD. + + In veel gevallen hoeft niet\ + eens ingesteld te worden. Stel er is de volgende situatie en + beveiligingsmodel: + + + + &os; webserver die gebruik maakt van het + MAC framework en een mengeling van + verschillende beleidseenheden. + + + + De webserver heeft maar een label nodig, + biba/high, voor alles in het systeem. + Hier is de optie voor het + bestandssysteem niet nodig, omdat een enkelvoudig label + altijd van toepassing is. + + + + Maar omdat de machine als webserver dienst gaat doen, + dient de webserver te draaien als + biba/low om ****write up capabilities**** + te voorkomen. Later wordt beschreven hoe de Biba + beleidseenheid werkt, dus als de voorgaande opmerking wat + lastig te begrijpen is, lees dan verder en kom later nog + een keer terug. De server zou een aparte partitie kunnen + gebruiken waarop biba/low van toepassing + kan zijn voor de meeste, zo niet alle, runtime statussen. + Er ontbreekt veel in dit voorbeeld, bijvoorbeeld de + restricties op gegevens en (gebruikers)instellingen. Dit + was slechts een snel voorbeeld om de hiervoor aangehaalde + stelling te ondersteunen. + + + + Als er een niet-labelende beleidseenheid wordt gebruikt, + dan is de optie nooit verplicht. + Hieronder vallen de beleidseenheden + seeotheruids, portacl en + partition. + + Bij gebruik van voor een + partitie en het neerzetten van een beveiligingsmodel gebaseerd + op functionaliteit gaat de deur + open voor hogere administratieve overhead, omdat alles in een + bestandssysteem een label krijgt. Hieronder vallen mappen, + bestanden en zelfs apparaatnodes. + + Het volgende commando stelt in + op de bestandssystemen om meerdere labels te kunnen kringen. + Dit kan alleen uitgevoerd worden in single user modus: + + &prompt.root; tunefs -l enable / + + Dit is geen criterium voor het swap bestandssysteem. - + + Sommige gebruikers hebben problemen ondervonden met het + instelling van de vlag op de + rootpartitie. Als dit het geval is, kijk dan naar . + - * Mac beheren met aanpasbare instellingen + MAC beheren met tunables + + Zonder dat er modules zijn geladen, kunnen er al onderdelen + van MAC ingesteld worden met de + sysctl interface. Deze tunables worden + hieronder beschreven en in alle gevallen betekent het getal een + (1) ingeschakeld en nul (0) betekent uitgeschakeld: + + + + security.mac.enforce_fs staat + standaard op een (1) en dwingt MAC + bestandssysteembeleid af op bestandssystemen. + + + + security.mac.enforce_kld staat + standaard op een (1) en dwingt MAC + kernellinkingbeleid af op de dynamische kernellinker (zie + &man.kld.4;). + + + + security.mac.enforce_network staat + standaard op een (1) en dwingt MAC + netwerkbeleid af. + + + + security.mac.enforce_pipe staat + standaard op een (1) en dwingt MAC + beleid op pipes af. + + + + security.mac.enforce_process staat + standaard op een (1) en dwingt MAC + beleid af op processen die gebruik maken van inter-proces + communicatie. + + + + security.mac.enforce_socket staat + standaard op een (1) en dwingt MAC + beleid op sockets af (zie &man.socket.2;). + + + + security.mac.enforce_system staat + standaard op een (1) en dwingt MAC + beleid af op op systeemactiviteit zoals accounting en + herstarten. + + + + security.mac.enforce_vm staat + standaard op een (1) en dwingt MAC + beleid af op het virtuele geheugensysteem. + + + + + Ieder beleid of MAC optie ondersteunt + tunables. Die zijn in het algemeen te vinden in de + boomstructuur + security.mac.<policyname>. Alle + tunables voor MAC zijn met het volgende + commando zichtbaar te maken: + + &prompt.root; sysctl -da | grep mac + - + Dit moet opgevat worden als dat alle basis + MAC beleidseenheden standaard worden + afgedwonen. Als de modules in de kernel zouden zijn gebouwd, + zou een systeem bijzonder sterk zijn dichtgetimmerd en zeer + waarschijnlijk niet kunnen communiceren met een lokaal netwerk + of verbonden kunnen worden met internet, enzovoort. Om deze + reden is het inbouwen van modules in de kernel niet volledig + aan te raden. Niet omdat het de mogelijkheid om opties direct + uit te schakelen met sysctl limiteert, maar + het stelt een beheerder in staat om beleid direct aan of uit te + schakelen zonder dat een nieuw systeem gebouwd en + geïnstalleerd hoeft te worden. - * Module configuratie + Module-instellingen + + Iedere module uit het MAC framework kan + zoals zojuist aangegeven in de kernel worden gecompileerd of als + runtime kernelmodule geladen worden. De geadviseerde methode is + de naam van een module toevoegen aan het bestand + /boot/loader.conf zodat die wordt geladen + tijdens de eerste fase van het starten van een systeem. + + In de volgende onderdelen worden de verschillende + MAC modules en hun mogelijkheden beschreven. + De implementatie in een specifieke omgeving wordt in dit + hoofdstuk ook meegenomen. Een aantal modules ondersteunt het + gebruik van labelen, wat het beperken van toegang is door een + label als dit is toegestaan en dat niet af te + dwingen. Een labelinstellingenbestand kan bepalen hoe bestanden + kunnen worden benaderd, hoe netwerkcommunicatie wordt + uitgewisseld en meer. In het vorige onderdeel is beschreven hoe + de vlag ingesteld kon worden op + bestandssystemen om per bestand of per partitie toegangscontrole + in te schakelen. + + Een instelling met een enkelvoudig label zou maar + één label over een heel systeem afdwingen, daarom + wordt de optie tunefs + genoemd. - * De MAC seeotheruids module + MAC module seeotheruids + + MAC zie andere UID's beleidsinstelling + + Modulenaam: mac_seeotheruids.ko + + Kernelinstelling: options + MAC_SEEOTHERUIDS + + Bootoptie: + mac_seeotheruids_load="YES" + + De module &man.mac.seeotheruids.4; imiteert de + sysctl tunables + security.bsd.see_other_uids en + security.bsd.see_other_gids en bereidt deze + uit. Voor deze optie hoeven geen labels ingesteld te worden + voor de instelling en hij werkt transparant met de andere + modules. + + Na het laden van de module kunnen de volgende + sysctl tunables gebruikt worden om de opties + in te stellen: + + + >>> TRUNCATED FOR MAIL (1000 lines) <<<