Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger

 << zurück
Linux-UNIX-Programmierung von Jürgen Wolf
Das umfassende Handbuch – 2., aktualisierte und erweiterte Auflage 2006
Buch: Linux-UNIX-Programmierung

Linux-UNIX-Programmierung
1216 S., mit CD, 49,90 Euro
Rheinwerk Computing
ISBN 3-89842-749-8
gp Kapitel A Sicherheit unter Linux
  gp A.1 Viren und Trojaner
  gp A.2 Der Superuser (su)
  gp A.3 Überlaufen von Logfiles
  gp A.4 Zugriffsrechte auf Dateien
  gp A.5 Das SUID-Bit
  gp A.6 Programme ohne Ausführrechte
  gp A.7 Buffer Overflow (Pufferüberlauf)
  gp A.8 Race Condition
  gp A.9 Temporäre Dateien
  gp A.10 chroot
  gp A.11 Umgebungsvariablen
  gp A.12 Zugriffsrechte – häufig gemachte Fehler
  gp A.13 system() und popen()
  gp A.14 Offene Filedeskriptoren
  gp A.15 Core Dump
  gp A.16 SQL Injection
  gp A.17 Filedeskriptor-Überlauf mit select()


Rheinwerk Computing

A.15 Core Dump  toptop

Für Sie als Entwickler kann es während der Entwicklungszeit Ihrer Software manchesmal recht hilfreich sein, wenn das Programm abstürzt und dabei ein »Dump Core« gemacht wird. Mit entsprechenden Kenntnissen können Sie diese Datei zum Debuggen des Programms verwenden. Leider kann solche ein Core-File auch recht sensitive Daten enthalten. Gibt bspw. ein User ein Passwort ein und es tritt ein Dump Core auf, bevor das Passwort im Speicher wieder überschrieben bzw. gelöscht werden kann befindet sich das Dump-File schon auf der Platte.


Hinweis   Ein Angreifer ruft gewöhnlich einen solchen Dump Core hervor, in dem dieser die Schwachstellen eines Programms gezielt attackiert, so dass das Programm auch entsprechend abstürzt.


Hat der Angreifer nun ein Chance, lesend auf diesen Dump Core zuzugreifen – was zwar in der Regel nicht sein sollte, aber leider in der Praxis durch rekursive Zugriffsrechte-Verteilung leider häufig der Fall ist – haben Sie wieder ein (Hinter-)Türchen mehr aufgemacht.

Daher empfiehlt es sich unter UNIX/Systemen die Ressource RLIMIT_CORE mit der Funktion setrlimit() auf 0 zu setzen, womit das System veranlasst wird, kein Core-File anzulegen.

/* nocore.c */
#include <sys/types.h> 
#include <sys/time.h> 
#include <sys/resource.h> 
#include <stdio.h> 
#include <stdlib.h>
#include <unistd. h.> 
#include <errno.h> 
#ifndef DEBUG
void no_core(void) { 
  struct rlimit rlim;
  int ret; 
  rlim.rlim_cur = rlim.rlim_max = 0; 
  ret = setrlimit(RLIMIT_CORE, &rlim); 
  if(ret == -1) 
     perror("Fehler bei setrlimit");
  else
     printf("Kein Core Dump wird ggf. erzeugt...\n");
}
#endif
int main(int argc, char **argv) {
   /* .... */
#ifndef DEBUG
   no_core();
#endif
   return EXIT_SUCCESS;
}

In diesem Beispiel wurde einfach ein DEBUG-Makro um die Funktion gelegt. Damit eine Dump Core angelegt werden soll, muss der Entwickler zur Übersetzung explizit den DEBUG-Modus verwenden. Bei Standerdmäßiger Übersetzung wird die Funktion no_core() ausgeführt und somit im Fall der Fälle auch kein Core-File angelegt:

$ gcc -o nocore nocore.c
$ ./nocore
Kein Core Dump wird ggf. erzeugt...
$ gcc -o nocore nocore.c -DDEBUG
$ ./nocore
$
 << zurück
  
  Zum Rheinwerk-Shop
Neuauflage: Linux-UNIX-Programmierung
Neuauflage:
Linux-UNIX-
Programmierung

bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: Linux-Server






 Linux-Server


Zum Rheinwerk-Shop: Das Komplettpaket LPIC-1 & LPIC-2






 Das Komplettpaket
 LPIC-1 & LPIC-2


Zum Rheinwerk-Shop: Linux-Hochverfügbarkeit






 Linux-
 Hochverfügbarkeit


Zum Rheinwerk-Shop: Shell-Programmierung






 Shell-
 Programmierung


Zum Rheinwerk-Shop: Linux Handbuch






 Linux Handbuch


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
Info





Copyright © Rheinwerk Verlag GmbH 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern