Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Whitepapers
  • Opret bruger
  • Log ind
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?
Se kommentarer (6)
Emner Udviklingsværktøjer, Open source, Sikkerhedssoftware

Pebret Sikkerhed

Af Poul-Henning Kamp 12. august 2010 kl. 12:06

Da jeg var purk, var min mor dagplejermor og derfor havde huset et "legerum" hvor hele legokassen blev tømt ud i ferier og weekender.

En mandag efter en sådan extravaganza, kom en af børnene ud i køkkenet til min mor med en stor gul LegoTeknik konstruktion og overrakte den med ordende "Den ligner noget jeg ikke skal lege med".

Denne tankegang er stadig dybt fremmed for operativsystemer og programmer, selvom "Priviledge Separation" bestemt ikke er noget nyt.

Bortset fra nogle få centrale programmer med OpenSSHd og Googles Chromium som poster-boys, er princippet ukendt i vide kredse.

Ikke mindst fordi det er utroligt svært at implementere separationen, den "sandboxing" som Googles Chromium browser laver fylder f.eks 22,350 linier kode i Windows, med avendelse af Discretionarly Access Control og ACL's og sikrer faktisk ikke ret godt.

Men der er håb forude.

Min gode ven og lusepuster, Robert Watson, har i nogle år arbejdet på et projekt der hedder "Capsicum" som udvider POSIX modellen med en "capability" facilitet.

Med Capsicum, kan Chromiums sandboxe laves med blot 100 linier kode under FreeBSD og det lukker alle ladeportene: Filsystem, IPC, net osv.

Dem der har oplevet Robert Watson holde foredrag ved at man virkelig får noget for pengene, men desværre er det stort set krop umuligt at læse hans slides uden lydsporet, hvis man ikke på forhånd ved hvad han taler om. Men der er et par guldkorn i hans slides fra USENIX Security Symposium denne uge der er værd at checke.

Hatten af for Robert: Det er den slags nytænkning der skal til.

phk

Send Tweet
Udskriv
Billede af Poul-Henning KampOm Poul-Henning Kamp

Selvstændig systemprogrammør, kernekoder, Varnish-forfatter, data-arkæolog og brokkehoved uden særlig portefølje.

Follow @bsdphk

Kommentarer (6)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Henrik Brix Andersen 12. aug. 2010 - 23.49
 
100 linjer?

Hvor mange LoC fylder Capsicum så?

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Jesper Louis Andersen 13. aug. 2010 - 10.40
 
Det er rart at se ideerne fra EROS / plan9 i FreeBSD

Capability-orienteret sikkerhed er noget jeg har været en fortaler for gennem et par år. Desværre har det ikke, indtil nu, rigtigt været muligt at få i klassiske operativsystemer. Men det har R. Watson nu lavet om på. Tak for det!

Privsep bliver også benyttet i mange andre systemer end lige dem du nævner. Qmail og Postfix. Xorg, OpenNTPd, tcpdump, etc på OpenBSD.

For dem der ikke kender til ideen: En capability er en "nøgle/token" til at kunne gøre noget i systemet. De kan ikke forfalskes, selv om man skulle prøve. Hvis f.eks. en webserver skal have lov til at kunne kommunikere på en given port, så kan man sende den capability til ham fra operativsystemet. Dermed har han lov til at gøre dette, og kun dette med den capability. Andre kan ikke få adgang da de ikke sidder med den token som giver adgang og ikke kan forfalske sig til den.

Det kan vises, at capabilities er stærkere end den traditionelle UNIX-sikkerhedsmodel. Man kan f.eks. ende op med et system hvor selv superbrugeren ikke har adgang til dele af systemet - og det uden de helt store krumspring.

Ikke helt tilfældigt, så har sprog som Google Go implicit support for capabilities i dets kanalprimitiv. Det skyldes formentlig plan9-historikken blandt Go's forfattere. Erlang har også capabilities: Process ID'er og Referencer er non-forgeable i Erlang. Men for begge sprogs vedkommende handler det ikke i så høj grad om at sikre systemet som det handler om at en programmør ikke ved et uheld gør noget utilsigtet.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Anonym (ikke efterprøvet) 13. aug. 2010 - 11.21
 
Ser rigtigt interessant ud

Det kunne være interessant at forsøge at mappe det ud fra et personid perspektiv.

Umiddelbart ville jeg mene at det er i fuld overenstemmelse med det jeg ville kalde kontekstuel identitet og kontekst isolering.

Det kan langt hen ad vejen være ækvivalent om du definerer en kontekst ud fra den viden som konteksten indeholder eller ud fra de implicitte rettigheder til noget udenfor kontekst, fordi rettighederne i praksis inddrage viden i kontekst.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 13. aug. 2010 - 11.37
 
Re: Det er rart at se ideerne fra EROS / plan9 i FreeBSD
Man kan f.eks. ende op med et system hvor selv superbrugeren ikke har adgang til dele af systemet - og det uden de helt store krumspring.

Ja, det hedder "jail" :-)

Men lige som den privsep der anvendes andre steder, er det en utrolig grovkornet form for capabilities der slet ikke kan udtrykke de nuancer der er behov for.

@Henrik: Robert har lovet at et nyt patch imod FreeBSD 8.1 vil være klart inden længe, det giver det definitive svar på dit spørgsmål. Hold øje med Capsicum siden.

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Martin Hundebøll 13. aug. 2010 - 17.30
 
Alip's Sydbox

Nu er jeg ikke så meget inde i sandboxing, men er der (og i så fald: hvad er?) forskel på det PHK beskriver og så Sydbox[1], som Ali Polatel udvikler til exherbo?

[1] http://alip.github.com/2010/05/07/pinktrace/

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 13. aug. 2010 - 18.51
 
Re: Alip's Sydbox

Jeg kender ikke Sydbox, men efter et hurtigt kig kan jeg ikke se hvorledes de undgår "the usual replacement race" hullet.

Forestil dig et open("/dev/null"...) kald.

Så snart checket har clear'et dig for adgang til /dev/null har du en anden tråd der skifter pointeren ud med en der peger på "/dev/mem" inden kernen når at åbne filen.

Man kan ikke implementere "layered security" hvis man ikke kan sikre argumenterne der arbejdes på og derfor skal man enten wrappe systemkaldene helt, eller lade være at prøve.

Men den rigtige person at spørge er Robert Watson, jeg er bare observatør på sidelinien.

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

Meego-afløseren Tizen klar til at tage kampen op med Android

Udgivet 23. maj 16.01Opdateret 23. maj 16.01

Massiv logning af danskernes internetbrug - men politiet bruger kun IP-adressen

Udgivet 23. maj 15.22Opdateret 23. maj 15.22

198 IBM-medarbejdere fritstillet med øjeblikkelig virkning

Udgivet 23. maj 14.28Opdateret 23. maj 15.10

Mystisk Project X afsløret: Rent flashlager giver fænomenal IOPS-ydelse

Udgivet 23. maj 14.19Opdateret 23. maj 14.19

Region sparer licens-millioner på at lukke ”Grønt System”

Udgivet 23. maj 13.22Opdateret 23. maj 13.22

Flere it-nyheder »

Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Seneste debat

  1. HTML5 – det nye sort?

    12 comments.
    Last update 1 time 24 minutter
    Skrevet af Kristian Dalgård
  2. Netflix bruger sit eget API 42 milliarder gange - om måneden

    2 comments.
    Last update 2 timer 1 minut
    Skrevet af Martin Jensen
  3. Dart: Dynamisk Statisk Programmering

    20 comments.
    Last update 3 timer 32 minutter
    Skrevet af Lars Bjerregaard
  4. Microsoft fjerner umoderne bling-effekter i Windows 8

    49 comments.
    Last update 3 timer 46 minutter
    Skrevet af Jesper Lund Stocholm
  5. NemID sender Mac-styresystem fra 2009 ud i kulden

    31 comments.
    Last update 3 timer 51 minutter
    Skrevet af Jan Peter Bagge
  6. Clojure-opfinder fupper publikum med falske kodefakta

    2 comments.
    Last update 3 timer 57 minutter
    Skrevet af Allan Ebdrup
  7. Skulle du aldrig lave en WP app?

    33 comments.
    Last update 3 timer 59 minutter
    Skrevet af Lars Bjerregaard
  8. Meego-afløseren Tizen klar til at tage kampen op med Android

    3 comments.
    Last update 5 timer 50 minutter
    Skrevet af Bjørn Froberg

Mere debat »

It-virksomheder

Ciklum
|
Timelog
|
Omada
|
Computerfriend.DK
|
Scanarmor
|
Biwise
|
Sharkcell
|
Systematic
|
ProData Consult
|
Avenida
|
Rehfeld
|
Bownty ApS
 

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Download Windows 8
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X Mountain Lion
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu 11.10
  • Virtualisering
  • Windows 8
  • Windows Phone 7
  • iOS 5
  • iPhone 4S

Tjenester

  • Android-app
  • iPhone-app
  • RSS-feeds
Følg @version2dk
Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Skelbækgade 4 1717 København V
  • Tlf. work 33265300