Dataopsamling på en internet exchange

Jeg har ikke specifik viden om at der idag foregår dataopsamling på DIX, men det er nok en sund antagelse at tro det. Vi ved at der foregår dataopsamling via GovCERT mange andre steder på offentlige myndigheders netværk.

Dagens nyhed idag er at NSA surveillance program reaches ‘into the past’ to retrieve, replay phone calls så hvad er nu det?! Jeg kender ikke omfanget af data der opsamles, men det sætter nogle tanker igang.

Lad os antage at vi vil opsnappe al datatrafikken i et bestemt område, vil det være muligt?
For at gøre det let så lad os tage et konkret eksempel DIX.dk hvad skal der til for at opsamle alt og gemme det?

Illustration: Privatfoto

Danish Internet Exchange Point - som til trods for navnet ikke indeholder al dansk trafik, men de har dog offentligt tilgængelig statistik. Hvis vi ser på grafen ligger trafikken omkring maximum på 40Gbit og vi skal have lidt luft så vores opsamling skal ihvertfald håndtere op til peaks med 50Gbit indgående trafik nu, og mere i fremtiden. Jeg kender ikke gennemsnit, men vi sigter mod 50Gbit average så der er luft til at tage trafik udenom internet exchange, fra "frivillige" leverandører.

Så hvad skal vi bruge? Vi skal bruge noget hardware til opsamlingen, software til at opsamle og gemme data, samt analyseprogrammer til at finde det interessante. Jeg har en forkærlighed for open source og kender nogle bestemte produkter - så den viden vil jeg bruge som udgangspunkt.

Valg af værktøjer

Jeg forestille mig således at vi skal bruge standard servere med standard netkort til opsamling. Til softwaren kender jeg til et godt produkt Moloch til opsamling og Suricata til "analyse"

Moloch is a open source large scale IPv4 full PCAP capturing, indexing and database system.

Suricata is a high performance Network IDS, IPS and Network Security Monitoring engine

Estimering af setup

Vi er så heldige at til det software som jeg har valgt Moloch er der et eksempel på deres README. Så hvis man skal opsnappe fra 8 stk gigabit interfaces med gennemsnitlig 5Gbit med 7 dage tilbage, så skal man ca. bruge:

  • 8 servere til opsamling af data og opbevaring, med 48Gb memory og 40TB disk

  • 10 servere til elasticsearch indexering med 64Gb memory og 2TB disk, efter formlen (1/4 * Number_Highly_Utilized_Interfaces * Number_of_Days_of_History)

Hvis vi så laver lidt løs hovedregning skal vi altså bruge et setup der er 10 gange kraftigere til opsamlingen, og kan gemme 30 dage, dvs storage skal mindst være en faktor 4,3 gange mere. Jeg vil også antage at vi bruger 10Gbit netkort og vi kan holde det samlede antal relativt lavt, måske omkring 10x10Gbit interfaces - vi håber at kunne få nogle ISP'er med på at vi sniffer lidt andet trafik hos dem samtidig :-).

Så et gæt er at vi skal bruge, omkring:

  • 10 kraftige 2U servere a 40kkr med hver dual-10Gbit Intel netkort til ca. 2kkr. Baseret på SPT princippet (slag på tasken) og dagens tilbud fra Dell.dk på R720 med Intel Xeon processor E5-2600 serien (Der er visse fordele ved E5 og 2600 serien! Søg på dem og check Jesper Brouers Linux præsentationer). Måske flere hvis vi finder flere opsamlingspunkter.

  • 40 servere 1U a 15kkr til elasticsearch, formlen siger (1/4*10 interfaces * 30dg) = 60 men vi er lidt nærrige og kan godt vente lidt på at indexering indhenter opsamlingen.

  • Storage skal vi nok prøve at udregne ligesom i eksemplet, de havde gennemsnit 5Gbit/sec * 7 dage = 5120Mbit/s * 60s * 60 * 24 * 7dg = 387.072.000Mb = 400TB = ~40TB/server * 10servere

Så opsamling med gennemsnit 50Gbit er ca. 400TB pr server og 30 dage (30/7=4,3) vil være ca. 1.720TB - PER server. Så vi snakker nok en større storageløsning for at opsamle og gemme det hele. Jeg tror ikke vi skal købe det som Amazon S3 storage, men det bliver nok også svært at bygge det helt fra bunden selv. Jeg fik lidt hjælp fra BSD-DK på IRC og der kom tal på 288TB på 4U inkl server så hvis vi flotter os lidt kan vi have en server+1.800TB på 24U og med et skohorn 2 servere og storage pr rack. Jeg tror også vi er nødt til at putte lidt ekstra servere til management, sikker adgang, logning og monitorering mv. Så vi taler om
en rack space udregningen, som er helt uden garantier og med meget løse antagelser:

  • 5x48U racks med 10 servere og storage til opsamling og opbevaring

  • 1 rack med 40x1U og det løse til management og routing/adgang.

Det vil godt nok være en stor udskrivning til at starte med, men så vil man kunne søge efter sessions og downloade eksempelvis en komplet TCP session, under forudsætning af at routing er nogenlunde symmetrisk. Suricata vil ligeledes kunne matche eksempelvis filnavne og uddrage data automatisk - specielt Suricata har nogle stærke funktioner lavet til malware detektion og data exfiltration.

Konklusion

Ovenstående er med et væld af antagelser og usikkerhed omkring hvor meget storage man skal bruge, men jeg mener bestemt det er et nyttigt tanke eksperiment.

Vi kan formentlig konkludere:

  • Det vil være muligt at lave en mindre installation (6 racks er relativt småt i min verden)
  • Man vil kunne opsamle 5Gbit,10Gbit op til måske 50Gbit fordelt på et mindre antal servere og vil kunne indeksere det i big data stil med tilgængelige programmer
  • Omkostningen for at komme igang vil være lille, men en fuld løsning er relativt omkostningstung - specielt antal dage har indflydelse på prisen
  • Programmerne virker. Jeg har selv Suricata kørende på en delmængde af vores traffik og Moloch er testet i LAB, men bliver nok på en delmængde med fulde pakker indgående og måske ~200byte af udgående pakker.

Hvad synes I forøvrigt? Er det den rigtige vej at gå, wholesale opsamling og sjælden brug af data?

The1 på IRC gav også følgende link som eksempel på opbygning af store cold storage systemer, hvor data sjældent læses - hvilket formentlig matcher vores use-case nogenlunde:
http://www.opencompute.org/assets/download/Open-Compute-Project-Cold-Sto...

Kommentarer (12)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Ole Kaas

Er ekstremt nemt at sætte op på en server - giv den et interface at sniffe på og den gemmer alle SIP telefon samtaler i individuelle pcap filer. Man kan evt sætte den til at lave wav filer med det samme. Backend er gratis og open source. Man kan købe en web frontend, der gør det legende let at finde samtaler, analysere kvalitet, pakketab osv.

  • 1
  • 0
Troels Jensen

Der vil være en del af trafikken man vil kunne smide væk, f.eks. data fra streamingtjenester samt torrents, multiplayerdata for onlinespil osv.

Det er selvfølgelig et spørgsmål om hvor grundig man vil være da man jo f.eks. kan vælge at holde sit tophemmelige terroristmøde i en counterstrikesession, men jeg tror nu at man ville vælge at kaste bestemte typer trafik fra. Eller ihvertfald muge ud i data man vil gemme i længere tid.

SIP-trafik er ihvertfald meget nemt at gemme, så der vil det indlysende være at gemme rub og stub.

Der vil jeg dog pointere at det er hamrende ulovligt og at man risikerer at blive afsløret spektakulært hvis der er bare een medarbejder hos DIX'en som har en samvittighed.

  • 0
  • 0
Thomas Larsen

NSA har brugt og bruger sikkert stadigvæk Narus STA 6400-udstyr og løsninger til at overvåge og selektivt indsamle delmængder af datatrafik:

http://www.wired.com/science/discoveries/news/2006/05/70908

Der vil jeg dog pointere at det er hamrende ulovligt og at man risikerer at blive afsløret spektakulært hvis der er bare een medarbejder hos DIX'en som har en samvittighed

Der er ikke noget ulovligt i det så længe FE kan argumentere for at overvågningen alene er rettet mod fremmede magter. Så skal vi ikke bare gætte på at de allerede har et rum 641A på Borups Allé?

  • 2
  • 0
Jesper Lund

Der er ikke noget ulovligt i det så længe FE kan argumentere for at overvågningen alene er rettet mod fremmede magter. Så skal vi ikke bare gætte på at de allerede har et rum 641A på Borups Allé?

Det skal blot være forhold i udlandet. Når FE overvåger forhold i udlandet, må de gerne medtage oplysninger om danske borgere jf. FE-lovens § 3 stk. 2
https://www.retsinformation.dk/Forms/r0710.aspx?id=152195

Skulle FE have lyst til at registrere danske borgere der besøger Wikileaks' website eller læser artikler om Snowden på udenlandske netmedier, så kan det gøres fuldt lovligt.

Regeringen kan sagtens sige at "der er ikke grund til at tro at der foregår noget ulovligt" når det meste er lovligt for FE.

  • 4
  • 0
Mads N. Vestergaard

Om dimensioneringen holder eller ej, er det da interessant... Specielt lige taget i betragtning af hvor meget trafik der IKKE kører gennem DIX, puha !

Fin gennemgang, og interessant tools, man må da håbe der er nogle der giver mængde rabat.

  • 0
  • 0
Henrik Kramshøj Blogger

Hvorfor skal man have 6 rackskabe med 1U og 2U servere? NSA har da forhåbentlig opdaget det koncept der hedder servervirtualisering.

Jeg tror du vil have glæde af at læse og se Jesper Brouers præsentationer. Det er ikke trivielt at rode med 10Gbit traffik, specielt ikke hvis vi taler om små pakker og DDoS - som idag blandt andet bruges til at skjule andre mere sindrige angreb.

Så vi taler om 1.6 millioner pakker pr sekund på 1Gbit forbindelser og dermed 16 mill pps på 10Gbit. Det giver ganske rigtigt en del interrupts og derfor taler man om CPU affinity og rå performance. Hvis man bruger servere direkte betyder det blandt andet at man på Intel E5 CPU'erne kan mappe netværkspakkerne direkte ind i Layer 3 cache på CPU'en til videre forarbejdning - så ja, den rå kapacitet er vigtig.

Man KUNNE vel hvis man var masochist forsøge at mappe netkort direkte ind til virtuelle systemer. Netop i denne use-case vil jeg mene at det giver mere mening at afsætte en fysisk maskine til hvert 10Gbit opsamlingspunkt - det virker ret godt for os med eks 5Gbit ind igennem en ældre server med Suricata.

Du kan således skære kagen op i mindre bidder, eller brandslangen kan sendes ud til flere systemer. Jeg var til Netnod møde i sidste uge og der talte man MEGET om 100Gbit så det er ret hurtigt krav at man som opsamler vil have nogle specielle udfordringer der. En optimering jeg forestiller mig er at man opsamler ind og udgående adskilt, og samler sessionen senere - da man aligevel ser meget assymetrisk routing i internet idag. En producent af netkort, som jeg dog ikke benytter, er Napatech A/S som har netkort der kan fordele trafikken ud til flere CPU cores og jeg kan se de har opdateret deres hjemmeside til at inkludere 100Gbps.

  • 1
  • 0
Henrik Kramshøj Blogger

Der vil være en del af trafikken man vil kunne smide væk, f.eks. data fra streamingtjenester samt torrents, multiplayerdata for onlinespil osv.

Jeg er helt enig, faktisk vil jeg mene de skal smide det meste væk og udelukkende lave fokuseret og målrettet aflytning af bestemte personer, med en smule frirum til at medtage al trafik fra bestemte IP-adresser.

Vi skal væk fra wholesale MASS-surveillance som koncept, det skal simpelthen gøres for dyrt og tungt - hvad jeg håber ovenstående medvirker til at understrege. Det kan eksempelvis gøres ved at bruge HTTPS Everywhere og kryptering i langt højere grad!

Jeg tror desværre man har en våd drøm om at kunne spole tilbage i AL internettrafik, selvom langt langt langt det meste vil være uinteressant, og den smule man måske kunne fokusere på er krypteret ... det er fail og det skal vi have fortalt vidt og bredt.

  • 6
  • 0
Log ind eller Opret konto for at kommentere