Secure NPM packages

Hackers vinden steeds weer nieuwe manieren om systemen binnen te dringen. Een ‘nieuw’ security risico dat langzaam maar zeker meer wordt uitgebuit is: de developer infrastructuur. Hierbij wordt er ingebroken op de developeromgeving om zo malware in onze software te krijgen. De effecten van deze hacks zijn groot. Zelfs zo groot dat het vertrouwen in Open Source afneemt. Bij Info Support zijn we van mening dat hier iets aan gedaan moet worden. Ben jij het daarmee eens en draag jij graag een steentje bij aan secure NPM packages door een tool te ontwikkelen die ze vergelijkt met hun open source representatie en die zo malware kan detecteren?

Neem contact op met

Meer informatie

Enkele voorbeelden van de hacks waar we in de inleiding aan refereerden, zijn te lezen op hackernoon.com, YouTube en blog.sqreen.io. De effecten van deze hacks zijn groot. Zelfs zo groot dat het vertrouwen in Open Source afneemt. Een voorbeeld hiervan is te lezen op medium.com. Hier moeten we iets aan doen!

In deze opdracht focussen we op JavaScript development. Bij JavaScript projecten gebruiken we binnen Info Support vooral NodeJS. Hierbij maken we veelal gebruik van de Node Package Manager (NPM). Zo heeft een Angular project al gauw meer dan 2000 (!) NPM dependencies (en dependencies van dependencies). We willen voorkomen dat één van die NPM packages onze code infecteert met malware.

Als we kijken naar malware die verborgen zit in NPM packages, dan zien we een trend. De open source code (op Github) komt niet overeen met de code die op NPM is gepubliceerd. Als we een tool zouden hebben die kan garanderen dat de code op GitHub overeenkomt met die op NPM, dan kunnen we het risico op malware dus beperken.

Dit is echter niet eenvoudig. Zoals je weet, wordt de code die we schrijven vaak gecompileerd voordat we de code gebruiken. Bij JavaScript wordt de code niet gecompileerd, maar vaak wel ‘getranspileerd of ‘geminified’. De code komt dan uiteraard niet meer overeen met de NPM package. Hier moeten we dus iets op vinden.

Door NPM packages te vergelijken met hun open source representatie kunnen we achterhalen of er gesjoemeld is met de code. We willen weten in hoeverre dit haalbaar/schaalbaar is. Daarvoor willen we graag een Proof of Concept (PoC) zien om te bewijzen dat dit kan. Hiermee ga jij tijdens jouw onderzoek aan de slag.

Onderzoek

Je onderzoekt hoe een dergelijke tool zou kunnen werken. Hierbij is het belangrijk dat het systeem ‘waterdicht’ (of dichtbij waterdicht) is. Ook moeten we hier denken aan performance aspecten. Je ontwikkelt vervolgens een PoC. Die PoC moet voldoen aan de kwaliteitsstandaarden binnen Info Support. Bij voorkeur wordt deze ontwikkeld in TypeScript/NodeJS.

Je gaat deze opdracht samen met iemand van Info Support verder uitwerken. Dit met als doel om tot een definitieve afstudeeropdracht, compleet met deliverables, te komen die bij jou past! Wij zien graag dat je afstudeerperiode een onvergetelijke tijd wordt en een mooie start van jouw carrière. Jouw ontwikkeling staat centraal en daar bieden we je bij Info Support alle ruimte voor!

Benodigde technieken en/of kennis

  • Security
  • TypeScript/NodeJS

Extra informatie

Bij Info Support doorloop je als sollicitant de volgende stappen: kennismakingsgesprek, E-assessment, selectiegesprek en contractondertekening.

Het tempo van de procedure bepaal jij. Zo mag je er rustig de tijd voor nemen, maar alles kan ook op een dag plaatsvinden; van kennismaking tot contractondertekening. We horen graag wat jouw voorkeur heeft.

afbeelding Organiseer het!

Organiseer het!

afbeelding Start je carrière

Start je carrière

afbeelding Get Smarter Magazine

Get Smarter Magazine

afbeelding Info Support Open Source

Info Support Open Source