web application security testing guide
gratis youtube naar mp4-converter voor mac
Vanwege de enorme hoeveelheid gegevens die is opgeslagen in webapplicaties en een toename van het aantal transacties op het web, wordt een goede beveiligingstest van webapplicaties elke dag erg belangrijk.
In dit artikel zullen we in detail leren over de belangrijkste termen die worden gebruikt bij het testen van websitebeveiliging en de testaanpak ervan.
Wat je leert:
- Wat is beveiligingstests?
- Enkele belangrijke termen die worden gebruikt bij beveiligingstests
- Aanbevolen hulpprogramma's voor beveiligingstests
- Aanpak van beveiligingstests
- Methoden voor het testen van webbeveiliging
- Gevolgtrekking
- Aanbevolen literatuur
Wat is beveiligingstests?
Beveiligingstests is het proces dat controleert of de vertrouwelijke gegevens blijven vertrouwelijk of niet (d.w.z. het wordt niet blootgesteld aan personen / entiteiten waarvoor het niet bedoeld is) en de gebruikers kunnen alleen die taken uitvoeren waarvoor ze bevoegd zijn uit te voeren
Bijvoorbeeld, een gebruiker mag de functionaliteit van de website niet aan andere gebruikers ontzeggen of een gebruiker mag de functionaliteit van de webapplicatie niet op een onbedoelde manier etc. wijzigen.
Enkele belangrijke termen die worden gebruikt bij beveiligingstests
Voordat we verder gaan, is het handig om vertrouwd te raken met enkele termen die vaak worden gebruikt bij het testen van webapplicaties:
Wat is 'kwetsbaarheid'?
Dit is de zwakte van de webapplicatie. De oorzaak van zo'n 'zwakte' kan te wijten zijn aan de bugs in de applicatie, een injectie (SQL / scriptcode) of de aanwezigheid van virussen.
Wat is 'URL-manipulatie'?
Sommige webtoepassingen communiceren aanvullende informatie tussen de client (browser) en de server in de URL. Het wijzigen van bepaalde informatie in de URL kan soms leiden tot onbedoeld gedrag van de server en dit wordt genoemd URL-manipulatie
Wat is 'SQL-injectie'?
Dit is het proces van het invoegen van SQL-instructies via de gebruikersinterface van de webtoepassing in een query die vervolgens door de server wordt uitgevoerd.
Wat is 'XSS (Cross-Site Scripting)'?
Wanneer een gebruiker HTML / client-side script invoegt in de gebruikersinterface van een webtoepassing, is deze invoeging zichtbaar voor andere gebruikers en wordt het aangeduid als XSS
Wat is 'spoofing'?
Het maken van hoax-look-alike websites of e-mails wordt genoemd Spoofing
Aanbevolen hulpprogramma's voor beveiligingstests
# 1) Acunetix
gratis pop-up blocker voor chrome
Acunetix is een end-to-end beveiligingsscanner voor webtoepassingen. Het geeft een 360 graden beeld van de beveiliging van uw organisatie. Het kan 6500 soorten kwetsbaarheden detecteren, zoals SQL-injecties, XSS en zwakke wachtwoorden, enz. Het maakt gebruik van geavanceerde macro-opnametechnologie voor het scannen van complexe formulieren op meerdere niveaus.
Het platform is intuïtief en gemakkelijk te gebruiken. U kunt volledige scans en incrementele scans plannen en prioriteit geven. Het bevat een ingebouwde functionaliteit voor kwetsbaarheidsbeheer. Met behulp van CI-tools zoals Jenkins kunnen nieuwe builds automatisch worden gescand.
Probeer Acunetix voor Web App Security
# 2) Kiuwan
Zoek en los kwetsbaarheden in uw code op in elke fase van de SDLC.
Kiuwan voldoet aan de strengste beveiligingsnormen, waaronder OWASP, CWE, SANS 25, HIPPA en meer.Integreer Kiuwan in uw IDE voor directe feedback tijdens de ontwikkeling. Kiuwan ondersteunt alle belangrijke programmeertalen en kan worden geïntegreerd met toonaangevende DevOps-tools.
Scan uw code gratis
Aanpak van beveiligingstests
Om een nuttige beveiligingstest van een webtoepassing uit te voeren, moet de beveiligingstester een goede kennis hebben van het HTTP-protocol.
Het is belangrijk om te begrijpen hoe de client (browser) en de server communiceren via HTTP.
Bovendien moet de tester op zijn minst de basis van SQL-injectie en XSS kennen.
Hopelijk zal het aantal beveiligingsfouten dat aanwezig is in de webapplicatie niet hoog zijn. Het zal echter zeker helpen om alle beveiligingsfouten nauwkeurig te beschrijven met alle vereiste details.
Methoden voor het testen van webbeveiliging
# 1) Wachtwoordkraken
De beveiligingstests op een Web applicatie kan worden afgetrapt door 'Password Cracking'. Om in te loggen op de privé-gebieden van de applicatie, kan men ofwel een gebruikersnaam / wachtwoord raden of een wachtwoordcracker-tool hiervoor gebruiken. Er is een lijst met algemene gebruikersnamen en wachtwoorden beschikbaar, samen met open source wachtwoordcrackers.
Als de webapplicatie geen complex wachtwoord afdwingt ( Bijvoorbeeld, met alfabetten, cijfers en speciale tekens of met ten minste een vereist aantal tekens), kan het niet erg lang duren om de gebruikersnaam en het wachtwoord te kraken.
Als een gebruikersnaam of wachtwoord in cookies wordt opgeslagen zonder versleuteling, kan een aanvaller verschillende methoden gebruiken om de cookies en de informatie die in de cookies is opgeslagen, zoals gebruikersnaam en wachtwoord, te stelen.
Zie voor meer details een artikel over “ Testen van website-cookies
# 2) URL-manipulatie via HTTP GET-methoden
Een tester moet controleren of de applicatie belangrijke informatie in de queryreeks doorgeeft of niet. Dit gebeurt wanneer de toepassing de HTTP GET-methode gebruikt om informatie tussen de client en de server door te geven.
De informatie wordt doorgegeven via de parameters in de queryreeks. De tester kan een parameterwaarde in de queryreeks wijzigen om te controleren of de server deze accepteert.
Via HTTP GET-verzoek wordt gebruikersinformatie doorgegeven aan de server voor authenticatie of het ophalen van gegevens. De aanvaller kan elke invoervariabele manipuleren die van dit GET-verzoek naar een server wordt gestuurd om de vereiste informatie te verkrijgen of de gegevens te corrumperen. In dergelijke omstandigheden is elk ongewoon gedrag van een applicatie of webserver de doorgang voor de aanvaller om een applicatie binnen te komen.
# 3) SQL-injectie
De volgende factor die moet worden gecontroleerd, is SQL-injectie. Het invoeren van een enkel aanhalingsteken (‘) in een tekstvak moet door de aanvraag worden afgewezen. In plaats daarvan, als de tester een databasefout tegenkomt, betekent dit dat de gebruikersinvoer wordt ingevoegd in een query die vervolgens wordt uitgevoerd door een toepassing. In dat geval is de applicatie kwetsbaar voor SQL-injectie.
Aanvallen met SQL-injectie zijn zeer kritisch omdat een aanvaller essentiële informatie uit de serverdatabase kan halen. Om de ingangspunten van SQL-injectie in uw webtoepassing te controleren, zoekt u de code uit uw codebase waar directe MySQL-queries worden uitgevoerd op de database door enkele gebruikersinvoer te accepteren.
Als de invoergegevens van de gebruiker worden vervaardigd in SQL-query's om de database te doorzoeken, kan een aanvaller SQL-instructies of een deel van de SQL-instructies injecteren als gebruikersinvoer om essentiële informatie uit een database te extraheren. Zelfs als een aanvaller erin slaagt de toepassing te laten crashen, kan de aanvaller de informatie krijgen waarnaar hij op zoek is door de SQL-queryfout die in een browser wordt weergegeven.
Speciale tekens van gebruikersinvoer moeten in dergelijke gevallen correct worden afgehandeld / geëscaped.
# 4) Cross-site scripting (XSS)
Een tester moet bovendien de webapplicatie controleren op XSS (Cross-site scripting). Elke HTML Bijvoorbeeld, of een willekeurig script Bijvoorbeeld, mag niet worden geaccepteerd door de aanvraag. Als dit het geval is, kan de toepassing vatbaar zijn voor aanvallen door Cross-Site Scripting.
De aanvaller kan deze methode gebruiken om een kwaadaardig script of een schadelijke URL uit te voeren in de browser van het slachtoffer. Met behulp van cross-site scripting kan een aanvaller scripts zoals JavaScript gebruiken om gebruikerscookies en informatie die in de cookies is opgeslagen te stelen.
Veel webtoepassingen krijgen wat nuttige informatie en geven deze informatie door aan enkele variabelen van verschillende pagina's.
Bijvoorbeeld, http://www.examplesite.com/index.php?userid=123 & vraag = xyz
De aanvaller kan gemakkelijk kwaadaardige invoer doorgeven of als een ‘& query’ -parameter die belangrijke gebruikers- / servergegevens in de browser kan verkennen.
wat is het verschil tussen c ++ en java
Belangrijk: Tijdens het testen van de beveiliging moet de tester heel voorzichtig zijn om het volgende niet te wijzigen:
- Configuratie van de applicatie of de server
- Services die op de server worden uitgevoerd
- Bestaande gebruikers- of klantgegevens die worden gehost door de applicatie
Bovendien moet een beveiligingstest in een productiesysteem worden vermeden.
Gevolgtrekking
Het doel van een beveiligingstest is om de kwetsbaarheden van de webapplicatie te ontdekken, zodat de ontwikkelaars deze kwetsbaarheden uit de applicatie kunnen verwijderen en de webapplicatie en gegevens kunnen beschermen tegen elke ongeoorloofde handeling.
Aanbevolen literatuur => Verschil tussen SAST / DAST / IAST / RASP
Deel gerust uw opmerkingen / suggesties over dit artikel.
Aanbevolen literatuur
- Beginnershandleiding voor penetratietesten van webapplicaties
- Beveiligingstests (een complete gids)
- Alfatesten en bètatesten (een complete gids)
- Netwerkbeveiligingstests en de beste hulpprogramma's voor netwerkbeveiliging
- Beste softwaretesttools 2021 (QA Test Automation Tools)
- Build Verification Testing (BVT Testing) Complete Guide
- Top 4 Open Source Security Testing Tools om webapplicaties te testen
- Functioneel testen versus niet-functioneel testen