Security+ Academy · Oppitunti

Valtuutusmallit: RBAC, MAC ja DAC

Vertailkaa roolipohjaisen, pakollisen ja harkinnanvaraisen pääsynhallinnan malleja ja oppikaa, milloin kukin sopii yritys- ja viranomaisympäristöihin.

Oppitunti 3/413 vaihetta

Valtuutusmallit: RBAC, MAC ja DAC on ilmainen Security+ Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Security+ Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Security+ Academy-kurssilla on yhteensä 4 oppituntia.

Pääsynhallintamallien yleiskatsaus

Pääsynhallintamallit määrittävät säännöt ja käytännöt, jotka ohjaavat sitä, mitkä subjektit (käyttäjät ja prosessit) voivat käyttää mitäkin objekteja (tiedostoja, järjestelmiä ja tietoja). Valittu malli määrittää, kuka voi myöntää käyttöoikeuksia, miten oikeudet määritetään ja miten niiden noudattaminen varmistetaan. Security+ -koe käsittelee neljää ensisijaista mallia: harkinnanvarainen pääsynhallinta (DAC), pakollinen pääsynhallinta (MAC), roolipohjainen pääsynhallinta (RBAC) ja sääntöpohjainen pääsynhallinta. Kunkin mallin vahvuuksien ja sopivien käyttötapausten ymmärtäminen on olennaista tehokkaiden valtuutusjärjestelmien suunnittelussa.

Harkinnanvarainen pääsynhallinta (DAC)

Harkinnanvaraisessa pääsynhallinnassa (DAC) resurssin omistaja päättää, kuka voi käyttää hänen resurssejaan, ja voi myöntää tai peruuttaa käyttöoikeuksia muilta käyttäjiltä. ”Harkinnanvaraisuus” tarkoittaa sitä, että omistajat tekevät päätökset — järjestelmä panee niiden päätökset täytäntöön, mutta ei määrää niitä. Tätä mallia käytetään useimmissa henkilökohtaisen tietojenkäsittelyn ympäristöissä (Windows NTFS -tiedostojen käyttöoikeudet sekä Linuxin/Unixin tiedostojen käyttöoikeudet). DAC:n turvallisuusrajoite on, että jokaisen resurssin omistajan on tehtävä oikeat käyttöoikeuspäätökset — tiedoston käyttöoikeuden saanut käyttäjä voi myöntää saman oikeuden muille ilman järjestelmänvalvojan osallistumista, mikä voi levittää arkaluonteisia tietoja niiden tarkoitetun kohderyhmän ulkopuolelle.

# DAC example: Linux file permissions (owner controls access)
# Create a file and check default permissions
touch confidential_data.txt
ls -la confidential_data.txt
# -rw-rw-r-- 1 alice users  (owner=alice, can read/write; group can read/write; others read)

# Owner (Alice) discretionarily removes all access for others
chmod 600 confidential_data.txt
# -rw------- 1 alice users  (only Alice can read/write)

# Alice grants read to a specific user via ACL
setfacl -m u:bob:r confidential_data.txt

DAC:n riskit: hämmentyneen sijaisen ongelma

DAC:hen liittyy kaksi sisäsyntyistä turvallisuusriskiä. Transitiivinen käyttöoikeus: käyttäjä A myöntää käyttäjälle B käyttöoikeuden, ja käyttäjä B myöntää käyttäjälle C käyttöoikeuden — alkuperäinen omistaja ei välttämättä edes tiedä, että käyttäjällä C on käyttöoikeus hänen resurssiinsa. Hämmentyneen sijaisen ongelma: vähäisemmin oikeutetun käyttäjän puolesta toimiva etuoikeutettu ohjelma voi tahattomasti käyttää oikeuksiaan tavalla, johon käyttäjä ei itse suoraan pystyisi. DAC-ympäristöissä yksi vaarantunut käyttäjätili voi mahdollisesti käyttää kaikkia resursseja, joihin kyseiselle käyttäjälle on myönnetty käyttöoikeus, ja se voi myöntää muille käyttöoikeuksia ennen kuin vaarantuminen havaitaan. DAC on kätevä, mutta se vaikeuttaa tiukkaa tietojen eristämistä.

Pakollinen pääsynhallinta (MAC)

Pakollisessa pääsynhallinnassa (MAC) käyttöjärjestelmä panee pääsynhallintakäytännöt täytäntöön sekä subjekteille (käyttäjille) että objekteille (tiedoille) määritettyjen turvaluokitusten perusteella. Käyttäjät eivät voi ohittaa tai muuttaa näitä käytäntöjä — vain järjestelmänvalvoja tai turvallisuuskäytäntö voi muuttaa niitä. MAC:ia käytetään salaisiksi luokitelluissa viranomais- ja sotilasympäristöissä, joissa tiedot on jaettava tiukasti erillisiin osiin. Käyttäjä, jolla on ”Secret”-turvaluokitus, ei voi käyttää ”Top Secret” -luokiteltuja tietoja, vaikka tietojen omistaja haluaisi myöntää hänelle käyttöoikeuden. Bell-LaPadula-malli (ei lukemista ylemmältä tasolta, ei kirjoittamista alemmalle tasolle) ja Biba-malli (ei kirjoittamista ylemmälle tasolle, ei lukemista alemmalta tasolta) ovat muodollisia MAC-toteutuksia.

# SELinux is a MAC implementation for Linux
# Check SELinux mode and policy
getenforce  # Enforcing / Permissive / Disabled
sestatus    # Detailed SELinux status

# View SELinux security context labels on files
ls -Z /etc/passwd
# system_u:object_r:passwd_file_t:s0 /etc/passwd

# Security context: user:role:type:level
# A process can only access files where its type has explicit permission
sudo ausearch -m avc -ts recent  # View MAC policy denials

Bell-LaPadula- ja Biba-MAC-mallit

Kaksi muodollista MAC-mallia ilmaisee turvallisuustavoitteet matemaattisina sääntöinä. Bell-LaPadula keskittyy luottamuksellisuuteen: subjektit eivät voi lukea tietoja omaa luokitustasoaan ylemmältä tasolta (ei lukemista ylemmältä tasolta) eivätkä kirjoittaa tietoja alemmalle luokitustasolle (ei kirjoittamista alemmalle tasolle). Tämä estää arkaluonteisten tietojen päätymisen luvattomille käyttäjille. Biba keskittyy eheyteen: subjektit eivät voi kirjoittaa korkeammalle eheystasolle (ei kirjoittamista ylemmälle tasolle) eivätkä lukea alemmalta eheystasolta (ei lukemista alemmalta tasolta). Biba estää alemman eheyden tietojen aiheuttaman korkean eheyden tietojen saastumisen. Todelliset MAC-järjestelmät, kuten SELinux, yhdistävät molempien mallien piirteitä.

Roolipohjainen pääsynhallinta (RBAC)

Roolipohjaisessa pääsynhallinnassa (RBAC) käyttöoikeudet määritetään suoraan yksittäisten käyttäjien sijaan rooleille, minkä jälkeen käyttäjät liitetään rooleihin. Tämä ratkaisee yksittäisten käyttöoikeuksien hallinnan laajassa mittakaavassa. Yritysympäristöissä yleisiä rooleja ovat admin, auditor, developer, HR_manager ja finance_analyst. Kun uusi työntekijä aloittaa, hänet lisätään sopivaan rooliin, jolloin hän saa heti kaikki roolin edellyttämät käyttöoikeudet. Kun työntekijän tehtävä muuttuu, hänen roolinsa muuttuu ja käyttöoikeudet mukautuvat automaattisesti. RBAC on yritysten IAM-järjestelmien vallitseva malli.

# RBAC example (database permissions)
# Create roles and assign permissions
CREATE ROLE readonly_analyst;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_analyst;

CREATE ROLE data_engineer;
GRANT SELECT, INSERT, UPDATE ON customer_data TO data_engineer;

# Assign users to roles
GRANT readonly_analyst TO alice;
GRANT data_engineer TO bob;

# When Alice is promoted: revoke old role, grant new one
REVOKE readonly_analyst FROM alice;
GRANT data_engineer TO alice;

RBAC:n hyödyt: skaalautuvuus ja tehtävien eriyttäminen

RBAC:n tärkein etu on hallinnollinen skaalautuvuus. Roolin käyttöoikeuksien muuttaminen vaikuttaa välittömästi kaikkiin kyseiseen rooliin kuuluviin käyttäjiin — yksittäisten käyttäjätietueiden päivittäminen sadoissa järjestelmissä ei ole tarpeen. RBAC tukee luontevasti tehtävien eriyttämistä varmistamalla, ettei yhdellä roolilla ole ristiriitaisia käyttöoikeuksia (esimerkiksi roolilla, joka voi sekä luoda että hyväksyä maksutapahtumia). RBAC helpottaa myös vaatimustenmukaisuuden varmistamista: tarkastajat voivat tarkastaa roolit ja niiden käyttöoikeudet sen sijaan, että he tarkastaisivat tuhansia yksittäisiä käyttäjämäärityksiä. Rajoituksena on roolien räjähdysmäinen lisääntyminen — organisaatiot luovat joskus liikaa yksityiskohtaisia rooleja, mikä lisää hallinnan monimutkaisuutta ja heikentää skaalautuvuuden hyötyä.

Sääntöpohjainen pääsynhallinta

Sääntöpohjainen pääsynhallinta (jota ei pidä sekoittaa RBAC:hen) myöntää tai estää käyttöoikeuden ehtojoukon perusteella eikä pelkästään identiteetin tai roolin perusteella. Palomuurisäännöt ovat klassinen esimerkki: ”Salli TCP-liikenne verkosta 192.168.1.0/24 mihin tahansa kohteeseen portissa 443. Estä kaikki muu liikenne.” Käyttöoikeus arvioidaan sääntöjen mukaisessa järjestyksessä, kunnes osuma löytyy. Sääntöpohjainen hallinta yhdistetään usein muihin malleihin: MAC käyttää turvaluokituksia sääntöinä, ja attribuuttipohjainen pääsynhallinta (ABAC) laajentaa sääntöpohjaista logiikkaa arvioimalla useita attribuutteja (käyttäjän osasto, laitetyyppi, vuorokaudenaika ja resurssin luokitus) samanaikaisesti yksityiskohtaisten päätösten tekemiseksi.

# Rule-based access control: iptables firewall rules
# Rules are evaluated in order; first match wins

# Allow established/related connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow specific source IP to SSH
iptables -A INPUT -s 10.0.0.100 -p tcp --dport 22 -j ACCEPT

# Allow HTTPS from anywhere
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Default deny all other inbound
iptables -A INPUT -j DROP

Attribuuttipohjainen pääsynhallinta (ABAC)

ABAC (attribuuttipohjainen pääsynhallinta) on joustavin ja yksityiskohtaisin pääsynhallintamalli. Käyttöoikeuspäätöksissä arvioidaan samanaikaisesti useita attribuutteja: subjektin attribuutit (käyttäjän osasto, turvaluokitus ja sijainti), objektin attribuutit (tietojen luokitus, omistava osasto ja säilytysmerkintä), ympäristöattribuutit (vuorokaudenaika, laitetyyppi ja verkkosijainti) sekä toimintoattribuutit (luku, kirjoitus ja poisto). Käytäntö voi esimerkiksi määrätä: ”Salli käyttöoikeus, jos user.department = Finance AND resource.classification = Internal AND device.type = corporate AND time.hour BETWEEN 8 AND 18.” ABAC mahdollistaa zero trust -käytäntöihin perustuvat päätökset, ja sitä toteuttavat esimerkiksi XACML sekä pilvipalveluiden IAM-käytäntömoottorit.

Sopivan mallin valinta

Sopiva pääsynhallintamalli riippuu turvallisuusvaatimuksista ja organisaation toimintaympäristöstä. DAC: sopii henkilökohtaiseen tietojenkäsittelyyn ja pienille tiimeille, joissa helppokäyttöisyys asetetaan tiukan hallinnan edelle. MAC: tarvitaan salaisiksi luokitelluissa viranomais- ja sotilasympäristöissä, joissa tiedot on eristettävä tiukasti toisistaan. RBAC: ihanteellinen yrityksille, joissa hallinnollinen skaalautuvuus on kriittistä ja roolit vastaavat selkeästi työtehtäviä. ABAC: sopii pilviympäristöihin ja zero trust -arkkitehtuureihin, joissa tarvitaan kontekstitietoisia ja yksityiskohtaisia käytäntöjä. Käytännössä useimmat organisaatiot käyttävät yhdistelmää: RBAC toimii perustana ja ABAC:ia käytetään kontekstiin perustuvissa käyttöoikeuspäätöksissä.

Käyttöoikeusluettelot (ACL:t)

Käyttöoikeusmallista riippumatta käyttöoikeusluettelot (ACL:t) ovat yleisin tekninen toteutusmekanismi. Resurssiin liitetty ACL määrittää, mitkä toimijat voivat suorittaa mitäkin toimintoja. Tiedostojärjestelmien ACL:t (Windows NTFS, Linuxin POSIX ACL:t) hallitsevat tiedostojen ja hakemistojen käyttöoikeuksia. Verkon ACL:t hallitsevat liikenteen kulkua reititin- tai pilviverkkotasolla. Tietokantojen ACL:t hallitsevat taulujen ja rivitason käyttöoikeuksia. ACL:t voivat toteuttaa minkä tahansa käsitellyistä malleista: tiedoston ACL toteuttaa DAC-mallin, kun omistaja hallitsee sitä; turvajärjestelmän ACL toteuttaa MAC-mallin, kun tunnisteet määrittävät merkinnät; sovelluksen ACL toteuttaa RBAC-mallin, kun merkinnöissä viitataan rooleihin.

# Windows NTFS ACL example using icacls
# View current ACL on a folder
icacls 'C:\Sensitive\HR_Data'
# BUILTIN\Administrators:(OI)(CI)(F)  <- Full control
# CONTOSO\HR_Team:(OI)(CI)(RX)        <- Read and Execute

# Grant specific permissions to HR Managers group
icacls 'C:\Sensitive\HR_Data' /grant 'CONTOSO\HR_Managers:(OI)(CI)(M)'
# (OI)=Object Inherit, (CI)=Container Inherit, (M)=Modify

# Remove access for a former contractor
icacls 'C:\Sensitive\HR_Data' /remove 'CONTOSO\contractors'

Pikatarkistus

Testatkaa tämän oppitunnin CompTIA Security+ (SY0-701) -käsitteiden ymmärtämistä.

Oppitunnin yhteenveto

Tässä oppitunnissa opitte, että DAC antaa resurssien omistajille mahdollisuuden hallita käyttöoikeuksia (joustava mutta riskialtis); MAC käyttää järjestelmän pakottamia turvatunnisteita (tiukka ja käytössä turvaluokitelluissa ympäristöissä); RBAC määrittää käyttöoikeudet rooleille, mikä mahdollistaa skaalautuvuuden yrityksissä; ja ABAC arvioi useita attribuutteja hienojakoisia zero trust -päätöksiä varten. Seuraavaksi käsittelemme federoitua identiteettiä: SAML:ää, OAuthia ja OpenID Connectia.

Aloita maksutta

Opi Security+ Academy tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Valtuutusmallit: RBAC, MAC ja DAC” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Security+ Academy-oppimispolun 3 oppituntia, myös oppitunnin “Valtuutusmallit: RBAC, MAC ja DAC”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Security+ Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Valtuutusmallit: RBAC, MAC ja DAC”?

Vertailkaa roolipohjaisen, pakollisen ja harkinnanvaraisen pääsynhallinnan malleja ja oppikaa, milloin kukin sopii yritys- ja viranomaisympäristöihin. Harjoittelet Security+ Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Security+ Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Security+ Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Valtuutusmallit: RBAC, MAC ja DAC”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Security+ Academy-oppitunnilla?

Kyllä. Jokainen Security+ Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Salasanakäytännöt ja monivaiheinen tunnistautuminen
  2. Biometria ja tunnistautuminen tokeneilla
  3. Valtuutusmallit: RBAC, MAC ja DAC
  4. Liittoutunut identiteetti: SAML, OAuth ja OpenID Connect
← Takaisin: Security+ Academy