X9: Hvordan Resultados Digitais automatisk kan oppdage sensitive data i kodelagerene

(Vitoria Rio) (9. okt 2020)

Etter hvert som selskaper blir større, med en stadig økende mengde funksjoner, lager utviklere kontinuerlig og integrerer nye kodestykker som forpliktende, trekker forespørsler osv. Med den økende populariteten til smidige metoder blir en mer fartsfylt løsning for sårbarhetsanalyse et must. Så snart koden er forpliktet til depotet, hvis den forpliktelsen inneholder sensitiv informasjon, må det gjøres handlinger for å adressere den umiddelbart, siden den til slutt kan føre til datalekkasjer.

Imidlertid å fordype seg i hundrevis av forpliktelser pull-forespørsler er ingen enkel oppgave selv for et team av dyktige sikkerhetsingeniører, det er der X9 kommer inn. X9 er et åpen kildekodeverktøy laget for å automatisere deteksjonen av sensitiv informasjon i organisasjonens GitHub-arkiver. Den kan automatisk analysere kode og opprette varsler gjennom Slack i nær sanntid.

Arkitektur

Github lar oss lese flere hendelser som forplikter og trekker forespørsler gjennom bruk av Github Webhooks . For eksempel, når en utvikler oppretter en PR, opprettes en hendelse på Github-plattformen, som deretter sender en meldingsnyttelast til en forhåndskonfigurert rute (i dette tilfellet X9-grensesnittet) som inneholder detaljert informasjon om den hendelsen. Denne tilnærmingen fungerer best når vi vurderer at Github tillater oss å konfigurere webhooks for hele organisasjonen, slik at X9 kan analysere alle arkiver fra dette omfanget.

Ved å konfigurere hendelsene for hele organisasjonen garanterer X9 ikke bare at alle repositories blir analysert, men strømlinjeformer også analyseprosessen, noe som gir sikkerhetsingeniører mer fleksibilitet og kontroll over selskapets potensielle sikkerhetstrusler. tester. Hver hendelse behandles av en uavhengig arbeidstaker som kan skaleres opp i tilfelle høyere gjennomstrømning. Alle skannede sårbarheter lagres deretter i en PostgreSQL-database og varsles på en Slack-kanal. Slack-grensesnittet lar en direkte opprette et problem på Github eller flagge sårbarheten som en falsk-positiv.

Analyse

X9 bruker spesifikke signaturer og mønstre for å oppdage fornuftige data i koden. Disse signaturene er vanlige uttrykk skreddersydd for dette spesifikke formålet, for eksempel r"[a-zA-Z0-9]*\@emailexample.com" som kan oppdage personlige e-postmeldinger eller følgende, som oppdager AWS-tilgangstaster inne i filinnholdet (definert lenger foran):

Programmet lar også brukeren konfigurere tilpasset vanlige uttrykk, som muliggjør en mer domenerettet tilnærming. Det er fire typer signaturkontekster for X9:

  • filnavn : Søker etter komplette filnavn
  • utvidelse : Søker etter bestemte utvidelser (f.eks. .pem, .db)
  • bane : Søker etter den fullstendige banen til en forhåndsbestemt mappe til en fil i depotet
  • innhold : Søker etter mønstre i filene

Varsler og handlinger

Gjennom Slack Webhooks sender X9 detaljert informasjon for hvert funn til en brukerdefinert kanal. Det er viktig å merke seg at all mulig sensitiv informasjon er riktig tilslørt, som vist nedenfor:

De interaktive komponentene ( Åpen utgave og Falske positive knapper) tillater direkte oppretting av problemer på GitHub og ser bort fra henholdsvis sårbarheten. Hvis et problem må opprettes fra meldingen, opprettes følgende problemformat i det sårbare arkivet:

Dashboard

X9 har også et dashboard for visualisering av sårbarheter. Dette dashbordet er et valgfritt separat program som ikke forstyrrer sikkerhetsanalysen. Den bruker OpenID Connect for påloggingsautentisering.

Dashbordet er en tabellvisning som tillater filtrering etter depotnavn og sårbarhetstype. Hvis den blir opprettet, vises også koblingen til problemet.

Avsluttende tanker

X9 er fortsatt et pågående arbeid og oppdateres aktivt, bidrag er velkomne :).

Sjekk det på github.com/ResultadosDigitais/ x9 .

Referanser

Dette prosjektet er inspirert av Shhgit og Gitleaks , som ga det meste av signaturene og den analytiske strategien.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *