web application security testing guide
hur kan jag bli en produkttestare
På grund av den enorma mängden data som lagras i webbapplikationer och en ökning av antalet transaktioner på webben blir korrekt säkerhetstestning av webbapplikationer mycket viktigt dag för dag.
I den här artikeln kommer vi att lära oss mer i detalj om de nyckeltermer som används vid testning av webbplatsens säkerhet och testmetoden.
Vad du kommer att lära dig:
- Vad är säkerhetstestning?
- Några viktiga termer som används vid säkerhetstestning
- Rekommenderade säkerhetstestverktyg
- Säkerhetstestningsmetod
- Metoder för webbsäkerhetstestning
- Slutsats
- Rekommenderad läsning
Vad är säkerhetstestning?
Säkerhetstestning är processen som kontrollerar om konfidentiella uppgifter förblir konfidentiella eller inte (dvs den exponeras inte för individer / enheter som den inte är avsedd för) och användarna kan bara utföra de uppgifter som de har behörighet att utföra
Till exempel, en användare ska inte kunna förneka webbplatsens funktionalitet till andra användare eller en användare bör inte kunna ändra webbapplikationens funktioner på ett oavsiktligt sätt etc.
Några viktiga termer som används vid säkerhetstestning
Innan vi fortsätter kommer det att vara användbart att bekanta oss med få termer som ofta används i säkerhetstestning för webbapplikationer:
Vad är ”sårbarhet”?
Detta är svagheten i webbapplikationen. Orsaken till en sådan ”svaghet” kan bero på buggarna i applikationen, en injektion (SQL / skriptkod) eller förekomsten av virus.
Vad är 'URL-manipulation'?
Vissa webbapplikationer kommunicerar ytterligare information mellan klienten (webbläsaren) och servern i URL: n. Att ändra information i webbadressen kan ibland leda till oavsiktligt beteende från servern och detta kallas som URL-manipulation .
Vad är 'SQL-injektion'?
Detta är processen för att infoga SQL-uttalanden via webbapplikationens användargränssnitt i någon fråga som sedan körs av servern.
Vad är 'XSS (Cross-Site Scripting)'?
När en användare infogar HTML / klientsidesskript i användargränssnittet för en webbapplikation är denna infogning synlig för andra användare och den kallas XSS .
Vad är 'Spoofing'?
Skapandet av bluff likadana webbplatser eller e-postmeddelanden kallas Spoofing .
Rekommenderade säkerhetstestverktyg
# 1) Acunetix
när ett enskilt element i en matris skickas till en metod:
Acunetix är en end-to-end säkerhetsskanner för webbapplikationer. Det ger en 360-graders bild av din organisations säkerhet. Den kan upptäcka 6500 typer av sårbarheter som SQL-injektioner, XSS och svaga lösenord etc. Den använder avancerad makroinspelningsteknik för att skanna komplexa flernivåformer.
Plattformen är intuitiv och enkel att använda. Du kan schemalägga och prioritera hela skanningar såväl som inkrementella skanningar. Den innehåller en inbyggd funktion för sårbarhetshantering. Med hjälp av CI-verktyg som Jenkins kan nya byggningar skannas automatiskt.
=> Testa Acunetix för webbapps säkerhet
# 2) Kiuwan
Hitta och åtgärda sårbarheter i din kod i alla steg i SDLC.
Kiuwan uppfyller de strängaste säkerhetsstandarderna inklusive OWASP, CWE, SANS 25, HIPPA och mer.Integrera Kiuwan i din IDE för omedelbar feedback under utvecklingen. Kiuwan stöder alla större programmeringsspråk och integreras med ledande DevOps-verktyg.
=> Skanna din kod gratis
Säkerhetstestningsmetod
För att kunna utföra ett användbart säkerhetstest av en webbapplikation bör säkerhetstestaren ha god kunskap om HTTP-protokollet.
Det är viktigt att ha en förståelse för hur klienten (webbläsaren) och servern kommunicerar med HTTP.
Dessutom bör testaren åtminstone känna till grunderna för SQL-injektion och XSS.
Förhoppningsvis kommer antalet säkerhetsfel som finns i webbapplikationen inte att vara högt. Men att kunna beskriva alla säkerhetsfel korrekt med alla nödvändiga detaljer kommer definitivt att hjälpa.
Metoder för webbsäkerhetstestning
# 1) Lösenordssprickning
Säkerhetstestningen på en Webbapplikation kan startas av “Password Cracking”. För att logga in på de privata områdena i applikationen kan man antingen gissa ett användarnamn / lösenord eller använda något lösenordssprickarverktyg för detsamma. En lista över vanliga användarnamn och lösenord finns tillgängliga tillsammans med öppen källkodslösenord.
Om webbapplikationen inte tillämpar ett komplext lösenord ( Till exempel, med alfabet, antal och specialtecken eller med åtminstone ett antal tecken som krävs), kan det ta inte lång tid att knäcka användarnamnet och lösenordet.
Om ett användarnamn eller lösenord lagras i kakor utan kryptering kan en angripare använda olika metoder för att stjäla kakorna och informationen som lagras i kakorna som användarnamn och lösenord.
För mer information se en artikel om “ Testning av webbplatsens kakor ”.
# 2) URL-hantering genom HTTP GET-metoder
En testare bör kontrollera om applikationen skickar viktig information i frågesträngen eller inte. Detta händer när applikationen använder HTTP GET-metoden för att skicka information mellan klienten och servern.
Informationen skickas genom parametrarna i frågesträngen. Testaren kan ändra ett parametervärde i frågesträngen för att kontrollera om servern accepterar det.
Via HTTP GET-begäran skickas användarinformation till servern för verifiering eller hämtning av data. Angriparen kan manipulera varje ingångsvariabel som skickas från denna GET-begäran till en server för att få den information som krävs eller för att skada data. Under sådana förhållanden är varje ovanligt beteende av applikation eller webbserver dörröppningen för angriparen att komma in i en applikation.
# 3) SQL-injektion
Nästa faktor som ska kontrolleras är SQL Injection. Att ange en enda offert (‘) i valfri textruta bör avvisas av ansökan. Istället, om testaren stöter på ett databasfel, betyder det att användarinmatningen infogas i någon fråga som sedan körs av ett program. I ett sådant fall är applikationen sårbar för SQL-injektion.
SQL-injektionsattacker är mycket kritiska eftersom en angripare kan få viktig information från serverdatabasen. För att kontrollera ingångspunkter för SQL-injektion i din webbapplikation, ta reda på koden från din kodbas där direkta MySQL-frågor körs i databasen genom att acceptera vissa användarinmatningar.
Om användarinmatningsdata skapas i SQL-frågor för att fråga databasen kan en angripare injicera SQL-satser eller delar av SQL-satserna som användaringångar för att extrahera viktig information från en databas. Även om en angripare lyckas krascha applikationen, från SQL-frågefelet som visas i en webbläsare, kan angriparen få den information de letar efter.
Specialtecken från användarens ingångar ska hanteras / undvikas korrekt i sådana fall.
# 4) Cross-Site Scripting (XSS)
En testare bör dessutom kontrollera XSS (cross-site scripting) i webbapplikationen. Vilken HTML som helst Till exempel, eller något manus Till exempel, bör inte accepteras av ansökan. Om så är fallet kan applikationen vara benägen för en attack genom skriptöverföring.
Angriparen kan använda den här metoden för att utföra ett skadligt skript eller en URL i offrets webbläsare. Med hjälp av skript på flera platser kan en angripare använda skript som JavaScript för att stjäla användarkakor och information som lagras i kakorna.
Många webbapplikationer får användbar information och skickar denna information i vissa variabler från olika sidor.
Till exempel, http://www.examplesite.com/index.php?userid=123 &fråga = xyz
testfallsformat i programvarutestning
Angriparen kan enkelt skicka skadlig inmatning eller som en '& fråga' -parameter som kan utforska viktiga användar- / serverdata i webbläsaren.
Viktig: Under säkerhetstestning bör testaren vara mycket försiktig så att den inte ändrar något av följande:
- Konfiguration av applikationen eller servern
- Tjänster som körs på servern
- Befintliga användar- eller kunddata som hostas av applikationen
Dessutom bör ett säkerhetstest undvikas i ett produktionssystem.
Slutsats
Syftet med ett säkerhetstest är att upptäcka sårbarheterna i webbapplikationen så att utvecklarna kan ta bort dessa sårbarheter från applikationen och göra webbapplikationen och data säkra från alla obehöriga åtgärder.
Rekommenderad läsning => Skillnad mellan SAST / DAST / IAST / RASP
Dela gärna dina kommentarer / förslag om den här artikeln.
Rekommenderad läsning
- Nybörjarhandbok för penetreringstestning för webbapplikationer
- Säkerhetstestning (En komplett guide)
- Alpha Testing och Beta Testing (En komplett guide)
- Testning av nätverkssäkerhet och bästa verktyg för nätverkssäkerhet
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- Byggverifieringstestning (BVT-testning) Komplett guide
- Topp 4 öppen källkod säkerhetstestverktyg för att testa webbapplikation
- Funktionell testning mot icke-funktionell testning