# provozierter linux absturz

## sarahb523

Ich habe gerade mal was erschreckendes auf heise gelesen (ja ich gehe manchmal auf die troll wiese  :Wink:  )

Sicher haben einige von euch schonmal folgende bash zeile gelesen:

```

:(){ :|:& } ;:

```

bzw. folgendes c programm

```

void main() { 

     while(1){ 

     fork(); 

     } 

}

```

Diese paar sachen bringen den kernel arg durcheinander, sodaß nur noch reset hilft. (habs leider ausprobiert)

Ein Freund hat mir gerade gesagt, das man sich mithilfe von ulimit davor schützen kann. Wie und wo (init.d scripte?) baue ich das am besten in gentoo ein?

Gibt es noch mehr solche spielerein die gefährlich sind?

BTW da stand noch folgendes perl progrämmchen:

```

cat "test... test... test..." | perl -e

 '$??s:;s;;$?:;;=]=>%-{<-|}<&|`{;;y; -/[-`{-};`-{/"

 -;;s;;$_;see'

```

weiß aber nich was das macht.

----------

## toskala

das zeug ist gemeinhin bekannt als fork bomb, du kannst dich davor schützen indem du usern nur eine maximale anzahl von prozessen zugestehst, geht afaik mit grsec.

wenn du den kram als root eintipperst hast halt leider immer voll verloren  :Wink: 

----------

## platinumviper

Ich hab' einige ulimit Anweisungen in /etc/profile stehen, die schützen nicht vor böswilligen Usern, aber vor einem versehentlichen Abschuss des Systems.

So etwas lässt sich auch problemlos in Javascript u.ä. schreiben. Ich habe irgendwo mal eine hübsche rekursive Animation in Javascript gesehen, die in wenigen Sekunden den kompletten Speicher und Swap verbraucht hat.

Die aktuell gesetzten Limits werden mit ulimit -a angezeigt.

platinumviper

----------

## sarahb523

Welche limits setze ich bei meiner hardware am besten? (HW sie signatur + 133 MB swap)

```

core file size        (blocks, -c) 0

data seg size         (kbytes, -d) unlimited

file size             (blocks, -f) unlimited

max locked memory     (kbytes, -l) unlimited

max memory size       (kbytes, -m) unlimited

open files                    (-n) 1024

pipe size          (512 bytes, -p) 8

stack size            (kbytes, -s) 8192

cpu time             (seconds, -t) unlimited

max user processes            (-u) 5120

virtual memory        (kbytes, -v) unlimited

```

Was das javascript angeht, finde ich das wirklich nicht lustig. Da sehe ich schon die nächste schlagzeile "Webseite bringt linux zum absturz". Ich finde das irgendwie peinlich. Gab es nicht code im kernel welches programme killt wenn diese das system unbrauchbar machen?

BTW kann mir jemand mal die zeile bash code erklären. So richtig ist mir nich klar was da passiert

----------

## sprittwicht

Hm, sicher dass das mit JavaScript so einfach möglich ist?

Das letzte Mal, wo bei mir ein JavaScript Amok gelaufen ist, hat's nach kurzer Zeit den Mozilla zerrissen, aber das System blieb stabil.

Gibt's eine Beispielseite mit einem wirklich fiesen, systemgefährdenden Code? Mutige vor!  :Smile: 

JavaScript kann ja keine eigenen Prozesse erzeugen (oder doch??). Wenn also Speicher und Swap voll sind sollte der Kernel anfangen, Speicherfresser zu killen. Ob er das wahllos tut oder ob er dann den Browser als Quelle allen Übels zuerst abschießt, keine Ahnung. Zum Abschmieren des Systems sollte eine manipulierte Webseite meines Wissens nach aber nicht führen können, das wäre schon arg...

----------

## Ragin

Das Problem mit JavaScript kenne ich. Das tritt aber nur schlechtprogrammierten und komplexen Funktionen auf, die am besten noch komplette Grafikberechnungen usw. machen. Allerdings schiesst es den IE dann auch ab,. bzw. in den Speicher. Bei Linux wirkt das ganze dann nur träger.

----------

## sarahb523

 *Ragin wrote:*   

> Das Problem mit JavaScript kenne ich. Das tritt aber nur schlechtprogrammierten und komplexen Funktionen auf, die am besten noch komplette Grafikberechnungen usw. machen. Allerdings schiesst es den IE dann auch ab,. bzw. in den Speicher. Bei Linux wirkt das ganze dann nur träger.

 

Das es den IE abschiesst ist keine entschuldigung (und eigentlich auch unerheblich auf linux systemen  :Wink:  ). Also kann man mit webseiten auch linux systeme beeinträchtigen. Hmm, gibts schon gegenmaßnahmen? (außer rechner ausschalten oder inet nich benutzen)

----------

## xmoy

JavaScript deaktivieren  :Very Happy: 

Hm, aber etwas im sinne von

```

<script type="text/javascript">

  <!--

    function foo() {

       while(true) {

          foo();

        }

    }

    foo();

  //-->

</script>

```

wird wohl auch nur den Browser zum Absturz bringen, oder liegt da da mehr drin?

Dass der IE und damit der Explorer unter Windaus abstürzen würde ist klar.

----------

## Aldo

In http://www.gentoo.org/doc/de/gentoo-security.xml steht, daß man über die /etc/security/limits.conf und die /etc/limits diverse Einschränkungen einstellen kann.

Aber ob das in diesem Fall hilft?

----------

## sarahb523

@terje_sagen

der konqui hat wohl nen schutz dagegen:

Fehler: file:/home/sarah/Desktop/test.html: RangeError: Exceeded maximum function call depth.

Ansosnten wird auch immer nur 1 Prozess geöffnet. Selbst wenn die seite neue fenster erzeugt ( target=_blank) bleibt es ein prozess.

@Aldo

Danke, das is genau das was ich gesucht habe. Dies sollte bei den bash attacken und evtl. bei den fork() helfen

----------

