Click here to load reader
View
217
Download
0
Embed Size (px)
Sicherheit von Linux-Systemen
Sicherheit von Linux-SystemenKonfiguration von SuSE Linux Professional 9.3
Christian Muck-Lichtenfeld
Organisch-Chemisches Institut
July 11, 2005
Sicherheit von Linux-Systemen
Uberblick
Ziele:
Gefahren erkennen
System sicher konfigurieren
Angriffe erkennen (bzw. verhindern)
Zielgruppe: Linux-Einsteiger, Admins mit Linux als Ausnahmefall
Beispiel: SuSE Professional 9.3
keine Themen: WLAN, Authentifizierung, Samba
Sicherheit von Linux-Systemen
Part I
Bedrohungen
Sicherheit von Linux-Systemen
Bedrohungsanalyse
Potentielle Angriffswege
Lokaler Angriff
Angemeldeter Benutzer nutzt Schwachstellen aus und fuhrt unerwunschte Aktivitaten ausZiel: (root-) Privilegien erlangen, die einem normalen Benutzer nicht zustehen
DOS-Angriff (denial of service)
Verteilte gehaufte Abfrage von Diensten fuhrt zu Uberlastung des Rechners
Netzattacken
Angriff uber einen unsicheren Netz-Zugang zum Systemauf einen Dienst, der nicht laufen musste oder der Sicherheitslucken hat.
spoofing (man-in-the-middle)
Angreifer gibt vor, ein (autorisiertes) System im Netz zu sein
z.B. arp-spoofing, SSH-Angriff
In allen Fallen werden Sicherheitslucken ausgenutzt ( exploits)
Sicherheit von Linux-Systemen
Bedrohungsanalyse
Angriffswege
Viele Wege fuhren zum Ziel des Hackers(Privilegierte Bereiche/Programme)
USERSPACE
KERNELSPACE
root
PRIV
Application
Service Port
LOKALER ANGRIFF DOS
NETZANGRIFF
SPOOFING(MAN IN THE MIDDLE)
Sicherheit von Linux-Systemen
Bedrohungsanalyse
Angriffsszenarien
Spionage (Passworter, Daten allgemein)
Missbrauch des Rechners (Filesharing, Spam-Mailer, Angriff aufweitere Rechner)
Zerstorung von Daten
Sicherheit von Linux-Systemen
Part II
Gegenmassnahmen
Sicherheit von Linux-Systemen
Gegenmassnahmen
Sicherheitslucken kennen
Advisories (zur Sicherheit) bei www.linux-community.de
Literaturz.B. Linux-Magazin (www.linux-magazin.de)linux hackers guide (Markt & Technik)Linux Security Cookbook (OReilly)
Eigenen Rechner uberprufenverdachtige Prozesse, Dateien, Ports
Sicherheit von Linux-Systemen
Gegenmassnahmen
Logfiles analysieren
Uberwachung der Logfiles
syslogd erzeugt Ausgabe in /var/log/messages
Befehl z.B. grep -i connect /var/log/messages
Jun 16 16:17:44 nwztux portmap[22117]: connect from 128.176.245.69 to getport(mountd): request from unauthorized host
Jun 16 16:17:44 nwztux portmap[22118]: connect from 128.176.245.69 to getport(mountd): request from unauthorized host
Jun 16 16:18:23 nwztux sshd[22119]: refused connect from ::ffff:128.176.245.69 (::ffff:128.176.245.69)
Jun 18 02:13:33 nwztux sshd[25380]: refused connect from ::ffff:60.28.0.162 (::ffff:60.28.0.162)
Jun 18 03:09:41 nwztux sshd[25459]: refused connect from ::ffff:221.251.21.162 (::ffff:221.251.21.162)
Jun 18 18:54:07 nwztux sshd[26780]: refused connect from ::ffff:65.166.159.14 (::ffff:65.166.159.14)
Jun 18 23:10:25 nwztux sshd[27099]: refused connect from ::ffff:200.68.112.137 (::ffff:200.68.112.137)
Jun 18 23:18:59 nwztux sshd[27119]: refused connect from ::ffff:200.68.112.137 (::ffff:200.68.112.137)
Jun 19 11:42:58 nwztux sshd[28326]: refused connect from ::ffff:211.202.3.150 (::ffff:211.202.3.150)
Jun 20 20:25:47 nwztux sshd[31388]: refused connect from ::ffff:211.202.3.150 (::ffff:211.202.3.150)
Tools zur Logfile-Uberwachung:
Analog (http://www.analog.cx/) Swatch (http://swatch.sourceforge.net/) LogSurfer
Sicherheit von Linux-Systemen
Gegenmassnahmen
Prozesse uberwachen
Uberwachung der Prozesse
Befehl ps -ef |grep Username zeigt die Prozesse des Users aniltis:~ # ps -ef |grep nobody
nobody 7189 1 0 08:25 ? 00:00:00 /sbin/portmap
nobody 7198 1 0 08:25 ? 00:00:00 /usr/sbin/mdnsd -f /etc/rendezvous.conf -b
root 12610 8377 0 10:38 pts/7 00:00:00 grep nobody
Befehl strace -p PID verfolgt die Systemaufrufe des Prozesses Analyse der Aktivitat eines verdachtigen Prozessesiltis:~ # strace -p 7198
Process 7198 attached - interrupt to quit
select(7, [3 4 5 6], NULL, NULL, 1, 446000) = 0 (Timeout)
rt sigprocmask(SIG BLOCK, [HUP INT USR1 PIPE TERM], NULL, 8) = 0
rt sigprocmask(SIG UNBLOCK, [HUP INT USR1 PIPE TERM], NULL, 8) = 0
gettimeofday({1119429587, 826316}, NULL) = 0
gettimeofday({1119429587, 826367}, NULL) = 0
gettimeofday({1119429587, 826410}, NULL) = 0
gettimeofday({1119429587, 826453}, NULL) = 0
gettimeofday({1119429587, 826496}, NULL) = 0
select(7, [3 4 5 6], NULL, NULL, 5, 0) = 0 (Timeout)
Sicherheit von Linux-Systemen
Gegenmassnahmen
Netzwerkverbindungen uberwachen
Uberwachung der Netzverbindungen des lokalen Rechners
Befehl z.B. lsof -i -n -Piltis:/usr/sbin lsof -i -n -P
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
dhcpcd 6625 root 4u IPv4 18524 UDP *:68
portmap 7210 nobody 3u IPv4 19793 UDP *:111
portmap 7210 nobody 4u IPv4 19806 TCP *:111 (LISTEN)
mysqld-ma 7430 mysql 3u IPv4 21059 TCP *:3306 (LISTEN)
master 7561 root 11u IPv4 21266 TCP 127.0.0.1:25 (LISTEN)
master 7561 root 12u IPv6 21267 TCP [::1]:25 (LISTEN)
sshd 7746 root 3u IPv6 22081 TCP *:22 (LISTEN)
ssh 8226 meier 3u IPv4 23577 TCP 127.0.0.1:12051->127.0.0.1:22 (ESTABLISHED)
sshd 8230 root 3u IPv6 23578 TCP 127.0.0.1:22->127.0.0.1:12051 (ESTABLISHED)
sshd 8230 root 6u IPv4 23632 TCP 127.0.0.1:6010 (LISTEN)
sshd 8230 root 7u IPv6 23633 TCP [::1]:6010 (LISTEN)
sshd 8230 root 11u IPv4 69274 TCP 127.0.0.1:6010->127.0.0.1:11316 (ESTABLISHED)
cupsd 10373 lp 0u IPv4 28016 TCP *:631 (LISTEN)
cupsd 10373 lp 2u IPv4 28017 UDP *:631
fwbuilder 18895 root 3u IPv4 69273 TCP 127.0.0.1:11316->127.0.0.1:6010 (ESTABLISHED)
firefox-b 19302 meier 26u IPv4 70013 TCP 128.176.245.32:26706->128.176.188.115:80 (ESTABLISHED)
oder netstat -t (TCP) (-u (UDP))iltis:~ # netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 ILTIS.UNI-MUENSTER:9097 DOEDEL.UNI-MUENSTER:ssh ESTABLISHED
tcp 0 0 localhost:21838 localhost:ssh ESTABLISHED
tcp 0 0 localhost:44216 localhost:filenet-tms ESTABLISHED
tcp 0 0 localhost:filenet-tms localhost:44216 ESTABLISHED
tcp 0 0 localhost:ssh localhost:21838 ESTABLISHED
tcp 0 0 ILTIS.UNI-MUENSTER.:ssh MRBEAN.UNI-MUENST:33521 ESTABLISHED
Sicherheit von Linux-Systemen
Gegenmassnahmen
Dateisystem uberwachen
Uberwachung des Dateisystems (Intrusion detection)
z.B. tripwire (http://sourceforge.net/projects/tripwire/)
erzeugt Fingerabdrucke der wichtigen Systemdateien speichert die Daten in einer Datenbank findet Abweichungen vom gespeicherten Snapshot
Dateisystemuberwachung simpel: rpm-Datenbank
iltis:/usr/sbin # rpm -V samba-3.0.13-1.1
S.5....T /usr/sbin/smbd
iltis:/usr/sbin #
Uberprufung / Suche nach rootkits:chkrootkit (http://www.chkrootkit.org/)(z.Zt. 57 rootkits/Wurmer) Stinger von McAffee
Sicherheit von Linux-Systemen
Gegenmassnahmen
Useraktivitaten beobachten
Uberwachung der Useraktivitat
Befehl lastlog
iltis:~ # lastlog
Username Port From Latest
root pts/7 localhost Wed Jun 22 09:00:45 +0200 2005
bin **Never logged in**
daemon **Never logged in**
lp **Never logged in**
mail **Never logged in**
news **Never logged in**
uucp **Never logged in**
games **Never logged in**
man **Never logged in**
at **Never logged in**
wwwrun pts/8 iltis.uni-muenst Wed Jun 22 09:01:10 +0200 2005
ftp **Never logged in**
named **Never logged in**
postfix **Never logged in**
mysql **Never logged in**
sshd **Never logged in**
ntp **Never logged in**
messagebus **Never logged in**
haldaemon **Never logged in**
gsc **Never logged in**
meier :0 console Wed Jun 22 08:35:46 +0200 2005
Sicherheit von Linux-Systemen
Gegenmassnahmen
Abwehr eines lokalen Angriffs
Abwehr eines lokalen Angriffs
nur vertrauenswurdige Benutzer zulassen
keine anonymen Accounts
Server nicht physikalisch offentlich zuganglich machen
Server nicht fur normale User zum Login offnen
keine Root-Shells offenlassenz.B. in der bash mit export TMOUT=180 logout nach 3 Minuten Inaktivitat
regelmassige Systemupdates durchfuhren
sichere Grundeinstellungen (yast2)
Sicherheit von Linux-Systemen
Gegenmassnahmen
SuSE Grundeinstellungen zur Sicherheit
Yast2 Sicherheit
Local Security Configurationyast2 security
Sicherheit von Linux-Systemen
Gegenmassnahmen
SuSE Grundeinstellungen zur Sicherheit
Yast2 Sicherheit
Passwort-Einstellungen
Sicherheit von Linux-Systemen
Gegenmassnahmen
SuSE Grundeinstellungen zur Sicherheit
Yast2 Sicherheit
Reboot durch User verhindern
Rechner sollte auch physikalisch unzuganglich sein !
Sicherheit von Linux-Systemen
Gegenmassnahmen