Taggat med: ProPolice

Test av supersäkra operativsystemet OpenBSD

OpenBSD 5.9

Skärmdump från OpenBSD 5.9

För några dagar sedan så släpptes en ny version av det säkra operativsystemet OpenBSD. Denna nya 5.9-version har en ett antal intressanta nya säkerhetsfunktioner såsom pledge. Pledge är en ny typ av sandlåde-liknande funktionalitet som begränsar vad enskilda program får och inte får göra.

Pledge är enkelt att implementera i sitt program och följer ett regelverk som berättar om programmet får öppna nätverkskommunikation, skriva/läsa filer osv. Kontrollen sker sedan i kerneln att programmet håller sig inom ramarna.

Viktigt att notera är också att den nya pledge-funktionen inte är någon silverkula som löser alla problem. Men som många andra saker som OpenBSD tar till sig så höjer det säkerheten i det stora hela tillsammans med tekniker såsom W^X, ASLR och ProPolice.

För att demonstrera hur enkelt det är så titta på följande kodrader som begränsar vad kommandot ping får göra:

if (options & F_NUMERIC) {
  if (pledge("stdio inet", NULL) == -1)
     err(1, "pledge");
 } else {
  if (pledge("stdio inet dns", NULL) == -1)
     err(1, "pledge");
 }

Första argumentet till pledge()-anropet är en lista med tillåta anrop, se man-sidan för mer info om dessa:

  • OpenBSD 59 drwxorxstdio – Grundläggande systemanrop (syscalls) tillåts. Såsom close, dup, mmap, pipe osv.
  • inet – Tillåter nätverkskommunikation med anrop såsom socket, listen, bind, getpeername.
  • dns – Tämligen självförklarande. behövs enbart om användaren ej specificerar argumentet -n

Det var väl enkelt? Än så länge använder sig 453 av 707 program pledge, av OpenBSD:s grundinstallerade program. Även så använder sig använder 14 st externa program av pledge såsom mutt, chrome och i3.

Kan även rekommendera följande presentation av Theo de Raadt som förklarar pledge närmare: openbsd.org/papers/hackfest2015-pledge/

Jag testar OpenBSD under VirtualBox och det tar under 10 minuter att ladda hem samt komma igång med operativsystemet. Installationsförfarandet har blivit avsevärt mycket smidigare på senare år med exempelvis automatiskt partitionslayout.

Här kan du ladda hem install59.iso som du bränner ut eller startar upp din virtuella maskin med: ftp.eu.openbsd.org/pub/OpenBSD/5.9/i386/install59.iso

Jag har även skrivit tidigare om att OpenBSD ersatt sudo med doas, läs här.

Andra intressanta funktioner i denna nya 5.9-version är:

  • ESP i IPSec stödjer Chacha20-Poly1305
  • W^X är nu helt forcerat i i386-kerneln
  • Säkerhetsfixar till LibreSSL, OpenSSH och OpenSMTPD
  • Miljövariabeln HOSTALIASES är borttaget från libc som säkerhetsåtgärd
  • Xen domU stöd så att OpenBSD lirar på Amazon EC2

Avslutningsvis så kan följande bild representera OpenBSD-utvecklarnas arbete med pledge (enligt Theo de Raadt själv):

pledge theo de raadt