Skalerbar dataklassifisering for sikkerhet og personvern

Skalerbar dataklassifisering for sikkerhet og personvern

Innholdsbasert dataklassifisering er et åpent problem. Tradisjonelle datatapsforebyggende (DLP)-systemer løser dette problemet ved å ta fingeravtrykk av relevante data og overvåke endepunktene for fingeravtrykk. Gitt det store antallet dataressurser i stadig endring på Facebook, er denne tilnærmingen ikke bare ikke skalerbar, men også ineffektiv for å bestemme hvor dataene befinner seg. Denne artikkelen fokuserer på et ende-til-ende-system bygget for å oppdage sensitive semantiske typer i Facebook i stor skala og automatisk håndheve datalagring og tilgangskontroll.

Tilnærmingen beskrevet her er vårt første ende-til-ende personvernsystem som prøver å løse dette problemet ved å inkludere datasignaler, maskinlæring og tradisjonelle fingeravtrykksteknikker for å kartlegge og klassifisere alle data på Facebook. Det beskrevne systemet drives i et produksjonsmiljø, og oppnår en gjennomsnittlig F2-score på 0,9+ på tvers av ulike personvernklasser mens det behandler store mengder dataressurser på tvers av dusinvis av depoter. Vi introduserer en oversettelse av Facebooks ArXiv-artikkel om skalerbar dataklassifisering for sikkerhet og personvern basert på maskinlæring.

Innledning

I dag samler og lagrer organisasjoner store mengder data i en rekke formater og steder [1], deretter blir dataene konsumert mange steder, noen ganger kopiert eller bufret flere ganger, noe som resulterer i at verdifull og sensitiv forretningsinformasjon blir spredt over mange bedriftsdata butikker. Når en organisasjon er pålagt å oppfylle visse juridiske eller forskriftsmessige krav, for eksempel overholdelse av forskrifter i sivile retterganger, blir det nødvendig å samle inn data om plasseringen av de nødvendige dataene. Når en personvernforordning sier at en organisasjon må maskere alle personnummer (SSN) når de deler personlig informasjon med uautoriserte enheter, er det naturlige første trinnet å søke i alle SSN-er på tvers av organisasjonens datalagre. Under slike omstendigheter blir dataklassifisering kritisk [1]. Klassifiseringssystemet vil tillate organisasjoner å automatisk håndheve retningslinjer for personvern og sikkerhet, for eksempel aktivering av retningslinjer for tilgangskontroll, oppbevaring av data. Facebook introduserer et system vi har bygget på Facebook som bruker flere datasignaler, skalerbar systemarkitektur og maskinlæring for å oppdage sensitive semantiske datatyper.

Dataoppdagelse og klassifisering er prosessen med å finne og merke data slik at relevant informasjon kan hentes raskt og effektivt ved behov. Den nåværende prosessen er ganske manuell av natur og består i å undersøke relevante lover eller forskrifter, bestemme hvilke typer informasjon som skal anses som sensitive og hva de ulike sensitivitetsnivåene er, og deretter konstruere klasser og klassifiseringspolicyer deretter [1]. Forebygging av datatap (DLP) tar deretter fingeravtrykk av dataene og sporer nedstrøms endepunkter for å få fingeravtrykk. Når du har å gjøre med et ressurstungt lager med petabyte med data, skalerer ikke denne tilnærmingen.

Målet vårt er å bygge et dataklassifiseringssystem som skalerer til både robuste og forbigående brukerdata, uten ytterligere begrensninger på datatypen eller formatet. Dette er et dristig mål, og det kommer naturligvis med utfordringer. En gitt datapost kan være tusenvis av tegn lang.

Skalerbar dataklassifisering for sikkerhet og personvern
Figur 1. Online og offline prognoseflyter

Derfor må vi representere det effektivt ved å bruke et felles sett med funksjoner som senere kan kombineres og enkelt flyttes rundt. Disse funksjonene skal ikke bare gi nøyaktig klassifisering, men også gi fleksibilitet og utvidbarhet for enkelt å legge til og oppdage nye datatyper i fremtiden. For det andre må du håndtere store offline-tabeller. Holdbare data kan lagres i tabeller som er mange petabyte store. Dette kan føre til lavere skannehastigheter. For det tredje må vi overholde streng SLA-klassifisering på flyktige data. Dette tvinger systemet til å være svært effektivt, raskt og nøyaktig. Til slutt må vi gi dataklassifisering med lav latens for flyktige data for å utføre sanntidsklassifisering så vel som for Internett-bruk.

Denne artikkelen beskriver hvordan vi taklet utfordringene ovenfor og presenterer et raskt og skalerbart klassifiseringssystem som klassifiserer dataelementer av alle typer, formater og kilder basert på et felles sett med funksjoner. Vi utvidet systemarkitekturen og laget en tilpasset maskinlæringsmodell for raskt å klassifisere offline og online data. Denne artikkelen er organisert som følger: Del 2 presenterer den overordnede utformingen av systemet. Del 3 diskuterer delene av et maskinlæringssystem. Avsnitt 4 og 5 fremhever relatert arbeid og skisserer fremtidige arbeidsretninger.

arkitektur

For å håndtere utfordringene med vedvarende og Facebook-skala online data, har klassifiseringssystemet to separate strømmer, som vi vil diskutere i detalj.

Bærekraftige data

I første omgang må systemet lære om Facebooks mange informasjonsressurser. For hvert depot samles det inn grunnleggende informasjon, for eksempel datasenteret som inneholder disse dataene, systemet som inneholder disse dataene og ressursene som ligger i det spesifikke datalageret. Dette skaper en metadatakatalog som lar systemet effektivt hente data uten å overbelaste klienter og ressurser som brukes av andre ingeniører.

Denne metadatakatalogen gir en autoritativ kilde for alle skannede eiendeler og lar deg spore statusen til ulike eiendeler. Ved å bruke denne informasjonen etableres planleggingsprioritet basert på de innsamlede dataene og intern informasjon fra systemet, for eksempel tidspunktet da eiendelen sist ble skannet og tidspunktet den ble opprettet, samt tidligere minne- og CPU-krav for den ressursen hvis den er skannet før. Deretter, for hver dataressurs (ettersom ressursene blir tilgjengelige), kalles en jobb for å faktisk skanne ressursen.

Hver jobb er en kompilert binær fil som utfører Bernoulli-sampling på de nyeste dataene som er tilgjengelige for hver ressurs. Eiendelen er delt opp i individuelle kolonner, hvor klassifiseringsresultatet for hver kolonne behandles uavhengig. I tillegg skanner systemet etter mettede data i kolonnene. JSON, arrays, kodede strukturer, URL-er, base 64-serialiserte data og mer skannes. Dette kan øke skannekjøringstiden betydelig fordi en enkelt tabell kan inneholde tusenvis av nestede kolonner i en blob json.

For hver rad som er valgt i dataelementet, trekker klassifiseringssystemet ut flyte- og tekstobjektene fra innholdet og knytter hvert objekt tilbake til kolonnen det ble hentet fra. Utdataene fra trinnet for ekstraksjon av funksjoner er et kart over alle funksjoner for hver kolonne som finnes i dataelementet.

Hva er skiltene for?

Konseptet med attributter er nøkkelen. I stedet for flyt- og teksttrekk, kan vi sende råstrengprøver som trekkes direkte ut fra hver dataressurs. I tillegg kan maskinlæringsmodeller trenes direkte på hver prøve, i stedet for hundrevis av funksjonsberegninger som bare prøver å tilnærme prøven. Det er flere grunner til dette:

  1. Personvern først: Det viktigste er at konseptet med funksjoner lar oss lagre i minnet bare de mønstrene vi henter. Dette sikrer at vi lagrer prøver for ett enkelt formål og aldri logger dem gjennom egen innsats. Dette er spesielt viktig for flyktige data, siden tjenesten må opprettholde en klassifiseringstilstand før den gir en prediksjon.
  2. Minne: Noen prøver kan være tusenvis av tegn lange. Å lagre slike data og overføre dem til deler av systemet bruker unødvendig mange ekstra byte. De to faktorene kan kombineres over tid, gitt at det er mange dataressurser med tusenvis av kolonner.
  3. Funksjonsaggregering: Funksjoner representerer tydelig resultatene av hver skanning gjennom et sett med funksjoner, slik at systemet kan kombinere resultatene fra tidligere skanninger av samme dataressurs på en praktisk måte. Dette kan være nyttig for å samle skanneresultater fra en enkelt dataressurs over flere kjøringer.

Funksjonene sendes deretter til en prediksjonstjeneste der vi bruker regelbasert klassifisering og maskinlæring for å forutsi dataetikettene til hver kolonne. Tjenesten er avhengig av både regelklassifiserere og maskinlæring og velger den beste prediksjonen gitt fra hvert prediksjonsobjekt.

Regelklassifikatorer er manuelle heuristikk, de bruker beregninger og koeffisienter for å normalisere et objekt til et område på 0 til 100. Når en slik innledende poengsum er generert for hver datatype og kolonnenavn knyttet til disse dataene, er den ikke inkludert i noen "forbud lister", Regelklassifisereren velger den høyeste normaliserte poengsummen blant alle datatyper.

På grunn av kompleksiteten i klassifiseringen, resulterer kun avhengighet av manuell heuristikk i lav klassifiseringsnøyaktighet, spesielt for ustrukturerte data. Av denne grunn utviklet vi et maskinlæringssystem for å jobbe med klassifisering av ustrukturerte data som brukerinnhold og adresse. Maskinlæring har gjort det mulig å begynne å gå bort fra manuell heuristikk og bruke ytterligere datasignaler (f.eks. kolonnenavn, dataopprinnelse), noe som har forbedret deteksjonsnøyaktigheten betydelig. Vi skal dykke dypt inn i maskinlæringsarkitekturen vår senere.

Prediksjonstjenesten lagrer resultatene for hver kolonne sammen med metadata angående tid og tilstand for skanningen. Alle forbrukere og nedstrømsprosesser som er avhengige av disse dataene kan lese dem fra det daglige publiserte datasettet. Dette settet samler resultatene av alle disse skannejobbene, eller Real-Time Data Catalog API-er. Publiserte prognoser er grunnlaget for automatisk håndheving av personvern- og sikkerhetspolicyer.

Til slutt, etter at prognosetjenesten har skrevet alle dataene og alle prognosene er lagret, kan vår Data Catalog API returnere alle datatypeprognosene for ressursen i sanntid. Hver dag publiserer systemet et datasett som inneholder alle de siste prognosene for hver ressurs.

Flyktige data

Selv om prosessen ovenfor er designet for vedvarende eiendeler, anses ikke-vedvarende trafikk også som en del av en organisasjons data og kan være viktig. Av denne grunn tilbyr systemet en online API for å generere sanntids klassifiseringsprediksjoner for intermitterende trafikk. Sanntidsprognosesystem er mye brukt for å klassifisere utgående trafikk, inngående trafikk i maskinlæringsmodeller og annonsørdata.

Her tar APIen to hovedargumenter: grupperingsnøkkelen og rådataene som skal forutsies. Tjenesten utfører samme objekthenting som beskrevet ovenfor og grupperer objektene sammen for samme nøkkel. Disse funksjonene støttes også i persistensbufferen for feilgjenoppretting. For hver grupperingsnøkkel sikrer tjenesten at den har sett nok prøver før den ringer til prediksjonstjenesten, etter prosessen beskrevet ovenfor.

Optimalisering

For å skanne noen lagringer bruker vi biblioteker og teknikker for å optimalisere lesing fra varm lagring [2] og sikre at det ikke er noen forstyrrelser fra andre brukere som får tilgang til samme lagring.

For ekstremt store tabeller (50+ petabyte), til tross for alle optimaliseringer og minneeffektivitet, jobber systemet med å skanne og beregne alt før det går tom for minne. Tross alt, beregnes skanningen helt i minnet og lagres ikke under skanningen. Hvis store tabeller inneholder tusenvis av kolonner med ustrukturerte dataklumper, kan jobben mislykkes på grunn av utilstrekkelige minneressurser når du utfører prediksjoner på hele tabellen. Dette vil gi redusert dekning. For å bekjempe dette optimaliserte vi systemet til å bruke skannehastighet som en proxy for hvor godt systemet håndterer gjeldende arbeidsbelastning. Vi bruker hastighet som en prediktiv mekanisme for å se minneproblemer og prediktivt beregne funksjonskartet. Samtidig bruker vi mindre data enn vanlig.

Datasignaler

Et klassifiseringssystem er bare så godt som signalene fra dataene. Her skal vi se på alle signalene som brukes av klassifikasjonssystemet.

  • Innholdsbasert: Selvfølgelig er det første og viktigste signalet innhold. Bernoulli-sampling utføres på hvert dataelement som vi skanner og trekker ut funksjoner basert på datainnholdet. Mange tegn kommer fra innholdet. Et hvilket som helst antall flytende objekter er mulig, som representerer beregninger av hvor mange ganger en bestemt prøvetype har blitt sett. For eksempel kan vi ha tegn på antall e-poster sett i en prøve, eller tegn på hvor mange emojier som er sett i en prøve. Disse funksjonsberegningene kan normaliseres og aggregeres på tvers av forskjellige skanninger.
  • Dataopprinnelse: Et viktig signal som kan hjelpe når innholdet har endret seg fra den overordnede tabellen. Et vanlig eksempel er hashed data. Når data i en underordnet tabell hashes, kommer de ofte fra den overordnede tabellen, hvor de forblir i klartekst. Linjedata hjelper med å klassifisere visse typer data når de ikke leses tydelig eller konverteres fra en oppstrømstabell.
  • Merknader: Nok et signal av høy kvalitet som hjelper til med å identifisere ustrukturerte data. Faktisk kan merknader og herkomstdata fungere sammen for å spre attributter på tvers av forskjellige dataressurser. Merknader hjelper til med å identifisere kilden til ustrukturerte data, mens avstamningsdata kan hjelpe med å spore flyten av disse dataene gjennom depotet.
  • Datainjeksjon er en teknikk der spesielle, uleselige tegn med vilje introduseres i kjente kilder med kjente datatyper. Når vi deretter skanner innhold med den samme ulesbare tegnsekvensen, kan vi slutte at innholdet kommer fra den kjente datatypen. Dette er et annet kvalitativt datasignal som ligner på merknader. Bortsett fra at innholdsbasert gjenkjenning hjelper til med å oppdage de angitte dataene.

Måling av beregninger

En viktig komponent er en streng metodikk for måling av beregninger. Hovedmålene for gjentakelse av klassifiseringsforbedring er presisjon og tilbakekalling av hver etikett, med F2-poengsum som den viktigste.

For å beregne disse beregningene er det nødvendig med en uavhengig metodikk for merking av dataressurser som er uavhengig av selve systemet, men som kan brukes for direkte sammenligning med det. Nedenfor beskriver vi hvordan vi samler inn grunnsannhet fra Facebook og bruker den til å trene opp klassifiseringssystemet vårt.

Innsamling av pålitelige data

Vi samler pålitelige data fra hver kilde oppført nedenfor i sin egen tabell. Hver tabell er ansvarlig for å samle de siste observerte verdiene fra den aktuelle kilden. Hver kilde har datakvalitetskontroller for å sikre at de observerte verdiene for hver kilde er av høy kvalitet og inneholder de nyeste datatypeetikettene.

  • Konfigurasjoner av loggplattform: Enkelte felt i strukturtabeller er fylt ut med data som er av en bestemt type. Bruken og spredningen av disse dataene tjener som en pålitelig kilde til sannhet.
  • Manuell merking: Utviklere som vedlikeholder systemet, så vel som eksterne merkere er opplært til å merke kolonner. Dette fungerer generelt bra for alle typer data på lageret, og kan være den primære sannhetskilden for enkelte ustrukturerte data, for eksempel meldingsdata eller brukerinnhold.
  • Kolonner fra overordnede tabeller kan merkes eller kommenteres som å inneholde visse data, og vi kan spore disse dataene i barnetabellene.
  • Henter utførelsestråder: utførelsestråder i Facebook har spesifikke typer data. Ved å bruke vår skanner som en tjenestearkitektur kan vi prøve strømmer som har kjente datatyper og sende dem gjennom systemet. Systemet lover å ikke lagre disse dataene.
  • Eksempeltabeller: Store bikubetabeller, som er kjent for å inneholde hele datakorpuset, kan også brukes som treningsdata og sendes gjennom skanneren som en tjeneste. Dette er flott for tabeller med et komplett utvalg av datatyper, slik at prøvetaking av en kolonne tilfeldig tilsvarer å prøve hele settet med den datatypen.
  • Syntetiske data: Vi kan til og med bruke biblioteker som genererer data på farten. Dette fungerer bra for enkle, offentlige datatyper som en adresse eller GPS.
  • Dataforvaltere: Personvernprogrammer bruker vanligvis dataforvaltere til å manuelt tildele retningslinjer til datastykker. Dette tjener som en svært nøyaktig kilde til sannhet.

Vi kombinerer alle viktige kilder til sannhet i ett korpus med alle disse dataene. Den største utfordringen med validitet er å sørge for at den er representativ for datalageret. Ellers kan klassifiseringsmotorer overtrenes. For å bekjempe dette, brukes alle de ovennevnte kildene for å sikre balanse når du trener modeller eller beregner beregninger. I tillegg prøver menneskelige etiketter jevnt forskjellige kolonner i depotet og merker dataene deretter, slik at innsamlingen av grunnsannhet forblir objektiv.

Kontinuerlig integrering

For å sikre rask iterasjon og forbedring er det viktig å alltid måle systemytelsen i sanntid. Vi kan måle alle klassifiseringsforbedringer mot systemet i dag, slik at vi taktisk kan veilede fremtidige forbedringer basert på data. Her ser vi på hvordan systemet fullfører tilbakemeldingssløyfen som leveres av gyldige data.

Når planleggingssystemet støter på en ressurs som har en etikett fra en pålitelig kilde, planlegger vi to oppgaver. Den første bruker vår produksjonsskanner og dermed våre produksjonsevner. Den andre oppgaven bruker den nyeste byggeskanneren med de nyeste funksjonene. Hver oppgave skriver utdata til sin egen tabell, og merker versjoner sammen med klassifiseringsresultatene.

Slik sammenligner vi klassifiseringsresultatene til utgivelseskandidaten og produksjonsmodellen i sanntid.

Mens datasettene sammenligner RC- og PROD-funksjoner, logges mange varianter av prediksjonstjenestens ML-klassifiseringsmotor. Den sist bygde maskinlæringsmodellen, den nåværende modellen i produksjon og eventuelle eksperimentelle modeller. Den samme tilnærmingen lar oss "skjære" forskjellige versjoner av modellen (agnostisk for regelklassifikatorene våre) og sammenligne beregninger i sanntid. Dette gjør det enkelt å avgjøre når et ML-eksperiment er klart til å gå i produksjon.

Hver natt sendes RC-funksjonene beregnet for den dagen til ML-treningspipelinen, hvor modellen trenes på de nyeste RC-funksjonene og evaluerer ytelsen i forhold til grunnsannhetsdatasettet.

Hver morgen fullfører modellen trening og publiseres automatisk som en eksperimentell modell. Den inkluderes automatisk i forsøkslisten.

Noen resultater

Over 100 forskjellige typer data er merket med høy nøyaktighet. Godt strukturerte typer som e-post og telefonnumre er klassifisert med en f2-score større enn 0,95. Gratis datatyper som brukergenerert innhold og navn fungerer også veldig bra, med F2-score høyere enn 0,85.

Et stort antall individuelle kolonner med vedvarende og flyktige data klassifiseres daglig på tvers av alle depoter. Mer enn 500 terabyte skannes daglig på tvers av mer enn 10 datavarehus. De fleste av disse depotene har over 98 % dekning.

Over tid har klassifiseringen blitt svært effektiv, med klassifiseringsjobber i en vedvarende offline-strøm som tar i gjennomsnitt 35 sekunder fra skanning av en ressurs til å beregne spådommer for hver kolonne.

Skalerbar dataklassifisering for sikkerhet og personvern
Ris. 2. Diagram som beskriver den kontinuerlige integrasjonsflyten for å forstå hvordan RC-objekter genereres og sendes til modellen.

Skalerbar dataklassifisering for sikkerhet og personvern
Figur 3. Høynivådiagram av en maskinlæringskomponent.

Maskinlæringssystemkomponent

I forrige seksjon tok vi et dypdykk i den generelle systemarkitekturen, og fremhevet skala, optimalisering og offline og online dataflyt. I denne delen skal vi se på prognosetjenesten og beskrive maskinlæringssystemet som driver prognosetjenesten.

Med over 100 datatyper og noe ustrukturert innhold som meldingsdata og brukerinnhold, resulterer bruk av rent manuell heuristikk i subparametrisk klassifiseringsnøyaktighet, spesielt for ustrukturerte data. Av denne grunn har vi også utviklet et maskinlæringssystem for å håndtere kompleksiteten til ustrukturerte data. Ved å bruke maskinlæring kan du begynne å bevege deg bort fra manuell heuristikk og jobbe med funksjoner og ekstra datasignaler (for eksempel kolonnenavn, dataopprinnelse) for å forbedre nøyaktigheten.

Den implementerte modellen studerer vektorrepresentasjoner [3] over tette og sparsomme objekter separat. Disse kombineres deretter for å danne en vektor, som går gjennom en serie med batchnormalisering [4] og ikke-linearitetstrinn for å produsere det endelige resultatet. Sluttresultatet er et flyttall mellom [0-1] for hver etikett, som indikerer sannsynligheten for at eksemplet tilhører den sensitivitetstypen. Ved å bruke PyTorch for modellen kunne vi bevege oss raskere, slik at utviklere utenfor teamet raskt kunne gjøre og teste endringer.

Ved utformingen av arkitekturen var det viktig å modellere sparsomme (f.eks. tekst) og tette (f.eks. numeriske) objekter separat på grunn av deres iboende forskjeller. For den endelige arkitekturen var det også viktig å utføre et parametersveip for å finne den optimale verdien for læringshastighet, batchstørrelse og andre hyperparametre. Valget av optimizer var også en viktig hyperparameter. Vi fant ut at det var en populær optimizer Adamfører ofte til overfitting, mens en modell med SGD mer stabil. Det var flere nyanser som vi måtte inkludere direkte i modellen. For eksempel statiske regler som sørget for at modellen gjør en deterministisk prediksjon når en funksjon har en viss verdi. Disse statiske reglene er definert av våre kunder. Vi fant ut at å inkorporere dem direkte i modellen resulterte i en mer selvstendig og robust arkitektur, i motsetning til å implementere et etterbehandlingstrinn for å håndtere disse spesielle kantsakene. Vær også oppmerksom på at disse reglene er deaktivert under trening for ikke å forstyrre treningsprosessen for gradientnedstigning.

Problemer

En av utfordringene var å samle pålitelige data av høy kvalitet. Modellen trenger tillit for hver klasse slik at den kan lære assosiasjoner mellom objekter og etiketter. I forrige avsnitt diskuterte vi datainnsamlingsmetoder for både systemmåling og modelltrening. Analysen viste at dataklasser som kredittkort- og bankkontonummer ikke er veldig vanlig på vårt lager. Dette gjør det vanskelig å samle inn store mengder pålitelige data for å trene modeller. For å løse dette problemet har vi utviklet prosesser for å skaffe syntetiske grunnsannhetsdata for disse klassene. Vi genererer slike data for sensitive typer, inkludert SSN, kredittkortnumre и IBAN-tall som modellen ikke kunne forutsi tidligere. Denne tilnærmingen gjør at sensitive datatyper kan behandles uten personvernrisikoen forbundet med å skjule de faktiske sensitive dataene.

Foruten grunnsannhetsproblematikken, er det åpne arkitekturspørsmål vi jobber med, som f.eks endre isolasjon и tidlig stopp. Endringsisolering er viktig for å sikre at når ulike endringer gjøres i ulike deler av nettverket, blir påvirkningen isolert til spesifikke klasser og har ikke en bred innvirkning på den generelle prognoseytelsen. Å forbedre kriteriene for tidlig stopp er også kritisk slik at vi kan stoppe treningsprosessen på et stabilt punkt for alle klasser, i stedet for på et punkt der noen klasser overtrener og andre ikke.

Betydning av funksjoner

Når en ny funksjon introduseres i en modell, ønsker vi å vite dens generelle innvirkning på modellen. Vi vil også sørge for at spådommene er tolkbare av mennesker, slik at vi kan forstå nøyaktig hvilke funksjoner som brukes for hver type data. For dette formålet har vi utviklet og introdusert etter klasse viktigheten av funksjoner for PyTorch-modellen. Merk at dette er forskjellig fra generell funksjonsviktighet, som vanligvis støttes, fordi det ikke forteller oss hvilke funksjoner som er viktige for en bestemt klasse. Vi måler betydningen av et objekt ved å beregne økningen i prediksjonsfeil etter omorganisering av objektet. En funksjon er "viktig" når bytte av verdier øker modellens feil fordi i dette tilfellet stolte modellen på funksjonen for å gjøre sin prediksjon. En funksjon er "uviktig" når stokking av verdiene forlater modellfeilen uendret, siden modellen i dette tilfellet ignorerte den [5].

Betydningen av funksjonen for hver klasse gjør at vi kan gjøre modellen tolkbar slik at vi kan se hva modellen ser på når vi forutsier en etikett. For eksempel når vi analyserer ADDR, så garanterer vi at skiltet knyttet til adressen, som f.eks AddressLinesCount, rangerer høyt i funksjonsviktighetstabellen for hver klasse, slik at vår menneskelige intuisjon stemmer godt overens med det modellen har lært.

Evaluering

Det er viktig å definere én enkelt beregning for suksess. Vi valgte F2 - balanse mellom tilbakekalling og nøyaktighet (recall bias er litt større). Tilbakekalling er viktigere for en personverntilfelle enn nøyaktighet fordi det er avgjørende for teamet å ikke gå glipp av noen sensitive data (samtidig som det sikres rimelig nøyaktighet). Selve F2-ytelsesevalueringen av modellen vår ligger utenfor rammen av denne artikkelen. Men med nøye innstilling kan vi oppnå høye (0,9+) F2-score for de viktigste sensitive klassene.

Relatert arbeid

Det finnes mange algoritmer for automatisk klassifisering av ustrukturerte dokumenter ved bruk av ulike metoder som mønstertilpasning, dokumentlikhetssøk og ulike maskinlæringsmetoder (bayesiansk, beslutningstrær, k-nærmeste naboer og mange andre) [6]. Hvilken som helst av disse kan brukes som en del av en klassifisering. Problemet er imidlertid skalerbarhet. Klassifiseringstilnærmingen i denne artikkelen er partisk mot fleksibilitet og ytelse. Dette lar oss støtte nye klasser i fremtiden og holde ventetiden lav.

Det er også mye arbeid med datafingeravtrykk. For eksempel beskrev forfatterne i [7] en løsning som fokuserer på problemet med å fange opp sensitive datalekkasjer. Den underliggende antakelsen er at dataene kan tas med fingeravtrykk for å matche den med et sett med kjente sensitive data. Forfatterne i [8] beskriver et lignende problem med personvernlekkasje, men deres løsning er basert på en spesifikk Android-arkitektur og klassifiseres kun hvis brukerhandlinger resulterer i deling av personlig informasjon eller hvis den underliggende applikasjonen lekker brukerdata. Situasjonen her er noe annerledes fordi brukerdata også kan være svært ustrukturerte. Derfor trenger vi en mer kompleks teknikk enn fingeravtrykk.

Til slutt, for å takle datamangel for enkelte typer sensitive data, introduserte vi syntetiske data. Det finnes en stor mengde litteratur om dataforsterkning, for eksempel undersøkte forfatterne i [9] rollen til støyinjeksjon under trening og observerte positive resultater i veiledet læring. Vår tilnærming til personvern er annerledes fordi å introdusere støyende data kan være kontraproduktivt, og vi fokuserer i stedet på syntetiske data av høy kvalitet.

Konklusjon

I denne artikkelen presenterte vi et system som kan klassifisere et stykke data. Dette lar oss lage systemer for å håndheve retningslinjer for personvern og sikkerhet. Vi har vist at skalerbar infrastruktur, kontinuerlig integrasjon, maskinlæring og datasikkerhet av høy kvalitet spiller en nøkkelrolle i suksessen til mange av våre personverninitiativer.

Det er mange retninger for fremtidig arbeid. Dette kan inkludere støtte for uskjematiserte data (filer), klassifisering av ikke bare datatype, men også sensitivitetsnivå, og bruk av selvovervåket læring under trening ved å generere nøyaktige syntetiske eksempler. Noe som igjen vil hjelpe modellen med å redusere tapene med størst mulig beløp. Fremtidig arbeid kan også fokusere på etterforskningsarbeidsflyten, der vi går utover deteksjon og gir rotårsaksanalyse av ulike personvernbrudd. Dette vil hjelpe i tilfeller som sensitivitetsanalyse (dvs. om personvernsensitiviteten til en datatype er høy (f.eks. bruker-IP) eller lav (f.eks. Facebook intern IP)).

bibliografi

  1. David Ben-David, Tamar Domany og Abigail Tarem. Bedriftsdataklassifisering ved bruk av semantiske webteknologier. I Peter F.Ï Patel-Schneider, Yue Pan, Pascal Hitzler, Peter Mika, Lei Zhang, Jeff Z. Pan, Ian Horrocks og Birte Glimm, redaktører, The Semantic Web – ISWC 2010, side 66–81, Berlin, Heidelberg, 2010. Springer Berlin Heidelberg.
  2. Subramanian Muralidhar, Wyatt Lloyd, Sabyasachi Roy, Cory Hill, Ernest Lin, Weiwen Liu, Satadru Pan, Shiva Shankar, Viswanath Sivakumar, Linpeng Tang og Sanjeev Kumar. f4: Facebooks varme BLOB-lagringssystem. I 11. USENIX-symposium om design og implementering av operativsystemer (OSDI 14), side 383–398, Broomfield, CO, oktober 2014. USENIX Association.
  3. Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado og Jeff Dean. Distribuerte representasjoner av ord og uttrykk og deres komposisjon. I C. J. C. Burges, L. Bottou, M. Welling, Z. Ghahramani og K. Q. Weinberger, redaktører, Fremskritt innen nevrale informasjonsbehandlingssystemer 26, side 3111–3119. Curran Associates, Inc., 2013.
  4. Sergey Ioffe og Christian Szegedy. Batchnormalisering: Akselererer dyp nettverkstrening ved å redusere intern kovariatskifte. I Francis Bach og David Blei, redaktører, Proceedings of the 32nd International Conference on Machine Learning, bind 37 av Proceedings of Machine Learning Research, side 448–456, Lille, Frankrike, 07.–09. jul 2015. PMLR.
  5. Leo Breiman. Tilfeldige skoger. Mach. Lære., 45(1):5–32, oktober 2001.
  6. Thair Nu Phyu. Undersøkelse av klassifiseringsteknikker innen data mining.
  7. X. Shu, D. Yao og E. Bertino. Personvernbevarende gjenkjenning av eksponering av sensitive data. IEEE-transaksjoner på informasjonsforensikk og sikkerhet, 10(5):1092–1103, 2015.
  8. Zhemin Yang, Min Yang, Yuan Zhang, Guofei Gu, Peng Ning og Xiaoyang Wang. Søker: Analyserer sensitiv dataoverføring i Android for personvernlekkasjedeteksjon. side 1043–1054, 11 2013.
  9. Qizhe Xie, Zihang Dai, Eduard H. Hovy, Minh-Thang Luong og Quoc V. Le. Uovervåket dataforsterkning.

Skalerbar dataklassifisering for sikkerhet og personvern
Finn ut detaljer om hvordan du får et ettertraktet yrke fra bunnen av eller Level Up når det gjelder ferdigheter og lønn ved å ta SkillFactory nettkurs:

Flere kurs

Kilde: www.habr.com

Legg til en kommentar