Regelmatig vragen wij onze medewerkers om een stukje te schrijven over een bepaald onderwerp. Dit keer heeft één van onze pentesters zich gewaagd aan een blog over de definitie van pentesting. In dit blog worden de verschillen benadrukt tussen een vulnerability assessment en een penetratietest.
Ethische hackers kunnen organisaties helpen bij het inzichtelijk krijgen van potentiële risico’s door de identificatie van aanwezige kwetsbaarheden/zwakheden binnen een overeengekomen scope. Pentesting is een van de mogelijke vormen van een dergelijk assessment.
Helaas worden er in de markt verschillende definities toegepast. Dit heeft als gevolg dat testen door verschillende organisaties verschillend uitgevoerd kunnen worden. Offertes lijken misschien inhoudelijk op elkaar, maar het kan best appels met peren vergelijken zijn. Ook zijn de rapportages vaak inhoudelijk lastig vergelijkbaar door verschil in uitvoer.
Een vulnerability assessment is een fundamenteel andere dienst dan een pentest, maar veelal is er wel enige overlap, waardoor verwarring snel kan ontstaan. Diensten worden daarbij ook soms gecombineerd aangeboden. Om het nog makkelijker te maken zijn er ook nog verschillende testvormen bedacht (blackbox, whitebox, etc.). Deze bepalen hoeveel informatie en welk soort informatie (zoals bijvoorbeeld inloggegevens) vooraf worden gedeeld.
Gelukkig bestaan er wel (internationale) standaarden en handreikingen. Voorbeelden hiervan zijn: Open Source Security Testing Methodology Manual (OSSTMM), Penetration Testing Guidance van de PCI Security Standards Council, Penetration Testing Execution Standard (PTES) en NIST SP 800-115. Dit brengt echter ook uitdagingen met zich mee zoals geïllustreerd in de volgende xkcd comic:
Binnen Access42 hebben wij nog eens goed gekeken naar onze visie op deze diensten. Op hoofdlijnen hanteert Access42 de volgende definities:
Bij een vulnerability assessment worden (bekende) kwetsbaarheden/zwakheden geïdentificeerd binnen alle toegankelijke diensten in de overeengekomen scope. Het assessment en de rapportage gaan dus in de breedte en blijven hierdoor oppervlakkig. Bevindingen wordt niet actief geëxploiteerd met het doel om (verder) binnen te dringen. Een dergelijk assessment bestaat uit geautomatiseerde scans (met bijvoorbeeld Nessus) in combinatie met handmatige verificatie (foutpositief reductie), maar zeker ook uit handmatige controles.
Afhankelijk van de wensen, wordt hierbij soms gekozen om beveiligingsmechanismes tijdelijk en doelgericht uit te schakelen om de achterliggende systemen te testen in plaats van de werking van de beveiligingsmechanismes zelf.
Bij een pentest worden ook kwetsbaarheden geïdentificeerd, maar hierbij wordt juist de diepte ingegaan met als doel onderzoeksvragen te beantwoorden. Dat wil zeggen, dat exploits actief worden gebruikt om (verder) binnen te dringen. Voor dit doel wordt ook gekeken of bevindingen gecombineerd ingezet kunnen worden (chaining). De identificatie van kwetsbaarheden aan de oppervlakte stopt zodra lateraal bewogen kan worden. Bevindingen die niet hebben bijgedragen aan het exploitatiepad worden niet (uitgebreid) gerapporteerd.
Deze dienst is het effectiefst als de organisatie een vulnerability managementproces heeft of al eerder security assessments heeft laten uitvoeren.
Belangrijke verschillen tussen de twee diensten zijn dus de balans tussen diepte/breedte en de aanwezigheid van een onderzoeksvraag. Een onderzoeksvraag als “Welke kwetsbaarheden zijn er vanuit ongeautoriseerd perspectief te identificeren“, kan de balans van een onderzoek echter verleggen naar een vulnerability assessment. Met heldere afspraken (over o.a. de gewenste balans) maakt het onder aan de streep niet uit voor welke vorm gekozen wordt. Het Nationaal Cyber Security Centrum (NCSC) heeft in 2020 een (vernieuwde) whitepaper over securitytesten gepubliceerd met handige tips. Zie: Whitepaper Securitytesten
Bij het testen van websites en sommige webapplicaties is er vaak geen sprake van een pentest. Een aantal veelvoorkomende webgebaseerde kwetsbaarheden vereist bijvoorbeeld een vorm van social engineering voor succesvolle exploitatie. Denk hierbij aan Phising om credentials te verkrijgen. Dit valt vaak buiten de scope van de opdracht. Deze scope limitatie is begrijpelijk, omdat de opdrachtgever geen vrijwaring kan geven voor aanvallen op (externe) bezoekers van de website. Daarbij kan er ook sprake zijn van een gedeelde infrastructuur dat weer diverse andere aanvallen onwenselijk maakt. In de praktijk blijft het dan ook vaak bij de identificatie van kwetsbaarheden in de breedte. Soms dienen hierbij zelfs bepaalde checklists afgelopen te worden, denk bijvoorbeeld aan de DigiD audit. Hier lijkt de pentester soms in de huid te kruipen van de auditor terwijl de pentest in principe los staat van de audit (behalve de verplichting).
Cookie | Duur | Omschrijving |
---|---|---|
_GRECAPTCHA | 5 months 27 days | This cookie is set by Google. In addition to certain standard Google cookies, reCAPTCHA sets a necessary cookie (_GRECAPTCHA) when executed for the purpose of providing its risk analysis. |
cookielawinfo-checkbox-advertisement | 1 year | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Advertisement". |
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
CookieLawInfoConsent | 1 year | Records the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie. |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
Cookie | Duur | Omschrijving |
---|---|---|
bcookie | 2 years | This cookie is set by linkedIn. The purpose of the cookie is to enable LinkedIn functionalities on the page. |
lang | session | This cookie is used to store the language preferences of a user to serve up content in that stored language the next time user visit the website. |
lidc | 1 day | This cookie is set by LinkedIn and used for routing. |
Cookie | Duur | Omschrijving |
---|---|---|
YSC | session | This cookies is set by Youtube and is used to track the views of embedded videos. |
Cookie | Duur | Omschrijving |
---|---|---|
_ga | 2 years | This cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assign a randomly generated number to identify unique visitors. |
_gat_gtag_UA_116473530_1 | 1 minute | This cookie is set by Google and is used to distinguish users. |
_gat_UA-116473530-1 | 1 minute | This is a pattern type cookie set by Google Analytics, where the pattern element on the name contains the unique identity number of the account or website it relates to. It appears to be a variation of the _gat cookie which is used to limit the amount of data recorded by Google on high traffic volume websites. |
_gid | 1 day | This cookie is installed by Google Analytics. The cookie is used to store information of how visitors use a website and helps in creating an analytics report of how the website is doing. The data collected including the number visitors, the source where they have come from, and the pages visted in an anonymous form. |
Cookie | Duur | Omschrijving |
---|---|---|
bscookie | 2 years | This cookie is a browser ID cookie set by Linked share Buttons and ad tags. |
IDE | 1 year 24 days | Used by Google DoubleClick and stores information about how the user uses the website and any other advertisement before visiting the website. This is used to present users with ads that are relevant to them according to the user profile. |
prism_476809757 | 1 month | Used by ActiveCampaign to track usage of newsletters |
test_cookie | 15 minutes | This cookie is set by doubleclick.net. The purpose of the cookie is to determine if the user's browser supports cookies. |
VISITOR_INFO1_LIVE | 5 months 27 days | This cookie is set by Youtube. Used to track the information of the embedded YouTube videos on a website. |
yt-remote-connected-devices | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt-remote-device-id | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
Cookie | Duur | Omschrijving |
---|---|---|
AnalyticsSyncHistory | 1 month | No description |
CONSENT | 16 years 7 months 5 days 13 hours | No description |
li_gc | 2 years | No description |
UserMatchHistory | 1 month | Linkedin - Used to track visitors on multiple websites, in order to present relevant advertisement based on the visitor's preferences. |