DoS (was: Re: [linux-l] PostgeSQL)

Steffen Dettmer steffen at dett.de
Do Nov 13 08:59:48 CET 2003


* Tobias Schlottke wrote on Wed, Nov 12, 2003 at 09:34 +0100:
> On Wed, 12 Nov 2003, olafBuddenhagen at web.de wrote:
> 
> > Viel effektiver waere es, wenn man vor oder hinter dem fork() noch
> > ordentlich viel Speicher alloziert. Wenn dann der Speicher ueberfuellt
> > ist, faengt der Kernel an munter zufaellige Prozesse zu killen.
> 
> ??? Das ist jetzt ein Witz, oder? Warum wird nicht der Prozess
> gekillt, der den Speicher haben/beschreiben will? Das würde
> doch vermutlich in den meisten Fällen den richtigen treffen.

Kann sein, daß das gemacht wird. Ein Programm alloziert ja oft
ständig Speicher und gibt frei - wenn das böse Programm nur ein
Byte frei läßt, weil dann z.B. ein Contextwechsel statt findet,
und das andere dann 100 byte haben will, muß dieses andere
sterben.

Bei uns kommt sowas manchmal auf Arbeit vor (sind manchmal ein
kleines bißchen albern :)), es wurden immer auch ein paar Daemons
geplättet. Für einen durch zufälligen Contextswitch verursachten
Fehler zu oft. Vielleicht hängt das mit fork zu sammen, so nach
dem Motto: wenn es klappt, wird der Context danach gewechselt,
und damit würde es wahrscheinlicher, keine Ahnung.

In der Praxis jedenfalls sterben ein, zwei Systemdienste und
ein paar von den anderen Prozessen (bei uns halt hier mal ein
compiler und da mal ein awk, was gerade so rumliegt). Wird ja
wenigstens ins syslog eingetragen.

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.



Mehr Informationen über die Mailingliste linux-l