Jede Version Umfassender Angriffsschutz (OOG und andere). Serverschutz vor Hacking Physischer Serverschutz

Die meisten Programme müssen mit dem Benutzer interagieren, indem sie bestimmte Daten eingeben, sei es der vollständige Name, die Größe, das Gewicht, das in die Datenbank eingegeben werden soll, oder die geometrischen Abmessungen eines Objekts, für das etwas berechnet werden muss. Alle diese Daten werden vom Benutzer eingegeben - einer Person, was bedeutet, dass alles als Antwort kommen kann. Was wird das Programm produzieren, wenn der Benutzer es anstelle des erforderlichen Alters in einem Wort schreibt? Höchstwahrscheinlich stürzt das Programm ab oder hängt sich auf, aber nicht, wenn es einen "Narrenschutz" enthält.

Warum kann ein Programm beendet oder eingefroren werden? Das Programm wird versuchen, den Zeichensatz in eine Zahl umzuwandeln, was fehlschlägt, was bedeutet weitere Arbeit Anwendung ist nicht definiert. Daher ist es sehr wichtig, die Struktur des Programms so zu organisieren, dass Sie es eingeben unerwartet für das Datenprogramm (falsch in Bezug auf das geforderte Format: es wird eine Zahl benötigt, aber ein Wort wird eingegeben) „stürzte“ die Anwendung nicht, sondern teilte dem Benutzer mit, dass ein Fehler aufgetreten sei, und bot an, die Eingabe zu wiederholen. Das ist „idiotensicher“.

Implementieren von Narrensicherheit in C

Um eine gute Narbensicherheit für die Eingabe verschiedener numerischer (int, double ...) Daten zu implementieren, ist es notwendig, nicht die Zahlen selbst, sondern den gesamten Eingabestring zu lesen und erst dann die Eingabe zu analysieren. Die C-Sprache hat eine sehr schöne Funktion sscanf(const char *, const char *, args) , die ähnlich wie die Funktion scanf(const char *, args) funktioniert und die Anzahl der erfolgreich gelesenen Argumente zurückgibt, nur dass die Daten nicht gelesen werden aus dem Standardeingabestream, sondern aus der als erstes Argument übergebenen Zeichenfolge.

Schauen wir uns ein paar Beispiele für Funktionen an, die eine Dummheitsprüfung mit der Funktion sscanf implementieren.

Eingabe einer Ganzzahl mit Prüfung auf ungültige Eingabe

int get_integer(const char *msg) ( char answer; // zu lesender String int n; // finale Ganzzahl printf("%s", msg); // Eingabeaufforderung drucken fgets(answer, sizeof(answer), stdin); // den String lesen // bis eine ganze Zahl gelesen wird while (sscanf(answer, "%d", &n) != 1) ( printf("Falsche Eingabe. Versuchen Sie es erneut: "); // eine Meldung über Fehler ausgeben fgets (antwort, sizeof(antwort), stdin); // und den String erneut lesen ) return n; // eine gültige ganze Zahl zurückgeben )

Um eine ganze Zahl zu lesen, liest der Algorithmus den gesamten String und versucht dann, daraus eine ganze Zahl zu bekommen. Falls dies fehlschlägt, zeigt die Funktion eine Fehlermeldung mit dem Vorschlag, die Eingabe zu wiederholen, bis der richtige ganzzahlige Wert eingegeben ist.

Eingabe einer reellen Zahl mit Überprüfung auf falsche Eingabe

double get_double(const char *msg) ( char answer; // Zeichenfolge zum Lesen von double x; // resultierende reelle Zahl printf("%s", msg); // drucke Eingabeaufforderung fgets(answer, sizeof(answer), stdin) ; // den String lesen // bis eine reelle Zahl gelesen wird while (sscanf(antwort, "%lf", &x) != 1) ( printf("Falsche Eingabe. Versuch es noch einmal: "); // gib eine Nachricht über error fgets(answer, sizeof(answer), stdin); // und den String erneut lesen ) return x; // eine gültige reelle Zahl zurückgeben )

Eingabe eines Punktes auf der Koordinatenebene (Struktur mit zwei reellen Feldern)

// Beschreibung der Datenstruktur typedef struct point_t ( double x; // x-Koordinate double y; // y-Koordinate ) point_t; point_t get_point(const char *msg) ( char answer; // Zeichenfolge zum Lesen von point_t point; // Endpunkt printf("%s", msg); // Eingabeaufforderung drucken fgets(answer, sizeof(answer), stdin ); // Zeile lesen // bis beide Punktkoordinaten gelesen sind while (sscanf(answer, "(%lf,%lf)", &point.x, &point.y) != 2) ( printf("Falsche Eingabe. Versuchen Sie es erneut: "); // die Fehlermeldung ausgeben fgets(answer, sizeof(answer), stdin); // und den String erneut lesen ) return point; // den richtigen Punkt zurückgeben )

Wie aus den Beispielen ersichtlich ist, ermöglicht Ihnen die Funktion der Rückgabe der Anzahl der von der Funktion sscanf gelesenen Argumente, die Richtigkeit der eingegebenen Daten im angegebenen Format zu kontrollieren, und das Lesen der gesamten Zeile schützt vor Leerzeichen oder Zeilen Unterbrechungen "\n" verbleiben im Eingabestrom, was Sie sehr oft dazu zwingt, nicht eine einzige Stunde oder sogar einen Tag damit zu verbringen, nach einem Fehler zu suchen.

Hallo an alle vom UNITWAY PW-Team. Mit diesem Thema möchten wir die Abwesenheit von unlauterem Wettbewerb von unserer Seite und von schwarzer, hässlicher, betrügerischer Konkurrenz durch das NewDestiny-Projekt demonstrieren.

Hier ist eine Liste von Lösungen von Angriffen, die jemals von den Administratoren von NewDestiny loko9988, TyrikMan (der gestrige OOG-Angriff erfolgte von der IP-Adresse von Yoshkar Ola), Killer_Pooh (ein Angriff aus der Stadt Volzhsky wurde ebenfalls aufgezeichnet) verwendet wurden. Neben Angriffen auf uns erhielten wir Informationen über einen Angriff auf eine Reihe anderer Server, der mit unserer Entdeckung in Verbindung stand. Indem wir eine Reihe von Korrekturen aus diesen Angriffen veröffentlichen, demonstrieren wir unsere Nichtbeteiligung an Angriffen auf irgendjemanden, trotz der eindeutig besorgten Haltung des Administrators Zzebra PW (mirthost) zu unserem Projekt. Wir hegen absolut keinen Groll gegen alle, die auf den gelben Artikel über uns hereingefallen sind, jeder hat seinen eigenen Kopf auf den Schultern.


Und das ist nur ein Teil ihrer Konten.

Einer der Gründe für die Veröffentlichung dieses Themas waren die Gerüchte, die uns erreicht haben. Der Kern dieser Gerüchte ist, dass loko9988 Server nicht nur aus Konkurrenzgründen angreift, sondern auch um diesen Servern dadurch Schutz zu bieten.

Schutz vor OOG-Angriffen basierend auf iptables:
Zunächst erstellen wir Skript-Firewall-Regeln, die Sie beliebig nennen können.

iptables -A INPUT -p tcp -m multiport --dports 29000 -m length --length 500:65535 -j LOG --log-prefix "PW"

Zum Anzeigen klicken...

Mit dieser Regel schreiben wir alle Spielpakete von Port 29000 in einer Größe von 500 bis 65535 Bytes.

iptables -A INPUT -p tcp -m multiport --dports 29000 -m length --length 500:65535 -m updated --name packets --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m length --length 500:65535 -m updated --name packets --update --seconds 1 --hitcount 100 -j REJECT

Zum Anzeigen klicken...

Mit diesen Regeln blockieren wir den Benutzer, wenn der Server von ihm mehr als 100 Pakete mit 500 - 65535 Bytes in 1 Sekunde auf Port 29000 (Spiel) empfangen hat.

iptables -A INPUT -p tcp -m multiport --dports 29000 -m length --length SIZE -m updated --name packet1 --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m length --length SIZE -m updated --name packet1 --update --seconds 15 --hitcount 3 -j REJECT

Zum Anzeigen klicken...

Mit diesen Regeln blockieren wir Benutzer, die mehr als 3 Pakete in 15 Sekunden an Port 29000 gesendet haben. SIZE - Paketgröße in Byte.
Wie kann ich die Paketgröße in Bytes verfolgen?
Nach der ersten Regel, in der wir alle Spielpakete protokollieren, können Sie sie in der Datei sehen /var/log/syslog oder Mannschaft dmesg in der Serverkonsole.
Wenn ein Angriff im Gange ist, werden in kurzer Zeit viele identische Pakete im Syslog stehen.

PW IN=ipip1 OUT= MAC= SRC= BENUTZERIP-ADRESSE DST=*.*.*.* LEN=547 TOS=0x00 PREC=0x00 TTL=241 ID=13328 DF PROTO=TCP SPT=22511 DPT=63947 WINDOW=254 RES=0x00 ACK PSH URGP=0

Zum Anzeigen klicken...

Im obigen Beispiel ist die Burst-Größe "LEN=547".

Wir haben den OOG-Schutz herausgefunden. Lassen Sie uns zu anderen Möglichkeiten übergehen, mit denen NewDestiny konkurriert.
Brute-Konten. Hier ist alles ganz einfach:
#Brute-Force-Anmeldung blockieren

iptables -A INPUT -p tcp -m multiport --dports 29000 -m conntrack --ctstate NEW -m updated --name brute --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m conntrack --ctstate NEW -m updated --name brute --update --seconds 30 --hitcount 3 -j REJECT

Zum Anzeigen klicken...

Mit dieser Regel blockieren wir die IP des Benutzers für 30 Sekunden, wenn er mehr als 3 Verbindungsanfragen an Port 29000 gestellt hat.
  • Machen Sie eine vollständige Beschränkung der Ports, außer für Spiele über iptables.
  • Stellen Sie eine Verbindung zum Server her, indem Sie den ssh-Schlüssel (keys) mit einem Codewort verwenden.
  • Verwenden letzte Version mysql, apache2 und andere wichtige Pakete.
  • Verwenden Sie nach dem Laden über OOG logrotate, andernfalls when Sicherung Protokolle Rom Ihr Server wird voll ausgelastet. Dies kann zu einem Hack führen.
  • Verwenden Sie keine Software von Drittanbietern auf dem Spielserver.
  • Verwenden Sie einen benutzerdefinierten Spielerpasswortfilter. Innerhalb weniger Stunden gab es über 50.000 ungültige Autorisierungsversuche auf unsere Autorisierung. 30 % unserer Spieler hatten identische Logins von diesen Login-Passwort-Paaren.
Wir bevorzugen eine faire Durchführung des Wettbewerbs, wir haben keine Zeit und kein zusätzliches Geld für Angriffe. Leg dich nicht mit diesen Leuten an, es kann böse enden.

Es ist unmöglich, den Server ein für alle Mal vor fremden Zugriffen zu schützen, da jeden Tag neue Schwachstellen entdeckt werden und neue Möglichkeiten auftauchen, den Server zu hacken. Wir werden in diesem Artikel über den Schutz von Servern vor unbefugtem Zugriff sprechen.

Die Server jedes Unternehmens können früher oder später Ziel von Hackerangriffen oder Virenangriffen werden. Typischerweise ist das Ergebnis eines solchen Angriffs Datenverlust, Reputations- oder finanzieller Schaden, daher sollten Probleme mit der Serversicherheit in erster Linie angegangen werden.

Es versteht sich, dass der Schutz vor Server-Hacking aus einer Reihe von Maßnahmen besteht, einschließlich solcher, die eine ständige Überwachung des Serverbetriebs und Bemühungen zur Verbesserung des Schutzes beinhalten. Es ist unmöglich, den Server ein für alle Mal vor fremden Zugriffen zu schützen, da jeden Tag neue Schwachstellen entdeckt werden und neue Möglichkeiten auftauchen, den Server zu hacken.

Wir werden in diesem Artikel über den Schutz von Servern vor unbefugtem Zugriff sprechen.

Möglichkeiten und Methoden zum Schutz von Servern vor unbefugtem Zugriff

Physischer Schutz des Servers

Physischer Schutz. Es ist wünschenswert, dass sich der Server in einem sicheren Rechenzentrum befindet, einem geschlossenen und bewachten Raum, Außenstehende sollten keinen Zugriff auf den Server haben.

SSH-Authentifizierung einrichten

Verwenden Sie beim Einrichten des Zugriffs auf den Server eine SSH-Schlüsselauthentifizierung anstelle eines Passworts, da solche Schlüssel viel schwieriger und manchmal einfach nicht mit einer Brute-Force-Suche zu knacken sind.

Wenn Sie der Meinung sind, dass Sie noch ein Passwort benötigen, begrenzen Sie die Anzahl der Eingabeversuche.

Achten Sie darauf, wenn Sie beim Einloggen eine Meldung wie diese sehen:

Letzte fehlgeschlagene Anmeldung: Di, 28. September 12:42:35 MSK 2017 vom 52.15.194.10 auf ssh:notty
Seit der letzten erfolgreichen Anmeldung gab es 8243 fehlgeschlagene Anmeldeversuche.

Es kann darauf hindeuten, dass Ihr Server gehackt wurde. Um in diesem Fall die Serversicherheit zu konfigurieren, den SSH-Port zu ändern, die Liste der IPs einzuschränken, von denen aus Zugriff auf den Server möglich ist, oder Software zu installieren, die übermäßig häufige und verdächtige Aktivitäten automatisch blockiert.

Installieren Sie regelmäßig die neuesten Updates

Um den Serverschutz zu gewährleisten, installieren Sie die neuesten Patches und Updates der von Ihnen verwendeten Serversoftware - Betriebssystem, Hypervisor, Datenbankserver.

Es ist ratsam, jeden Tag nach neuen Patches, Updates und gemeldeten Fehlern/Schwachstellen zu suchen, um Angriffe zu verhindern, die Zero-Day-Schwachstellen ausnutzen. Abonnieren Sie dazu Nachrichten des Softwareentwicklungsunternehmens und folgen Sie seinen Seiten in sozialen Netzwerken.

Passwörter schützen

Bei weitem eine der häufigsten Methoden, um Zugang zu einem Server zu erhalten, besteht darin, das Passwort des Servers zu knacken. Befolgen Sie daher die bekannten, aber dennoch relevanten Empfehlungen, um den Server nicht ungeschützt zu lassen:

  • Verwenden Sie keine leicht zu erratenden Passwörter, wie z. B. den Namen des Unternehmens;
  • Wenn Sie immer noch das Standardkennwort für die Verwaltungskonsole verwenden, ändern Sie es sofort.
  • Passwörter für verschiedene Dienste müssen unterschiedlich sein;
  • Wenn Sie Ihr Passwort mit jemandem teilen müssen, senden Sie niemals Ihre IP-Adresse, Ihren Benutzernamen und Ihr Passwort in derselben E-Mail oder Messenger-Nachricht.
  • Sie können die Bestätigung in zwei Schritten einrichten, um sich beim Administratorkonto anzumelden.

Firewall

  • Stellen Sie sicher, dass der Server installiert ist, konfiguriert ist und die ganze Zeit läuft.
  • Schützen Sie sowohl eingehenden als auch ausgehenden Datenverkehr.
  • Verfolgen Sie, welche Ports offen sind und zu welchem ​​Zweck, öffnen Sie nichts Unnötiges, um die Anzahl möglicher Schwachstellen für Server-Hacking zu reduzieren.

Insbesondere eine Firewall hilft sehr dabei, den Server davor zu schützen Ddos-Angriffe, Weil Sie können schnell blockierende Firewall-Regeln erstellen und IP-Adressen hinzufügen, von denen der Angriff kommt, oder den Zugriff auf bestimmte Anwendungen mit bestimmten Protokollen blockieren.

Überwachung und Einbruchserkennung

  • Beschränken Sie die Software und Dienste, die auf Ihrem Server ausgeführt werden. Überprüfen Sie regelmäßig alles, was Sie ausführen, und wenn unbekannte Prozesse gefunden werden, löschen Sie diese sofort und beginnen Sie mit der Suche nach Viren.
  • Überprüfen Sie regelmäßig auf Anzeichen von Manipulation. Hacking kann durch neue nachgewiesen werden Konten Benutzer, die Sie nicht erstellt haben, eine Datei verschieben oder löschen /etc/syslog.conf, gelöschte Dateien/etc/schatten Und /etc/passwort .
  • Überwachen Sie die Leistung Ihres Servers, behalten Sie die normale Geschwindigkeit im Auge und Durchsatz, sodass Sie beispielsweise Abweichungen feststellen können, wenn die Belastung des Servers deutlich höher als gewöhnlich geworden ist.

Verwendung von VPN und SSL/TLS-Verschlüsselung

Wenn benötigt Fernzugriff zum Server, sollte es nur von bestimmten IP-Adressen erlaubt sein und über das VPN erfolgen.

Der nächste Schritt zur Gewährleistung der Sicherheit kann die Einrichtung von SSL sein, das nicht nur Daten verschlüsselt, sondern auch die Identität anderer Teilnehmer in der Netzwerkinfrastruktur überprüft, indem es ihnen entsprechende Zertifikate ausstellt.

Server-Sicherheitsprüfung

Sinnvoll wäre es, die Sicherheit des Servers selbstständig im Pentest-Verfahren zu überprüfen, d.h. Angriffssimulation, um potenzielle Schwachstellen zu finden und rechtzeitig zu beseitigen. Es ist ratsam, Spezialisten einzubeziehen Informationssicherheit Einige Tests können jedoch unabhängig voneinander mit Server-Hacking-Programmen durchgeführt werden.

Was außer Hacking noch Server bedroht

Ein Server kann aus einer Reihe von Gründen ausfallen, abgesehen davon, dass er gehackt wurde. Beispielsweise könnte es sich um eine Malware-Infektion oder nur um einen physischen Fehler einer der Komponenten handeln.

Daher sollten Maßnahmen zum Schutz des Servers Folgendes umfassen:

  • Installieren und Aktualisieren von Programmen zum Schutz des Servers - Antivirenprogramme.
  • Regelmäßige verschlüsselte Kopien von Daten mindestens einmal pro Woche, denn laut Statistik stehen Serverfestplatten an erster Stelle, was die Häufigkeit von Ausfällen angeht. Stelle sicher das Sicherheitskopie in einer physisch sicheren Umgebung gespeichert.
  • Sicherstellung der unterbrechungsfreien Stromversorgung des Serverraums.
  • Rechtzeitige physische Vorbeugung von Servern, einschließlich Reinigung von Staub und Austausch von Wärmeleitpaste.

Das sagt uns die Erfahrung der Spezialisten von Integrus beste Verteidigung Gegen solche Bedrohungen ist der Einsatz empfohlene Vorgehensweise im Bereich Serverschutzsysteme.

Um die Sicherheit der Server unserer Kunden zu gewährleisten, verwenden wir eine Kombination von Tools: Firewalls, Virenschutz, Sicherheits- / Event-Management-Technologien (SIM / SEM), Intrusion Detection / Protection-Technologien (IDS / IPS), Network Behavioral Analysis (NBA)-Technologien , natürlich regelmäßige präventive Wartung der Server und Einrichtung sicherer Serverräume auf Turnkey-Basis. Auf diese Weise können Sie das Risiko von Hackerangriffen oder Serverausfällen aus anderen Gründen minimieren.

Wir sind bereit, ein Sicherheitsaudit der Server Ihres Unternehmens durchzuführen, Spezialisten zu konsultieren und alle Arten von Arbeiten zur Einrichtung des Schutzes der Serverausrüstung durchzuführen.



Wird geladen...
Spitze