Azi dimineata am citit un post care descrie o aparenta de vulnerabilitate sistemele Linux. Aceasta este, de fapt, o succesiune de caractere care - dacă lansat din linia de comandă - genera o buclă infinită, care rezultă în bloc CPU şi memoria RAM de saturaţie. Acesta nu este un deficit de Linux, dar evident o eroare logică de care ruleaza şir la bash pe orice sistem de operare care este dotat. Autorul sugerează, de post, cu toate acestea, cel mai simplu si eficient mod de a atenua efectele microscopic, dar periculoase script.

Poate că acest articol poate fi util pentru a se umezi oarecum "apologetic ton cu care oţel decanta GNU / Linux sistem de operare: nu există o succesiune de caractere care puţini, dacă aţi tastat în terminal, trimite întregul sistem haywire. Aici este, codul de inculpaţi:

: () { : | : & };: Cum este posibil ca această scurtă şi enigmatic şir poate crea tensiuni atât de mult? În realitate, ceea ce se întâmplă este destul de normal şi o explicaţie pentru cele mai un'alfabetizzazione bash script-ul este, după cum urmează: de funcţii în bash.

De funcţii, în bash, sunt declarate cu sintaxa:
nomeFunzione() { comando1; comando2; ... comandoN; } nomeFunzione() { comando1; comando2; ... comandoN; } şi sunt invocate de către scris numele lor, în calitate de controale normale. Astfel, de exemplu, codul următor:
saluta(){ echo "ciao"; };saluta nu declară că salută, care este tipărit pe podea terminal "Bună ziua, şi o invocă. Inculpaţi în funcţie de cod a fost numit: (colon).

Da: cu toate că este deosebit de exotic este un nume pentru o juridice bash.

După cum se poate observa acum, în funcţie de aceasta, (o dată numit), stabileşte şi se reorienteze ieşirile lui la un alt invocare a virusului prin conducte (bară verticală). Dacă nu ştiţi de ţeavă pe care nu este nevoie de a locui în detaliu, în scopul de a explicaţia (şi pe care nu există o amplă documentaţie, la rândul său), este suficient să ştii că au efectul de a deschide în paralel între cele două comenzi care apare, apoi cod: |: apar în organism, în funcţie de apeluri de două ori în timp ce funcţia în sine, creând un (dublu) recursion.

În cele din urmă, Mail & la sfârşitul perioadei de comandă are efectul de a rula în fundal.

Deci, în cazul în care facilitate a fost lansat, solicită, de două ori pe sine, în paralel rezultă într-o bifurcare (furculiţă), fiecare dintre cele două bifurcations sunt sdoppia la rândul lor, şi aşa mai departe. Faptul că funcţiile sunt rula în fundal, care prevede o încetare (de exemplu, cu comanda ucide), cele pe care le creaţi (şi apoi cele două bifurcations şi descendenţii acestora) nu va fi terminat în momentul în care în mod normal. Aceasta lansare a funcţiilor de neoprit, care transporta exponenţial, în cele din urmă, satura de resurse (procesor şi memorie) şi după câteva "vine momentul de îngheţare a sistemului.

Antidotul. Pentru mai multe timid: un antidot pentru aceste furculiţă bombă şi nu există pur şi simplu pentru a pune o limită a numărului de procese de boot de la un utilizator.

Original Post:

http://www.tuxbay.org/index.php?option=com_content&task=view&id=152&Itemid=1

Share:
  • del.icio.us
  • Google
  • Digg
  • Facebook
  • Technorati
  • YahooMyWeb
  • MySpace