linux-l: fork() DoS

Siegfried Pohl spohl at bert.in-berlin.de
Mo Aug 23 18:20:10 CEST 1999


*Henrik Hempelmann <hh at actis.de> wrote:
> Oliver Hillmann wrote:
> > 
> > Hallo,
> > 
> > main() {
> >         for(;;)
> >                 fork();
> > }
> > 
> > ausführen... Binnen weniger Sekundenbruchteile bis einigen Sekunden ist
> > der Rechner völlig dicht... Nichts geht mehr... Ich habs zuletzt unter
> > 2.0.x ausprobiert, und gerade Rechner mit begrenzten Resourcen klappen
> > zusammen, die anderen etwas später....
> > 
> > Ganz abgesehen davon, daß kein System mit interaktiven Usern finale
> > Sicherheit bieten kann - was fällt Euch gegen so einen Denial of Service
> > ein?
> 
> mit setrlimit(2) solltest Du den Resourcenverbrauch von Usern einschraenken koennen.
> Unter anderem auch "RLIMIT_NPROC   /* max number of processes */"

Interessant, das Ganze geht n"amlich auch mit 

void main(void)
{
	for(;;)malloc(1024);
}
Ich habe auch schon harsche Kritik geh"ort, da"s Linux damit nicht zurechtkommt
Finde ich katatrophal...

Ich wei"s zum Beispiel bei Solaris, kann man sowohl Rechenzeit (beim
Scheduler), als auch Hauptspeicher explizit Usern zuweisen und auch
k"urzen, zum Beispiel

User blabla -> soundsoviel Prozent Rechenzeit auf CPU 3

Gibt es sowas bei Linux (eventuell in 2.4.xx ?)

Mit freundlichen Gr"u"sen, Siggi
--
| Siegfried Pohl <spohl at bert.in-berlin.de> 
| http://www.in-berlin.de/User/bert
| Tel: +49 3381 718056; Fax: +49 3381 718058 
| -> Only wimps use tape backups; real men put their software   
| -> on ftp servers, and let the rest of the world mirror it.
| -> (C) Linus Torvalds



Mehr Informationen über die Mailingliste linux-l