• No results found

Een SELinux-module voor CGI scriptsEen SELinux-module voor CGI scripts SELinux

N/A
N/A
Protected

Academic year: 2021

Share "Een SELinux-module voor CGI scriptsEen SELinux-module voor CGI scripts SELinux"

Copied!
14
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

SELinux

Een SELinux-module voor CGI scripts Een SELinux-module voor CGI scripts

Marcel Nijenhof

marceln@pion.xs4all.nl 15 Mei 2008

Voorjaarsconferentie nluug

(2)

Wat is selinux

Ontwikkeld door de nsa

Eigen os flask

Geport na linux

Beveiligings model

Regels vast gelegd

Afdwingen regels

Relatie tussen

processen en objecten

Domeinen en typen

(3)

Voorbeeld: Aanpassen paswoord

(4)

Aanpassingen

Extended attributen

De “-Z” vlag (ls, ps, ..)

Logging

getenforce/setenforce

chcon/restorecon

Semange

Setsebool

Semodule

audit2allow

(5)

Cgips

Runcmd() {

echo "<h2>$@<h2>

echo "<pre>"

$@

echo "<pre>"

 }

runcmd getenforce runcmd getsebool \ 

httpd_enable_cgi runcmd id ­Z

runcmd ps ­ef

Simpel cgi script

Draait enkele commando's

Laat resultaat zien

Status selinux

Selinux gebruiker

Resultaat “ps -ef”

(6)

Resultaat zonder aanpassingen

SE Linux uit

ps ­ef

UID      ... CMD

root     ... init [3]

marceln  ... ­bash

root     ... /usr/sbin/httpd apache   ... /usr/sbin/httpd ...

apache   ... /var/www/cgi­bin/ps apache   ... ps ­ef

SE Linux aan

ps ­ef

UID      ... CMD

apache   ... /var/www/cgi­bin/cgips apache   ... ps ­ef

(7)

SE Linux en cgi scripten

Ps in een cgi script geeft geen informatie

Helaas zien we het

resultaat van ps niet

(8)

Oplossen

SELinux devel

Kopieer voorbeeld

Nieuw types

cgips_t

cgips_exec_t

Domein transitie

Toegangs regels via

“audit2allow”

(9)

Interface file

interface(`cgips_domtrans',`

gen_require(`

type cgips_t, cgips_exec_t;

')

domain_auto_trans($1,cgips_exec_t,cgips_t) domain_auto_trans($1,cgips_exec_t,cgips_t) allow $1 cgips_t:fd use;

allow cgips_t $1:fd use;

allow $1 cgips_t:fifo_file rw_file_perms;

allow $1 cgips_t:process sigchld;

')

(10)

Type enforcement

policy_module(cgips,1.0.1) require {

class chr_file getattr;

class dir { add_name getattr read  remove_name

search write }; 

class fd use;

} ...

...

allow cgips_t bin_t:dir search;

allow cgips_t bin_t:file { execute  execute_no_trans getattr read };

allow cgips_t crond_t:dir { getattr search };

(11)

Vmsplice exploit

./vmsplice.bin <<EOF echo

echo "> head \ 

­1 /etc/shadow"

echo

head ­1 /etc/shadow EOF

Kernel exploit

Onbekend bij call for paper

Wat doet SELinux voor nieuwe kernel exploit?

Nieuw cgi-script

Voert exploit uit

Toont /etc/shadow

(12)

Resultaat

Exploit werkt gewoon

Je wordt root

Uid = 0

Alles mag volgens posix

exploit werkt niet

Behoud Security context

Role: httpd_sys_script_t

Beperkingen SELinux

Geen toegang tot

“/etc/shadow”

(13)

Conclusies

Het is lastig

Totaal ander model dan posix

Beveiligt niet de data van de applicatie zelf

De applicatie moet immers toegang hebben

Problemen met embedded apache modules

Geen exec

Het kan wel gevolgen van exploits inperken

Zie vmsplice voorbeeld

(14)

Vragen

Sheets: http://pion.xs4all.nl/lezingen/SELinux-nluug2008vj.odp Paper: http://pion.xs4all.nl/lezingen/SELinux-nluug2008vj.html Email: info@pion.xs4all.nl

Dit document is gelicenseerd onder “Attribution-ShareAlike 3.0Netherlands license”, beschikbaar op

http://creativecommons.org/licenses/by-sa/3.0/nl

Referenties

GERELATEERDE DOCUMENTEN

Dink aan drie voordele en drie nadele indien jy die reël sou verbreek en beskryf nadele indien jy die reël sou verbreek en beskryf hierdie proses in jou kreatiewe denke

Kan jou onderwerp of dele daarvan herrangskik word, deur byvoorbeeld van posisie te verander, van rol te verander, of deur 'n nuwe benadering of patroon te volg..  VOORBEELD: Weet

Jy kan byvoorbeeld sê dat die idees oor die sentrum altyd so vars soos 'n piesang moet wees, verrassend moet wees sodat die tieners altyd so nuuskierig soos 'n bobbejaan is oor

Verkeer is in principe volgend, maar verkeerseffecten moeten altijd beoordeeld en indien nodig opgelost worden door de initiatiefnemer, behalve reeds bestaande parkeerdrukproblemen

[r]

Dit document is gelicenseerd onder “Attribution-ShareAlike 3.0Netherlands license”, beschikbaar

The Summer School was co- located with the 33rd annual conference, Computer Graphics International (CGI) and the fellows had the chance to gain knowledge from both events.. The

Op de bovenste regel vindt u van links naar rechts de volgende vormen: horizontaal, blokje, open punt in het midden, gesloten breed van boven, horizontaal, blokje, open punt in