Static Application Security Testing: De uitdagingen en voordelen.

In 2010 heeft het gerenommeerde Ponemon Institute in opdracht van ondermeer WhiteHat Security een onderzoek uitgevoerd naar de risico’s van slecht beveiligde websites. Het onderzoek liet zien dat, ondanks het feit dat organisaties steeds meer mission critical applicaties via het Internet toegankelijk maken, deze applicaties in toenemende mate slecht beveiligd waren. Een slechte zaak, mede gezien het feit dat de Web Application Layer was (en is) het nummer 1 “attack target” voor hackers.

En wat is de situatie in 2017? Er is sinds 2010 helaas niet veel veranderd! Doordat webapplicaties steeds complexer worden is web application security nog steeds een serieus probleem. Welke tools zijn er beschikbaar om dit aan te pakken?

Als het gaat om het testen van (web-) applicatiebeveiliging, zijn de twee meest gebruikte benaderingen:

  • Static application security testing (SAST), oplossingen die zijn ontworpen om de broncode van de applicatie en de binaire bestanden van binnen naar buiten te analyseren terwijl de applicatie nog niet “live” is;
  • Dynamic Application Security Testing (DAST), die 24×7 wordt uitgevoerd terwijl de toepassing “live” is waarbij “van buiten naar binnen” geprobeerd wordt om binnen te dringen en zo potentiële kwetsbaarheden te identificeren. Inclusief de kwetsbaarheden die buiten de broncode en in interfaces van derden worden gevonden.

De kracht van Static Application Security Testing

Omdat SAST-oplossingen in een vroeg stadium van de software ontwikkeling worden gebruikt, kunnen deze kwetsbaarheden aan het licht brengen voordat de applicatie live gaat.

Deze tools testen de source code of de binaries “regel voor regel”. Hierdoor worden kwetsbaarheden vroegtijdig gedetecteerd en geven ze de mogelijkheid om deze op te lossen voordat zij een echte kwetsbaarheid worden voor een organisatie.

Door vulnerabilities tijdens het coderen aan te pakken en voordat de applicatie live gaat, wordt een veiligere applicatie gecreëerd.

De uitdagingen van Static Application Security Testing

Ondanks het feit dat SAST zeer effectief kan zijn, heeft deze aanpak ook een aantal uitdagingen:

  • SAST tools kunnen complex en moeilijk in het gebruik zijn.
  • Het is noodzakelijk om deze tools toegang te geven tot de source code, iets wat sommige organisaties liever niet aan applicatietesters willen geven.
  • Voor het beste resultaat dient SAST te worden geïntegreerd in de Software Development Life Cycle. Zodat kwetsbaarheden kunnen worden gedetecteerd voordat de applicatie live gaat. Hierdoor kan de implementatie worden bemoeilijkt.
  • De meeste SAST-tools hebben de neiging om zich alleen te concentreren op een subset van potentiële vulnerabilities.
  • Er kunnen geen kwetsbaarheden geïdentificeerd worden die buiten de code liggen, zoals bijvoorbeeld de kwetsbaarheden die te vinden zijn in interfaces van derden.

De voordelen van Static Application Security Testing

Ondanks de bovengenoemde uitdagingen wegen de voordelen van Static Application Security Testing meestal ruimschoots op tegen de kosten:

  • De mogelijkheid om zeer complexe kwetsbaarheden te detecteren die niet zichtbaar zijn zonder toegang tot de broncode.
  • De mogelijkheid om de precieze locatie van een kwetsbaarheid in de broncode (inclusief het regelnummer) aan te geven waardoor het herstel en het beheer van “false positives” aanzienlijk wordt vereenvoudigt.
  • De kracht van een waardevol framework tijdens de ontwikkeling van applicaties om kwetsbaarheden te detecteren voordat deze een beveiligingsrisico worden voor klanten, eindgebruikers en uw organisatie.

Static Security Application Testing “Best Practices”

Er zijn natuurlijk goede en minder goede manieren om Static Security Testing tools te gebruiken en er zijn bepaalde methoden die u zullen helpen succesvol te zijn.

Houdt bijvoorbeeld rekening met de volgende zaken:

  • Maak security een integraal onderdeel van de levenscyclus van software-ontwikkeling, zodat kwetsbaarheden vroeg gedetecteerd en gecorrigeerd kunnen worden.
  • Test de broncode in uw eigen omgeving zonder dat broncode of binaire bestanden naar een vreemde locatie geuploaded hoeven te worden.
  • Maak, indien mogelijk, gebruik van Software Composition Analysis en kant-en-klare code-fixes.
  • Laat binaire code voor meerdere talen scannen.
  • Zorg voor integratie met belangrijke ontwikkel-tools en zorg voor ondersteuning voor CI/CD-processen.

Selecteer de juiste Tool

Eén van de grootste uitdagingen bij het gebruik van SAST is het aantal gegenereerde false positives. Ook het onvermogen om applicaties te testen in de uiteindelijke omgeving waarin ernstige kwetsbaarheden in de code van derden, applicatielogica problemen kunnen veroorzaken, is vaak een uitdaging.

Let bij het selecteren van de juiste SAST-tool daarom op een tool die:

  • Broncode kan scannen voor de meest gebruikte programmeertalen.
  • Zwakke punten kan identificeren.
  • Grondige en uitvoerbare kwetsbaarheidsrapportages biedt.

Indien op de juiste manier gebruikt, zal de geselecteerde SAST-tool “False Positives” helpen te verminderen en resultaten opleveren die gericht, uitvoerbaar en kosteneffectief voor uw Software Development Lifecycle zullen zijn.

Wilt u meer informatie over de voordelen voor SAST? Klik hier om het Whitepaper “Application Security Testing as a Foundation for Secure DevOps” van WhiteHat Security te lezen.

Meer over dit onderwerp: Code recycling lessons learned van Pokemon Go