Normaalikäyttäjänä, tai vaikka roottina:
perl -e "while(1) { fork(); }"
Heh, takaan että Linux menee jumiin noin 30 sekunnin sisällä, vaatii resettiä tai eipä tokene ;)
perl -e "while(1) { fork(); }"
Heh, takaan että Linux menee jumiin noin 30 sekunnin sisällä, vaatii resettiä tai eipä tokene ;)
Vastaukset 10
Vanhimmat
Mitä, jos sittenkin palaisit yliopistoon opiskelemaan wintoysin ylläpitoa.
Windows oli liian helppo forkkipommittaa suohon -.-
Kesti vieläpä vähemmän aikaa kuin keskimäärin Unix systeemeissä.
Huvittelin aikoinaan ajamalla itsetekemiäni haittaohjelmia julkisilla Windows-päätteillä. Nämä softat sitten forkkipommitti aika koneen suohon, ja se oli vitun hauskaa.
Ei tullu mieleen, että tuommoinen touhu on täysin laitonta?
Jokaisen käyttiksen saa hyydytettyä tuolla periaatteella. Ohjelmointia tuntemattomille tiedoksi se, että toi ei hyödynnä mitään tietoturvareikää tai linuxin vikaa. Tuossa yksinkertasesti tehdään ikuisesti pyörivä looppi, jossa luodaan kokoajan uusia vastaavia ikuisessa loopissa pyöriviä prosesseja, jotka luo taas lisää niitä. Ideana tuossa on se, että kuormitetaan prosessoria omilla prosesseilla niin että systeemin muu toiminta hidastuu.
echo ulimit -u 200 >> /etc/profile
Itseasiassa linuxissa on varsin helppo estää systeemin jumittaminen tuommoisella forkkipommilla. Homma hoituu asettamalla rajoitus sille kuinka monta prosessia käyttäjä voi käynnistää. Ainakin palvelimissa tuo on järkevää. Rajoitukset voi asettaa tiedostossa
/etc/security/limits.conf
Limits.conf tiedostossa voi asettaa tämmöisiä rajoituksia käyttäjälle:
core - limits the core file size (KB)
data - max data size (KB)
fsize - maximum filesize (KB)
memlock - max locked-in-memory address space (KB)
nofile - max number of open files
rss - max resident set size (KB)
stack - max stack size (KB)
cpu - max CPU time (MIN)
nproc - max number of processes
as - address space limit
maxlogins - max number of logins for this user
priority - the priority to run user process with
locks - max number of file locks the user can hold
Tuli tuohon liittyen mieleen
Monella linuxin kotikäyttäjällä varmasti on linuxissa käytössä ssh ja ftp/sftp -palvelin, niin että omaan koneeseen pääsee käsiksi netin yli esim töistä tai koululta. Systeemissä voi myös olla luotuna yksi tai useampi erillinen käyttäjätunnus, joita käytetään vain kun koululta/töistä otetaan esim ssh yhteys kotikoneelle.
Jos noin on, niin sillon on aika järkevää rajoittaa näiden etä-käyttäjien osalta sitä kuinka monta prosessia käyttäjä voi käynnistää. Rajoituksia voi tehdä sekä käyttäjäkohtaisesti, että käyttäjäryhmäkohtaisesti.
Tuolla tavalla voi estää sen, että joku käyttäjätunnuksen/salasanan jostain käsiinsä saanut voi tulla koneelle ja jumittaa systeemin forkkipommilla.
Tietenkin on paljon muutakin ilkeää mitätunkeutuja voi tehdä, mutta ainakin tuon on sitten estettynä.
Suurin osa nykydistroista ei automaattisesti moisia asetuksia laita käyttäjän puolesta.
Säälittävää sikäli ... onneksi on parantamisen varaa.
Nytpä olisi tilausta sellaiselle distrolle, missä limitit määrättäisiin jokaisella käyttäjälle automaattisesti.
Nythän on niin, että tällä koneella ainoa apina hääräämässä on minä eikä kukaan ksymforkkipelle.
Ota yksi bsd-pölö hännästä kii, kiipeä korkean talon katolle, pyöräytä pari kertaa ilmassa ja päästä irti. Ja kas noin on yksi häiriötekijä vähemmän.