Berend-Jan Wever EN | NL

Download resume.pdf
berendj@nwever.nl (PGP)
linkedin.com/in/skylined
twitter.com/berendjanwever
github.com/SkyLined
skylined.nl

Introductie

Berend-Jan Wever is een Offensieve Information Security Researcher gespecialiseerd in onderzoek, pen-testing, fuzzing en automatisering, beveiligingsfout en risico analyse, en "Proof-of-Concept exploit" ontwikkeling. Zijn focus ligt op het vinden van beveiligingsfouten in "Threat Models", ontwerp en implementatie van systemen. Hij heeft honderden beveiligingsfouten gerapporteerd in Besturingssystemen, Web Browsers, Web Servers, en vele andere producten van vele verschillende grote aanbieders, die impact hadden op miljarden eindgebruikers. Hij heeft de beveiligingsindustrie vooruit geholpen met publicaties over nieuwe aanvalstechnieken, exploit-technieken, en manieren om mitigations te omzeilen.
Twee decennia werkervaring als beveiligingsexpert voor enkele van de grootste bedrijven in de industrie, geven Berend-Jan de mogelijkheid om het grote plaatje te zien en de volgende stap te voorspellen. Hij kijk naar het hele systeem, niet alleen de individuele onderdelen. He rijgt kleine problemen en ontwerp-eigenaardigheden aan elkaar uit meerdere systemen om een totaalanalyse te geven van de risico's. Hij bepaald de maximale impact die een geavanceerde aanvaller zou kunnen hebben, waarbij het totaal groter is dan de optelsom van de onderdelen.
Hij zoekt naar patronen in gevonden beveiligingsfouten, groepeert deze in klassen, en zoekt de bron van het probleem voor elke klasse. Hij ontwikkeld automatisering, suggereert process veranderingen, en creëert training om het ontwikkelteam te helpen alle exemplaren van zo'n klasse te verwijderen, en om te voorkomen dat deze opnieuw worden geïntroduceerd. Hij focust op de lange termijn, denkt vooruit and maakt plannen voor de komende paar jaar. Hij ontwikkeld oplossingen die mee kunnen schalen met enorme groei en geen belemmering vormen voor productiviteit.
Berend-Jan creëert rapporten waaruit direct actie kan worden ondernomen door het ontwikkelteam, zodat zij de problemen direct en compleet op kunnen lossen. Hij voorziet management van een samenvatting waarmee risico's en de algemene staat van beveiliging kan worden bepaald. Hij helpt het ontwikkelteam bij het oplossing van beveiligingsproblemen en adviseert over mitigations die overwogen kunnen worden om de potentiële impact van beveiligingsfouten te verminderen. Hij geniet van de mogelijkheid om met minder ervaren team leden te werken, en hen zo te helpen het maximale uit zichzelf te halen en te groeien in hun carrière. Hij geeft graag presentaties over zijn werk en houdt van discussies over nieuwe ideeën om zo informatie te delen en innovatie aan te wakkeren.

Technologie

Over de decennia heeft Berend-Jan gewerkt met projecten waarbij een heel lange lijst aan verschillende programmeertalen, protocollen, data- en bestandsformaten, en systemen. Hij heeft in velen hiervan ook programma's en scripts ontwikkelt. De volledige lijst is lastig op te stellen, daarom worden hieronder alleen de vaak gebruikte genoemd.

Besturingssystemen en Cloud

Microsoft Windows, Linux, Amazon Web Services (AWS).

Talen

Java, Python, PHP, Perl, JScript/JavaScript/ECMAScript/TypeScript, C, C++, C#, IA32 and AMD64 assembly, SQL, Bash, Batch, PowerShell.

Protocollen

DHCP, DNS, FTP, HTTP, MQTT, TCP/UDP, IP, ARP, and a long list of custom/internal application layer protocols.

Data- en Bestandsformaten

Web: XML, HTML, XHTML, SVG, CSS, RSS, JSON, YAML
Media: ANI, BMP, GIF, ICO, JPEG, RIFF, WAV
Documents: DOC, DOCX, PDF, RTF
Windows Binaries: DLL, EXE

Recente Werk Geschiedenis

Senior Security Engineer in Holistic Testing Team bij AWS

Bedrijf: Amazon Web Services (AWS)
Locatie: Werk vanuit huis in Nederland
Periode: 2021-2024
Positie: Security Engineer III, L6
Activiteiten: Technisch leidinggevende, process management, training, pen-tests, ontwerp en implementatie van automatisering, reverse engineering, sollicitatie interviews

In het "Holistic Testing Team" leidde Berend-Jan teams van 4-5 personen tijdens 2-3 maanden durende beveiligingsreviews en tests van diverse AWS Services. Als een van de meest seniore engineers in het team vertegenwoordigde hij de engineers richting het manager in discussies over de activiteiten en de korte- en lange-termijn planning.

Als tester em test teamleider heeft hij de volgende activiteiten verricht:

  1. Verzamelen van informatie die relevant is voor de beveiliging van de Service, zoals een beoordeling van de Threat Models, identificatie van de meest kritieke onderdelen en de potentiële aanvalspaden, en het rangschikken van de geïdentificeerde risico's op grond van potentiële impact en haalbaarheid.
  2. Bespreken van onder-gedocumenteerde onderdelen met het Service Team en/of reverse-engineeren van systemen om de benodigde documentatie te verkrijgen en alles opslaan op een specifieke locatie op een gestructureerde manier voor gebruik in de toekomst.
  3. Ontwikkelen van een test plan dat past bij de grootte van het team, de expertise ven de team leden, de beschikbare tijd. Hierbij wordt rekening gehouden met het verwachte niveau van ondersteuning door het Service Team, en de verdeling van de vereiste taken onder de verschillende teamleden.
  4. Gebruik maken van de verzamelde informatie over de service om de focus te leggen op de meest cruciale gebieden voor de beveiliging van de Service en zo een gericht pen-testing plan te maken dat alle relevante gebieden dekt.
  5. Samenwerken met de leden van het Holistic Testing team en het Service Team om de pen-tests van alle onderdelen in het plan uit te voeren, om zo beveiligingsfouten te identificeren, analyseren en rapporteren. Het Service Team kreeg hierbij onze hulp om oplossingen te ontwerpen en uitvoeren en mitigations in te voeren voor de geïdentificeerde risico's. We pasten eventueel ons plan aan als dat nuttig was omdat we nieuwe ernstige risico's identificeerden die buiten het originele plan vielen.
  6. Ontwikkelen en implementeren van Tools om delen van het pen-test process te automatiseren, zoals scannen en verzamelen van informatie over de componenten van een Service, het automatiseren van testen van componenten, fuzzing, en het maken van "Proof-of-Concept" exploits.
  7. Identificatie van trends en patronen in beveiligingsproblemen om zo onderliggende oorzaken te achterhalen. Gebaseerd op deze informatie werd het Service Team geadviseerd training te doorlopen om gaten in kennis te vullen, tools te gebruiken om fouten te detecteren of voorkomen, hun systeemontwerp aan te passen, en/of hun processen aan te passen om hierdoor het risico dat soortgelijke fouten in de toekomst weer geïntroduceerd worden te verkleinen of verwijderen.
  8. Schrijven en presenteren van een rapportage met zowel technische resultaten van onze tests voor engineers als een hoog-niveau overzicht van onze bevindingen voor het management. Deze rapporten bevatten altijd suggesties oim de beveiliging nog beter te maken en voor toekomstige tests.

Berend-Jan heeft gewerkt aan het standaardiseren van het ontwerp en de implementatie van de tools die het team ontwikkeld voor eigen gebruik. Ook heeft hij het formaat waarin ze hun resultaten opslaan gestandaardiseerd om zo de tools beter samen te laten werken. Hij heeft een generiek modulair ontwerp geïntroduceerd om deze tools makkelijker onderhoudbaar en uitbreidbaar te maken. Het ging hier onder andere om tools om text te scannen voor gevoelige of relevante informatie, configuraties te controleren op instellingen die een impact kunnen hebben op de beveiliging, en tools die bedoelt zijn om specifieke componenten te testen en/of het bestaan van specifieke problemen aan te tonen (zgn. "Proof-of-Concept" code).

Als een gebruiker van interne systemen en processen identificeerde Berend-Jan meerdere beveiligingsfouten en werkte samen met de relevante teams om het probleem duidelijk te maken, een oplossing te bedenken, de prioriteit van deze oplossing in te schatten, en zo een plan te maken om de problemen te verhelpen binnen een acceptabele tijdsduur. Hij hielp het team te controleren of de doorgevoerde verbeteringen ook daadwerkelijk alle problemen verhielpen.

Berend-Jan heeft interne trainingen voor software ontwikkelaars gecorrigeerd en uitgebreid. Hij heeft presentaties gehouden over diverse beveiligingsonderwerpen waarin hij uitlegt hoe hij bepaalde problemen aanvaart, en hoe hij zijn tools zo generiek, modulair, en interoperabel mogelijk maakt. Ook legde hij uit hoe hij diverse beveiligingsproblemen heeft gevonden en ervoor gezorgd heeft dat deze snel en op de juiste manieren opgelost werden, door frictie met het ontwikkelteam te voorkomen om zo beveiligingsmedewerkers en ontwikkelaars efficient te laten samenwerken.

Offensive Security Researcher en hoofd van de Fuzzing Community bij Intel

Bedrijf: Intel
Locatie: Werk vanuit huis in Nederland
Periode: 2019-2021
Positie: Senior Security Researcher
Activiteiten: Technisch leidinggevende, training, ontwerp en implementatie van automatisering

Berend-Jan startte and leidde een focus group binnen Intel om beveiligingswerk te automatiseren met een sterke focus op fuzzing. Hierbij werd gekeken naar de mogelijkheden om gespecialiseerd interne tools om hardware, firmware en drivers te testen meer generiek en herbruikbaar te maken, met als doel dat meer teams makkelijker hun producten konden testen. Onderdeel hiervan was het bekend maken onder de teams van de beschikbare tools, het verbeteren van de documentatie en gebruikersvriendelijkheid, en de onderlinge compatibiliteit van de verschillende tools. Het einddoel was een overkoepelend modulair framework om geautomatiseerde tests te kunnen uitvoeren op alle soorten producten van Intel, of deze nu op gevirtualiseerde, gesimuleerde, of werkelijk hardware draaiden. De doelen van dit framework waren:

  1. Het makkelijk maken om te starten met fuzzen/testen, onafhankelijk van welk product getest moet worden. Dit gold met name voor producten die op dat moment lastig te testen waren, zoals nieuwe hardware en firmware. Dit moest mogelijk worden zonder dat de gebruiker veel ervaring hiermee nodig had.
  2. Het mogelijk maken om producten continue te testen tijdens het ontwikkelen, en deze tests door te laten gaan ook nadat het product al op de markt was.
  3. Het makkelijk maken om een test of fuzzer te schrijven voor specifieke features, data formaten, of protocollen van een product, en deze tests beschikbaar te maken voor alle teams binnen Intel die vergelijkbare tests kunnen gebruiken.
  4. Het verzamelen van nuttige informatie over de uitgevoerde tests, om zodoende de effectiviteit te kunnen meten en te controleren of er aan de SDL (Software Development Life-cycle) eisen is voldaan.
  5. Het voor security medewerkers mogelijk maken om gemakkelijk nieuwe fuzzing-engines toe te voegen en deze op alle beschikbare doelen te laten draaien.

Eigenaar van SkyLined Security

Bedrijf: SkyLined Security
Locatie: Werk vanuit huis in Nederland
Periode: 2011-2019
Positie: Eigenaar/ZZP-er
Activiteiten: fuzzen, ontwerp en implementatie van automatisering, Proof-of-Concept exploit ontwikkeling, pen-tests, reverse engineering

Security Researcher voor het Chrome Security Team van Google

Bedrijf: Google
Locatie: Werk vanuit huis in Nederland
Periode: 2008-2011
Positie: Senior Software Security Engineer
Activiteiten: pen-tests, ontwerp en implementatie van automatisering, fuzzing, ontwikkelen van patches en mitigations

Berend-Jan werd aangenomen als de eerste persoon binnen het Google Chrome Security Team. Hij moest direct hard aan de slag omdat het product drie maanden later de markt op ging.

Security Researcher voor het Security Windows Initiative Attack Team van Microsoft

Bedrijf: Microsoft
Locatie: Werk vanuit huis in het Verenigd Koninkrijk
Periode: 2005-2008
Positie: Security Software Engineer
Activiteiten: pen-tests, ontwerp en implementatie van automatisering, fuzzing, analyseren van beveiligingsfouten, controleren van patches, sollicitatie interviews

Kennis en ervaring

Historisch Belangrijke Publicaties

Een kleine selectie van contributies aan de computerbeveiligings wereld:

Talen

Nederlands - Moedertaal
Engels - Vloeiend
Duits - Redelijk
Frans - Basis kennis