# Zero-day exploit

Een zero-day attack of zero-day exploit, vertaald als zero-day-aanval, is een computeraanval waarbij wordt gepoogd misbruik te maken van een zwakke plek in software die nog onbekend is bij de software-ontwikkelaar. Een zero-day of 0-day is een voorheen onbekende kwetsbaarheid in de software; een exploit is software die gebruik maakt van het gat in de beveiliging voor het uitvoeren van een aanval. Deze wordt gebruikt of gedeeld door aanvallers voordat de ontwikkelaars van de doelsoftware iets afweten van deze kwetsbaarheid.
De term zero-day exploit verwijst naar de tijd die de software-ontwikkelaar heeft gehad om het beveiligingslek te dichten. Het lek is bij de ontwikkelaar nog nul dagen bekend sinds de aanvaller het heeft ontdekt. Bij een "zero-day"-aanval heeft de ontwikkelaar dus nog geen beveiligings-update kunnen maken, waardoor het gat bij alle gebruikers nog open is. Oorspronkelijk verwees "zero-day" naar het aantal dagen sinds de release van de software, namelijk nul voor nog niet vrijgegeven software.

## Aanvalsvectoren

Malwareschrijvers zijn in staat 'zero-day-kwetsbaarheden' uit te buiten door middel van een aantal verschillende aanvalsvectoren. Webbrowsers zijn een bijzonder doelwit vanwege hun grote verspreiding en gebruik. Aanvallers kunnen ook e-mailbijlagen versturen, die bij het openen van de bijlage actief worden en de kwetsbare software aanvallen. Exploits die gebruikmaken van vaak gebruikte bestandstypen worden opgenomen in databanken zoals US-CERT (United States Computer Emergency Readiness Team). Malware kan worden gemanipuleerd om te profiteren van deze bestandstypes om zo aangevallen systemen te compromitteren of vertrouwelijke gegevens te stelen, zoals bankwachtwoorden en persoonlijke identiteitsgegevens.

## Kwetsbaar moment

Zero-day-aanvallen treden op tijdens het kwetsbare moment dat bestaat uit de tijd tussen het moment dat er een eerste uitbuiting is van het beveiligingslek en wanneer de softwareontwikkelaars komen met een oplossing om de bedreiging tegen te gaan. Bij virussen, Trojaanse paarden en andere zero-day-aanvallen bestaat meestal deze tijdslijn:
* De ontwikkelaar maakt software met een (onbekend) beveiligingslek.
* De aanvaller vindt het lek vóór de ontwikkelaar.
* De aanvaller schrijft en distribueert een exploit, terwijl het lek nog niet bekend is bij de ontwikkelaar.
* De ontwikkelaar is bewust van het beveiligingslek en start met de ontwikkeling van een softwarefix.
* Het lek wordt gedicht.
Het meten van de lengte van dit kwetsbare moment kan moeilijk zijn. Aanvallers kondigen niet aan wanneer ze een lek voor het eerst ontdekken. Het is ook mogelijk dat de ontwikkelaars de gegevens niet willen verspreiden voor commerciële- of veiligheidsredenen. Soms weten de ontwikkelaars niet dat het lek al wordt misbruikt na de fix van de software, en dus weten ze niet dat er een zero-day-aanval was. Het kan wel gemakkelijk worden aangetoond dat het lek over langere tijd, bijvoorbeeld verschillende jaren, actief was. Zo maakte Microsoft bijvoorbeeld in 2008 bekend dat er een beveiligingslek in Internet Explorer was, waardoor sommige versies, uitgebracht in 2001, getroffen waren. De datum van de ontdekking van het lek is niet bekend, maar het kwetsbare moment zou in dit geval tot 7 jaar geweest zijn.

## Ontdekking

Een speciaal type van procesmanagement bij softwareontwikkelaars is gericht op het vinden en het elimineren van zero-day-beveiligingslekken. Het is een proces om de veiligheid en kwaliteit te waarborgen dat gericht is op het garanderen van de veiligheid en sterkte van zowel in-house-software als software van derden door het vinden en de vaststelling van onbekende (zero-day-)kwetsbaarheden. Deze onbekende manier van procesmanagement bestaat uit vier fasen: Analyseren, testen, rapporteren en het inperken van.
* Analyseren: deze fase richt zich op de oppervlakteanalyse van de aanval.
* Test: de test fase richt zich op het testen van de geïdentificeerde aanvalsvectoren.
* Rapport: deze fase is gericht op de reproductie van de gevonden problemen voor ontwikkelaars.
* Beperken: in deze fase kijkt men naar beschermende maatregelen.
Voor het verhandelen van dergelijke exploits bestaat een internationale markt, die deels legaal, deels illegaal opereert.

## Bescherming

Zero-day-bescherming geeft de mogelijkheid om zich te beschermen tegen zero-day-exploits. Zero-day-aanvallen kunnen ook onopgemerkt blijven nadat ze zijn gelanceerd. Er bestaan veel technieken om de effectiviteit te beperken van de zero-day-aanval met aantasting van het geheugen, zoals een bufferoverloop of bufferoverflow. Dit beschermingsmechanisme bestaat in de huidige besturingssystemen zoals Windows 7, Windows Vista, Apples Mac OS X, de recente Oracle Solaris, Linux en mogelijk ook andere Unix en Unix-achtige omgevingen. Microsoft Windows XP Service Pack 2 bevat een beperkte bescherming tegen de kwetsbaarheid van corrupt geheugen. De beveiligingssoftware voor desktops en servers bestaat ook om de zero-day-kwetsbaarheid van een bufferoverloop tegen te gaan.
Het gebruik van port knocking of single packet authorization daemons kan een effectieve bescherming bieden tegen zero-day-exploits in netwerkdiensten. Deze technieken zijn echter niet geschikt voor omgevingen met een groot aantal gebruikers.
Whitelisting beschermt effectief tegen zero-day-bedreigingen. Whitelisting laat alleen goede en gekende toepassingen toegang tot het systeem en nieuwe of onbekende exploits hebben dus geen toegang. Hoewel whitelisting zeer effectief is tegen zero-day-aanvallen, kan een toepassing, bekend om zijn “goedheid”, kwetsbaarheden hebben die niet ontdekt zijn tijdens het testen op beveiligingslekken. Om de beveiliging te versterken, wordt dit vaak gecombineerd met andere beveiligingsmethoden zoals een host-based (en:intrusion-prevention) systeem of een blacklist van virusdefinities en het kan soms erg beperkend zijn voor de gebruiker.
Ingenieurs en leveranciers, zoals Gama-Sec in Israël en DataClone Labs in Reno, Nevada proberen ondersteuning te bieden met het Zeroday Project, dat probeert informatie te bieden toekomstige aanvallen en ondersteuning te bieden aan kwetsbare systemen. De software van de computer up-to-date houden is ook erg belangrijk en dit helpt. Gebruikers moeten voorzichtig te zijn wanneer ze klikken op links of bij het openen van e-mailbijlagen met afbeeldingen of pdf-bestanden van onbekende gebruikers. Zo worden er veel mensen misleid door cybercriminelen, ze doen zich anders voor dan ze zijn en krijgen zo het vertrouwen van de gebruiker.
Door sites te gebruiken met Secure Sockets Layer (SSL) wordt de informatie veilig doorgezonden tussen de gebruiker en de bezochte website.

## Ethiek

Er bestaan verschillende opvattingen rond het verzamelen en gebruiken van informatie over de zero-day-kwetsbaarheid. Veel computerbeveiligingsbedrijven onderzoeken zero-day-kwetsbaarheden om de aard en de exploitatie ervan door individuen, computerwormen en virussen beter te kunnen begrijpen. Als alternatief kopen bepaalde leveranciers kwetsbaarheden om hun onderzoekscapaciteit te verhogen. Een voorbeeld van een dergelijk programma is het Zero Day Initiative van TippingPoint. Technisch gezien is het niet illegaal om deze kwetsbaarheden te kopen en verkopen maar in de meeste delen van de wereld is er veel controverse over de wijze van openbaarmaking. Een recente Duitse beslissing om artikel 6 van het Cybercrimeverdrag en het EU-Kaderbesluit over Aanvallen op Informatiesystemen kan dit het verkopen of zelfs produceren van kwetsbaarheden illegaal maken.
De meeste formele inspanningen volgen een bepaalde vorm van RFPolicy onthullende richtlijnen, of de meer recente OIS-richtlijnen voor Security Vulnerability Reporting and Response. In het algemeen verbieden deze regels de openbaarmaking van kwetsbaarheden, zonder kennisgeving aan de ontwikkelaar en voldoende tijd om een patch te produceren.