OWASP staat voor Open Web Application Security Project. OWASP-Top 10 Application Security Risks documenteert de meest voorkomende programmeerfouten die ontwikkelaars maken en die kunnen leiden tot beveiligingsrisico's in hun applicaties. Het is gebaseerd op brede consensus over de meest kritieke beveiligingsrisico's bij het programmeren. Bedrijven moeten zich bewust zijn van deze bron en ervoor zorgen dat hun webapplicaties deze potentiële risico's aanpakken.
Het gebruiken van de OWASP Top 10 is misschien wel de meest effectieve eerste stap om de softwareontwikkelingscultuur binnen uw organisatie te veranderen naar een cultuur die vanaf het begin veiligere code produceert.
Wat zijn de 10 grootste beveiligingsrisico's voor webapplicaties?
InjectieInjectiefouten, zoals SQL-, NoSQL-, OS- en LDAP-injectie, treden op wanneer niet-vertrouwde gegevens naar een interpreter worden verzonden als onderdeel van een opdracht of query. De schadelijke gegevens van de aanvaller kunnen de interpreter ertoe verleiden onbedoelde opdrachten uit te voeren of toegang te krijgen tot gegevens zonder de juiste autorisatie.
Gebroken authenticatieToepassingsfuncties met betrekking tot authenticatie en sessiebeheer worden vaak verkeerd geïmplementeerd, waardoor aanvallers wachtwoorden, sleutels of sessietokens kunnen stelen of andere implementatiefouten kunnen misbruiken om tijdelijk of permanent de identiteit van andere gebruikers aan te nemen.
Gevoelige gegevensblootstellingVeel webapplicaties en API's beschermen gevoelige gegevens, zoals financiële gegevens, medische gegevens en PII, niet goed. Aanvallers kunnen dergelijke zwak beveiligde gegevens stelen of wijzigen om creditcardfraude, identiteitsdiefstal of andere misdrijven te plegen. Gevoelige gegevens kunnen worden gecompromitteerd zonder extra bescherming, zoals encryptie in rust of tijdens verzending, en vereisen speciale voorzorgsmaatregelen bij gegevensuitwisseling met de browser.
XML externe entiteiten (XXE)Veel oudere of slecht geconfigureerde XML-processors evalueren externe entiteitsreferenties binnen XML-documenten. Externe entiteiten kunnen worden gebruikt om interne bestanden openbaar te maken met behulp van de URI-handler, interne bestandsshares, interne poortscans, uitvoering van code op afstand en denial-of-service-aanvallen.
Gebroken toegangscontroleBeperkingen op wat geauthenticeerde gebruikers mogen doen, worden vaak niet goed gehandhaafd. Aanvallers kunnen deze kwetsbaarheden misbruiken om toegang te krijgen tot ongeautoriseerde functionaliteit en/of gegevens, zoals toegang tot accounts van andere gebruikers, het bekijken van gevoelige bestanden, het wijzigen van gegevens van andere gebruikers, het wijzigen van toegangsrechten, enzovoort.
Verkeerde configuratie van de beveiligingVerkeerde beveiligingsconfiguratie is het meest voorkomende probleem. Dit is vaak het gevolg van onveilige standaardconfiguraties, onvolledige of ad-hocconfiguraties, open cloudopslag, verkeerd geconfigureerde HTTP-headers en uitgebreide foutmeldingen met gevoelige informatie. Niet alleen moeten alle besturingssystemen, frameworks, bibliotheken en applicaties veilig geconfigureerd zijn, ze moeten ook tijdig gepatcht/geüpgraded worden.
Cross-site scripting XSSXSS-lekken treden op wanneer een applicatie niet-vertrouwde gegevens opneemt in een nieuwe webpagina zonder de juiste validatie of escape, of een bestaande webpagina bijwerkt met door de gebruiker verstrekte gegevens via een browser-API die HTML of JavaScript kan genereren. XSS stelt aanvallers in staat scripts uit te voeren in de browser van het slachtoffer die gebruikerssessies kunnen kapen, websites kunnen defacen of de gebruiker kunnen omleiden naar kwaadaardige websites.
Onveilige deserialisatieOnveilige deserialisatie leidt vaak tot uitvoering van code op afstand. Zelfs als deserialisatiefouten niet leiden tot uitvoering van code op afstand, kunnen ze worden gebruikt voor aanvallen, waaronder replay-aanvallen, injectie-aanvallen en privilege-escalatie-aanvallen.
Componenten gebruiken met bekende kwetsbaarhedenComponenten, zoals bibliotheken, frameworks en andere softwaremodules, worden uitgevoerd met dezelfde rechten als de applicatie. Als een kwetsbaar component wordt uitgebuit, kan een dergelijke aanval leiden tot ernstig gegevensverlies of serverovername. Applicaties en API's die componenten met bekende kwetsbaarheden gebruiken, kunnen de verdediging van applicaties ondermijnen en diverse aanvallen en gevolgen mogelijk maken.
Onvoldoende logboekregistratie en monitoringOnvoldoende logging en monitoring, in combinatie met ontbrekende of ineffectieve integratie met incidentrespons, stelt aanvallers in staat om systemen verder aan te vallen, persistentie te behouden, over te stappen op meer systemen en data te manipuleren, extraheren of vernietigen. De meeste onderzoeken naar inbreuken tonen aan dat het meer dan 200 dagen duurt voordat een inbreuk wordt gedetecteerd, meestal door externe partijen in plaats van door interne processen of monitoring.
Wat moet ik doen als eigenaar van een MKB-bedrijf?
Eigenaren van MKB-bedrijven die code ontwikkelen, zouden samen met al hun ontwikkelaars een training moeten volgen over de top 10 risico's bij het coderen van OWASP. Dit voorkomt veel problemen die in de toekomst duur worden om op te lossen. CyberHoot heeft een 12-delig OWASP-trainingsprogramma voor coderen, klaar voor alle ontwikkelbedrijven.