# Aanpak

# Zo wordt er getest. Zonder verrassingen.

Handmatig, alleen met schriftelijke toestemming en met bewijs bij elke bevinding. Op deze pagina staat wat er getest wordt, wat er nooit gebeurt, hoe ernst wordt bepaald en wat je krijgt.

- **Tester**: De persoon die je spreekt, test ook en schrijft het rapport
- **Methode**: Handmatig, tools alleen als hulpmiddel
- **Ernst**: CVSS 4.0 en 3.1, gewogen naar jouw situatie
- **Kritiek**: Dezelfde dag gemeld
- **Hertest**: Inbegrepen vanaf Standaard

## Zo loopt een opdracht

Alles kan per mail. De test start in overleg, meestal binnen twee weken nadat de scope vastligt. Geen testomgeving? Die zet HackIndex voor je op.

1. **Intake**: Per mail of in een korte call: wat getest moet worden, waarom en wanneer.
2. **Scope**: De test wordt afgebakend. Daarna volgt een vaste prijs.
3. **Afspraken**: NDA, schriftelijke toestemming en toegang tot de testomgeving, of tot je hosting als HackIndex die opzet.
4. **Test**: Handmatig, met tools als hulpmiddel, op avonden en in het weekend. Kritieke bevindingen worden meteen gemeld.
5. **Rapport**: Binnen 10 werkdagen na de test, met per bevinding het bewijs en de oplossing, gevolgd door een nabespreking.
6. **Hertest**: Optioneel: na het oplossen wordt elke bevinding opnieuw getest. Inbegrepen vanaf Standaard.

## Eén aanspreekpunt, van intake tot hertest

- **Geen accountmanager** Je mailt met de tester zelf. Vragen over scope of een bevinding worden beantwoord door wie het werk doet.
- **Geen onderaannemers** Je app, je code en je gegevens worden door niemand anders bekeken dan door de tester van HackIndex.
- **OSCP-gecertificeerd** Gecertificeerd door OffSec, met een achtergrond als developer in Laravel, WordPress en React Native.

## Black, grey of white box

Hoeveel je vooraf deelt, bepaalt wat de test kan zien. De testtijd blijft gelijk, de dekking niet.

| Wat de test ziet | Black box | Grey box | White box (Aanbevolen) |
| --- | --- | --- | --- |
| De publieke kant | Ja | Ja | Ja |
| Alles achter de login | Alleen als het lukt om binnen te komen | Ja | Ja |
| Rechten tussen rollen en klanten | Beperkt | Ja | Ja, ook in de code |
| Fouten die je van buiten niet ziet | Nee | Nee | Ja |
| Testtijd die naar verkennen gaat | Veel | Gemiddeld | Weinig |

- **Zelfde budget, meer gevonden**: Met de code erbij gaat de tijd naar zoeken in plaats van raden. In dezelfde testdagen wordt meer van je app bekeken.
- **Minder gemiste fouten**: Een fout die van buiten moeilijk te raken is, staat in de code gewoon op een regel. White box mist die niet.
- **Je code blijft van jou**: Leestoegang die je na afloop intrekt. De code valt onder de NDA en wordt alleen voor deze test gebruikt.

## Wat altijd gebeurt, en wat nooit

Deze afspraken worden samen vastgelegd voordat de test begint. Zo weet je precies wat er wel en niet gebeurt.

### ALTIJD: Bij elke test

- **Schriftelijke toestemming vooraf**: Van jou, en van je hosting- of cloudpartij als die dat vraagt.
- **Alleen binnen de scope en het testvenster**: De adressen, rollen en het testvenster die samen zijn afgesproken. Niets meer.
- **Vanaf vooraf gemelde IP-adressen**: Je krijgt de adressen vooraf, zodat je testverkeer herkent in je logs en het niet blokkeert.
- **Een noodcontact aan jouw kant**: Iemand die bereikbaar is als er iets kritieks gevonden wordt of iets onverwachts gebeurt.
- **Stoppen en melden bij een echte inbraak**: Wijst iets erop dat iemand anders je al heeft gehackt, dan stopt de test en hoor je het direct.

### NOOIT: In geen enkele test

- **Testen op productie**: Alleen op een testomgeving of een kopie die HackIndex opzet. Je live site blijft buiten de test.
- **Je app platleggen**: Geen belastingtests en geen aanvallen die je dienst onbereikbaar maken.
- **Gegevens wijzigen of verwijderen**: Bestaande gegevens blijven zoals ze zijn. Wat de test aanmaakt, staat in het rapport zodat je het kunt opruimen.
- **Meer gegevens ophalen dan nodig**: Precies genoeg om een bevinding te bewijzen. Persoonsgegevens worden afgeschermd in het rapport.
- **Je medewerkers benaderen**: Geen phishing of bellen naar je team, tenzij dat apart is afgesproken.
- **Systemen van anderen testen**: Koppelingen met derden alleen voor zover die partij toestemming geeft.

## Hoe ernst wordt bepaald, en wanneer je het hoort

Elke bevinding krijgt een CVSS-score in versie 4.0 en 3.1, zodat je hem kunt vergelijken met andere rapporten en meldingen.

| Ernst | CVSS 4.0 | Wanneer je het hoort | Voorbeeld |
| --- | --- | --- | --- |
| Kritiek | 9.0 tot 10.0 | Dezelfde dag per mail, en telefonisch via je noodcontact | Zonder account bij alle klantgegevens |
| Hoog | 7.0 tot 8.9 | Binnen één werkdag | Een gewone gebruiker kan zichzelf beheerder maken |
| Middel | 4.0 tot 6.9 | In het rapport | Een sessie blijft geldig na uitloggen |
| Laag | 0.1 tot 3.9 | In het rapport | Een foutmelding noemt de versie van je framework |
| Informatief | 0.0 | In het rapport | Een advies om je beveiliging verder te verbeteren |

- **Gewogen naar jouw situatie**: Dezelfde fout weegt in je betaalflow zwaarder dan in een interne tool. Wijkt de ernst af van de CVSS-score, dan staat in het rapport waarom.
- **Melden voordat het rapport klaar is**: Een kritieke fout wacht niet op het rapport. Je hoort het zodra hij bevestigd is, zodat je meteen kunt ingrijpen.

## Wat er in het rapport staat

Voor wie beslist en wie het oplost. In het Nederlands of Engels, versleuteld gedeeld, binnen 10 werkdagen na de test. Op verzoek ook een verklaring van één pagina voor je auditor. Oplossen kan HackIndex als aparte opdracht doen, voor Laravel, WordPress, WooCommerce, Magento, PHP, Node.js en Python.

1. **Samenvatting voor wie beslist**: Wat er gevonden is, hoe erg het is en wat eerst moet. Zonder vakjargon, op één pagina.
2. **Scope en verantwoording**: Wat er getest is, op welke dagen, vanaf welke IP-adressen en met welke aanpak. Handig voor je auditor.
3. **Wat niet getest is**: Onderdelen die buiten de scope vielen of niet bereikbaar waren, met de reden. Zo weet je waar je blinde vlekken zitten.
4. **Per bevinding**: Referentie, ernst met CVSS, bewijs, impact en een oplossing die past bij je stack.
5. **Hertest**: Na het oplossen per bevinding de status. Het rapport wordt bijgewerkt, zodat je één actueel document hebt.

[Bekijk het voorbeeldrapport](https://hackindex.nl/downloads/hackindex-voorbeeldrapport.pdf)

## Na het oplossen wordt elke bevinding opnieuw getest

- **Inbegrepen**: In Standaard en Uitgebreid. Bij Basis los te bestellen.
- **Hoe vaak**: Eén hertest per opdracht
- **Binnen**: 90 dagen na het rapport
- **Resultaat**: Bijgewerkt rapport met de status per bevinding

- **Opgelost**: De fout is weg en de oplossing werkt. Ook geprobeerd of hij op een andere manier terugkomt.
- **Deels opgelost**: Het risico is kleiner, maar niet weg. In het rapport staat wat er nog nodig is.
- **Niet opgelost**: De fout werkt nog. Je krijgt uitleg waarom de oplossing niet werkte.
- **Risico geaccepteerd**: Je kiest er bewust voor om dit niet op te lossen. Het blijft zichtbaar in het rapport, met jouw reden.

## Wat er met je gegevens gebeurt

Een tester ziet je app, je code en soms persoonsgegevens. Hier staat wat daarmee gebeurt, van voor de test tot na het rapport.

### Voor: Afspraken

- NDA en vrijwaring ondertekend voor de start
- Testaccounts en toegang alleen voor deze opdracht
- Code via leestoegang, niet per mail

### Tijdens: Testen

- Bewijs versleuteld opgeslagen
- Alleen het minimum aan gegevens om een fout te bewijzen
- Persoonsgegevens afgeschermd in schermafbeeldingen

### Na: Opruimen

- Rapport versleuteld gedeeld, met PGP of een versleutelde link
- Je trekt testaccounts en leestoegang in, HackIndex controleert of dat gelukt is
- Ruwe testdata versleuteld bewaard, een jaar na het rapport verwijderd

## Waar de test op leunt

- **OWASP WSTG** Wat er in een webtest aan bod komt
- **OWASP ASVS 5.0** Waar een veilige applicatie aan moet voldoen
- **OWASP MASVS** Hetzelfde voor mobiele apps
- **CVSS 4.0 en 3.1** Hoe ernst wordt gescoord

De precieze testgevallen en tools worden gedeeld met klanten, niet gepubliceerd.

## Wat een pentest niet is

- **Geen garantie** Een pentest is een momentopname van een afgesproken scope. Wat er niet gevonden is, kan er nog steeds zijn.
- **Geen scan** Een scanner draait in minuten. Een pentest kost dagen, omdat fouten in rechten en logica alleen met de hand te vinden zijn.
- **Geen eindpunt** Elke release verandert je app. Na grote wijzigingen loont een test of review van alleen het nieuwe deel. Een jaarlijkse afspraak kan ook, met een prijs in overleg.

## Veelgestelde vragen over de aanpak

### Welke tools worden er gebruikt?

Tools helpen om snel door bekende patronen te gaan. Het zwaartepunt is handwerk. Welke tools precies, staat in het rapport bij de verantwoording.

### Kan de test op productie?

Nee. Er wordt alleen getest op een testomgeving, nooit op je live site. Heb je geen testomgeving, dan zet HackIndex een kopie op, voor gangbare sites zonder meerprijs.

### Merken mijn gebruikers iets van de test?

Nee. Er wordt nooit op je live site getest, alleen op een testomgeving of een kopie. Getest wordt op avonden en in het weekend.

### Wat als ik de test wil stoppen?

Bel of mail. De test stopt zodra het bericht gezien is en gaat pas verder als jij dat zegt.

### Hoe vraag ik een hertest of vervolgtest aan?

Via het aanvraagformulier of per mail, met de referentie van je rapport erbij. De hertest zit in Standaard en Uitgebreid. Aanvragen kan tot 60 dagen na het rapport.

### Gebruikt HackIndex AI?

Als hulpmiddel, nooit in plaats van de tester. Elke bevinding wordt met de hand gecontroleerd. AI draait op eigen apparatuur, en bij een externe aanbieder onder een zakelijke overeenkomst, zonder training op je gegevens. Daar gaan alleen broncode en rapporttekst heen. Liever alleen op eigen apparatuur? Zeg het voor de start, dat kost niets extra.

## Laat je app testen.

Beschrijf kort wat er getest moet worden. Je ontvangt een voorstel met een vaste prijs en deze afspraken op papier.

- [Pentest aanvragen](https://hackindex.nl/contact)

## Woordenlijst

- **Hertest**: Na het oplossen wordt elke bevinding opnieuw getest, zodat vaststaat dat de oplossing werkt.
- **Nabespreking**: Een gesprek over het rapport: wat er gevonden is, hoe ernstig het is en in welke volgorde je het oplost.
- **Testomgeving**: Een kopie van je applicatie, los van de echte gebruikers en gegevens, waarop veilig getest kan worden.
- **White box**: Je deelt ook de broncode en documentatie. Zo komen fouten sneller en vollediger boven water.

Bron: https://hackindex.nl/aanpak
