Tag: surf

  • Hoe werkt privacyvriendelijke DNS-logging op de resolvers van SURFdomeinen?

    Om mogelijke aanvallen en besmettingen beter te kunnen detecteren en opsporen, is het handig om DNS-logging te kunnen doorzoeken. Omdat DNS-logs privacygevoelig zijn, heeft SURF een systeem ontwikkeld waarbij het mogelijk is om DNS-data met zo veel mogelijk behoud van privacy van de eindgebruikers te loggen. In deze blog leg ik uit hoe deze privacyvriendelijke DNS-logging technisch werkt.

    Aanleiding privacyvriendelijke DNS-logging

    Als een bij SURF aangesloten instelling getroffen is door een cyberaanval, willen andere instellingen weten of de daders mogelijk ook hun infrastructuur zijn binnengedrongen. Een van de bronnen om te raadplegen zijn DNS-logs: overzichten van domeinnamen die door eindgebruikers of systemen zijn opgevraagd. Veel instellingen gebruiken de DNS-servers van SURF via SURFdomeinen en daarvoor werden deze logs eerder niet vastgelegd. Op verzoek van de instellingen heeft SURF een systeem ontwikkeld om dit doen, maar met zo veel mogelijk behoud van privacy van de eindgebruikers.

    Privacy-by-design

    Hoewel de DNS-verzoeken nuttig kunnen zijn voor het beschermen van de gebruikers van het SURF-netwerk, zijn ze ook privacygevoelig. Ze laten bijvoorbeeld zien welke websites een gebruiker heeft bezocht. Het is daarom belangrijk om zorgvuldig met deze data om te gaan en een privacy-by-design-aanpak te volgen bij het beschikbaar stellen van DNS-logging.

    Om beveiligingsproblemen te detecteren hoeven we niet alle DNS-verzoeken van een individuele gebruiker te weten; we hoeven alleen te weten welke gebruikers een kwaadaardige domeinnaam hebben opgevraagd. We hebben daarom een systeem ontwikkeld waarbij we precies dit afdwingen met behulp van cryptografische technieken: het is alleen mogelijk om in de DNS-logging te zoeken op basis van een domeinnaam. We slaan echter niet de opgevraagde domeinnaam op, maar alleen afgeleide informatie hiervan, gebaseerd op een zogenaamde hash. We combineren deze hash met een geheime sleutel, zodat alleen personen met toegang tot deze sleutel de benodigde hash kunnen berekenen (voor de kenners: we gebruiken HMAC-SHA256).

    Logdata veilig opgeslagen door middel van hashing
    Met een hash-algoritme kan voor een gegeven tekst (zoals een domeinnaam) een schijnbaar willekeurige code worden berekend. Dit werkt echter niet de andere kant op: voor een code kan je niet eenvoudig terugrekenen welke tekst hierbij hoort. Je kan dus wel makkelijk berekenen dat voor surf.nl de bijbehorende hash 92A406…683887 is, maar je kan dus niet zomaar achterhalen welke domeinnaam hoort bij de hash C75871…93D2B2.

    Het systeem slaat de informatie over de gebruiker versleuteld op – met behulp van het cryptografische algoritme ChaCha20Poly1305. Deze informatie kan alleen worden ontsleuteld als deze gebruiker een domeinnaam heeft opgevraagd waarnaar gezocht wordt in het systeem. De sleutel die wordt gebruikt om de gebruikersinformatie op te slaan, berekenen we namelijk door een geheime sleutel te combineren met de opgevraagde domeinnaam. Als je deze domeinnaam niet weet, kan je de benodigde sleutel niet achterhalen en de gebruikersinformatie dus niet ontsleutelen.

    In Figuur 1 zie je een voorbeeld van de informatie die we opslaan. De opgevraagde domeinnaam (malware.evil.nl) en het hoofddomein (evil.nl) worden zodanig opgeslagen dat deze niet meer kunnen worden ontsleuteld (ook niet met de rode respectievelijk groene sleutel) en alleen kunnen worden gebruikt voor het opzoeken van data. Om de informatie over de client (192.0.2.123) die de domeinnaam heeft opgevraagd te kunnen ontsleutelen is zowel de blauwe sleutel als de opgevraagde hoofddomeinnaam (evil.nl) nodig om de benodigde gele sleutel te kunnen berekenen. Het is later dus wel mogelijk om op te zoeken wie malware.evil.nl heeft opgevraagd, maar niet welke domeinnamen de gebruiker met IP-adres 192.0.2.123 allemaal heeft opgevraagd.

    De domeinnaam malware.evil.nl wordt gehasht samen met een rode sleutel, evil.nl wordt gehasht samen met een groene sleutel, evil.nl wordt met een paarse sleutel combineerd tot een gele sleutel die vervolgens wordt gebruikt om het IP adres 192.0.2.123 te versleutelen. Deze hashes en versleutelde data worden samen met het tijdstip opgeslagen in de database.

    Procedurele maatregelen om privacy van eindgebruikers te beschermen

    Verder treffen we nog een aantal procedurele maatregelen om de privacy van eindgebruikers zo veel mogelijk te beschermen: alleen leden van SURFcert krijgen toegang tot het systeem, en alle zoekopdrachten in het systeem worden bijgehouden in een auditlog. Dit auditlog zal regelmatig worden nagelopen, waarbij degene die de zoekopdracht heeft uitgevoerd moet verantwoorden waarom deze is uitgevoerd. Verder worden alle logdata maximaal negentig dagen bewaard.

    Met deze technische en procedurele maatregelen hebben we een systeem ontwikkeld dat SURFcert de mogelijkheden geeft om beveiligingsproblemen op te sporen, terwijl we tegelijk de privacy van de gebruikers zoveel mogelijk beschermen doordat het gedrag van individuele gebruikers niet kan worden gevolgd.

    Meer weten?

    Wil je meer weten over dit systeem, neem dan contact met me op via joeri.deruiter@surf.nl.

  • Programma Workflow Orchestrator – Codesprint

    Programma Workflow Orchestrator – Codesprint

    Afgelopen week heeft het netwerkautomatiseringsteam van SURF een vruchtbare week doorgebracht in Berkeley (CA) samen met collega’s van ESnet en Géant. Als workflow orchestrator partnerleden zijn SURF, ESnet en Géant toegewijd aan het workflow orchestrator software ecosysteem en werken ze samen aan het creëren van een nuttige set tools voor partijen die geïnteresseerd zijn in het automatiseren van hun netwerk.

    Eerste codesprint

    Als gebruikers van de orchestrator software delen we de behoefte om continu te verbeteren en meer functies toe te voegen. Het komende jaar zijn SURF, ESnet en Geant van plan om 12 sprints uit te voeren om aan de achterstand te werken. Dit gebeurt door het vormen van een (virtueel) team van software engineers die samen gaan werken aan issues die als belangrijk zijn geïdentificeerd. De codesprint is een belangrijke stap in het delen van kennis en het opstarten van dit proces.

  • Digitale koppositie Nederland onder druk

    Digitale koppositie Nederland onder druk

    Van oudsher is Nederland een belangrijk digitaal knooppunt in Europa. De zeekabels komen in Nederland aan land en maakten van Amsterdam een digitaal knooppunt. Dat had een enorme aantrekkingskracht op partijen die een sterk digitaal netwerk nodig hebben, zoals onderwijs en onderzoek. De koppositie die Nederland al een hele tijd heeft, staat nu onder druk. Hoe komt dat? Waarom is het erg als we die positie verliezen? En wat is er voor nodig om deze belangrijke positie niet te verliezen?

    Beluister deze aflevering van SURFsounds met Peter van Burgel, CEO van Amsterdam Internet Exchange (AMS-IX) en Alexander van der Hil, international policy en strategy advisor bij SURF.

    https://podcast.surf.nl/@SURFsounds/episodes/digitale-koppositie-nederland-onder-druk-nuzey

    https://open.spotify.com/show/6IcYxQzB6wCCvxFJL34gzM

    https://podcasts.apple.com/nl/podcast/surf-sounds/id1682253126

    https://soundcloud.com/surf_sounds/digitale-koppositie-nederland-onder-druk/s-SdMgOCkefJM?si=140fbcd731d549088f76a46ff4fd0d87&utm_source=clipboard&utm_medium=text&utm_campaign=social_sharing

    Via: https://www.surf.nl/podcast/digitale-koppositie-nederland-onder-druk

  • Network dashboard goes electric!

    Network dashboard goes electric!

    Afgelopen zomer is onder de motorkap van het Network Dashboard een enorme transitie doorgevoerd. Op het oog lijkt er weinig gewijzigd, maar vooral als je rond klikt, zul je nu merken dat het veel sneller werkt. De grote ombouw van het netwerkdashboard stond al lang op onze verlanglijst, omdat door de complexe autorisatie regels het…

    De architectuur van het Network Dashboard is compleet op de schop gegaan door niet meer realtime alle data uit verschillende systemen (orchestrator/ipam/CMDB/CRM/jira) te verzamelen, maar alle statische data vooraf al klaar te zetten in een document in de replica set. Hierdoor hoeven we in plaats van 500 losse API-calls, slechts een paar zeer snelle call te doen. Alleen de verkeersgrafieken en health status van de diensten worden nu live uit de influx database gehaald.

    Hoe snel is zo’n replica set bijgewerkt?

    Het klaarzetten van deze documenten in de replica set, wordt getriggerd bij elke wijziging op een subscription die de Workflow Orchestrator (zie workfloworchestrator.org)uitvoert op een dienst. Ook wordt elke nacht de replica gerefresht. Hierdoor kunnen we de data integriteit tussen orchestrator en replica set garanderen. Alleen bij realtime changes op het netwerk of door bij self-service acties zal de replica set kortstondig achterlopen op de werkelijke `state`zoals vastgelegd in de Workflow Orchestrator. Bijvoorbeeld het aanpassen van een customer alias is daarmee niet instantaan zichtbaar in het netwerk dashboard, maar moet verwerkt worden in de replica set. Eenvoudige wijzigingen duren ~4 seconden, terwijl grotere wijzigingen gemiddeld vele malen langer kunnen duren. Op dit moment werken we nog aan het verbeteren van de automatisch refresh van de pagina’s na self service acties, tot die tijd zal je na een wijziging een pagina handmatig moeten verversen om de laatste up-to-date informatie te zien.

    SURFdomeinen zal begin volgend jaar beschikbaar komen in het netwerk dashboard. Vanwege de complexe migratie van domeinnamen en zones wordt deze gefaseerd uitgevoerd. De product manager van SURFdomeinen zal hierover tijdig communiceren.

    Tot slot hebben we een nieuwe look-and-feel geïntroduceerd met een vernieuwde landingspagina, waarop alle netwerkdiensten van het standaard netwerkportfolio overzichtelijk in één tegel worden gepresenteerd.

  • Lichtpaden 2.0

    Lichtpaden 2.0

    Al heel lang leveren we SURFlichtpaden. Tot nu toe waren dit altijd ethernet-diensten met twee eindpunten. SURFlichtpaden hadden we in grofweg vier smaken; protected of redundant en op een Single Service Port (SSP, untagged) of Multi Service Port (MSP, tagged). Nu, met het nieuwe SURF-netwerk kunnen we nieuwe mogelijkheden toevoegen aan de SURFlichtpaden. Zo bieden we nu een multipoint-variant (ofwel L2VPN) aan en zijn er meer mogelijkheden op het gebied van redundantie en resiliency. Lees hier wat we tot nu toe hebben gedaan en wat we van plan zijn.

    SURFlichtpaden hebben altijd een behoefte ingevuld om instellingen, of dislocaties van een instelling, met elkaar te verbinden. SURFlichtpaden worden dan ook vaak ingezet voor onderzoeksdoeleinden of voor de interne bedrijfsvoering. De laatste jaren zijn daar ook verbindingen met cloudproviders in alle soorten en maten bij gekomen, denk aan IaaS, SaaS, CaaS, DaaS; kortom *aaS. Voor bedrijfsvoering met *aaS-providers is vaak een hoge mate van beschikbaarheid van diensten noodzakelijk. Daarom zijn lichtpaden met dat doel behoorlijk populair geworden.

    Maar lichtpaden hebben een aantal beperkingen. Ten eerste zijn ze Point-2-Point. Dat geeft controle, maar kan ook complex worden als je veel locaties of netwerken met elkaar wilt verbinden, omdat er veel individuele lichtpaden nodig zijn. Daarnaast is het lastig wanneer je over dergelijke lichtpaden redundante VLAN’s wilt doortrekken naar een cloudprovider. Dat veroorzaakt een groot risico op ethernet-loops, wat instabiliteit van het netwerk kan veroorzaken. Hier konden we in SURFnet7 geen goede oplossing voor bieden.

    Met de migratie van SURFnet7 naar het nieuwe SURF-netwerk zijn we overgestapt van PBB-TE naar EVPN over MPLS. EVPN is een technologie geheel ge-ent op IP en ethernet-netwerken. Hierdoor heeft het ook nieuwe mogelijkheden om onze lichtpad-diensten door te evolueren naar de huidige tijd en behoeften van de aangesloten instellingen.

    Wat is er dan nieuw?

    Inmiddels is de migratie naar het nieuwe SURF-netwerk bijna afgerond. Heb je MSP’s (Multi Service Ports) die al naar het nieuwe SURF-netwerk zijn gemigreerd, dan kunnen wij daar nu multipoint lichtpaden aanbieden (L2VPN’s). Stel dat je een VLAN over het lichtpad hebt lopen tussen twee locaties, dan kun je er nu eenvoudig een derde locatie aan toevoegen. Zo heb je drie locaties met elkaar verbonden zonder dat dat een hele wirwar aan lichtpaden moet bouwen. Binnen het nieuwe SURF-netwerk netwerk neemt het verkeer ook altijd de meest optimale route door het netwerk.

    Om het geheel te visualiseren laten we in het onderstaande voorbeeld zien hoe we drie netwerken met elkaar willen verbinden over een VLAN met de MSP’s. Ieder netwerk (of locatie) is verbonden met één MSP. Er kunnen daardoor geen ethernet-loops ontstaan, omdat elke locatie één koppeling heeft. Maar voor bedrijfskritische toepassingen is er helaas geen redundantie. Wanneer er iets gebeurt in dit scenario kunnen één of meerdere locaties bij een storing of werkzaamheden geïsoleerd raken.

    Figuur 1: niet redundant L2VPN
    Figuur 1: niet redundant L2VPN

    Liefst zouden we natuurlijk ieder netwerk/locatie kunnen aansluiten op 2 MSP’s, voor meer redundantie. Maar wanneer we dit zomaar doen, ontstaan er gegarandeerd ethernet-loops., met verstoringen als gevolg. Zie hiervoor onderstaand voorbeeld. Ethernet heeft uit zichzelf geen looppreventie-mechanisme. Met als gevolg dat wanneer een loop ontstaat, pakketten eindeloos blijven rondzingen tot de loop onderbroken wordt. In SURFnet7 konden we een dergelijk scenario daarom niet aanbieden.

    Figuur 2 Ethernet loops in een redundant L2VPN
    Figuur 2 Ethernet loops in een redundant L2VPN

    Binnen EVPN (het protocol wat in het nieuwe SURF-netwerk gebruikt wordt voor lichtpaden en L2VPN’s) bestaan een aantal mechanismen die ervoor zorgen dat ethernet-loops niet meer kunnen ontstaan. Eén daarvan kunnen we nu aanbieden op het nieuwe SURF-netwerk: ‘Single-Active multihoming’ op een VLAN-service. Hiermee kunnen we een VLAN-service configureren op meerdere MSP’s op dezelfde locatie. Deze MSP’s worden gegroepeerd in een ESI (Ethernet Segment Identifier) en in deze ESI is altijd maar 1 poort actief. Wanneer de actieve poort down gaat wordt onmiddellijk de andere poort actief en deze nieuwe poort zal het verkeer forwarden. Bij de instelling zal MAC-learning ervoor zorgen dat alle MAC-adressen verplaatsen naar de nieuwe actieve poort. Dit gebeurt in slechts 1-2 seconden. In onderstaande figuur zie je hoe dat er uit zou zien. Daar zie je dat steeds 1 poort in een ESI-groep actief is en er een loopvrije topologie bestaat.

    Figuur 3 Loop preventie mbv single-active multihoming in L2VPN
    Figuur 3 Loop preventie mbv single-active multihoming in L2VPN

    Mogelijke use cases

    Nu is bovenstaande een vrij technisch verhaal. Mogelijk gaat het meer leven wanneer we wat mogelijke use cases toelichten.

    EduVPN scenario

    eduVPN is een VPN-dienst van SURF om medewerkers en studenten van een instelling thuis of op afstand veilig te laten werken. Op dit moment zijn we aan het testen of we de eduVPN-dienst betrouwbaarder kunnen maken met behulp van multihomed L2VPN, dat meer resiliance toevoegt op de eduVPN dienst. Dit scenario ziet er als volgt uit:

    De eduVPN-servers draaien in twee datacenters in Amsterdam en worden met een lichtpad verbonden met de instelling. De eduVPN-dienst kan op dit moment alleen maar met statische routes verkeer uitwisselen tussen de instelling en eduVPN. Hierdoor is het niet mogelijk om met traditionele lichtpaden een redundant scenario te maken van deze dienst. Met gebruik van het ESI-mechanisme in de L2VPN kan dit wel.

    Figuur 4 Usecase EduVPN
    Figuur 4 Usecase EduVPN

    Bovenstaand scenario laat bovenin de eduVPN-dienst zien. De eduVPN-server kan bij outages verplaatst worden tussen datacentra. Bij de eduVPN -instelling wordt resilience bereikt door het gebruik van VRRP (of een variant hierop, zoals HSRP).

    Twin datacenter plus cloud IaaS provider

    Wanneer een instelling meerdere datacentra heeft en ook gebruik wil maken van een IaaS-provider, kan het gebruik van een L2VPN redundantie bieden. Dit kan gebruikt worden om bijvoorbeeld services naar de cloud provider te migreren of om bepaalde zaken uit te besteden. Hierdoor kan de behoefte ontstaan om de VLAN’s in de datacentra door te kunnen trekken naar de IaaS provider. Hierdoor kunnen systemen verplaatst worden zonder dat er omgenummerd hoeft te worden. Een dergelijk scenario zou er als volgt uit kunnen zien:

    Ieder datacenter is dubbel aangesloten en heeft 2 poorten in een ESI-groep. Hierdoor ontstaan er geen loops en is voldoende redundantie. De L2VPN kan een bundel van VLAN’s bevatten.

    Je krijgt dan het scenario in figuur 3. Waarbij 1 van de locaties een cloudprovider kan zijn

    Toekomst

    Met deze functionaliteit denken we een stap in de goede richting te hebben gezet om functies toe te voegen aan onze lichtpad-diensten die instellingen kunnen helpen.

    EVPN kent nog meer mogelijkheden die wij kunnen benutten om, hopelijk, nog beter aan te sluiten bij de behoeften van instellingen.

    Binnen de lichtpad-diensten hopen wij in de toekomst ook nog link-bundeling te kunnen doen op basis van LACP over meerdere chassis’ (MC-LAG). Veel instellingen gebruiken al een vorm van Virtual-Chassis of VSS voor redundantie. MC-LAG zou hier mooi op aan kunnen sluiten. Hierdoor kunnen beide interfaces die een ESI vormen tegelijk actief zijn.

    Figuur 5 Multi-chassis link aggregation
    Figuur 5 Multi-chassis link aggregation

    Daarnaast zijn we bezig met het ontwikkelen van een L3VPN dienst. L3VPN is een virtuele router die op SN8 geconfigureerd kan worden. Deze virtuele router kan bijvoorbeeld gebruikt worden om meerdere cloud providers (MS Azure of Amazon AWS) op efficiënte wijze met een instellingsnetwerk te koppelen.

    Figuur 6 L3VPN multicloud voorbeeld
    Figuur 6 L3VPN multicloud voorbeeld

    Heb je ideeën of vragen over deze nieuwe mogelijkheden en functionaliteiten? Of heb je suggesties die ons kunnen helpen de dienst verder te ontwikkelen? Neem dan contact met mij op!