SELinux – Linux på MAC MAC på Linux Lars Strand 7. mai 2007.

Slides:



Advertisements
Liknende presentasjoner
Vortex Ny rettighetsmodell og ny funksjonalitet. Rettigheter i dag •Les: Brukere eller grupper som kan lese ressursen •Skriv: Brukere eller grupper som.
Advertisements

Unix Amir Maqbool Ahmed
1 Litt om OO og programmering Arne Maus. 2 OO og Java (og C++, C#)  Arven fra Simula  Programstruktur i Java  Generering av objekter  Beskyttelse.
Begrenset redigering “Klubbjournalister” For web ansvarlig klubb.
Objektorientert programmering i PHP del 2
Tips og triks Strukturering av større applikasjoner Automatiserte tester. Kristian Johannessen
Unix Eller hacking 101. Hva er Unix? Unix er et operativsystem = et stort og komplisert program som styrer en datamaskin. Mange varianter: Linux, Solaris,
IS-102 Klassedefinisjoner
Databasehåndtering med MySQL
© Lars-Erik Kindblad.  Et platformuavhengig verktøy for å automatisere build prosesser.  Støttes og drives av Apache Software Foundation.  Kommer ferdig.
Aksess kontroll None shall pass.
In113 filsystem, admin. filsystem legges ut på partisjon eller volum består av –kontrollblokk (overordnet, statistikk) –datadel (kataloger og filer/innhold)
Capabilities i Trustix Secure Linux
Jæger: Robuste og sikre systemer INF150 Programmering torsdag 31.8 Kapittel 3: Grunnlag for programmering i Visual Basic.
Høgskolen i Oslo Web-programmering Feilhåndtering i PHP.
Publisering på verdensveven Kursdag 1 VÅFF, våren 2002.
PARLAY/OSA Referanser: Referanser Foredraget er i all hovedsak basert på to artikler. Disse kan finnes på:
© UNIVERSITETETS SENTER FOR INFORMASJONSTEKNOLOGI UNIVERSITETET I OSLO USIT Side 1 Installering av Windows XP med PXE (netboot) Del 1 – forhåndskonfigurering.
RBA ved System Center Configuration Manager 2012 Ernesto Gonzalez USIT - Gruppe for Windowsdrift.
Kerberos System som kan brukes til å sette opp en sikker forbindelse med en server Bruker delte hemmelige nøkler Basert på Needham-Schroeder autentifikasjonsprotokoll.
Jasmina Hodzic, Gruppe for grunntjenester, USIT POLS, Cerebrum og Ephorte synkronisering Registrering av brukere i Ephorte ved hjelp av automatiske oppdateringsrutiner.
Repetisjon Ole Christian Rynning. Administrasjon over konto Endre passord Classfronter
UiO Programkiosk: Ny portal og tilgang fra Mac og Linux
Operativsystem IKT for lærere 15. november Hvorfor lære om dette? Kanskje den mest brukte programvaren i løpet av en (arbeids)dag Forskjellige operativsystem.
Introduksjon.  ITIL står for Information Technology Infrastructure Library.  Det er mye snakk om ITIL i næringslivet for tiden, og veldig mange bedrifter.
En mal til presentasjoner som bruker klikkere: Slik brukes klikkere For spørsmål, ros eller ros kontakt: Gerald Torgersen
Tema Programmer som vil lure deg Personer som vil lure deg Statistikker Hva du bør tenke på Det er hjelp å få!
 Bygd opp på samme måte som planteceller, men med noen forskjeller  Har ikke cellevegg  Har ikke saftrom  Har ikke grønnkorn  Er det andre vesentlige.
R Å D G I V N I N G U T V I K L I N G D R I F T K U R S S U P P O R T P R O D U K T E R SELinux – kort intro Lars Strand 18. oktober 2007.
M&L2 Kap. 7, del 1 Prisstrategier Oslo, januar 2010.
Prosesser ● En prosess er ett program som kjøre ● Alle prosesser har ● En katalog i /proc ● En ID ● En Forelder (ikke init) ● Prosess eier (Bruker ID)
Praktisk Linux Grunnleggende skall kommandoer Irene Ludvigsen Husa $ls -l $grep -i Olsen adresseliste.txt | less #!/bin/sh $echo `ls` $chmod 755.
Linpro AS Ledende på Linux og åpen programvare. R Å D G I V N I N G U T V I K L I N G D R I F T K U R S S U P P O R T P R O D U K T E R Neste generasjons.
Linux distribusjoner ● ● Ubuntu (kommer fra debian) ● Fedora.
Arbeidsplassutvikling [Sett inn navn på arbeidsplassen og dato]
Nyttige kommandoer $id ● Informasjon om bla. brukers medlemskap $uname -a ● Informasjon om operativsystem, kjerne versjon osv. $uptime ● Oppetid for maskinen.
Kom i gang med Python Pål Hellesnes SYSTEMUTVIKLER
Nyttige kommandoer $df -h Viser diskbruk $lspci Lister pci kortene $cd
Trond H. Amundsen Gruppe for serverdrift, USIT, UiO
Presentasjon av boken ”organisering i en verden i bevegelse”
Transportsystemer Kort introduksjon til modulen.
Konkurranse grupper Januar 2017
3 STRESSMESTRINGSTIPS FOR LEDERE
Innføring i 5.0 Av Morten Pedersen HiT.
Studenter og IT Semesterstart høsten 1999.
Setningsanalyse og tekstsammenbindere
UBOs frokostmøte 12. juni 2015 Are Gulbrandsen & Dan Michael O. Heggø
Gruppe 44: Håkon Andre Sylte Garnes Tobias Hallén
IS-102 Interaksjon med objekter
Kurs i oppbygging av Urædd sin hjemmeside
Cake q1 HåndFRIE Operasjoner Desember 2017
Brukerveiledning til programmering av LEGO Mindstorm NXT-roboter
Psykisk helse ”..en tilstand av velbefinnende, hvor den enkelte kan få bruke sine evner, kan håndtere utfordringer i hverdagen, kan arbeide godt og klarer.
Produksjonssetting i Cerebrum
Transportsystemer Kort introduksjon til modulen.
HVA GJØR KIRKENS NØDHJELP?
Lær å logge inn til offentlige tjenester med BankID på mobil
LIONS CLUB KOLSÅS - RYKKINN
1. Innledende påstander om organisasjoner
Bevegelsesverb Forelesning i RUS mars 2006.
StiNe – Studieinformasjon på nett
RFID på Deichmanske bibliotek [Petter gjør foil 1-10]
Digitalt doktorgradsopptak – oktober 2018
Klubbutvikling oppfølging
Segmentering og målgruppetenkning
Hva mener Arkivverket? 19. november 2018 Fagdirektør Kjetil Reithaug
Dynamisk DNS registrering for Windows 10
Inkluderende bruk av digitale hjelpemidler.
- Endelig forslag til ønsketsituasjon
Utskrift av presentasjonen:

SELinux – Linux på MAC MAC på Linux Lars Strand 7. mai 2007

FBI/CSI rapport (2006) CSI = Computer Security Institute. Hvorfor generell nedadgående? - mer bevissthet rundt sikkerhet - mer investeringer brukt på sikkerhet De som øker er: - tap fra laptop og/eller mobile enheter - telecommunication fraud - web-site defacement – aktuelt for SELinux! 12.10.2017

“Patche-jag” Oppdaterings-syklus: Sårbarhet oppdaget! Forfatter tetter hullet og publiserer en patch for sårbarheten. Bruker laster ned, tester og installerer patch. Tiden fra punkt 1 til 3 må gå raskest mulig. Største problem er nok punkt 3. Mer kjedelig problem: Tiden mellom 1 og 2. “Zero-day” - sårbarhet og angrepsmetode/verktøy publisert/tilgjenglig samme dag. 5% zero-day-angrep 2003. Hvordan beskytte? Nevne Kevin Mitnick som utnyttet systemers treige oppdateringssyklus – Hvor publiserte sårbarheter ble tettet og behørig kommentert i kildekoden. Zero-day vulnerability = sårbarhet hvor det ikke finnes noe patch. Dvs. tiden mellom 1 og 2. Hvordan beskytte – sandbox (chroot), brannvegg, ids etc. Avgjøre aksesskontroll! 12.10.2017

Aksesskontroll Sikkerhetspolicy kan benytte to typer aksesskontroll (alene eller i kombo): 1. Aksesskontroll avgjøres av eier (bruker) av objektet (fil/prosessen). 2. Aksesskontroll avgjøres av OSet. Kanskje kan SELinux være enda mer proaktiv. 12.10.2017

Discretionary access control Aksess bestemmes av eier av objektet. Eks: Tilgang til dagbok. Eks: Filer under $HOME. Definisjon: “If an individual user can set an access control mechanism to allow or deny access to an object, that mechanism is a discretionary access control (DAC), also called identity-based access control (IBAC).” -- M. Bishop, computer security (2003). DAC = “Subjektbestemt aksess-/tilgangskontroll”. Et barn skriver dagbok. Da er det barnet (subjektet) som avgjør hvem som skal få lov til å lese i dagboken og ikke. Barnets mor får lov til å lese i dagboken, men ingen andre. Dette er DAC, siden det er subjektet (morens) identitets som avgjør tilgang til objektet (dagboken). Når jeg leser mailen min i mutt. Mutt kan lese mine SSH-filer, slette alle mine filer på hjemmeområdet! 12.10.2017

Mandatory access control Aksess bestemmes av en overordnet policy. Policy kan ikke overstyres av subjekt (eier). Eks: Sjekk av vandel. Definisjon: “When a system mechanism controls access to and an individual user cannot alter that access, that control is a mandatory access control (MAC), occasionally called a rule-based access control.” -- M. Bishop, computer security (2003). MAC = “Obligatorisk/overordnet aksesskontroll”. Eks med apache. Hvis apache blir kompromittert, kan det være svært begrenset en angriper har mulighet til å få utført. Da det er bestemt at apache bare har lov til å aksessere de og de resursser. MAC kan beskytte mot dårlig skrevet applikasjoner. 12.10.2017

Tradisjonell UNIX (og Linux) Linux = DAC. Tradisjonell aksesskontroll. Bruker X har kontroll over alle sine filer. Eksekveres 'ls', kjøres den med samme rettigheter som eksekveringen av 'OpenOffice'. Grov inndeling: Superbruker (uid=0) og andre brukere. MAC medfører gjerne en instramming. Ofte mer granularitet. DAC er det vi alle er kjent med i dag. MAC skifter fokus for aksesskontroll/snur det på hodet. Istedefor subjektet selv som bestemmer, er det systemet selv som bestemmer. 12.10.2017 H e i * F ø l g m e d l i t t * I k k e s i t t å l e s h e r n e d e!

Principle of least privilege Mutt – lese mine ssh-nøkler. Slette alle mine filer. Mutt = mailleser. Hva trenger den av rettigheter? Begrense rettigheter slik at en prosess fungerer normalt, og nekte alt annet. Definisjon: "The principle of least privilege states that a subject should be given only those privileges that it need in order to complete its task." -- M. Bishop, computer security (2003). Slik begrensing av rettigheter kalles “principle of least privilege”. 12.10.2017

SELinux Security-Enhanced Linux = SELinux. Opprinnlig utviklet av NSA. Overrasket alle ved å gjøre SELinux open source. I det offisielle kjernetreet fra 2.6. Benytter “Linux Security Modules” (LSM). I dag: Fedora og Redhat. Runner-up: Debian, Gentoo, (Ubuntu). NSA – antakelig største ansamling matematikere i verden. 12.10.2017

Sikkerhetsmodell Må skille mellom: Subjekt programmer prosesser Objekt (“security classes”) filer, hard- og softlinker, kataloger, sockets, ... filsystemer, prosesser, ... Handling Lese, skrive, legge til, eksekvere, låse, ... Som i gramatikk operer subjekt på objekter. Forklare skille mellom programmer og prosesser. Prosess er et eksekverende program som har en state osv. Merk at prosess både kan være subjekt og objekt for handlinger. “Security classes of objects” 12.10.2017

Sikkerhetsmodell Eks: Prosess 31337 lov å lese /etc/passwd? Først sjekke tradisjonell DAC. Nekter DAC = ikke tillatt. Hvis DAC = ok, sjekker SELinux. Nøkkelegenskap = supplerer tradisjonell DAC med MAC: 12.10.2017

Sikkerhetsmodell Subjekt og objekter grupperes i ulike klasser. Eks: Alt som har med apache i en “klasse”/”gruppe”. Konstrueres vha. “security attributes”. Fire attributter: brukeridentitet rolle type / domain nivå og/eller kategori Apache: * binærfilene * html-filene * logg-filer Bygd opp av: * Brukere * RBAC * TE 12.10.2017

1. Brukere SELinux benytter egne brukeridenter på: Subjekt (prosess): Brukeridenten som kjører prosessen. Objekt (fil/program): Eier av filen. Separat fra Linux' DAC. Mapper “vanlige” brukere til SELinux'. Vanligvis bare en håndfull (SELinux-) brukere: user_u: Vanlige brukere. system_u: Prosesser startet (ved boot). root: Administrator (fra konsollet). Legg merke til *_u notasjon. Brukeren 'root' er noe som henger igjen fra gammelt av. Blir antakelig faset ut i fremtiden. Kompilert inn i policyen. 12.10.2017

2. Rolle Brukere kan tre inn i ulike roller. Rettigheter gis ikke til roller. Rollen gir “tilgang” til ulike typer / domains. Benyttes for prosesser, for filer er den alltid object_r. Legg merke til *_r notasjon. Rettigheter gis til de ulike rollene i Role Based Access Control (RBAC). 12.10.2017

3. Type / domain Type, også kalt domain, er “primærattributten”. 'type' for filobjekter. 'domain' for prosesser. Få brukere/roller - flere titalls domains. Oppretter sandkasser som begrenser aksess. Type Enforcement (TE) “Domain transition” - regler for bytte av “sandkasser”: Ny prosess. Arver den parent domain? eks: initrc_exec_t til httpd_t Ny fil. Arver den type? Legg merke til *_t notasjon. Filkopiering: Filen får samme type som den blir kopiert til. Filflytting: Filen bevarer opprinnlig type. Mer om dette senere. 12.10.2017

3. Type / domain 12.10.2017

4. Kategori / nivå Sette kategori og/eller nivå (horisontalt / vertikalt). Relativt “nytt” felt. Introdusert i RHEL5. Eks kategori: Driftsavdelingen, Administrasjonen. Eks nivå: Begrenset, hemmlig, strengt hemmlig. Eks nivå/kategori: Hemmlig/Hæren er forskjellig fra Hemmlig/Marinen. 12.10.2017

Security context Oppsummert: <bruker>:<rolle>:<type>:<kategori/nivå> Eks: system_u:system_r:unconfined_t:s0:c0 Disse attributtene danner en “security context”: 'Types' for filobjekter og 'domains' for prosesser. Roller benyttes for å begrense hvilke domains som kan aksesseres. Brukeridenter begrenser hvilke roller som kan benyttes. 12.10.2017 D u ! * L e s e r d u h e r i g j e n ? * L ø f t b l i k k e t

SELinux – avgjørelsesprosess Fokusere på policy. At det kan være ulik policy. 12.10.2017

SELinux komponenter Kernel SELinux bibliotek 'libselinux' (ls, ps, id, ..) SELinux administrasjonsverktøy Policy Er endel av standard kjernetreet i dag. Begynner vi med det siste. 12.10.2017

SELinux policy /etc/selinux/POLICYTYPE/* Skrevet med M4. Kompilert til binærformat. Lastes tidlig i boot-prosessen (init). Modifisert policy kan lastes i realtime: cd /etc/selinux/targeted/src/policy/ && make reload Modulær: semodule -l semodule -i modul.pp 12.10.2017

Konfig-filer Oppførsel (settes i /etc/selinux/config): enforcing permissive disabled Ulike policy /etc/selinux/POLICYTYPE/policy/ targeted (1.1M) strict (2.5M) mls (2.2M) permissive – printer warnings, men ingen enforce disabled – helt disabled i kjernen. 12.10.2017

Targeted policy Et sett med daemoner omfavnet av policy (RHEL4): dhcpd, apache, named, nscd, ntpd, portmap, squid,.. Dvs. disse har skreddersydd policy. Resten har “full aksess”. Puttet i en “unconfined” domain. 'unconfined_t' eller 'initrc_t' Samme aksess som om SELinux var skrudd av. Policy enforcement kan skrus av for hver daemon. Ingen fokus på SELinux-bruker og -rolle i targeted. Ikke noe poeng å legge til SELinux-brukere. 12.10.2017

Det er denne du vil bruke. Targeted policy Det er denne du vil bruke. 12.10.2017

Administrasjon sestatus – viser SELinux status. /selinux – egen selinux-statuskatalog (lik /proc) “SELinux-opsjonen” = “Z” Viser security context. Eks: $ id -Z user_u:system_r:unconfined_t $ ps -Z LABEL PID TTY TIME CMD user_u:system_r:unconfined_t 11051 pts/0 00:00:00 bash user_u:system_r:unconfined_t 11509 pts/0 00:00:00 ps SELinux bruker: users_u SELinux rolle: system_r SELinux type: unconfined_t 12.10.2017

Filhåndtering Endre security context på filer: chcon - for endring av security context (lik chmod) restorecon/fixfiles – sjekk og fiks av security context i henhold til policy. touch /.autorelabel && reboot (anbefalt!) 'tar --selinux' – bevarer security context. Finne filer med bestemt security context: find / -context system_u:object_r:net_conf_t Kanskje vise i terminal. Lage en fil under /etc, vise at den ikke får samme security context som de andre. /etc/selinux/targeted/contexts/files/file_contexts fixfiles et shell-wrapper for setfiles og restorecon 12.10.2017

Variabler Kan tune policy uten å endre, bygge og lastes på nytt. Kan “skru av SELinux” for utvalgte daemons. Mer presist: Transition til spesifikk domain droppes. Dvs. prosessen forblir i en unconfined domain. Definert: /etc/selinux/targeted/booleans Gjenspeilt: /selinux/booleans/* 'getsebool -a' – for å liste. 'setsebool -P VARIABEL' – for å sette. GUI = system-config-selinux Ser en trend i at SELinux blir mer modulær og mer variabler som kan tunes. Samt verktøy for å endre blir bedre. # echo "1 1" > /selinux/booleans/ntpd_disable_trans # echo 1 > /selinux/commit_pending_bools Vise ved eksempel: Starte ntpd – vise Z Endre trans Restarte ntpd – vise Z Vise system-config-selinux 12.10.2017

Utfordringer NFS / Samba. Løsning: Setter én security context ved mount: mount -o context=user_u:object_r:user_home_t .. Brukervennlighet: “Det fungerer ikke! Har satt riktig eierskap!” *Sjekke logger*: “May 4 17:54:24 valhall5 kernel: audit(1178466795.750:63): avc: denied { read } for pid=1038 comm="setfiles" name="2" dev=proc ino=131074 scontext=system_u:system_r:setfiles_t:s0 tcontext=system_u:system_r:kernel_t:s0 tclass=dir” “WTF!?!?” (Skrur av SELinux) RHEL5: /var/log/audit/* /var/log/messages Egen selinux-troubelshooter. 12.10.2017

SELinux fremover Økt omfavnelse. dvs. mer skal beskyttes av policy. Økt fokus på brukervennlighet! flere (grafiske) verktøy. RHEL legger grunnlaget for videre sikkerhetsmodellering. MLS og MCS. For å oppnå sertifiseringer (EAL4+, LSPP, ..) Lik teknologi (en konkurrent?): AppArmor. 12.10.2017