Kwetsbaarheden die leiden tot beveiligingslekken zijn meestal het gevolg van ontwerp- en programmeerfouten. Om deze fouten voor de ingebruikname te ontdekken moet veel en intensief worden getest. En dan nog komen ze op de meest ongelukkige momenten naar voren. Omdat de distributie van software via het internet zo gemakkelijk gaat zijn de kwetsbaarheden ook snel over de wereld verspreid. De aanvallers maken gebruik van dezelfde kanalen en treffen zo al snel 60-70% van de doelen. Het bewustzijn t.a.v. deze kwetsbaarheden bij de bouw van software is dan ook van groot belang. Voorkomen is beter dan genezen.
De top 25 van de meest voorkomende kwetsbaarheden in software waaronder websites in volgorde van hun ernst zijn:
25 Kwetsbaarheden
- Onjuiste maatregelen voor gegevenselementen die worden gebruikt in een SQL-opdracht (‘SQL Injection’).
- Onjuiste maatregelen voor gegevenselementen die gebruikt worden in een Operating System commando (‘OS Command Injectie’).
- Bufferkopie zonder controle van de grootte van de invoer (‘Classic Buffer Overflow’).
- Onjuiste maatregelen voor Input tijdens Web Page Generatie (‘Cross-Site Scripting‘).
- Ontbrekende verificatie van een kritieke functie.
- Ontbrekende machtiging om een functie uit te voeren.
- Gebruik van hard gecodeerde variabelen.
- Het ontbreken van encryptie van gevoelige gegevens.
- Uploaden van bestand van een gevaarlijk type zonder malware check.
- Vertrouwen op onbetrouwbare gegevensbronnen.
- Uitvoering van functies met onnodig veel rechten.
- Geprogrammeerd verzoek om een vervalst certificaat.
- Onjuiste rechten van een padnaam naar een beveiligde directory (‘Padverplaatsing’).
- Download van programmacode zonder integriteitscontrole.
- Onjuiste autorisatie.
- Includen van functionaliteit uit een onbetrouwbare omgeving.
- Onjuiste toewijzing van kritike bron.
- Gebruik van potentieel gevaarlijke functie.
- Gebruik van een gehackt of risicovol encryptie algoritme.
- Onjuiste berekening van buffer grootte.
- Onjuiste beperking van overmatige verificatiepogingen.
- URL-omleiding naar niet-vertrouwde site (‘Open Redirect’).
- Ongecontroleerde formatstring.
- Integer Overflow of Wraparound.
- Gebruik van een one-way hash zonder salt.
Soorten kwetsbaarheden in systemen
De top vijfentwintig kwetsbaarheden zijn verschillend van aard en kunnen worden verdeeld in 3 kwetsbaarheidscategorieën:
Kwetsbaarheid van interactie tussen componenten
Deze zwakke punten hebben betrekking op de onveilige manieren waarop data wordt verzonden en ontvangen tussen afzonderlijk componenten, modules, programma’s, processen, netwerken of systemen.
- 1. Onjuiste maatregelen voor gegevenselementen die worden gebruikt in een SQL-opdracht (‘SQL Injection’).
- 2. Onjuiste maatregelen voor gegevenselementen die gebruikt worden in een Operating System commando (‘OS Command Injectie’).
- 4. Onjuiste maatregelen voor Input tijdens Web Page Generatie (‘Cross-Site Scripting’).
- 9. Uploaden van bestand van een gevaarlijk type zonder malware check.
- 12. Geprogrammeerd verzoek om een vervalst certificaat.
- 22. URL-omleiding naar niet-vertrouwde site (‘Open Redirect’).
Het aanpakken van deze categorie moet worden gezocht in de keuze voor één platform, het integraal testen van software en het checken van programmacode.
Het managen van de beheerrisico’s
De zwakke punten in deze categorie hebben betrekking op manieren waarop systeembeheer belangrijke software en systeembronnen niet goed beheert, creëert, gebruikt, overdraagt of vernietigt.
- 3. Bufferkopie zonder controle van de grootte van de invoer (‘Classic Buffer Overflow’).
- 13. Onjuiste rechten van een padnaam naar een beveiligde directory (‘Padverplaatsing’).
- 14. Download van programmacode zonder integriteitscontrole.
- 16. Includen van functionaliteit uit een onbetrouwbare omgeving.
- 18. Gebruik van potentieel gevaarlijke functie.
- 20. Onjuiste berekening van buffer grootte.
- 23. Ongecontroleerde formatstring.
- 24. Integer Overflow of Wraparound.
Deze categorie lijkt voort te komen uit een stuk gemakzucht. De oplossing ligt voor de hand: meer aandacht voor beveiligingsbewustzijn, werkinstructies en het controleren van elkaars werk.
Poreuze Beveiliging
De zwakke punten in deze categorie hebben betrekking op beveiligingstechnieken die vaak worden misbruikt of gewoon genegeerd.
- 5. Ontbrekende verificatie van een kritieke functie.
- 6. Ontbrekende machtiging om een functie uit te voeren.
- 7. Gebruik van hard gecodeerde variabelen.
- 8. Het ontbreken van encryptie van gevoelige gegevens.
- 10. Vertrouwen op onbetrouwbare gegevensbronnen.
- 11. Uitvoering van functies met onnodig veel rechten.
- 15. Onjuiste autorisatie.
- 17. Onjuiste toewijzing van kritieke bron.
- 19. Gebruik van een gehackt of risicovol encryptie algoritme.
- 21. Onjuiste beperking van overmatige verificatiepogingen.
- 25. Gebruik van een one-way hash zonder salt.
Ook hier spelen gemakzucht en beveiligingsbewustzijn een rol. De oplossing moet worden in het verbeteren van de ontwerp- en programmeerprocessen.

Discussieer mee op
LinkedIn.
Samenvatting
ArtikelDe Top 25 Kwetsbaarheden in systemen
BeschrijvingOmdat de distributie van software via het internet zo gemakkelijk gaat zijn de kwetsbaarheden ook snel over de wereld verspreid. Ook de aanvallers maken gebruik van deze kanalen.
Auteur Wim Hoogenraad
Publisher Naam ITpedia
Publisher Logo