X9: hoe Resultados Digitais automatisch gevoelige gegevens kan detecteren gegevens in de coderepositories

(Vitoria Rio) (9 oktober 2020)

Naarmate bedrijven groter worden, met een steeds groter wordend aantal functies, creëren en integreren ontwikkelaars voortdurend nieuwe stukjes code als commits, pull-verzoeken , enz. Met de toenemende populariteit van agile methodologieën, wordt een snellere oplossing voor kwetsbaarheidsanalyse een must. Zodra code is vastgelegd in de repository, als die commit gevoelige informatie bevat, moeten er acties worden ondernomen om deze direct aan te pakken, aangezien dit uiteindelijk kan leiden tot datalekken.

Echter, verdiepen in honderden commits en pull-aanvragen is geen gemakkelijke taak, zelfs niet voor een team van bekwame beveiligingsingenieurs, daar komt X9 om de hoek kijken. X9 is een open-source tool die is gemaakt om de detectie van gevoelige informatie in de GitHub-opslagplaatsen van de organisatie te automatiseren. Het kan automatisch code analyseren en meldingen maken via Slack in bijna realtime.

Architectuur

Met Github kunnen we verschillende evenementen lezen, zoals commits en pull-verzoeken door het gebruik van Github Webhooks . Wanneer een ontwikkelaar bijvoorbeeld een PR maakt, wordt er een evenement aangemaakt op het Github-platform, dat vervolgens een berichtpayload stuurt naar een vooraf geconfigureerde route (in dit geval de X9-interface) met gedetailleerde informatie over dat evenement. Deze aanpak werkt het beste als we bedenken dat Github ons in staat stelt om webhooks voor de hele organisatie te configureren, waardoor X9 alle repositories vanuit deze scope kan analyseren.

Door de evenementen voor de hele organisatie te configureren, garandeert X9 niet alleen dat alle repositories worden geanalyseerd, maar stroomlijnt ook het analyseproces, waardoor beveiligingsingenieurs meer flexibiliteit en controle krijgen over de potentiële beveiligingsbedreigingen van het bedrijf.

Na ontvangst van de event-payload kloneert de app de branch van de repository en voert verschillende testen. Elke gebeurtenis wordt verwerkt door een onafhankelijke medewerker die kan worden opgeschaald in geval van hogere doorvoer. Alle gescande kwetsbaarheden worden vervolgens opgeslagen in een PostgreSQL-database en gemeld op een Slack-kanaal. De Slack-interface stelt iemand in staat om direct een probleem op Github te creëren of de kwetsbaarheid te markeren als vals-positief.

Analyse

X9 gebruikt specifieke handtekeningen en patronen om zinnige gegevens in code te detecteren. Deze handtekeningen zijn reguliere expressies die op maat zijn gemaakt voor dit specifieke doel, zoals r"[a-zA-Z0-9]*\@emailexample.com" die persoonlijke e-mails kunnen detecteren of het volgende, dat AWS-toegangssleutels detecteert in de inhoud van het bestand (verderop gedefinieerd):

Met de applicatie kan de gebruiker ook aangepaste reguliere expressies, waardoor een meer domeingerichte benadering mogelijk is. Er zijn vier soorten handtekeningcontexten voor X9:

  • bestandsnaam : zoekt naar volledige bestandsnamen
  • extensie : zoekt naar specifieke extensies (bijvoorbeeld: .pem, .db)
  • path : zoekt naar het volledige pad van een vooraf bepaalde map van een bestand in de repository
  • inhoud : zoekt naar patronen in de bestanden

Meldingen en acties

Via Slack Webhooks stuurt X9 gedetailleerde informatie voor elke bevinding naar een door de gebruiker gedefinieerd kanaal. Het is belangrijk op te merken dat mogelijk gevoelige informatie correct is verduisterd, zoals hieronder te zien is:

De interactieve componenten ( Open probleem en False Positive buttons) maken directe aanmaak van problemen op GitHub mogelijk en beschouwen de kwetsbaarheid als respectievelijk vals positief. Als er een probleem moet worden gemaakt op basis van het bericht, wordt het volgende probleemformaat gemaakt op de kwetsbare opslagplaats:

Dashboard

X9 heeft ook een dashboard voor visualisatie van kwetsbaarheden. Dit dashboard is een optionele aparte applicatie die de beveiligingsanalyse niet verstoort. Het gebruikt OpenID Connect voor login-authenticatie.

Het dashboard is een tabelweergave die filteren op opslagplaatsnaam en type kwetsbaarheid mogelijk maakt. Indien gemaakt, wordt de link van het probleem ook weergegeven.

Laatste gedachten

X9 is nog in ontwikkeling en wordt actief bijgewerkt, bijdragen zijn welkom :).

Bekijk het op github.com/ResultadosDigitais/ x9 .

Referenties

Dit project is geïnspireerd door Shhgit en Gitleaks , die de meeste handtekeningen en analytische strategie leverden.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *