Rask forklaring av gaffelbomben. Hva gjør gaffelbomben i GNU / Linux?
: () {: |: &};:
Det er en type nektelse av tjenester eller DoS-angrep, som i utgangspunktet det den metter den tilgjengelige plassen på datamaskinen, selv om det er mulig å bruke gaffelbomber på hvilket som helst språk, vil jeg bare fokusere på bash, av formen som virker så rart
Selv om det ser veldig komplekst ut, er det enkelt det er en enkel funksjon som kaller seg selv ... Nå kan gaffelpumpen leses XD
: () {: |: &};:
Her er en enkel funksjon ...
funksjon () {var1 = $ 1 ekko "Funksjon"}
For alle som kan lese og litt programmering
bombe () {bombe | pumpe &}; pumpe
Som du kan se er det veldig enkelt, det skaper en funksjon som kaller seg selv, som skaper en syklus som ikke stopper før den når sitt mål, og metter datamaskinen.
Oppsummert…
: () {
Det er funksjonen som kalles:
: |:
Funksjonen kaller seg selv, ved hjelp av rekursjon og rør. Det verste er når du ringer en gang til ...
&
Gjør bakgrunnsfunksjonen kjørt, slik at prosessen ikke kan avsluttes før alle ressurser er oppbrukt
} ;:
Funksjonen avsluttes og den kalles på nytt ...
I tilfelle noen var nysgjerrige på å se den forførende koden som for en nybegynner til og med kunne være merkelig, men det er ingenting som en liten logikk ikke løser
Alfred.
Faktisk er det interessant, selv om i dag hvis de kaster en gaffelbombe på deg, ville ingenting skje fordi det er sikkerhetsnivåer du angir der du begrenser antall prosesser som et program kan generere, bare distroer som Arch, Gentoo, etc ikke har disse begrensningene som standard, og du må opprette dem.
Det er morsomt fordi Tete og jeg tilbringer en dag med å le oss av latter med dette emnet. Mange som installerer Arch installerer det bare og legger miljøet på det, men glemmer mange andre veldig viktige ting som er nødvendige for å konfigurere (eller i det minste de var nødvendig, sannheten er at jeg ikke aner hvordan det er nå), og det ble derfor sagt at det var "enkelt og raskt å installere".
Uansett tror jeg det hadde vært litt enklere å forklare det med bomben i python, som er enda mer eksplisitt.
Faktisk er disse prosessutførelsesinnstillingene vanligvis ganske viktige når du installerer en GNU / Linux-distro med en minimalisme som Arch og / eller Gentoo har.
Og forresten, de gangene jeg begynner å bruke Arch er å teste versjonene av programmer og grensesnitt som nettopp har kommet ut av ovnen. Uansett, den gaffelbomben er ganske interessant.
Ja, det er mye lettere å forstå i python, jeg lar dem være her i tilfelle noen er interessert:
import os
mens sant:
—-Os.fork ()
Og med rekursjon:
import os
def bombe ():
—-Os.fork ()
--bombe()
bombe()
Og nano det skal bemerkes at i debian 7 Stable er det heller ingen sikkerhet for dette, i det minste ikke med python, systemet henger umiddelbart.
Hilsener.
Vel, jeg har utført en gaffelbombe i Ubuntu, og datamaskinen krasjet umiddelbart
For å deaktivere pumpen er prosessene i terminalen begrenset med: ulimit -u 50 og pumpen deaktivert: p.
I alle fall bør det nevnes at nåværende operativsystemer har begrenset hvor mange prosesser de kan ha aktive, det handler om å skyte en gaffelbombe på en Fedora og ingenting vil skje.
Uten tvil, men for eksempel solaris og windows (det er der jeg har testet det) er ikke beskyttet.
KUL! 🙂
Gjør det samme; men denne gangen gjør det nyttig, det vil si kjøre i windows og ha det som skjer. Ikke på GNU / Linux.
Veldig nysgjerrig, nærheten til temaet datamaskinsabotasje, jeg vet ikke om det kan være tilfelle med Gnash-spilleren: på Vimeo-siden kjører den videoer feilfritt, men på YouTube når den knapt en oppløsning på 240 piksler; I Dailymotions reproduserer den ikke, etter mitt syn, noe uforståelig for meg, siden jeg ikke er programmerer.
Hvis dette ikke endres, tror jeg det ikke er en dårlig idé for gratis programvaresupportere å publisere videoene våre der de blir spredt til alle, uten diskriminering.
Gnash burde være oppmerksom på det, men siden utviklingen var treg valgte Mozilla å lage sin egen Flash-spiller basert på Javascript kalt Shumway. Jeg håper Shumway er ute snart, så jeg kan erstatte Flash Player jeg har på GNU / Linux.
Og siden vi er det, er det ikke nok å si hvordan du kan beskytte deg selv, en veldig grunnleggende måte (og spesielt for Noobs Archers) er å begrense antall prosesser, for dette går vi til /etc/security/limits.conf og legger til følgende linje:
* hard nproc 1000
Med dette begrenser vi prosessene til den mengden, for eksempel har jeg den satt til den mengden (selv om hele operativsystemet fullt kjører med mye mindre, ca 200-300 prosesser), og når jeg bruker gaffelbomben, forblir operativsystemet mitt fullt funksjonelt og Immune, er det klart at hvis vi begrenser antall prosesser til noe veldig lavt, kan det føre til noen annen konsekvens siden et eller annet program vil lage prosesser, og operativsystemet ikke vil la det, i mitt tilfelle, være begrenset til 1000 prosesser, det er perfekt for meg
Jeg har satt den på
* soft nproc 500
* hard nproc 1000
Selv om arch wiki anbefaler myk på 100 og hard på 200.
Selv om det ikke skal være noe problem, er jeg redd for å kaste en bombe for å teste ... xD
Den enkleste måten å skjerme på er ved å begrense ulimitsverdien slik at pumpeprosessen kan drepes.
Interessant artikkel, for å forhindre det i Slackware bruker vi ulimit i / etc / profilfilen
Problemet med å begrense ulimit er at det kan begrense bruken av systemet avhengig av hva du gjør.