De gevaarlijkste zwakheden bij software verschuiven snel met de jaren. Zwakke punten op klasseniveau (class level cwe: common weakness enumeration) die de veiligheid in gevaar brengen, komen dit jaar relatief minder voor. Hun plaats wordt meer en meer ingenomen door specifieke zwakten op basisniveau (base-level cwe).
Dit blijkt uit de lijst van de vijfentwintig meest risicovolle zwakheden (CWE Top 25) die de Amerikaanse non-profit onderzoeksorganisatie Mitre heeft samengesteld. Zwakke punten zijn gebreken, fouten, bugs of andere gebreken in implementatie, code, ontwerp of architectuur. Als ze niet worden aangepakt, kunnen systemen, netwerken of hardware kwetsbaar worden voor aanvallen.
De CWE Top 25 is een door de software-gemeenschap ontwikkelde lijst. Hierop komen de meest frequente problemen met de grootste impact uit de afgelopen twee jaar te staan. Doel is de meest voorkomende fouten in een zo vroeg mogelijk stadium van softwareontwikkeling te elimineren.
Gevaarlijke situaties
Bovenaan de lijst staat het schrijven naar het geheugen buiten de grenzen van een buffer. Gevaarlijke situaties kunnen ontstaan wanneer de software gegevens schrijft voorbij het einde of voor het begin van de beoogde buffer. Dit kan leiden tot beschadiging van gegevens, een crash of het uitvoeren van code. Deze geheugenbeschadiging (CWE-787) kent een hoge kans om misbruikt te worden.
De software kan een index wijzigen of point-berekeningen uitvoeren die verwijzen naar een geheugenlocatie die buiten de grenzen van de buffer ligt. Een volgende schrijfbewerking levert dan ongedefinieerde of onverwachte resultaten op.
Het tweede grote risico is ‘cross-site scripting’ (XSS), onjuiste neutralisatie van invoer tijdens het genereren van webpagina’s. Nummer 3 op de ranglijst is het lezen van software voorbij het einde of voor het begin van de beoogde buffer. Ook OS Command Injection en SQL Injection zijn gemakkelijk door cybercriminelen te misbruiken.
Verkeerde machtiging
Het snelst gestegen risico (CWE-276) betreft verkeerde standaard-machtigingen. Machtigingen voor geïnstalleerde bestanden worden zo ingesteld dat iedereen die bestanden kan wijzigen. Eveneens met stip genoteerd is CWE-306: de software voert geen authenticatie uit voor functionaliteit die een aantoonbare gebruikers-identiteit vereist of een aanzienlijke hoeveelheid bronnen verbruikt.
Een andere fout die stijgt op de ranglijst is dat de toepassing niet-vertrouwde gegevens deserialiseert (het opnieuw maken van een object uit een geserialiseerde vorm), zonder voldoende te verifiëren dat de resulterende gegevens geldig zijn. De meeste zwakheden op de lijst van stijgers zijn vrij lastig te ontdekken. Meer eenvoudig op te sporen zwakheden zijn gezakt, wat te verklaren valt uit meer kennis in de software community.