security testing
Testen der Anwendungssicherheit - Testtechniken für die Sicherheit von Web- und Desktopanwendungen
Notwendigkeit von Sicherheitstests?
Die Softwareindustrie hat in diesem Zeitalter eine solide Anerkennung erreicht. In den letzten zehn Jahren scheint die Cyberwelt jedoch noch dominierender und treibender zu sein, was die neuen Formen fast aller Unternehmen prägt. Die heute verwendeten webbasierten ERP-Systeme sind der beste Beweis dafür, dass die IT unser geliebtes globales Dorf revolutioniert hat.
Heutzutage sind Websites nicht nur für Werbung oder Marketing gedacht, sondern wurden auch zu stärkeren Tools entwickelt, um den geschäftlichen Anforderungen gerecht zu werden.
Webbasierte Lohn- und Gehaltsabrechnungssysteme, Einkaufszentren, Banken und Aktienhandelsanwendungen werden nicht nur von Organisationen verwendet, sondern auch heute als Produkte verkauft.
Dies bedeutet, dass Online-Anwendungen das Vertrauen von Kunden und Benutzern in ihre wichtige Funktion namens SICHERHEIT gewonnen haben.
Zweifellos ist der Sicherheitsfaktor auch für Desktop-Anwendungen von vorrangigem Wert.
Wenn wir jedoch über das Web sprechen, nimmt die Bedeutung der Sicherheit exponentiell zu. Wenn ein Online-System die Transaktionsdaten nicht schützen kann, wird niemand daran denken, sie zu verwenden. Sicherheit ist weder ein Wort auf der Suche nach seiner Definition noch ein subtiles Konzept. Ich möchte jedoch einige Komplimente zur Sicherheit auflisten.
Was ist der Netzwerksicherheitsschlüssel für drahtlose Netzwerke?
Beispiele für Sicherheitslücken in einer Anwendung
- Ein Studentenverwaltungssystem ist unsicher, wenn der Zweig 'Zulassung' die Daten des Zweigs 'Prüfung' bearbeiten kann
- Ein ERP-System ist nicht sicher, wenn DEO (Dateneingabebetreiber) Berichte erstellen kann.
- Ein Online-Einkaufszentrum hat keine Sicherheit, wenn die Kreditkartendetails des Kunden nicht verschlüsselt sind
- Eine benutzerdefinierte Software verfügt über eine unzureichende Sicherheit, wenn eine SQL-Abfrage die tatsächlichen Kennwörter ihrer Benutzer abruft
Sicherheit
Jetzt präsentiere ich Ihnen die einfachste Definition von Sicherheit in meinen eigenen Worten.
'Sicherheit bedeutet, dass autorisierter Zugriff auf geschützte Daten gewährt wird und nicht autorisierter Zugriff eingeschränkt wird.' .
Es hat also zwei Hauptaspekte; Das erste ist der Schutz von Daten und das zweite ist der Zugriff auf diese Daten. Unabhängig davon, ob es sich um eine Desktop- oder eine webbasierte Anwendung handelt, dreht sich die Sicherheit um die beiden oben genannten Aspekte.
Lassen Sie uns einen Überblick über Sicherheitsaspekte für Desktop- und webbasierte Softwareanwendungen geben.
Was du lernen wirst:
Desktop- und Web-Sicherheitstests
Eine Desktop-Anwendung sollte nicht nur hinsichtlich ihres Zugriffs, sondern auch hinsichtlich der Organisation und Speicherung ihrer Daten sicher sein.
In ähnlicher Weise verlangt die Webanwendung noch mehr Sicherheit in Bezug auf ihren Zugriff sowie Datenschutz. Ein Webentwickler sollte die Anwendung immun gegen SQL Injections, Brute Force Attacks und XSS (Cross-Site Scripting) machen. Wenn die Webanwendung Remotezugriffspunkte ermöglicht, müssen diese ebenfalls sicher sein.
Beachten Sie außerdem, dass Brute Force Attack nicht nur mit Webanwendungen zusammenhängt, sondern auch mit Desktop-Software.
Ich hoffe, dieses Vorwort ist genug und jetzt komme ich zum Punkt. Bitte nehmen Sie meine Entschuldigung an, wenn Sie bisher dachten, dass Sie über das Thema dieses Artikels lesen. Obwohl ich kurz die Software-Sicherheit und ihre Hauptprobleme erläutert habe, lautet mein Thema 'Sicherheitstests'.
Empfohlene Lektüre => Testen der Sicherheit von Webanwendungen
Ich werde nun erklären, wie die Sicherheitsfunktionen in Softwareanwendungen implementiert sind und wie diese getestet werden sollten. Mein Fokus wird auf dem Was und Wie von Sicherheitstests liegen, nicht auf Sicherheit.
Empfohlene Sicherheitstest-Tools
# 1) Netzparker
Netsparker ist eine Sicherheitstestlösung für Webanwendungen mit Funktionen zum automatischen Crawlen und Scannen für alle Arten von älteren und modernen Webanwendungen wie HTML5-, Web 2.0- und Einzelseitenanwendungen. Es nutzt die Proof-Based-Scanning-Technologie und skalierbare Scan-Agenten.
Sie erhalten vollständige Transparenz, obwohl Sie eine große Anzahl von Assets verwalten müssen. Es verfügt über viele weitere Funktionen wie Teammanagement und Schwachstellenmanagement. Es kann in CI / CD-Plattformen wie Jenkins, TeamCity oder Bamboo integriert werden.
=> Probieren Sie das beste Netsparker-Sicherheitstest-Tool aus#zwei) Kiuwan
Suchen und beheben Sie Schwachstellen in Ihrem Code in jeder Phase des SDLC.
Kiuwan entspricht den strengsten Sicherheitsstandards, einschließlich OWASP, CWE, SANS 25, HIPPA und mehr. Integrieren Sie Kiuwan in Ihre IDE, um sofortiges Feedback während der Entwicklung zu erhalten. Kiuwan unterstützt alle wichtigen Programmiersprachen und lässt sich in führende DevOps-Tools integrieren.
=> Scannen Sie Ihren Code kostenlos#3) Indusface WAS Free Website Malware Check
Indusface WAS bietet sowohl manuelle Penetrationstests als auch einen eigenen automatisierten Schwachstellenscanner für Webanwendungen, der Schwachstellen basierend auf OWASP Top 10 erkennt und meldet, sowie eine Überprüfung der Website-Reputation von Links, Malware und Verunstaltungsprüfungen der Website bei jedem Scan
=> Führen Sie kostenlos einen schnellen Website-Scan durch
=> Kontaktiere uns um hier eine Auflistung vorzuschlagen.
Liste der Top 8 Sicherheitstesttechniken
# 1) Zugriff auf die Anwendung
Unabhängig davon, ob es sich um eine Desktop-Anwendung oder eine Website handelt, wird die Zugriffssicherheit von implementiert ‘Rollen- und Rechteverwaltung’. Es wird oft implizit durchgeführt, während die Funktionalität abgedeckt wird.
Zum Beispiel, In einem Krankenhausmanagementsystem ist ein Rezeptionist am wenigsten besorgt über die Labortests, da seine Aufgabe darin besteht, nur die Patienten zu registrieren und ihre Termine mit Ärzten zu vereinbaren.
Daher stehen der Rolle des „Empfangsmitarbeiters“ nicht alle Menüs, Formulare und Bildschirme zur Verfügung, die sich auf Labortests beziehen. Daher gewährleistet die ordnungsgemäße Implementierung von Rollen und Rechten die Sicherheit des Zugriffs.
So testen Sie: Um dies zu testen, sollten alle Rollen und Rechte gründlich getestet werden.
Der Tester sollte mehrere Benutzerkonten mit unterschiedlichen sowie mehreren Rollen erstellen. Anschließend sollte er die Anwendung mithilfe dieser Konten verwenden und überprüfen, ob jede Rolle nur auf ihre eigenen Module, Bildschirme, Formulare und Menüs zugreifen kann. Wenn der Tester einen Konflikt feststellt, sollte er ein Sicherheitsproblem mit absoluter Sicherheit protokollieren.
Dies kann auch als Authentifizierungs- und Autorisierungstest verstanden werden, der im folgenden Bild sehr schön dargestellt ist:
Grundsätzlich müssen Sie also testen, wer Sie sind und was Sie für bestimmte Benutzer tun können.
Einige der Authentifizierungstests umfassen einen Test für Kennwortqualitätsregeln, einen Test für Standardanmeldungen, einen Test für die Kennwortwiederherstellung, einen Test für Captcha, einen Test für die Abmeldefunktion, einen Test für die Kennwortänderung, einen Test für Sicherheitsfragen / -antworten usw.
In ähnlicher Weise umfassen einige der Autorisierungstests einen Test auf Pfadüberquerung, einen Test auf fehlende Autorisierung, einen Test auf Probleme mit der horizontalen Zugriffskontrolle usw.
# 2) Datenschutz
Es gibt drei Aspekte der Datensicherheit. Der erste ist der Ein Benutzer kann nur die Daten anzeigen oder verwenden, die er verwenden soll . Dies wird auch durch Rollen und Rechte sichergestellt
Zum Beispiel, TSR (Telesales Representative) eines Unternehmens kann die Daten des verfügbaren Lagerbestands anzeigen, jedoch nicht, wie viel Rohmaterial für die Produktion eingekauft wurde.
Dieser Aspekt des Sicherheitstests wurde bereits oben erläutert. Der zweite Aspekt des Datenschutzes bezieht sich auf wie diese Daten in der DB gespeichert werden .
Weiterführende Literatur = >> Was ist Datenbanksicherheitstest?
Das Standard-Gateway ist nicht verfügbar. Beheben Sie Windows 10
Alle sensiblen Daten müssen verschlüsselt werden, um ihre Sicherheit zu gewährleisten. Die Verschlüsselung sollte stark sein, insbesondere für vertrauliche Daten wie Kennwörter von Benutzerkonten, Kreditkartennummern oder andere geschäftskritische Informationen.
Der dritte und letzte Aspekt ist eine Erweiterung dieses zweiten Aspekts. Geeignete Sicherheitsmaßnahmen müssen getroffen werden, wenn vertrauliche oder geschäftskritische Daten fließen. Unabhängig davon, ob diese Daten zwischen verschiedenen Modulen derselben Anwendung schweben oder an verschiedene Anwendungen übertragen werden, müssen sie verschlüsselt werden, um die Sicherheit zu gewährleisten.
So testen Sie den Datenschutz: Der Tester sollte die Datenbank nach Kennwörtern des Benutzerkontos, Rechnungsinformationen von Kunden und anderen geschäftskritischen und sensiblen Daten abfragen und sicherstellen, dass alle diese Daten in verschlüsselter Form in der Datenbank gespeichert sind.
Ebenso muss er überprüfen, ob Daten nur nach ordnungsgemäßer Verschlüsselung zwischen verschiedenen Formularen oder Bildschirmen übertragen werden. Darüber hinaus sollte der Tester sicherstellen, dass die verschlüsselten Daten am Zielort ordnungsgemäß entschlüsselt werden. Besondere Aufmerksamkeit sollte verschiedenen „Einreichungsaktionen“ gewidmet werden.
Der Tester muss überprüfen, ob die Informationen, die zwischen Client und Server übertragen werden, nicht in einem verständlichen Format in der Adressleiste eines Webbrowsers angezeigt werden. Wenn eine dieser Überprüfungen fehlschlägt, weist die Anwendung definitiv eine Sicherheitslücke auf.
Der Tester sollte auch prüfen, ob das Salzen ordnungsgemäß verwendet wird (indem ein zusätzlicher geheimer Wert wie ein Passwort an die Endeingabe angehängt wird, wodurch es stärker und schwieriger wird, geknackt zu werden).
Unsichere Zufälligkeit sollte ebenfalls getestet werden, da es sich um eine Art Sicherheitslücke handelt. Eine andere Möglichkeit, den Datenschutz zu testen, besteht darin, nach einer schwachen Verwendung des Algorithmus zu suchen.
Zum Beispiel, Da HTTP ein Klartextprotokoll ist, ist es eine Bedrohung für die Anwendungssicherheit, wenn vertrauliche Daten wie Benutzeranmeldeinformationen über HTTP übertragen werden. Anstelle von HTTP sollten vertrauliche Daten über HTTPS übertragen werden (gesichert durch SSL, TLS-Tunnel).
HTTPS vergrößert jedoch die Angriffsfläche und daher sollte getestet werden, ob die Serverkonfigurationen korrekt sind und die Gültigkeit des Zertifikats sichergestellt ist.
# 3) Brute-Force-Angriff
Brute Force Attack wird hauptsächlich von einigen Software-Tools ausgeführt. Das Konzept ist, dass unter Verwendung einer gültigen Benutzer-ID die s Oftware versucht, das zugehörige Passwort zu erraten, indem versucht wird, sich immer wieder anzumelden.
Ein einfaches Beispiel für die Sicherheit gegen einen solchen Angriff ist die Kontosperrung für einen kurzen Zeitraum, wie dies bei allen Mailing-Anwendungen wie 'Yahoo', 'Google Mail' und 'Hotmail' der Fall ist. Wenn sich eine bestimmte Anzahl aufeinanderfolgender Versuche (meistens 3) nicht erfolgreich anmeldet, wird dieses Konto für einige Zeit (30 Minuten bis 24 Stunden) gesperrt.
So testen Sie Brute-Force-Angriffe: Der Tester muss überprüfen, ob ein Mechanismus zur Kontosperrung verfügbar ist und ordnungsgemäß funktioniert. (S) Er muss versuchen, sich mit ungültigen Benutzer-IDs und Kennwörtern anzumelden, um sicherzustellen, dass die Softwareanwendung die Konten blockiert, wenn fortlaufend versucht wird, sich mit ungültigen Anmeldeinformationen anzumelden.
Wenn die Anwendung dies tut, ist sie gegen Brute-Force-Angriffe geschützt. Andernfalls muss diese Sicherheitslücke vom Tester gemeldet werden.
Das Testen auf Brute Force kann auch in zwei Teile unterteilt werden - Black-Box-Test und Gray-Box-Test.
Beim Black-Box-Test wird die von der Anwendung verwendete Authentifizierungsmethode ermittelt und getestet. Darüber hinaus basiert der Gray-Box-Test auf der teilweisen Kenntnis von Passwort- und Kontodetails sowie von Kompromissangriffen auf den Speicher.
Klicken Hier Erforschen von Black-Box- und Grey-Box-Brute-Force-Tests zusammen mit Beispielen.
Die oben genannten drei Sicherheitsaspekte sollten sowohl für Web- als auch für Desktopanwendungen berücksichtigt werden, während sich die folgenden Punkte nur auf webbasierte Anwendungen beziehen.
# 4) SQL Injection und XSS (Cross-Site Scripting)
Konzeptionell ist das Thema dieser beiden Hacking-Versuche ähnlich, daher werden diese gemeinsam diskutiert. Bei diesem Ansatz wird die böswilliges Skript wird von Hackern verwendet, um eine Website zu manipulieren .
Es gibt verschiedene Möglichkeiten, sich gegen solche Versuche zu immunisieren. Für alle Eingabefelder der Website sollten die Feldlängen so klein definiert werden, dass die Eingabe eines Skripts eingeschränkt wird
Fragen und Antworten zum Interview mit Selenautomatisierungstests
Zum Beispiel, Der Nachname sollte eine Feldlänge von 30 anstelle von 255 haben. Es kann einige Eingabefelder geben, in denen eine Eingabe großer Datenmengen erforderlich ist. Für solche Felder sollte vor dem Speichern dieser Daten in der Anwendung eine ordnungsgemäße Validierung der Eingabe durchgeführt werden.
Darüber hinaus müssen in solchen Feldern jegliche Eingabe von HTML-Tags oder Skript-Tags verboten werden. Um XSS-Angriffe zu provozieren, sollte die Anwendung Skriptumleitungen von unbekannten oder nicht vertrauenswürdigen Anwendungen verwerfen.
Wie man Testen Sie SQL Injection und XSS: Der Tester muss sicherstellen, dass die maximale Länge aller Eingabefelder definiert und implementiert wird. (S) Er sollte auch sicherstellen, dass die definierte Länge der Eingabefelder keine Skripteingabe sowie Tag-Eingabe berücksichtigt. Beide können leicht getestet werden
Zum Beispiel, Wenn 20 die maximale Länge ist, die für das Feld 'Name' und die Eingabezeichenfolge '
thequickbrownfoxjumpsoverthelazydog “kann diese beiden Einschränkungen überprüfen.
Der Tester sollte außerdem überprüfen, ob die Anwendung keine anonymen Zugriffsmethoden unterstützt. Falls eine dieser Sicherheitsanfälligkeiten vorliegt, ist die Anwendung in Gefahr.
Grundsätzlich können SQL-Injection-Tests auf die folgenden fünf Arten durchgeführt werden:
- Erkennungstechniken
- Standard-SQL-Injektionstechniken
- Fingerabdruck der Datenbank
- Technische Nutzung
- Invasionstechniken für SQL-Injektionssignaturen
Klicken Hier Lesen Sie ausführlich die oben genannten Möglichkeiten zum Testen der SQL-Injection.
XSS ist auch eine Art von Injektion, die schädliches Skript in eine Website einfügt. Klicken Hier eingehende Informationen zum Testen auf XSS.
# 5) Service Access Points (versiegelt und sicher offen)
Unternehmen sind heute abhängig und arbeiten miteinander zusammen. Dies gilt auch für Anwendungen, insbesondere für Websites. In einem solchen Fall sollten beide Mitarbeiter einige Zugriffspunkte für einander definieren und veröffentlichen.
Bisher scheint das Szenario recht einfach und unkompliziert zu sein, aber für einige webbasierte Produkte wie den Aktienhandel sind die Dinge nicht so einfach und unkompliziert.
Bei einer großen Anzahl von Zielgruppen sollten die Zugangspunkte offen genug sein, um alle Benutzer zu unterstützen, ausreichend Platz bieten, um die Anforderungen aller Benutzer zu erfüllen, und sicher genug, um alle Sicherheitsprüfungen zu bewältigen.
So testen Sie Service Access Points: Lassen Sie es mich mit dem erklären Beispiel der Aktienhandels-Webanwendung; Ein Anleger (der die Aktien kaufen möchte) sollte Zugang zu aktuellen und historischen Daten zu den Aktienkursen haben. Dem Benutzer sollte die Möglichkeit gegeben werden, diese historischen Daten herunterzuladen. Dies erfordert, dass die Anwendung offen genug ist.
Mit entgegenkommend und sicher meine ich, dass der Antrag den Anlegern den freien Handel erleichtern sollte (gemäß den gesetzlichen Bestimmungen). Sie können rund um die Uhr kaufen oder verkaufen und die Daten von Transaktionen müssen gegen jeden Hacking-Angriff immun sein.
Darüber hinaus wird eine große Anzahl von Benutzern gleichzeitig mit der Anwendung interagieren, sodass die Anwendung genügend Zugriffspunkte bieten sollte, um alle Benutzer zu unterhalten.
In einigen Fällen diese Zugangspunkte können für unerwünschte Anwendungen oder Personen versiegelt werden . Dies hängt von der Geschäftsdomäne der Anwendung und ihren Benutzern ab.
Zum Beispiel, Ein benutzerdefiniertes webbasiertes Office-Verwaltungssystem erkennt seine Benutzer möglicherweise anhand von IP-Adressen und verweigert die Herstellung einer Verbindung mit allen anderen Systemen (Anwendungen), die nicht in den Bereich gültiger IPs für diese Anwendung fallen.
Der Tester muss sicherstellen, dass alle Netzwerkübergreifender und netzwerkinterner Zugriff Die Anwendung erfolgt durch vertrauenswürdige Anwendungen, Maschinen (IPs) und Benutzer.
Um zu überprüfen, ob ein Open Access Point sicher genug ist, muss der Tester versuchen, von verschiedenen Computern mit vertrauenswürdigen und nicht vertrauenswürdigen IP-Adressen auf ihn zuzugreifen. Verschiedene Arten von Echtzeittransaktionen sollten in großen Mengen versucht werden, um ein gutes Vertrauen in die Leistung der Anwendung zu haben. Auf diese Weise wird auch die Kapazität der Zugriffspunkte der Anwendung klar beobachtet.
Der Tester muss sicherstellen, dass die Anwendung alle Kommunikationsanforderungen von vertrauenswürdigen IPs und Anwendungen nur empfängt, während alle anderen Anforderungen abgelehnt werden.
Wenn die Anwendung über einen offenen Zugangspunkt verfügt, sollte der Tester sicherstellen, dass (falls erforderlich) das Hochladen von Daten durch Benutzer auf sichere Weise möglich ist. Auf diese sichere Weise meine ich die Dateigrößenbeschränkung, die Einschränkung des Dateityps und das Scannen der hochgeladenen Datei auf Viren oder andere Sicherheitsbedrohungen.
Auf diese Weise kann ein Tester die Sicherheit einer Anwendung in Bezug auf ihre Zugriffspunkte überprüfen.
# 6) Sitzungsverwaltung
Eine Websitzung ist eine Folge von HTTP-Anforderungs- und Antworttransaktionen, die mit demselben Benutzer verknüpft sind. Die Sitzungsverwaltungstests überprüfen, wie die Sitzungsverwaltung in der Webanwendung behandelt wird.
Sie können den Sitzungsablauf nach einer bestimmten Leerlaufzeit, den Sitzungsabbruch nach maximaler Lebensdauer, den Sitzungsabbruch nach dem Abmelden, den Umfang und die Dauer von Sitzungscookies überprüfen, testen, ob ein einzelner Benutzer mehrere Sitzungen gleichzeitig durchführen kann usw.
# 7) Fehlerbehandlung
Das Testen auf Fehlerbehandlung umfasst:
Überprüfen Sie, ob Fehlercodes vorliegen :: Zum Beispiel, Test 408-Anforderungszeitlimit, 400 fehlerhafte Anforderungen, 404 nicht gefunden usw. Um diese zu testen, müssen Sie bestimmte Anforderungen an die Seite stellen, sodass diese Fehlercodes zurückgegeben werden.
Die Fehlercodes werden mit einer detaillierten Meldung zurückgegeben. Diese Nachrichten sollten keine kritischen Informationen enthalten, die für Hacking-Zwecke verwendet werden können
Überprüfen Sie, ob Stapelspuren vorhanden sind : Es umfasst im Wesentlichen die Eingabe außergewöhnlicher Eingaben in die Anwendung, sodass die zurückgegebene Fehlermeldung Stapelspuren enthält, die interessante Informationen für Hacker enthalten.
# 8) Spezifische riskante Funktionen
Hauptsächlich sind die beiden riskanten Funktionen Zahlungen und Datei-Uploads . Diese Funktionen sollten sehr gut getestet werden. Beim Hochladen von Dateien müssen Sie in erster Linie testen, ob das Hochladen unerwünschter oder böswilliger Dateien eingeschränkt ist.
Für Zahlungen müssen Sie in erster Linie auf Sicherheitslücken bei der Injektion, unsicheren kryptografischen Speicher, Pufferüberläufe, Erraten von Passwörtern usw. testen.
=> Kontaktiere uns um hier eine Auflistung vorzuschlagen.Weiterführende Literatur:
- Sicherheitstests von Webanwendungen
- Die 30 wichtigsten Fragen zu Sicherheitstests
- Unterschied zwischen SAST / DAST / IAST / RASP
- SANS Top 20 Sicherheitslücken
Literatur-Empfehlungen
- Testhandbuch für die Sicherheit von Webanwendungen
- Alpha-Tests und Beta-Tests (eine vollständige Anleitung)
- Tutorial zum Testen von ETL-Data Warehouse-Tests (Eine vollständige Anleitung)
- Netzwerksicherheitstests und beste Netzwerksicherheitstools
- Leitfaden für Anfänger zum Testen der Penetration von Webanwendungen
- Vollständige Anleitung zum Erstellen von Verifikationstests (BVT-Tests)
- Funktionstests gegen nichtfunktionale Tests
- Ein vollständiger Leitfaden für Penetrationstests mit Beispieltestfällen