#include <stdlib.h>
#include <unistd.h>
int main()
{
while(1)
fork();
}
Dies ist der Code für eine Gabelbombe.
In unserer Hochschule stellen wir eine Verbindung über Telnet her, dh über das Client-Serving-Protokoll. Etwa 100 Systeme sind mit dem Server verbunden. Plötzlich wurde der Server langsam und stürzte nach einiger Zeit ab. Ich habe erfahren, dass jemand eine Gabelbombe eingesetzt hat.
Wie können wir feststellen, auf welchem System die Gabelbombe implementiert ist? Und wie können wir damit aufhören?
Eine Methode besteht darin, die maximale Anzahl von Prozessen zu begrenzen, die ein einzelner Benutzer besitzen darf. Gibt es eine Methode, um es zu stoppen und zu wissen, von welchem System es implementiert wurde?
c
process
operating-systems
telnet
Rajesh M
quelle
quelle
Antworten:
Eine Möglichkeit besteht darin, die Anzahl der Prozesse zu begrenzen, die ein Benutzer ausführen kann.
Melden Sie sich einfach als root an und bearbeiten Sie diese Datei, um Benutzer hinzuzufügen und deren Begrenzung zu konfigurieren.
Fügen Sie diese Zeile der Datei hinzu
Jetzt kann Benutzer john nur 10 Prozesse erstellen.
quelle
/etc/security/limits.conf
starten , damit die neuen Einstellungen wirksam werden.Um eine laufende Gabelbombe zu stoppen, können Sie möglicherweise
killall <name>
alle Prozesse der Bombe abbrechen. Da jedoch eine Gabelbombe normalerweise eine unglaublich hohe Belastung des Systems zur Folge hat, können Sie möglicherweise kein SSH ausführen. Ein Neustart könnte also notwendig sein oder zumindest viel schneller.Wenn jeder Benutzer sein eigenes Konto auf dem System hat, können Sie einfach das Ausgangsverzeichnis aller Benutzer überprüfen und nach der ausführbaren Datei suchen. Die Chancen stehen gut, dass er auch den Quellcode hochgeladen hat, sodass es nicht allzu schwer sein sollte, ihn zu finden. Wenn es ein gemeinsamer Account für alle Schüler war, hat man Pech. Insbesondere nach Beendigung der Telnet- oder SSH-Sitzung des Benutzers haben Sie keine Chance herauszufinden, wer sie gestartet hat.
Anstatt jedoch den Benutzer zu bestrafen, der diese Gabelbombe gezündet hat, sollten Sie die Systemkonfiguration so anpassen, dass Gabelbomben entschärft werden. Mit können Sie pro Benutzer Prozesslimits festlegen
/etc/security/limits.conf
und so verhindern, dass eine Gabelbombe außer Kontrolle gerät - mit z. B. nur 50 Prozessen wird eine Gabelbombe nicht viel Schaden anrichten.quelle