Tietokonemaailmassa, tiettyjä komentoja Ne saattavat ensi silmäyksellä näyttää vaarattomilta, mutta ne kätkevät tuhoavan voiman, joka voi haitallisesti tai vahingossa käytettynä tuhota koko järjestelmän. Näistä käskyistä yksi tunnetuimmista - tai ei - ja pelätyistä on ns haarukkapommi, tai haarukkapommi.
Haarukkapommi ei ole muuta kuin palvelunestohyökkäys (DoS), suunniteltu kuluttamaan käytettävissä olevia järjestelmäresursseja, kuten prosessori ja muisti, siihen pisteeseen, jossa siitä tulee käyttökelvoton. Jos olet koskaan miettinyt, miten tämä komento toimii, miksi se voi olla niin haitallista ja mihin toimiin voit ryhtyä suojellaksesi itseäsi, täältä löydät kaiken mitä sinun tarvitsee tietää helposti ja yksityiskohtaisesti selitettynä.
Mikä on haarukkapommi?
Haarukkapommi, joka tunnetaan myös nimellä "kanin virus", koska sillä on taipumus replikoitua eksponentiaalisesti, on tekniikka, joka käyttää prosessien massaluomista järjestelmän kyllästämiseen toiminnassa. Tämä saavutetaan komennolla, joka käyttää fork-toimintoa, joka on saatavilla Unix- ja Linux-järjestelmissä. Fork-funktion avulla prosessi voi luoda itsestään tarkan kopion, joka tunnetaan lapsiprosessina.
Edustavin komento, joka liittyy a haarukkapommi on seuraava:
: () {: |: &};:
Tämän komennon rakenne, vaikka se on kompakti, on uskomattoman tehokas. Se määrittelee funktion nimeltä :, joka kutsuu itseään rekursiivisesti luoden kussakin suorituksessa kaksi uutta prosessia operaattorin ansiosta putki | ja suoritus taustalla &. Tuloksena on prosessien eksponentiaalinen kasvu, joka romahtaa järjestelmän muutamassa sekunnissa.
Kuinka haarukkapommi toimii?
Komento : () {: |: &};: Se voi aluksi tuntua hämmentävältä, joten jaetaan se vaihe vaiheelta:
:
: Tämä symboli edustaa toiminnon nimeä. Itse asiassa voit käyttää mitä tahansa nimeä.() { }
: Tämä syntaksi määrittää funktion ilman parametreja.:|:
: Kun funktio on määritetty, se kutsuu itseään ja operaattoria | ohjaa tulostensa uuteen ilmentymäänsä.&
: Tämä symboli suorittaa kutsuja taustalla, mikä mahdollistaa prosessien samanaikaisen luomisen.;
: Toimii erottimena funktion määrittelyn ja sen alkuperäisen suorituksen välillä.:
: Lopuksi tämä viimeinen symboli suorittaa toiminnon, joka käynnistää prosessien sarjan.
Kun haarukkapommi on käynnissä, se kuluttaa nopeasti järjestelmäresursseja, estää kykyä ajaa uusia prosesseja ja yleensä pakotetaan käynnistämään tietokone uudelleen.
Haavoittuvat järjestelmät
käytännössä mikä tahansa Unix- tai Linux-pohjainen käyttöjärjestelmä, kuten Ubuntu, Debian tai Red Hat, on alttiina haarukkapommille, koska kaikki nämä käyttävät fork-järjestelmäkutsua. Kuitenkin järjestelmät Windows Ne eivät ole alttiita tälle tietyntyyppiselle hyökkäykselle, koska niillä ei ole haarukkaa vastaavaa toimintoa. Sen sijaan Windowsissa sinun pitäisi luoda joukko uusia prosesseja samalla tavalla, mutta tämä vaatii monimutkaisempaa lähestymistapaa.
Esimerkkejä Fork Bombista eri kielillä
La haarukkapommi Se ei ole yksinomaan Bash; Se voidaan toteuttaa muilla ohjelmointikielillä. Tässä muutamia esimerkkejä:
Python Fork -pommi
#!/usr/bin/env python import os, kun taas True: os.fork()
Java Fork Bomb
public class Bomb { public static void main(final String[] args) { while (true) { Runtime.getRuntime().exec("java Bomb"); } } }
C Haarukkapommi
#sisältää int main(void) { while (1) { haarukka(); } }
Haarukkapommin vaikutus
Haarukkapommin tärkein vaikutus on järjestelmän ylikuormitus. Resurssit, kuten CPU, muisti ja prosessitulot kuluvat nopeasti, jolloin järjestelmä muuttuu epävakaaksi tai reagoimattomaksi. Useimmissa tapauksissa tarvitset a pakko uudelleenkäynnistys saada hallinta takaisin. Lisäksi on olemassa merkittävä tietojen menettämisen riski sovelluksen äkillisen käyttäytymisen vuoksi katastrofin aikana.
Ennaltaehkäisytoimenpiteet
Vaikka haarukkapommi voi olla tuhoisa, On olemassa tapoja lieventää sen vaikutusta ja jopa estää sitä. täysin:
1. Rajoita prosessien määrää
Komento ulimit Linuxissa sen avulla voit asettaa rajan prosessien enimmäismäärälle, jonka käyttäjä voi luoda. Esimerkiksi:
raja -u 5000
Tämä rajoittaa käyttäjän saamaan enintään 5000 aktiivista prosessia.
2. Määritä pysyvät rajat
Jos haluat käyttää rajoituksia pysyvästi, voit muokata tiedostoa /etc/security/limits.conf
. Esimerkiksi:
kova käyttäjä nproc 5000
Tämä varmistaa, että rajoitukset pysyvät voimassa myös käyttäjän uloskirjautumisen jälkeen.
3. C-ryhmien käyttö
Nykyaikaisissa Linux-järjestelmissä ryhmät (ohjausryhmät) mahdollistavat järjestelmäresurssien tarkemman hallinnan, mukaan lukien resurssien määrän sallittuja prosesseja.
Älä kiinnitä huomiota siihen, mitä näet sosiaalisessa mediassa
Tämäntyyppiset komennot voivat esiintyä sosiaalisissa verkostoissa käytännöllisenä vitsinä, joten meidän on oltava varovaisia emmekä kirjoita päätteeseen, mitä he sanovat. Menemättä pidemmälle, jos laitamme "haarukkapommin" X:ään, näemme vastaus viestiin jossa lukee "hei, haarukkapommi". Alkuperäinen, muutama hetki sitten jaettu viesti sanoo, että siellä on kissa, jonka nimi on :(){ :|:& };: ja että laitoit sen terminaaliin. Olemme jo selittäneet, mitä se tekee, joten älä tee sitä.
Haarukkapommi, vaikkakin konseptiltaan yksinkertainen, sillä on syvä vaikutus haavoittuviin järjestelmiin. Sen toiminnan, sen vaikutusten ja sen lieventämiskeinojen ymmärtäminen on välttämätöntä nykyaikaisten tietojenkäsittelyympäristöjen suojelemiseksi. Se on muistutus siitä, kuinka yksinkertainen komento voi johtaa katastrofaalisiin seurauksiin, ja myös oikean järjestelmänhallinnan ja turvallisuusrajojen asettamisen tärkeydestä.