Zuhause Persönliche Finanzen C ++ Programmierung: 10 Anti-Hacker Tipps - Dummies

C ++ Programmierung: 10 Anti-Hacker Tipps - Dummies

Inhaltsverzeichnis:

Video: Jedes Spiel hacken und Mod Menü erstellen [Cheat Engine und Visual C#] BKhacks 2025

Video: Jedes Spiel hacken und Mod Menü erstellen [Cheat Engine und Visual C#] BKhacks 2025
Anonim

Als C ++ - Programmierer müssen Sie lernen, was Sie in Ihrem C ++ - Code tun sollten, um zu vermeiden, Programme zu schreiben, die anfällig für Hacker sind. Es werden auch Funktionen beschrieben, die Sie aktivieren können, wenn Ihr Betriebssystem sie unterstützt, z. B. Adressraum-Layout-Randomisierung (ASLR) und Datenausführungsverhinderung (Data Execution Prevention, DEP).

Nehmen Sie keine Annahmen über Benutzereingaben vor.

Der Tunnelblick des Programmierers ist während der frühen Entwicklungsphase in Ordnung. Irgendwann jedoch muss sich der Programmierer (oder, noch besser, ein anderer Programmierer, der nichts mit der Entwicklung des Codes zu tun hatte) zurücklehnen und das unmittelbare Problem vergessen. Sie muss sich fragen: "Wie wird dieses Programm auf illegale Eingabe reagieren? "

Hier einige Regeln zum Überprüfen der Eingabe:

  • Nehmen Sie keine Annahmen über die Länge der Eingabe vor.

  • Akzeptieren Sie in Ihren Puffern fester Länge (oder bei Verwendung von Puffern variabler Größe) nicht mehr Eingaben, als Sie Platz haben.

  • Überprüfen Sie den Bereich jedes numerischen Werts, um sicherzustellen, dass dies sinnvoll ist.

  • Suchen Sie nach Sonderzeichen, die von einem Hacker zum Einschleusen von Code verwendet werden können, und filtern Sie diese heraus.

  • Übergeben Sie keine Rohdaten an einen anderen Dienst, z. B. einen Datenbankserver.

Und führen Sie die gleichen Prüfungen für die von den Remote-Services zurückgegebenen Werte durch. Der Hacker befindet sich möglicherweise nicht auf der Eingabeseite, er kann sich auf der Antwortseite befinden.

Fehlerhaft behandeln

Ihr Programm sollte angemessen auf Fehler reagieren, die innerhalb des Programms auftreten. Wenn Ihr Aufruf einer Bibliotheksfunktion z. B. ein nullptr, zurückgibt, sollte das Programm dies erkennen und etwas Vernünftiges tun.

Vernünftig ist hier recht liberal zu verstehen. Das Programm muss nicht herumschnüffeln, um herauszufinden, warum die Funktion keine vernünftige Adresse zurückgegeben hat. Es könnte sein, dass die Anfrage wegen zu unangemessener Eingabe zu viel Speicher war. Oder es könnte sein, dass der Konstruktor irgendeine Art von illegaler Eingabe erkannt hat.

Es spielt keine Rolle. Der Punkt ist, dass das Programm seinen Zustand so gut wie möglich wiederherstellen und für das nächste Bit der Eingabe einrichten sollte, ohne vorhandene Datenstrukturen wie den Heap zu zerstören oder zu beschädigen.

Ein Programmprotokoll verwalten

Erstellen und verwalten Sie Laufzeitprotokolle, die es jemandem ermöglichen, zu rekonstruieren, was im Falle eines Sicherheitsfehlers passiert ist. (In der Tat gilt dies auch für alle Arten von Fehlern.) Zum Beispiel möchten Sie wahrscheinlich jedes Mal protokollieren, wenn sich jemand bei Ihrem System anmeldet oder aus ihm herausmeldet.

Sie möchten auf jeden Fall wissen, wer in Ihrem System angemeldet war, als ein Sicherheitsereignis eintrat - dies ist die Gruppe, die am meisten von einem Sicherheitsverlust bedroht ist und die am meisten misstrauisch ist, wenn sie nach Angeklagten sucht.Außerdem sollten Sie Systemfehler protokollieren, die die meisten Ausnahmen enthalten würden.

Ein reales Produktionsprogramm enthält eine große Anzahl von Aufrufen, die ungefähr wie folgt aussehen:

log (DEBUG, "Benutzer% s eingegebenes legales Passwort", sUser);

Dies ist nur ein Beispiel. Jedes Programm benötigt eine Art Protokollfunktion. Ob es tatsächlich log () genannt wird, ist unwesentlich.

Verfolgen Sie einen guten Entwicklungsprozess

Jedes Programm sollte einem durchdachten, formalen Entwicklungsprozess folgen. Dieser Prozess sollte mindestens die folgenden Schritte enthalten:

  • Anforderungen erfassen und dokumentieren, einschließlich Sicherheitsanforderungen.

  • Design überprüfen.

  • Befolgen Sie einen Codierungsstandard.

  • Unterwerfstest.

  • Führen Sie formale Abnahmeprüfungen durch, die auf den ursprünglichen Anforderungen basieren.

Darüber hinaus sollten Peer Reviews an Schlüsselpunkten durchgeführt werden, um zu verifizieren, dass die Anforderungen, das Design, der Code und die Testverfahren von hoher Qualität sind und Unternehmensstandards erfüllen.

Implementierung einer guten Versionskontrolle

Die Versionskontrolle ist eine seltsame Sache. Es ist natürlich, sich nicht um die Version 1. 1 zu kümmern, wenn Sie unter der Pistole sind, um Version 1. 0 aus der Tür und in die ausgestreckten Hände der wartenden Benutzer zu bekommen. Die Versionskontrolle ist jedoch ein wichtiges Thema, das frühzeitig angesprochen werden muss, da sie in das ursprüngliche Design des Programms eingebaut und nicht später verschraubt werden muss.

Ein fast trivialer Aspekt der Versionskontrolle besteht darin, zu wissen, welche Version des Programms ein Benutzer verwendet. Wenn ein Benutzer aufruft und sagt: "Das macht er, wenn ich darauf klicke", muss der Helpdesk wirklich wissen, welche Version des Programms der Benutzer verwendet. Er könnte ein Problem in seiner Version beschreiben, das bereits in der aktuellen Version behoben wurde.

Benutzer sicher authentifizieren

Die Benutzerauthentifizierung sollte unkompliziert sein: Der Benutzer stellt einen Kontonamen und ein Kennwort bereit, und Ihr Programm sucht den Kontonamen in einer Tabelle und vergleicht die Kennwörter. Stimmen die Passwörter überein, wird der Benutzer authentifiziert. Aber wenn es um Antihacking geht, ist nichts so einfach.

Speichern Sie die Kennwörter niemals selbst in der Datenbank. Dies wird als Speicherung im Klartext bezeichnet und gilt als sehr schlechte Form. Es ist viel zu einfach für einen Hacker, die Passwortdatei in die Finger zu bekommen. Speichern Sie stattdessen eine sichere Transformation des Passworts.

Remote-Sitzungen verwalten

Sie können bestimmte Annahmen treffen, wenn Ihre gesamte Anwendung auf einem einzelnen Computer ausgeführt wird. Zum einen müssen Sie sich, sobald sich der Benutzer authentifiziert hat, keine Sorgen darüber machen, dass er in eine andere Person umgewandelt wird. Anwendungen, die mit einem entfernten Server kommunizieren, können diese Annahme nicht treffen - ein Hacker, der auf der Leitung zuhört, kann warten, bis der Benutzer sich selbst authentifiziert und dann die Sitzung entführt.

Was kann der sicherheitsorientierte Programmierer tun, um diese Situation zu vermeiden? Sie möchten den Benutzer nicht wiederholt nach seinem Passwort fragen, nur um sicherzustellen, dass die Verbindung nicht gekapert wurde. Die alternative Lösung besteht darin, eine Sitzung einzurichten und zu verwalten. Dazu führen Sie aus, dass der Server der Remoteanwendung ein Sitzungscookie sendet, sobald sich der Benutzer erfolgreich authentifiziert hat.

Verschleiern Sie Ihren Code

Code-Verschleierung ist der Akt, die ausführbare Datei für einen Hacker so schwierig wie möglich zu machen.

Die Logik ist einfach. Je einfacher es für einen Hacker ist, zu verstehen, wie Ihr Code funktioniert, desto einfacher wird es für den Hacker sein, Schwachstellen zu erkennen.

Der einfachste Schritt, den Sie ergreifen können, ist sicherzustellen, dass Sie nur eine Release-Version Ihres Programms verteilen, die keine Debug-Symbolinformationen enthält. Wenn Sie die Projektdatei zum ersten Mal erstellen, achten Sie darauf, dass sowohl eine Debug- als auch eine Release-Version erstellt wird.

Verteilen Sie niemals Versionen Ihrer Anwendung mit enthaltenen Symbolinformationen.

Signieren Sie Ihren Code mit einem digitalen Zertifikat

Bei der Codesignierung wird ein sicherer Hash des ausführbaren Codes generiert und mit einem Zertifikat einer gültigen Zertifizierungsstelle kombiniert. Der Prozess funktioniert folgendermaßen: Die Firma, die das Programm erstellt, muss sich zuerst bei einer der Zertifizierungsstellen registrieren.

Sobald die Zertifizierungsstelle überzeugt ist, dass Meine Firma eine gültige Software-Entität ist, stellt sie ein Zertifikat aus. Dies ist eine lange Zahl, die jeder verwenden kann, um zu verifizieren, dass der Inhaber dieses Zertifikats die berühmte My Company of San Antonio ist.

Verwenden Sie eine sichere Verschlüsselung, wo immer nötig

Wie jede gute Warnung hat diese Ermahnung mehrere Teile. Erstens: "Verwenden Sie Verschlüsselung wo nötig. "Dies erinnert gewöhnlich an die Übermittlung von Bankkontoinformationen über das Internet, aber Sie sollten allgemeiner denken.

Daten, die über das Internet oder über einen kleineren Bereich übertragen werden, werden allgemein als Daten in Bewegung bezeichnet. Daten in Bewegung sollten verschlüsselt werden, es sei denn, sie wären für einen Hacker nicht von Nutzen.

Auf der Festplatte gespeicherte Daten werden als Daten im Ruhezustand bezeichnet. Diese Daten sollten auch verschlüsselt werden, wenn die Gefahr besteht, dass die Festplatte verloren geht, gestohlen oder kopiert wird. Unternehmen verschlüsseln routinemäßig die Festplatten auf ihren Firmenlaptops, falls ein Laptop am Sicherheitsscanner am Flughafen gestohlen oder irgendwo im Taxi gelassen wird.

Kleine tragbare Speichermedien wie USB-Sticks sind besonders anfällig dafür, verloren zu gehen - Daten auf diesen Geräten sollten verschlüsselt werden.

C ++ Programmierung: 10 Anti-Hacker Tipps - Dummies

Die Wahl des Herausgebers

Web Marketing: Warum Suchmaschinen existieren - Dummies

Web Marketing: Warum Suchmaschinen existieren - Dummies

Wenn Sie verstehen, warum Suchmaschinen existieren, können sie für Sie in Ihrem Web-Marketing-Geschäft arbeiten. Also, hier ist eine kurze Lektion, warum Suchmaschinen existieren und wie Sie sie nutzen können, um Geld zu verdienen. Suchmaschinen liefern Relevanz. Relevanz bedeutet, dass Besucher auf Suchergebnisse klicken und zufrieden sind mit ...

Was sind Tür- und Informationsseiten? - dummies

Was sind Tür- und Informationsseiten? - dummies

Eine Doorway-Seite wird nur als Zugang von einer Suchmaschine zu Ihrer Website erstellt. Doorway-Seiten werden manchmal als Gateway-Seiten und Geisterseiten bezeichnet. Die Idee besteht darin, hoch optimierte Seiten zu erstellen, die von Suchmaschinen aufgenommen und indiziert werden und die mit etwas Glück gut ranken und somit den Traffic auf eine ...

Was ist eine Weiterleitung bei der Suchmaschinenoptimierung? - Dummies

Was ist eine Weiterleitung bei der Suchmaschinenoptimierung? - Dummies

Eine Weiterleitung ist das automatische Laden einer Seite ohne Benutzereingriff. Sie klicken auf einen Link, um eine Webseite in Ihren Browser zu laden, und innerhalb von Sekunden verschwindet die geladene Seite, und eine neue wird angezeigt. Designer erstellen häufig Seiten für Suchmaschinen - optimierte, schlüsselwortreiche Seiten -, die Besucher auf die ...

Die Wahl des Herausgebers

Behandeln Probleme mit dem Kundenservice über Social Media - Dummies

Behandeln Probleme mit dem Kundenservice über Social Media - Dummies

, Wenn Kunden wissen, dass sie direkt mit ein Geschäft in den sozialen Medien, können sie aus einer beliebigen Anzahl von Gründen mit ihnen in Verbindung treten. Aber sobald sie merken, dass ein Problem mit dem Kundenservice oder einer Produktfrage über einen einzigen Tweet oder Beitrag angesprochen werden kann, ist es wahrscheinlicher, dass sie mit dem Unternehmen Geschäfte machen.

Acht Möglichkeiten, Social Media Feedback zu erhalten - Dummies

Acht Möglichkeiten, Social Media Feedback zu erhalten - Dummies

Die heutige Technologie verändert die Art und Weise, wie wir Geschäfte machen blitzschnell. Auch der Social-Media-Handel bewegt sich blitzschnell, aber durch die Beobachtung von Erwähnungen und Fragen an die Community können Sie einen Eindruck davon bekommen, wie Ihr Markt über bevorstehende Veränderungen denkt. Auch andere Posts können Ihnen helfen, kritisches Feedback aus der Öffentlichkeit zusammenzustellen ...

Manage Social Media Commerce mit HootSuite - dummies

Manage Social Media Commerce mit HootSuite - dummies

HootSuite ist ein Social Media Management System zur Umsetzung von Outreach und Überwachung in sozialen Netzwerken über ein einziges webbasiertes Dashboard. Für Unternehmen wird HootSuite am häufigsten von Social-Media-Teams mit mehreren Agenten verwendet, aber auch viele Einzelanwender mögen es. Wenn Sie auf der Suche nach einer robusten Plattform sind, die alles an einem Ort hält, ...

Die Wahl des Herausgebers

Die 5 Kornsterne der Mittelmeer - Dummies

Die 5 Kornsterne der Mittelmeer - Dummies

Die Mittelmeerdiät ist in der Praxis des Habens begründet ein Vollkorn zu jeder Mahlzeit. Und nein, das bedeutet nicht, eine ganze Platte Vollkornspaghetti mit Fleischsauce zum Abendessen zu essen. Stattdessen machen die Menschen im Mittelmeerraum ihr Getreide zur Beilage oder schaffen durch die Zugabe von magerem Eiweiß mehr Gleichgewicht ...

Strebe nach Gesundheit mit 7 bis 10 Portionen Obst und Gemüse - Schnuller

Strebe nach Gesundheit mit 7 bis 10 Portionen Obst und Gemüse - Schnuller

Der Verzehr von sieben bis zehn Portionen Obst und Gemüse pro Tag, wie sie für die mediterrane Ernährung empfohlen werden, mag sehr viel erscheinen, aber es muss keine so große Herausforderung sein. Wenn Sie nicht die Früchte und das Gemüse lieben, die spezifisch mit der Mittelmeerdiät verbunden sind, ist das okay! Essen Sie jede Art von Obst oder Gemüse, die Sie ...

Die gesundheitlichen Vorteile von mediterranen Kräutern und Gewürzen - Dummies

Die gesundheitlichen Vorteile von mediterranen Kräutern und Gewürzen - Dummies

Sie haben vielleicht gedacht, dass der Oregano und Basilikum in Ihrer Spaghetti-Sauce lieferte nur einen deutlichen italienischen oder mediterranen Geschmack, aber diese kleinen Kräuter sind Pflanzen, was bedeutet, dass sie alle Arten von gesundheitlichen Vorteilen haben, die einen großen Einfluss auf Ihre allgemeine Gesundheit haben können. Einfache Gewürze wie Ingwer und Oregano enthalten Phytochemikalien, ...