Vraag Hoe Ubuntu te beschermen tegen vorkbommen


Ik hoorde iemand praten over een vorkbom, ik heb wat onderzoek gedaan en een vreselijke informatie gevonden over een aantal vreemd uitziende personages. Mensen kunnen je laten typen op de opdrachtregel en als gevolg slechte dingen doen op de computer. Ik zou zeker geen bevelen geven die ik niet begrijp, maar je weet nooit wat er kan gebeuren.

Ik heb gehoord dat sommige besturingssystemen de beheerder toestaan ​​om een ​​limiet in te stellen voor gebruikersprocessen om de effecten van vorkbommen te verminderen, is deze beveiliging standaard in Ubuntu of moet een persoon met sudo-privilege dit instellen? Zo ja, hoe?


71
2018-01-27 15:44


oorsprong




antwoorden:


Je kunt eenvoudig het aantal processen beperken dat kan worden uitgelokt in Ubuntu en de meeste andere Linux-distributies door het te wijzigen /etc/security/limits.conf

sudoedit /etc/security/limits.conf

Voeg vervolgens deze regel toe aan de onderkant van dat bestand:

*    hard     nproc     nnn

waar:

  • hard stelt de limiet op kernelniveau in zodat deze niet kan worden gewijzigd zonder opnieuw op te starten.
  • nproc is het maximale aantal processen per gebruiker.
  • nnn is een getal dat u voor uw systeem moet berekenen door:

    ps aux -L | cut --delimiter=" " --fields=1 | sort | uniq --count | sort --numeric-sort | tail --lines=1
    

Met de opdracht hierboven worden alle processen voor alle gebruikers weergegeven inclusief threads, som ze op en noteer de gebruikersnaam met het grootste aantal processen. Voor de zekerheid, open zoveel toepassingen als u normaal nodig heeft voordat u de bovenstaande opdracht uitvoert en verdubbel dat nummer voor uw veiligheid.

Nadat deze limiet is ingevoerd, moet u opnieuw opstarten, maar dit heeft invloed op elk non-root gebruiker op het systeem. Dus als een vorkbom wordt uitgevoerd door een niet-rootgebruiker, heeft die die limiet.

Groeps- en wildcardlimieten zijn standaard niet van toepassing op de rootgebruiker. Gebruik de letterlijke gebruikersnaam root in de regels als u een regel wilt toepassen op de superuser.

Ook als u niet snel wilt herstarten, kunt u gebruiken sudo ulimit -u 800 die de beperking alleen op de actieve sessie plaatst maar kan eenvoudig worden omzeild door een vorkbom met sudo privileges!

Na opnieuw opstarten, wat er ook in zit /etc/security/limits.conf zal dan worden gebruikt.

Wat aanvullende informatie over vorkbommen: het zijn geen malware of iets vreselijks. Ze bestaan ​​meestal uit iets dat zo basaal is als een script dat zichzelf twee keer oproept, waardoor de aanwezigheid ervan exponentieel toeneemt op de machine. Hoewel ze een kleine geheugenvoetafdruk hebben, gezien het snelle tempo waarmee ze meerdere zijn, vullen ze snel alle beschikbare RAM-geheugen en de machine loopt vast of start opnieuw op. Het enige gevaar is niet-opgeslagen informatie verliezen. Ik zou een vorkbom veel meer als een grap dan een kwaadwillende software classificeren.

Een belangrijke herinnering:

Je zou zelden iets in de commandoregel moeten uitvoeren als je niet 98% zeker bent van zijn actie. Als u de opdrachten die u uitvoert niet kunt lezen - doe het dan niet. Dit geldt dubbel voor onleesbare brokken hex / base64-tekens, die kunnen worden gebruikt om allerlei soorten rampen te verdoezelen. Als je niet zeker bent van een commando, kun je altijd zoeken naar zijn acties in de Ubuntu Manpages en wees extra voorzichtig tijdens het gebruik sudoomdat dat als de root-gebruiker zal worden uitgevoerd.


70
2018-01-27 15:52



@MarcoCeppi: uw nummer was niet ver weg voor een typische Unity-gebruiker: de uitvoer voor de berekening is momenteel 404 voor mijn systeem ... - Fabby
@ Fatby Bedankt voor de update! - Marco Ceppi♦
Als ik bijvoorbeeld iets zou zeggen alias ":(){ :|: & };:"="echo 'No.'" in mijn .bashrc - zal het elke login uitvoeren? - UniversallyUniqueID
Is er een nadeel aan het kiezen van een hogere nproc-limiet? Het lijkt erop dat er niet veel ruimte is met een limiet op of zelfs het dubbele van de huidige # processen, zou een limiet veel hoger, zelfs 10.000 of meer, nog steeds effectief zijn tegen een vorkbom? Hoeveel ram verbruikt elke vork / proces? Misschien is er een meer universele RAM-afgeleide limiet? - Xen2050


Een eenvoudige manier die ik leuk vind, is om een ​​alias te maken hoewel alias 'niet altijd worden toegepast, bekijk het antwoord hierboven.

alias :="echo No."

Nu

$ :(){ :|: & };:

bash: syntax error near unexpected token `('


0
2018-01-02 02:27



dit is ongetwijfeld een veel voorkomende oplossing; hoe stopt dit a(){ a|a & };a? (of een andere functienaam?) - cat