Open Web Application Security Project (OWASP) är ett nätverk för applikationssäkerhet med öppen källkod som har som mål att förbättra säkerheten för programvara. OWASP Top 10 är en branschstandardriktlinje som listar de mest kritiska säkerhetsriskerna för applikationer för att hjälpa utvecklare att bättre säkra de applikationer de designar och distribuerar.
Eftersom säkerhetsrisker ständigt utvecklas revideras OWASP Top 10-listan med jämna mellanrum för att återspegla dessa förändringar. I den senaste versionen av OWASP Top 10 som släpptes 2021 ersattes vissa typer av sårbarheter som inte längre utgör ett allvarligt hot med sådana som mest sannolikt kommer att utgöra en betydande risk.
Medan OWASP Top 10 är ett bra ställe att börja säkra applikationer, bör det verkligen inte betraktas som ett slutmål, eftersom några av de mest citerade sårbarheterna inte kom in i OWASP Top 10 2021. För att skydda sig mot svagheter i programvaran måste försvarare se bredare över hela sin informationstekniska stack. Detta innebär att IT-säkerhetspersonal måste fokusera på hela programvarans ekosystem och se bortom de "traditionella" källorna till sårbarheter.
Injektionsfel kan introduceras när en icke betrodd datakälla skickas till en tolk. Exempel finns ofta i SQL-, LDAP-, XPath- eller NoSQL-dynamiska databasfrågor med användarinmatning. Angripare injicerar kod i användarinmatningen och lurar frågetolken att utföra skadliga kommandon.
Vad gör en applikation sårbar för injektionsfel?
Vad är effekten av injektionsfel?
Hur kan Fortify hjälpa till med injektionsfel?
Bruten autentisering kan uppstå vid hantering av identitets- eller sessionsdata i stateful-applikationer. Exempel finns ofta när registrering, återställning av referenser och API-vägar är sårbara för oanvända sessionstoken, brute forcing eller uppräkning av konton. Angripare antar legitima användares identitet, tar kontroll över konton och äventyrar data, processer eller system.
Vad gör en applikation sårbar för bruten autentisering?
Vad är effekten av bruten autentisering?
Hur kan Fortify hjälpa till?
Problem med exponering av känsliga data kan uppstå när applikationer får åtkomst till okrypterad data, i synnerhet personligt identifierbar information (PII) och andra reglerade datatyper. Exempel på detta är ofta när svaga kryptografiska chiffer används i äldre applikationer, säkra transportprotokoll implementeras på ett felaktigt sätt eller datacentrerad säkerhet inte används. Angripare får tillgång till känslig användardata som ger dem kontroll i verkliga livet.
Vad gör en applikation sårbar för exponering av känsliga data?
Vilka är konsekvenserna av att känsliga uppgifter exponeras?
Hur kan Fortify hjälpa till med exponering av känsliga uppgifter?
XML External Entity-problem kan uppstå när XML-data som innehåller en referens till en extern entitet behandlas av en svagt konfigurerad parser. Exempel på detta finns ofta i applikationer som analyserar XML-data från icke betrodda källor, när DTD:er (Document Type Definitions) är aktiverade eller som använder opatchade ramverk som SOAP 1.0. XML finns överallt - från SVG- och bildfiler till nätverksprotokoll och dokumentformat som PDF och RSS. Angripare refererar till externa enheter i XML-inmatning som resulterar i processorer som utnyttjas för att extrahera data, exekvera kod på distans eller påverka nätverkstjänster.
Vad gör en applikation sårbar för externa XML-enheter?
Vad är effekten av XML externa enheter?
Hur kan Fortify hjälpa till med externa XML-enheter?
Problem med åtkomstkontroll kan uppstå när kod- och miljörestriktioner överlappar varandra på ett ofullständigt sätt eller definieras på flera ställen för liknande funktioner. Exempel på detta är ofta när "security-by-obscurity" bryts genom tvingande surfning till begränsade sidor, eller när applikationen definierar komplexa metoder för åtkomstkontroll på flera sätt och platser. Angripare kan kompromissa med åtkomstgränser för att stjäla känsliga data eller störa verksamheten.
Vad gör en applikation sårbar för bristande åtkomstkontroll?
Hur påverkas vi av att tillträdeskontrollen inte fungerar?
Hur kan Fortify hjälpa till med trasig passerkontroll?
Säkerhetsbrister i form av felkonfigurationer kan uppstå under konfigurationen av applikationen eller dess underliggande miljö. Felkonfigurationer kan inträffa på alla nivåer i en applikationsstack - från nätverkstjänster och applikationsservrar till containrar och lagring. Exempel finns ofta i standardkonton och konfigurationer, "läckande" felmeddelanden eller opatchade ramverk och tjänster. Angripare kan få information om driftsättning och tillgång till privilegierad data för att störa verksamheten.
Vad gör en applikation sårbar för felaktig säkerhetskonfiguration?
Vilka är konsekvenserna av felaktig säkerhetskonfiguration?
Konsekvenserna kan variera från att information röjs till att hela systemet äventyras.
Hur kan Fortify hjälpa till med felaktig säkerhetskonfiguration?
XSS-brister (Cross-Site Scripting) kan uppstå när otillförlitlig, okontrollerad användarinmatning exekveras som en del av HTML-koden, eller när användare kan påverkas att interagera med skadliga länkar. Exempel finns ofta när välkända kodkonstruktioner från språk som JavaScript eller Flash accepteras från icke betrodda källor eller lagras för senare visning av en annan användaragent. Angripare kan köra fjärrkod på användarens dator, stjäla inloggningsuppgifter eller leverera skadlig kod från omdirigeringssidor.
Vad gör en applikation sårbar för cross-site scripting (XSS)?
Det finns tre olika former av XSS, som vanligtvis riktar sig mot användaragenter som webbläsare:
Vad är effekten av cross-site scripting (XSS)?
Hur kan Fortify hjälpa till med cross-site scripting (XSS)?
Osäkra deserialiseringsbrister kan uppstå när språk och ramverk tillåter att icke betrodda serialiserade data expanderas till ett objekt, ofta när webbapplikationer kommunicerar med användare eller sparar applikationsstatus. Exempel finns ofta när utvecklare inte lägger några restriktioner på metoder som kan utföra sig själva under deserialiseringsprocessen. Angripare utnyttjar dessa "gadgetkedjor" som kallas utanför applikationslogiken för att fjärrköra kod, neka service eller få obehörig åtkomst.
Vad gör en applikation sårbar för osäker deserialisering?
Vad är effekten av osäker deserialisering?
Hur kan Fortify hjälpa till med osäker deserialisering?
Dessa brister kan uppstå när ramverk och bibliotek med öppen källkod eller från tredje part introduceras i en applikation och körs med samma privilegier. Det finns ofta exempel på komponentbaserad utveckling som leder till bristande förståelse för riskerna med beroenden och komponenter eller system som är svåra eller omöjliga att patcha. Angripare har utnyttjat sårbara komponenter för några av de största intrången i historien, även om sårbarheterna kan sträcka sig från applikationskompromittering till exekvering av fjärrkod.
Vad gör en applikation sårbar för ramverk och bibliotek med öppen källkod eller från tredje part?
Vilka konsekvenser får det om man använder komponenter med kända sårbarheter?
Vissa kända sårbarheter leder endast till mindre konsekvenser, men några av de största kända intrången, som Heartbleed och Shellshock, har byggt på utnyttjande av kända sårbarheter i delade komponenter. Att använda komponenter med kända sårbarheter i koden kan resultera i fjärrstyrd exekvering av kod på den drabbade servern, vilket ger angriparen total kontroll över maskinen.
Hur kan Fortify hjälpa till med säkerhet för öppen källkod?
Otillräcklig loggning och övervakning kan uppstå när man inte förstår attackvektorer eller applikationers felaktiga beteende eller när man inte följer bästa praxis för övervakning av indikatorer på kompromettering. Exempel på detta finns ofta i äldre system utan loggningsfunktioner, när loggar från penetrationstester av applikationer inte granskas eller när loggar inte ger tillräckligt med detaljer för att förstå vad angriparna gjorde. Angripare förlitar sig i genomsnitt på cirka 200 dagar för upptäckt som vanligtvis upptäcks externt för att etablera uthållighet och svänga till ytterligare sårbara system.
Vad är det som gör en applikation sårbar för otillräcklig loggning och övervakning?
Vad är effekten av otillräcklig loggning och övervakning?
De flesta framgångsrika attacker börjar med att sårbarheter undersöks. Om man tillåter att sådan sondering fortsätter kan det öka sannolikheten för framgångsrika exploateringar. Angripare kan bli långvariga, ta sig in i applikationer och operativsystem, stjäla data eller på annat sätt få obemärkt och obehörig kontroll över system. Om säkerhetskritisk information inte registreras eller lagras på lämpligt sätt finns det inget spår för kriminalteknisk analys för att upptäcka källan till attacken. Att förstå att det överhuvudtaget finns ett problem kan bli svårare, eller omöjligt, om angriparen har kontroll över loggningsfunktionerna.
Hur kan Fortify hjälpa till med otillräcklig loggning och övervakning?
Även om det bara har gått fyra år sedan den senaste topp 10 publicerades 2017, har det skett många förändringar i cybersäkerhetsbranschen som har fått oss att tänka två gånger om när det gäller de mest prioriterade frågorna eller vilka nya frågor som ska läggas till.
Tre nya kategorier infördes:
A04:2021
Osäker design: Denna kategori fokuserar på designfel. Detta behövs eftersom rörelsen för att skifta vänster i utvecklingen kräver ett skifte till vänster även för hotmodellering.
A08:2021
Fel i programvaru- och dataintegritet: Fokuserar på antaganden kring programuppdateringar, kritiska data och CI/CD-pipelinen utan att verifiera den integritet som de kan påverka. Detta omfattar även A08:2017 - Osäker deserialisering.
A10:2021
Förfalskning av begäran på serversidan (SSRF): Denna kategori är mestadels i topp 10 från samhällsundersökningen. De betonade verkligen denna sårbarhet på grund av exploaterbarheten och påverkan över genomsnittet.
Övriga förändringar
De övriga kategorierna har antingen bytt namn, flyttat rangordning eller slagits samman till andra kategorier:
Vill du se hur Fortify kan hjälpa din organisation? Starta din kostnadsfria 15-dagars provperiod av Fortify on Demand via OpenText™ nu
Fortify låter dig bygga säker programvara snabbt med en plattform för applikationssäkerhet som automatiserar testning genom hela CI/CD-pipelinen så att utvecklare snabbt kan lösa problem.
Lås upp säkerhetstestning, sårbarhetshantering samt skräddarsydd expertis och support
Hitta och åtgärda säkerhetsproblem i ett tidigt skede med branschens mest exakta resultat
Identifiera sårbarheter i distribuerade webbapplikationer och -tjänster
Smartare, enklare skydd