Sicherheit von Linux-Systemen - uni- .Sicherheit von Linux-Systemen Sicherheit von Linux-Systemen

  • View
    214

  • Download
    0

Embed Size (px)

Text of Sicherheit von Linux-Systemen - uni- .Sicherheit von Linux-Systemen Sicherheit von Linux-Systemen

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

Mailinglistensuse-security-announce-subscribe@suse.com

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