De firewall
Applicatiebeheer — deel 14
Maandag. De portier bewaakt de voordeur, maar binnen kan iedereen bij iedereen. Joost legt de vraag voor die hij het hele weekend meedroeg, en krijgt een eerlijk antwoord.
Concepts
Buiten staat bewaakt, de voordeur heeft een portier. Vandaag de andere kant van het netwerk: niet wie er van buiten in mag, maar wie er binnen, van kamer tot kamer, met wie mag praten.
"Tussen die twee machines liep niks," zei Joost, en hij tekende met zijn vinger twee blokjes op de tafel. "Niks, tenzij ik er een regel voor had geschreven. Deze mag met die praten, op deze poort, en verder dicht. Alles wat ik niet expliciet toestond, was verboden. Dat was de hele filosofie. Dicht, tenzij."
Hij was er maandagochtend mee binnengekomen, het was blijven hangen het hele weekend, en nu zat hij het Ravi voor te doen alsof hij weer achter zijn oude firewall zat.
"Ik heb er halve dagen aan besteed," ging hij door. "Een crime om bij te houden. Maar de gedachte erachter was ijzersterk. Werd een machine gehackt, dan kon de aanvaller nergens heen, want er liep niks tenzij ik het had toegestaan. De inbreker zat in één kamer en kon geen kant op."
Ravi liet hem uitpraten, en toen zei hij het, kalm, zonder het mooier te maken dan het was. "En precies daarom moet ik je vandaag iets eerlijks vertellen. Want hier is het andersom dan in jouw oude wereld."
Joost keek op.
"Standaard praat hier iedereen met iedereen. Elke kamer kan elke andere kamer bereiken. De voorkant kan rechtstreeks bij de database. Een nieuw dingetje dat je vanmiddag binnenhaalt, kan zo bij de scores. Er staat geen enkele muur tussen de kamers, tenzij jij er een neerzet." Ravi liet het even hangen. "Weet je nog dat ik bij de aparte kamers zei dat ze namen en rechten scheiden, maar niet vanzelf het netwerk?"
Joost knikte langzaam. Dat was een paar hoofdstukken terug, maar het was blijven hangen, juist omdat het hem toen al had verbaasd. "Je zei dat de kamers niet vanzelf het netwerk dichtzetten. Dat heb ik onthouden. Het wrong toen al."
"Het wrong terecht. Voor iemand met jouw verleden is dit raar. Jij komt uit een wereld waar dicht het uitgangspunt was."
"Bij mij was het dicht, tenzij. Hier is het open, tenzij ik het dichtzet." Joost wreef over zijn kaak. "Dat is precies omgekeerd aan alles wat ik gewend ben. En eerlijk gezegd bevalt het me niet."
"Het hoort je ook niet te bevallen," zei Ravi. "Het is een keuze die het systeem maakt voor het gemak. Het is makkelijk als alles meteen werkt, als elke dienst elke andere dienst kan vinden zonder dat je eerst regels schrijft. Voor een testopstelling is dat prettig. Maar voor een echt platform met spelersgegevens is het precies wat jij voelt: het deugt niet. En daarom kun je het veranderen."
"Vertel."
"Je kunt een regel neerzetten die zegt: deze kamer mag alleen verkeer ontvangen van die bepaalde andere kamer, en van niemand anders." Ravi wees naar de twee blokjes die Joost net had getekend en trok er een pijl tussen. "Je zegt bijvoorbeeld: de database mag alleen aangesproken worden door de voorkant. Niet door de scores, niet door dat nieuwe dingetje, niet door wat er verder ook draait. Alleen de voorkant. En zodra die regel er staat, is al het andere verkeer naar de database geblokkeerd. De inbreker die in een andere kamer zit, kan er niet meer bij."
"Dat," zei Joost langzaam, "is mijn firewall-regel. Letterlijk mijn firewall-regel."
"Dat is je firewall-regel. Dit ding, een regel die zegt wie wél met wie mag praten, heet een NetworkPolicy. Onthoud het woord. Maar het is precies wat jij twintig jaar schreef. Dicht, tenzij toegestaan, alleen dan op het niveau van de kamers in plaats van de machines." Hij hief een vinger. "Met één voetnoot: zo'n regel werkt alleen als het netwerk eronder hem ook echt handhaaft. Niet elk clusternetwerk doet dat. Bij ons wel, anders zou je een muur tekenen die niemand bewaakt."
Joost zat even stil, en er ging van alles door hem heen. Want dit was niet wéér iets wat hij al kende en netjes gemaakt teruggevonden had. Dit was iets eerlijkers. Dit was het systeem dat iets níét standaard goed deed, naar zijn smaak, en dat hem de gereedschappen gaf om het zelf recht te zetten, op de manier die hij al twintig jaar in zijn vingers had.
"Maar er zit een addertje onder," zei hij. "Dat voel ik. Als alles standaard open staat, en het pas dichtgaat als ik er een regel voor schrijf."
"Vertel jij het maar," zei Ravi. "Je bent er bijna."
"Dan is er geen muur tot ik hem zelf bouw." Joost keek hem aan. "Als ik geen enkele regel schrijf, staat alles wagenwijd open. De muur ontstaat niet vanzelf. Hij ontstaat pas op het moment dat ik hem neerzet. En als ik denk dat hij er is terwijl ik hem nooit heb gebouwd, dan loop ik rond met een vals gevoel van veiligheid."
Het bleef even stil aan tafel.
"Dat," zei Ravi, "is het belangrijkste wat je vandaag kunt meenemen. Belangrijker dan het woord. In jouw oude wereld was dicht het uitgangspunt en bouwde je openingen. Hier is open het uitgangspunt en bouw je muren. Wie dat niet weet, denkt dat zijn database veilig achter een muur staat terwijl er nooit een muur is gebouwd. Er staat geen muur tenzij jij er een zet. Punt."
Hij voegde er nog iets aan toe. "En als je écht wilt wat jij vroeger had, dicht als uitgangspunt, dan zet je over het hele cluster één regel die alles weigert wat je niet hebt toegestaan. Dat is de zware versie. Dan staat er overal een muur en hak je alleen de deuren waar je ze nodig hebt. Bij de meeste platforms doen ze dat uiteindelijk. Maar je moet het zelf doen, want vanzelf gebeurt het niet."
"Er staat geen muur tenzij ik er een zet," herhaalde Joost. Hij liet het bezinken. Het was kraakhelder, en het was het soort ding dat hij nooit meer zou vergeten, want het ging recht in tegen alles wat zijn oude wereld hem had geleerd.
Ze gingen aan het werk. Joost zette de eerste regel neer voor de database. Alleen de voorkant mag erbij, niemand anders. Hij merkte dat zijn handen het bijna vanzelf deden, want de gedachte was van hem, al twintig jaar. Dicht, tenzij. Hij testte het. De voorkant kwam erbij. Hij liet voor de zekerheid een ander onderdeel proberen of het er ook bij kon, een ding dat er níét bij hoorde, en het werd netjes geweigerd. Geblokkeerd. Precies zoals hij het had bedoeld.
Hij leunde achterover en keek ernaar, en er kwam een tevredenheid die dieper zat dan de keren ervoor. Niet de tevredenheid van iets nieuws begrepen. De tevredenheid van een vakman die een gereedschap in handen krijgt waar hij twintig jaar naar had verlangd, eindelijk netjes uitgevoerd.
"Hoeveel van die regels heb ik vroeger met de hand geschreven," zei hij, half tegen zichzelf. "Honderden. En altijd met de angst dat ik er ergens een vergeten was, of een te ruim had gezet."
"Die angst mag je houden," zei Ravi droog. "Die hoort erbij. Een te ruime regel is hier net zo goed een gat als bij jou vroeger. Het verschil is alleen waar je begint. Maar de zorgvuldigheid die je nodig had, die heb je nog steeds nodig. Daar verandert dit niks aan."
"Goed," zei Joost, en het meende het. "Dan ben ik blij dat ik die zorgvuldigheid al heb."
Aan het eind van de dag stond de eerste muur, en Joost wist al dat er de komende weken meer zouden volgen, kamer voor kamer. Hij vond dat geen vervelend vooruitzicht. Het was werk dat hij snapte, op een plek waar het systeem hem voor het eerst niet de gemakkelijke weg had voorgespiegeld, maar gewoon eerlijk had gezegd: standaard staat het open, en de muur is aan jou.
Hij reed naar huis, en hij dacht aan iets heel anders dat Ravi terloops had genoemd toen ze opruimden. Over wat er gebeurde met gegevens die bewaard moesten blijven. Want al die kamers, hoe goed bewaakt ook, draaiden op kopieën die kwamen en gingen. En als zo'n kopie omviel en door een verse werd vervangen, een verse die blanco begon, wat gebeurde er dan met wat erin had gestaan? Die scores, bijvoorbeeld. Joost wist het antwoord nog niet. Maar het was een goede vraag voor morgen, en hij merkte dat hij hem bijna met plezier liet liggen.