33
ITS-9.1 1 9.2 Überwachungssysteme Automatische Protokollierung sicherheitsrelevanter Ereignisse ermöglicht Entdeckung/Rekonstruktion von erfolgreichen - und erfolglosen - Angriffen, ermöglicht eventuell, den Angreifer auf frischer Tat zu ertappen, ist sinnvoll, weil hohe Sicherheit unverhältnismäßig teuer sein kann, ist sinnvoll, weil 100% Sicherheit unmöglich ist, ist empfehlenswert bei allen sicherheitskritischen Systemen

9.2 Überwachungssysteme - inf.fu- · PDF file9.2.1.2 Sicherheits-Protokollierung in Solaris ... stat, pathconf, etc. fm file_attr_mod Change of object attributes: chown, flock, etc

  • Upload
    lykiet

  • View
    213

  • Download
    1

Embed Size (px)

Citation preview

ITS-9.1 1

9.2 Überwachungssysteme

Automatische Protokollierung sicherheitsrelevanter Ereignisse

ermöglicht Entdeckung/Rekonstruktion von erfolgreichen - und erfolglosen - Angriffen,

ermöglicht eventuell, den Angreifer auf frischer Tat zu ertappen,

ist sinnvoll, weil hohe Sicherheit unverhältnismäßig teuer sein kann,

ist sinnvoll, weil 100% Sicherheit unmöglich ist,

ist empfehlenswert bei allen sicherheitskritischen Systemen

ITS-9.1 2

9.2.1 Protokollierung

Betriebssystem protokolliert Ereignisse

- zu Abrechnungszwecken,- zu Sicherheitszwecken

Sicherheitsrelevante Ereignisse sind verzeichnet

- teils in den Abrechnungsprotokollen,- teils in zusätzlichen Sicherheitsprotokollen.

(audit logs, audit trails, audit data, ...; audit = „Buchprüfung“)

(security auditing)

ITS-9.1 3

Aspekte der Protokollierung:

was soll protokolliert werden?lokales Ein/Ausloggen, Zugang übers Netz,sicherheitsbezogene Systemaufrufe, ...

wie viel soll protokolliert werden?wenig → unzureichende Informationviel → Informationsüberflutung

wo kann das Protokoll sicher abgelegt werden?- schreibgeschützte Datei- andere Maschine, evtl. besonders gesichert (loghost)- Papier/sicherer Drucker! (+ physisch sichern)

ITS-9.1 4

Problematische Aspekte der Protokollierung:

wie können die Daten sinnvoll ausgewertet werden?

verstößt die Protokollierung gegen den Datenschutz?

(aktuelle Forschung: pseudonymisierte Protokollierungmit Aufdeckung der Pseudonyme bei hinreichendem Verdacht)

ITS-9.1 5

9.2.1.1 Protokollierung in Unix

wird (wenig) unterstützt - für Abrechnung,- für Systemverwaltung,- für Fehlerverfolgung,- in Ermangelung eines besseren auch für Sicherheitsüberwachung

unterschiedlich für Linux, Solaris, . . .

Was, wie viel, wo ?

Aufruf der Bibliotheksroutine syslog veranlasst Nachricht an Systemprozess syslogd, der die Protokollierung übernimmt.

Verhalten von syslogd wird durch /etc/syslog.conf bestimmt:

ITS-9.1 6

jefe: m /etc/syslog.conf#ident "@(#)syslog.conf 1.5 98/12/14 SMI" /* SunOS 5.0 */## Copyright (c) 1991-1998 by Sun Microsystems, Inc.# All rights reserved.## syslog configuration file.## This file is processed by m4 so be careful to quote (`') names# that match m4 reserved words. Also, within ifdef's, arguments# containing commas must be quoted.#*.err; kern.notice; auth.notice /dev/sysmsg*.err; kern.debug; daemon.notice; mail.crit /var/adm/messages

*.alert; kern.err; daemon.err operator*.alert root

*.emerg *

.....

usw. „facilities“: user, kern, mail, auth, daemon, ...„level“: emerg, alert, err, ... (von syslog)„action“: Datei/Gerät oder Benutzer (falls aktiv) oder loghost

ITS-9.1 7

Typische Dateien (viele Variationen bei Unix-Varianten!):

/var/log/syslog /authlog

/...

/var/adm/utmp

/wtmp Benutzungszeiten, anzeigbar mit Befehl last

/messages Nachrichten für Systemverwalter /lastlog

/...

/var/audit/...

ITS-9.1 8

Beispiel Benutzungszeiten:

jefe: last | morelohr pts/2 lohr.dialup.fu-b Sun Jun 9 14:35 still logged inlohr pts/2 lohr.dialup.fu-b Sun Jun 9 13:10 - 14:07 (00:57)schweppe pts/2 tarent.icsi.berk Thu Jun 6 17:51 - 17:52 (00:00)idys pts/2 darwin Thu Jun 6 11:28 - 11:28 (00:00)schweppe pts/2 fondue.icsi.berk Wed Jun 5 21:39 - 21:53 (00:14)schweppe pts/2 fondue.icsi.berk Wed Jun 5 21:20 - 21:22 (00:02)schweppe pts/2 fondue.icsi.berk Wed Jun 5 20:28 - 20:33 (00:05)schweppe pts/2 fondue.icsi.berk Wed Jun 5 19:55 - 20:13 (00:18)schweppe pts/2 fondue.icsi.berk Wed Jun 5 19:01 - 19:18 (00:16)idys pts/2 i40s12.ipd.uni-k Tue Jun 4 14:35 - 14:35 (00:00)oracle pts/2 elfe Mon Jun 3 12:40 - 12:41 (00:01)koenig pts/2 orakel Mon Jun 3 12:39 - 12:39 (00:00)lohr pts/2 lohr.dialup.fu-b Sat Jun 1 20:07 - 22:31 (02:23)lichtblu pts/2 troll Sat Jun 1 15:21 - 15:21 (00:00)root pts/2 stucki Fri May 31 19:41 - 19:41 (00:00)root pts/2 bombadil Fri May 31 13:05 - 13:31 (00:25)schweppe pts/2 pd9e6aa49.dip.t- Fri May 31 07:39 - 07:39 (00:00)voges pts/6 server9.gameserv Thu May 30 15:24 - 15:24 (00:00)schweppe pts/6 pd9e6b258.dip.t- Thu May 30 07:38 - 07:41 (00:02)schweppe pts/6 pd9e6b7c9.dip.t- Wed May 29 08:17 - 08:19 (00:01)lohr pts/6 lohr.dialup.fu-b Tue May 28 13:21 - 15:20 (01:59)

Beispiele Warn- und Fehlermeldungen:

jefe: more messages.3May 13 11:14:50 jefe bootpd[28515]: [ID 864722 daemon.notice] IP address not found: 160.45.110.120May 13 11:14:53 jefe last message repeated 1 timeMay 14 10:08:59 jefe bootpd[15814]: [ID 688103 daemon.notice] IP address not found: 160.45.110.188May 14 10:09:03 jefe last message repeated 1 timeMay 14 16:27:11 jefe ufs: [ID 845546 kern.notice] NOTICE: alloc: /export/home: file system fullMay 14 16:28:19 jefe last message repeated 17 timesMay 14 19:07:28 jefe afpd[19008]: [ID 988586 daemon.error] afp_flushfork: of_find: No such file or directoryMay 15 13:40:35 jefe bootpd[19585]: [ID 205861 daemon.notice] IP address not found: 160.45.110.142May 15 13:40:39 jefe last message repeated 1 timeMay 15 18:59:36 jefe /usr/dt/bin/ttsession[29901]: [ID 862433 daemon.error] child (29937) exited due to signal 1May 16 17:12:17 jefe ufs: [ID 845546 kern.notice] NOTICE: alloc: /export: file system full

IP address not found: 160.45.110.120

IP address not found: 160.45.110.188

NOTICE: alloc: /export/home: file system full

afp_flushfork: of_find: No such file or directoryIP address not found: 160.45.110.142

child (29937) exited due to signal 1 NOTICE: alloc: /export: file system full

ITS-9.1 10

athos: more messages.0Dec 7 13:57:38 athos nfs: [ID 333984 kern.notice] NFS server datsche not responding still tryingDec 7 13:57:38 athos last message repeated 1 timeDec 7 14:15:38 athos nfs: [ID 333984 kern.notice] NFS server datsche not responding still tryingDec 7 14:21:02 athos nfs: [ID 563706 kern.notice] NFS server datsche okDec 7 14:21:02 athos last message repeated 2 timesDec 7 16:18:05 athos krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/openeepr: undefined symbolDec 7 16:18:05 athos krtld: [ID 826211 kern.notice] 'plat_stdin_is_keyboard'Dec 7 16:18:05 athos krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/openeepr: undefined symbolDec 7 16:18:05 athos krtld: [ID 826211 kern.notice] 'plat_stdout_is_framebuffer'Dec 7 16:18:05 athos krtld: [ID 472681 kern.notice] WARNING: mod_load: cannot load module 'openeepr'Dec 7 16:18:05 athos pseudo: [ID 129642 kern.info] pseudo-device: ramdisk1024Dec 7 16:18:05 athos genunix: [ID 936769 kern.info] ramdisk1024 is /pseudo/ramdisk@1024Dec 7 16:18:05 athos pseudo: [ID 129642 kern.info] pseudo-device: lockstat0Dec 7 16:18:05 athos genunix: [ID 936769 kern.info] lockstat0 is /pseudo/lockstat@0Dec 7 16:18:05 athos pseudo: [ID 129642 kern.info] pseudo-device: fcp0Dec 7 16:18:05 athos genunix: [ID 936769 kern.info] fcp0 is /pseudo/fcp@0

etc.

ITS-9.1 11

9.2.1.2 Sicherheits-Protokollierung in Solaris

beim Einsatz des Basic Security Module (BSM)

(Alle BSM-Daten findet man unter dem Verzeichnis /etc/security)

Was, wie viel, wo ?

Obligatorische Protokollierung durch Betriebssystem-Kern über Audit Daemon auditd gemäß den Angaben in

/etc/security/audit_control

(was soll protokolliert werden?)

/etc/security/audit_data(wo soll protokolliert werden?)

ITS-9.1 12

Typischer Inhalt von /etc/security/audit_control :

dir: /etc/security/audit/localhost dir: /etc/security/audit.aux/localhost flags: lo,ad,-all,^-fm naflags: lo,ad

Ereignisklassen mit Präfixen (s.S. 13/14)

Typischer Inhalt von /etc/security/audit_data :

64:/etc/security/audit/elfe/20020506081249.not_terminated.elfe

Audit Daemon current audit log file

Inhalt eines audit log file:

binär codierte Ereignisdaten – siehe audit.log(4)

ITS-9.1 13

Ereignisklassen ( /etc/security/audit_class ) :

no no_class null value for turning off event preselection fr file_read Read of data, open for reading, etc. fw file_write Write of data, open for writing, etc. fa file_attr_acc Access of object attributes: stat, pathconf, etc. fm file_attr_mod Change of object attributes: chown, flock, etc. fc file_creation Creation of object fd file_deletion Deletion of object cl file_close close(2) system call pc process Process operations: fork, exec, exit, etc. nt network Network events: bind, connect, accept, etc. ip ipc System V IPC operations na non_attrib non-attributable events ad administrative administrative actions: mount, exportfs, etc. lo login_logout Login and logout events ap application Application auditing io ioctl ioctl(2) system call ex exec exec(2) system call ot other Everything else all all All flags set

ITS-9.1 14

# File Format:## mask:name:description#0x00000000:no:invalid class0x00000001:fr:file read0x00000002:fw:file write0x00000004:fa:file attribute access0x00000008:fm:file attribute modify0x00000010:fc:file create0x00000020:fd:file delete0x00000040:cl:file close0x00000100:nt:network0x00000200:ip:ipc0x00000400:na:non-attribute0x00001000:lo:login or logout0x00004000:ap:application0x00010000:ss:change system state0x00020000:as:system-wide administration0x00040000:ua:user administration0x00070000:am:administrative (meta-class)0x00080000:aa:audit utilization0x000f0000:ad:old administrative (meta-class)0x00100000:ps:process start/stop0x00200000:pm:process modify0x00300000:pc:process (meta-class)0x20000000:io:ioctl0x40000000:ex:exec0x80000000:ot:other0xffffffff:all:all classes (meta-class)

ITS-9.1 15

Präfixe von Ereignisklassen:

+ erfolgreiche Operationen protokollieren

- abgewiesene Operationen protokollieren

(ohne) erfolgreiche und abgewiesene Op. protokollieren

^ . . . nicht protokollieren

naflags (non-attributable flags):

für Ereignisse, die keinem bestimmten Benutzerzugeordnet werden können

ITS-9.1 16

Ereignisse ( /etc/security/audit_event ):

Nummer : Name : Ereignis : Ereignisklasse(n)

0:AUE_NULL:indir system call:no 1:AUE_EXIT:exit(2):pc 2:AUE_FORK:fork(2):pc 3:AUE_OPEN:open(2) - place holder:fa 4:AUE_CREAT:creat(2):fc 5:AUE_LINK:link(2):fc 6:AUE_UNLINK:unlink(2):fd 7:AUE_EXEC:exec(2):pc,ex 8:AUE_CHDIR:chdir(2):pc 9:AUE_MKNOD:mknod(2):fc10:AUE_CHMOD:chmod(2):fm11:AUE_CHOWN:chown(2):fm12:AUE_UMOUNT:umount(2) - old version:ad13:AUE_JUNK:junk:no14:AUE_ACCESS:access(2):fa15:AUE_KILL:kill(2):pc16:AUE_STAT:stat(2):fa

. . . usw.

ITS-9.1 17

Befehle audit, auditon, auditreduce, praudit, ...

(nur für Systemverwalter) :

audit -s konfiguriert den Audit Daemon gemäßaudit_control

audit –n veranlaßt den Audit Daemon, mit neuerzeugter Protokoll-Datei weiterzuarbeiten

audit –t veranlaßt den Audit Daemon, die aktuelleProtokolldatei zu schließen und dasProtokollieren einzustellen

ITS-9.1 18

Verarbeitung der protokollierten Daten:

auditreduce hat Filter-Funktion

praudit produziert lesbare Version

Beispiele:(Verarbeitung aller Daten aus /etc/security/audit/server/files/*)

% auditreduce -d 19880413 -u lorenz -c lo | praudit day user class

after before user% auditreduce -a 19880413 -b 19880416 -u lorenz

-m AUE_CHDIR | praudit event

ITS-9.1 19

9.2.1.3 Protokollierung in Windows

3 Protokolle werden geführt:

Systemprotokollfür allgemeine Ereignisse

Sicherheitsprotokollfür sicherheitsrelevante Ereignisse

Anwendungsprotokollfür anwendungsbezogene Ereignisse

Start\Einstellungen\Systemsteuerung\Verwaltung\Ereignisanzeige

ITS-9.1 20

z.B. Systemprotokoll:

Eigenschaften eines Ereignisses abfragen:

Ereignistypen sind 1. Fehler (sicherheitsrelevant:)2. Warnung 4. Erfolgsüberwachung3. Informationen 5. Fehlerüberwachung

ITS-9.1 22

Sicherheitsprotokoll – ist nur für Systemverwalter einsehbar:

ITS-9.1 23

Steuerung der Protokollierung sicherheitsrelevanter Ereignisse(durch den Systemverwalter):

Start – Einstellungen – Systemsteuerung – Verwaltung – Lokale Sicherheitsrichtlinie

Überwachungsrichtlinien

ITS-9.1 24

Systemverwalter kann Überwachung dateispezifisch steuern:

Eigenschaften\Sicherheitseinstellungen der Datei (4.3.2.2)

ITS-9.1 25

Eintrag Alles Jeder Eintrag Fehl... Jeder

ITS-9.1 26

9.2.2 Angriffsentdeckung

(intrusion detection)

mittels automatischer On-Line-Auswertung der Protokolle:

Entdeckung bestimmter Verhaltensmuster Sicherheitsadministrator alarmieren

Anomalie-Erkennung (anomaly detection):

Anomalien gegenüber den „normalen“ Abläufen entdecken- schwierig (z.B. Einsatz neuronaler Netze),- typisches Problem „falscher Alarm versus Nichterkennung“

Missbrauchs-Erkennung (misuse detection):

vorgegebene – unzulässige oder verdächtige – Muster entdecken- mit regelbasierten Systemen gut handhabbar,- aber man muss die Angriffe kennen!

ITS-9.1 27

9.2.2.1 Angriffssprachen für Missbrauchs-Erkennung

(attack languages)

erlauben Beschreibung von Mustern (signatures)missbräuchlicher oder verdächtiger Benutzung

Beispiel 1: Muster: nach login 3-mal falsches Passwort eingegeben

Beispiel 2: Vor.: ~lohr/private hat Schutzstatus rwx--x--x

Muster: wiederholter Versuch von ls -l ~lohr/private/test mit verschiedenen test

ITS-9.1 28

Beispiel 3:

Vor.: hosts enthält den Textelfe.inf.fu-berlin.de alt

Muster: elfe:alt% cp hosts ~lohr/.rhosts elfe:alt% rlogin -l lohr elfe

(ermöglicht – im Standard-Unix – das Einloggen als lohr ohne Angabe eines Passworts)

Beispiel 4: Angriff über setuid Shell script(siehe 4.3.3, Beispiel 3)

ITS-9.1 29

Angriffssprache STATL [Kemmerer et al. 2000](State Transition Analysis Technique Language):

Modellierung:

endlicher Automat, als Diagramm graphisch darstellbar Zustandsübergang = sicherheitsrelevantes Ereignis Auszeichnung unerwünschter Zustände Alarm

Erkennungssystem

verarbeitet die gemeldeten Ereignisse, z.B. von BSM (6.1.2), gemäß den mit STATL formulierten Vorgaben, die nach Übersetzung als Plugins hinzugefügt werden

ITS-9.1 30

Obiges Beispiel 3:

elfe:alt% cp hosts ~lohr/.rhostselfe:alt% rlogin -l lohr elfe

Modellierung des Angriffsmusters

– als Diagramm:

s0 s1 s2 s3create login readrhosts

(da .rhosts vorhanden!)

– als STATL-Text:

ITS-9.1 31

– als STATL-Text:

use unix, bsm; Bezugnahme auf Bibliotheken

scenario rhostsAttack { int user; Buchführung über Daten int pid; int inode;

Abstraktion eines BSM event typeinitial state s0 { }

transition create (s0 -> s1) nonconsuming {Voraussetzung: [WRITE w] : (w.euid!=0) && (w.owner!=w.ruid)Buchführung: { inode = w.inode; }}

state s1 { }

. . . . . . . . . (nächste Seite)

ITS-9.1 32

. . . . .

transition login (s1 -> s2) nonconsuming { [EXECUTE e] : match_name(e.objname, "login") { user = e.ruid; pid = e.pid; } }

state s2 { }

transition readrhosts (s2 -> s3) consuming { [READ r] : (r.pid == pid) && (r.inode ==inode) }

state s3 {string username;userid2name(user,username);log("rhosts attack by %s", username);}

}

ITS-9.1 33

..... und zahlreiche weitere Intrusion-Detection-Systeme,

auch kommerziell oder Open Source, insbesondere für

Network Intrusion Detection, z.B.

Snort (http://www.snort.org):

analysiert übers Netz eintreffende Datenpakete(packet sniffing, ähnlich tcpdump u.a.)

Vorteil: Paketinhalt detailliert analysierbar

Nachteil: zustandslos