beginners guide web application penetration testing
Penetratietesten aka Pen Test is de meest gebruikte beveiligingstesttechniek voor webapplicaties.
Penetratietests voor webapplicaties worden uitgevoerd door ongeautoriseerde aanvallen intern of extern te simuleren om toegang te krijgen tot gevoelige gegevens.
Een webpenetratie helpt de eindgebruiker om de mogelijkheid voor een hacker om toegang te krijgen tot de gegevens van internet, de beveiliging van hun e-mailservers te achterhalen en ook om te weten hoe veilig de webhostingsite en -server zijn.
Laten we nu de inhoud van dit artikel bespreken.
osi-modelapparaten gebruiken elke laag
(beeld bron
In deze tutorial over penetratietesten heb ik geprobeerd te behandelen:
- De behoefte van Pentest voor het testen van webapplicaties,
- Standaardmethodologie beschikbaar voor Pentest,
- Aanpak voor webapplicatie Pentest,
- Wat zijn de soorten tests die we kunnen uitvoeren,
- Stappen die moeten worden genomen om een penetratietest uit te voeren,
- Tools die kunnen worden gebruikt voor testen,
- Enkele van de aanbieders van penetratietests en
- Enkele van de certificeringen voor testen van webpenetratie
Aanbevolen hulpprogramma's voor het scannen van kwetsbaarheden:
#1) Netsparker
Netsparker is een eenvoudig te gebruiken en geautomatiseerd platform voor het testen van de beveiliging van webapplicaties dat u kunt gebruiken om echte en exploiteerbare kwetsbaarheden op uw websites te identificeren.
Probeer de beste Netsparker Penetration Testing Tool
#twee) 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 gratisWat je leert:
- Waarom zijn penetratietesten vereist?
- Methodologie voor het testen van webpenetratie
- Soorten webpenetratietests
- Aanpak voor het testen van webpennen:
- Top tools voor penetratietesten
- Top bedrijven die penetratie testen
- Enkele certificeringen voor penetratietesten:
- Gevolgtrekking
- Aanbevolen literatuur
Waarom zijn penetratietesten vereist?
Als we het hebben over beveiliging, is het meest voorkomende woord dat we horen Kwetsbaarheid
Toen ik aanvankelijk begon te werken als beveiligingstester, raakte ik vaak in de war met dit woord Kwetsbaarheid, en ik weet zeker dat velen van jullie, mijn lezers, in hetzelfde schuitje zouden vallen.
Ten behoeve van al mijn lezers zal ik eerst het verschil tussen kwetsbaarheid en pentesten ophelderen.
Dus wat is Kwetsbaarheid De kwetsbaarheid is een terminologie die wordt gebruikt om fouten in het systeem te identificeren die het systeem kunnen blootstellen aan beveiligingsrisico's.
Kwetsbaarheidsscannen of pentesten?
Met Kwetsbaarheidsscanning kan de gebruiker de bekende zwakke punten in de applicatie ontdekken en methoden definiëren om de algehele beveiliging van de applicatie te herstellen en te verbeteren. Het komt er in feite achter of er beveiligingspatches zijn geïnstalleerd, of de systemen correct zijn geconfigureerd om aanvallen moeilijk te maken.
Pen Tests simuleert voornamelijk real-time systemen en helpt de gebruiker te achterhalen of het systeem toegankelijk is voor onbevoegde gebruikers, zo ja, welke schade kan worden veroorzaakt en aan welke gegevens etc.
Daarom is kwetsbaarheidsscanning een detectieve controlemethode die suggesties doet voor manieren om het beveiligingsprogramma te verbeteren en ervoor te zorgen dat bekende zwakheden niet opnieuw de kop opsteken, terwijl pentest een preventieve controlemethode is die een algemeen beeld geeft van de bestaande beveiligingslaag van het systeem.
Beide methoden hebben echter hun belang, maar het hangt af van wat er werkelijk wordt verwacht als onderdeel van het testen.
Als testers is het absoluut noodzakelijk om duidelijk te zijn over het doel van het testen voordat we beginnen met testen. Als u duidelijk bent over het doel, kunt u heel goed bepalen of u een kwetsbaarheidsscan of pentest moet uitvoeren.
Belang en de noodzaak voor het testen van webapp-pen:
- Pentest Helpt bij het identificeren van onbekende kwetsbaarheden.
- Helpt bij het controleren van de effectiviteit van het algemene beveiligingsbeleid.
- Hulp bij het testen van de openbaar gemaakte componenten, zoals firewalls, routers en DNS.
- Hiermee kan de gebruiker de meest kwetsbare route achterhalen via welke een aanval kan worden uitgevoerd
- Helpt bij het vinden van de mazen in de wet die tot diefstal van gevoelige gegevens kunnen leiden.
Als je kijkt naar de huidige marktvraag, is er een sterke stijging van het mobiele gebruik, dat een groot potentieel voor aanvallen wordt. Toegang tot websites via mobiele telefoons is vatbaar voor vaker aanvallen en dus voor het in gevaar brengen van gegevens.
Penetratietesten worden dus erg belangrijk om ervoor te zorgen dat we een veilig systeem bouwen dat door gebruikers kan worden gebruikt zonder zorgen over hacking of gegevensverlies.
Methodologie voor het testen van webpenetratie
De methodologie is niets anders dan een reeks richtlijnen uit de beveiligingsindustrie over hoe de tests moeten worden uitgevoerd. Er zijn een aantal gevestigde en bekende methodologieën en standaarden die kunnen worden gebruikt voor testen, maar aangezien elke webapplicatie verschillende soorten testen vereist, kunnen testers hun eigen methodologieën creëren door te verwijzen naar de standaarden die op de markt beschikbaar zijn.
Enkele van de methoden en standaarden voor beveiligingstests zijn:
- OWASP (Open Web Application Security Project)
- OSSTMM (Handleiding Open Source Security Testing Methodology)
- PTF (Raamwerk voor penetratie testen)
- ISSAF (Beveiligingsbeoordelingskader voor informatiesystemen)
- PCI DSS (Payment Card Industry Data Security Standard)
Testscenario's:
Hieronder vindt u enkele testscenario's die kunnen worden getest als onderdeel van Penetratietesten voor webapplicaties (WAPT):
- Cross-site scripting
- SQL injectie
- Gebroken authenticatie en sessiebeheer
- Fouten bij het uploaden van bestanden
- Caching servers aanvallen
- Beveiligingsfouten
- Cross-Site Request Forgery
- Wachtwoord kraken
Hoewel ik de lijst heb genoemd, moeten testers hun testmethodologie niet blindelings maken op basis van de bovenstaande conventionele normen.
Hier is eenvoorbeeldom te bewijzen waarom ik het zeg.
Overweeg dat u wordt gevraagd om een penetratietest voor een eCommerce-website te testen, denk er nu eens over na of alle kwetsbaarheden van een eCommerce-website kunnen worden geïdentificeerd met behulp van de conventionele methoden van OWASP zoals XSS, SQL-injectie enz.
Het antwoord is nee, want e-commerce werkt op een heel ander platform en technologie in vergelijking met andere websites. Om uw pentest voor e-commercewebsites effectief te maken, moeten testers een methodologie ontwerpen met gebreken zoals Orderbeheer, Coupon- en Beloningsbeheer, Payment Gateway-integratie en Content Management System-integratie.
Dus, voordat u een beslissing neemt over de methodologie, moet u zeer zeker weten welke soorten websites naar verwachting zullen worden getest en welke methode zal helpen bij het vinden van de maximale kwetsbaarheden.
Soorten webpenetratietests
Webapplicaties kunnen op 2 manieren worden getest op penetratie. Tests kunnen worden ontworpen om een aanval van binnen of van buiten te simuleren.
# 1) Interne penetratietesten -
Zoals de naam al doet vermoeden, worden de interne pentests binnen de organisatie uitgevoerd via het LAN, dus ook het testen van webapplicaties die op het intranet worden gehost.
Dit helpt om erachter te komen of er kwetsbaarheden kunnen zijn binnen de firewall van het bedrijf.
wat is integratietesten met voorbeeld
We zijn altijd van mening dat aanvallen alleen extern kunnen plaatsvinden en dat de interne Pentest vaak over het hoofd wordt gezien of dat er niet veel belang aan wordt gehecht.
Het omvat in feite kwaadwillende werknemersaanvallen door ontevreden werknemers of aannemers die ontslag zouden hebben genomen maar zich bewust waren van het interne beveiligingsbeleid en de wachtwoorden, social engineering-aanvallen, simulatie van phishingaanvallen en aanvallen met gebruikersrechten of misbruik van een ontgrendelde terminal.
Testen wordt voornamelijk gedaan door toegang te krijgen tot de omgeving zonder de juiste inloggegevens en te identificeren of een
#twee) Externe penetratietesten -
Dit zijn aanvallen die extern van buiten de organisatie worden uitgevoerd en omvatten het testen van webapplicaties die op internet worden gehost.
Testers gedragen zich als hackers die zich niet goed bewust zijn van het interne systeem.
Om dergelijke aanvallen te simuleren, krijgen testers het IP-adres van het doelsysteem en geen andere informatie. Ze zijn vereist om openbare webpagina's te doorzoeken en te scannen en onze informatie over doelhosts te vinden en vervolgens de gevonden hosts te compromitteren.
In feite omvat het het testen van servers, firewalls en IDS.
Aanpak voor het testen van webpennen:
Het kan in 3 fasen worden uitgevoerd:
# 1) Planningsfase (vóór testen)
Voordat het testen begint, is het raadzaam om te plannen welke soorten tests zullen worden uitgevoerd, hoe de tests zullen worden uitgevoerd, te bepalen of QA extra toegang tot tools nodig heeft, enz.
beste verkooppuntsysteem voor ipad
- Scope definitie - Dit is hetzelfde als onze functionele tests, waarbij we de reikwijdte van onze tests definiëren voordat we met onze testinspanningen beginnen.
- Beschikbaarheid van documentatie voor testers - Zorg ervoor dat testers alle vereiste documenten hebben, zoals documenten met details over de webarchitectuur, integratiepunten, integratie van webservices, enz. De tester moet op de hoogte zijn van de basisprincipes van het HTTP / HTTPS-protocol en op de hoogte zijn van de webapplicatie-architectuur en manieren om het verkeer te onderscheppen.
- De succescriteria bepalen - In tegenstelling tot onze functionele testcases, waar we verwachte resultaten kunnen afleiden uit gebruikersvereisten / functionele vereisten, werkt pentesten op een ander model. De succescriteria of de criteria voor het slagen voor de testcase moeten worden gedefinieerd en goedgekeurd.
- De testresultaten van de vorige tests bekijken - Als er ooit eerder testen zijn gedaan, is het goed om de testresultaten te bekijken om te begrijpen welke kwetsbaarheden er in het verleden waren en welke remediëringen zijn genomen om op te lossen. Dit geeft altijd een beter beeld van de testers.
- Inzicht in de omgeving - Testers moeten kennis opdoen over de omgeving voordat ze beginnen met testen. Deze stap moet ervoor zorgen dat ze inzicht krijgen in firewalls of andere beveiligingsprotocollen die moeten worden uitgeschakeld om de tests uit te voeren. De te testen browser moet worden omgezet in een aanvalsplatform, meestal gedaan door proxy's te wijzigen.
# 2) Aanvallen / uitvoeringsfase (tijdens testen):
Webpenetratietests kunnen vanaf elke locatie worden uitgevoerd, gezien het feit dat de internetprovider geen beperkingen mag stellen aan poorten en services.
- Zorg ervoor dat u een test uitvoert met verschillende gebruikersrollen - Testers moeten ervoor zorgen dat ze tests uitvoeren met gebruikers met verschillende rollen, aangezien het systeem zich anders kan gedragen ten opzichte van gebruikers met verschillende rechten.
- Bewustwording over hoe om te gaan met postexploitatie - Testers moeten de succescriteria volgen die zijn gedefinieerd als onderdeel van fase 1 om misbruik te melden, en ze moeten ook het gedefinieerde proces volgen voor het melden van kwetsbaarheden die tijdens het testen zijn gevonden. Bij deze stap moet de tester er voornamelijk achter komen wat er moet gebeuren nadat hij heeft vastgesteld dat het systeem gecompromitteerd is.
- Genereren van testrapporten - Alle tests die worden uitgevoerd zonder de juiste rapportage, helpen de organisatie niet veel, hetzelfde is het geval met penetratietesten van webapplicaties. Om ervoor te zorgen dat de testresultaten op de juiste manier met alle belanghebbenden worden gedeeld, moeten testers goede rapporten maken met details over gevonden kwetsbaarheden, de methodologie die voor het testen wordt gebruikt, de ernst en de locatie van het gevonden probleem.
# 3) Fase na uitvoering (na testen):
Zodra het testen is voltooid en de testrapporten met alle betrokken teams zijn gedeeld, moet iedereen aan de volgende lijst werken:
- Herstel voorstellen - Het testen van pentesten moet niet eindigen bij het identificeren van kwetsbaarheden. Het betrokken team, inclusief een QA-lid, dient de bevindingen van de testers te beoordelen en vervolgens de oplossing te bespreken.
- Test kwetsbaarheden opnieuw - Nadat het herstel is uitgevoerd en geïmplementeerd, moeten testers opnieuw testen om ervoor te zorgen dat de opgeloste kwetsbaarheden niet naar voren zijn gekomen als onderdeel van hun hertest.
- Opruimen - Als onderdeel van de Pentest brengen testers wijzigingen aan in de proxy-instellingen, dus opschonen moet worden uitgevoerd en alle wijzigingen worden teruggedraaid.
Top tools voor penetratietesten
Nu je het volledige artikel al hebt gelezen, denk ik dat je nu een veel beter idee hebt van wat en hoe we een webapplicatie kunnen penetreren.
Dus vertel eens, kunnen we penetratietesten handmatig uitvoeren of gebeurt dat altijd door te automatiseren met behulp van een tool. Ik denk dat de meesten van jullie ongetwijfeld automatisering zeggen.
Dat is waar omdat automatisering snelheid oplevert, handmatige menselijke fouten vermijdt, uitstekende dekking en verschillende andere voordelen biedt, maar wat de pentest betreft, vereist het dat we enkele handmatige tests uitvoeren.
Handmatig testen helpt bij het vinden van kwetsbaarheden met betrekking tot Business Logic, waardoor het aantal valse positieven wordt verminderd.
Tools geven vaak veel false positives en daarom is handmatige tussenkomst vereist om te bepalen of het echte kwetsbaarheden zijn.
Er zijn tools gemaakt om onze testinspanningen te automatiseren. Hieronder vindt u een lijst met enkele van de tools die voor Pentest kunnen worden gebruikt:
Voor meer tools kunt u ook verwijzen 37 Krachtige pentesthulpmiddelen voor elke penetratietester
Top bedrijven die penetratie testen
Serviceproviders zijn bedrijven die diensten verlenen die voldoen aan de testbehoeften van de organisaties. Ze blinken meestal uit en beschikken over expertise op verschillende testgebieden, en kunnen testen uitvoeren in hun gehoste testomgeving.
Hieronder worden enkele van de toonaangevende bedrijven genoemd die penetratietestdiensten leveren:
- PSC (Naleving van betalingsbeveiliging)
- Netragard
- Securestate
- Kolen vuur
- HIGHBIT-beveiliging
- Nettitude
- 360
- NetSPi
- ControlScan
- Skods Minotti
- 2 | Sec
- Beveiligingsbeoordeling
- Beveiligingsauditsystemen
- Hacklabs
- CQR
Enkele certificeringen voor penetratietesten:
Als u geïnteresseerd bent om gecertificeerd te worden op het gebied van penetratiecertificering voor webapps, kunt u kiezen voor onderstaande certificeringen:
- OSWE (Offensive Security Web Expert)
- GWAPT (GIAC-penetratietester voor webapplicaties)
- CWAPT (Gecertificeerde penetratietester voor webapps)
- eWPT (elearnSecurity-penetratietester voor webapplicaties)
Gevolgtrekking
In deze tutorial hebben we een overzicht gegeven van hoe penetratietesten worden uitgevoerd voor webapplicaties.
Met deze informatie kan de penetratietester kwetsbaarheidstests starten.
Idealiter kunnen penetratietesten ons helpen veilige software te maken. Het is een kostbare methode, dus de frequentie kan als één keer per jaar worden aangehouden.
Lees onderstaande gerelateerde artikelen voor meer informatie over penetratietesten:
- Een aanpak voor het testen van beveiliging van webapplicaties
- Penetratietesten - Volledige gids met voorbeeldtestgevallen
- Applicatiebeveiliging testen - Testtechnieken voor beveiliging van web- en desktopapplicaties
Deel hieronder uw mening of ervaring over Pentest.
Aanbevolen literatuur
- Handleiding voor het testen van webapplicaties
- Netwerkbeveiligingstests en de beste hulpprogramma's voor netwerkbeveiliging
- Beste softwaretesttools 2021 [QA Test Automation Tools]
- Alfatesten en bètatesten (een complete gids)
- Beveiligingstests (een complete gids)
- Een complete gids voor penetratietesten met voorbeeldtestcases
- Tools en serviceproviders voor het testen van penetratie van mobiele applicaties
- Verschil tussen Desktop, Client Server Testing en Web Testing