SAST-tooling: Onze ervaring
Bij YieldDD gebruiken we tooling om processen te automatiseren of om te helpen bij onze assessments. Als onderdeel van onze code-first security assessment, maken we gebruik van Static Application Security Tests (SAST) om beveiligingsproblemen en risicovolle implementaties te identificeren. Maar hoe goed identificeert SAST-tooling beveiligingsproblemen op basis van geautomatiseerde codeanalyse?
![Yielddd Software Due Diligence Security](/media/6617/yielddd-software-due-diligence-security.jpg?anchor=center&mode=crop&width=640&height=274&format=webp&rnd=133131550490000000)
Als onderdeel van ons interne proces evalueren we voortdurend de tools die we gebruiken om er zeker van te zijn dat ze aan onze behoeften voldoen, om te controleren of we belangrijke nieuwe functies missen, of de tools nauwkeurig genoeg zijn en of we delen van ons proces beter kunnen automatiseren. Dit proces omvat ook de SAST-tools (Static Application Security Testing) die we gebruiken voor onze Security Assessments.
Daarnaast hebben we - voor educatieve doeleinden - een applicatie geïmplementeerd die een groot aantal beveiligingsproblemen bevat; onze ‘kwetsbare applicatie’. De kwetsbare applicatie bevat problemen op basis van de OWASP Top 10, de CWE Top 25 en beveiligingsproblemen die we hebben gezien in software van meerdere klanten. De codebase wordt vooral gebruikt om bewustzijn te creëren en ontwikkelaars en testers te trainen om zelf problemen te identificeren. Op het moment van schrijven bevat de codebase meer dan 53 beveiligingsproblemen.
Security-problemen detecteren
We hebben de kwetsbare applicatie gebruikt om goed inzicht te krijgen in de snelheid waarmee SAST-tools beveiligingsproblemen kunnen detecteren. We lieten de SAST-tooling zoveel mogelijk security-problemen identificeren. Bij in totaal vier verschillende SAST-aanbieders waren de tools in staat om gemiddeld 9 beveiligingsproblemen te identificeren (valse positieven niet meegerekend). Deze problemen hadden betrekking op achtergebleven geheimen in code, configuratieproblemen en injectie.
Dit geeft een goed beeld van de uitdagingen bij het identificeren van beveiligingsproblemen binnen applicaties. Veel security-risico’s worden pas beschouwd als een probleem binnen de context van de applicatie. Een geautomatiseerde tool zal bijvoorbeeld nooit in staat zijn om te weten of een endpoint alleen toegankelijk moet zijn voor beheerders of openbaar is, hiervoor is domeinkennis nodig. Naast de vereiste domeinkennis, kan de complexiteit van beveiligingsproblemen sterk variëren. SAST-tooling is goed in het blootleggen van eenvoudigere problemen, maar heeft ruimte voor verbetering als het gaat om complexe security-problemen die context vereisen. Niet gek, zelfs getrainde professionals kunnen veel tijd nodig hebben om een security-risico te identificeren, of zelfs een probleem helemaal over het hoofd zien. Daarom bestaan er zero-day kwetsbaarheden - een kwetsbaarheid die al sinds de eerste release aanwezig is.
Een vals gevoel van veiligheid
In de huidige staat van geautomatiseerde security-tools kan het gebruik van dergelijke tooling een vals gevoel van veiligheid creëren. In het ergste geval wordt een applicatie als veilig beschouwd, maar lekken er continu gegevens en kunnen kwaadwillenden toegang krijgen tot de servers van het bedrijf. Dit betekent niet dat geautomatiseerde tooling niet moet worden gebruikt; het tegendeel is waar. Ze helpen je voortdurend om problemen te identificeren en de beveiliging van je applicaties te verbeteren.
Om er echter zeker van te zijn dat je security in orde is, is het belangrijk om regelmatig handmatige security assessments uit te voeren. Op dit moment is de kennis van security-specialisten nog onvervangbaar.
AI
Nieuwe SAST-tooling, versterkt door kunstmatige intelligentie, biedt goede hoop voor de toekomst dat ze steeds meer beveiligingsproblemen zullen identificeren. AI heeft het vermogen om context te begrijpen, wat enorm zal helpen bij het identificeren van beveiligingsproblemen. De eerste onderzoeken naar het identificeren en uitbuiten van beveiligingsproblemen met behulp van AI hebben al laten zien dat dit iets is waar we de komende jaren rekening mee moeten houden. Het is daarom ook belangrijk om bij te blijven, vooral met ontwikkelingen zoals AI.
Opgemerkt moet worden dat nieuwe technologieën nieuwe security-risico's met zich meebrengen. Deze risico's moeten zo snel mogelijk worden geïdentificeerd. Nieuwe technologieën worden niet alleen door jou gebruikt, maar ook door kwaadwillende actoren, dus als je achterloopt, verhoog je het risico op een security-problemen in de toekomst.