Brandväggar är ett viktigt sätt att säkra kritisk IKT-infrastruktur. Som konfigurerbara off-the-shälf produkter, effektiviteten av en brandvägg är avgörande beroende av både riktigheten av själva genomförandet samt den korrekta konfigurationen. När du testar genomförandet kan göras en gång av tillverkaren, konfigurationen måste testas för varje tillämpning individuellt. Detta är särskilt utmanande eftersom konfigurationen, genomförandet av en brandväggspolicy, i sig är komplex, svårförståelig, administrerad av olika intressenter och därmed svår att validera. I detta dokument presenteras en formell modell av både statslösa och statliga brandväggar (förpackningsfilter), inklusive NAT, på vilka en specifikationsbaserad metod för överensstämmelsetestning tillämpas. Dessutom presenteras en verifierad optimeringsteknik för detta tillvägagångssätt: från en formell modell för statslösa brandväggar, en samling semantikbevarande policytransformeringsregler och en algoritm som optimerar specifikationen med avseende på det antal testfall som krävs för modellens täckning. Vi utökar ett befintligt tillvägagångssätt som integrerar verifiering och testning, dvs. tester och bevis för att stödja konformitetstestning av nätverkspolicyer. Det framlagda tillvägagångssättet stöds av ett testramverk som gör det möjligt att testa verkliga brandväggar med hjälp av de testfall som genereras på grundval av den formella modellen. Slutligen presenteras en rapport om flera större fallstudier. Därför är det för det första viktigt att testa både införandet av en brandvägg och, för det andra, den korrekta konfigurationen för varje användning. Medan den första kan göras en gång för alla av brandväggsleverantören, den senare måste göras av kunden för varje installation. I praktiken försummas ofta en omfattande överensstämmelsetest av brandväggskonfigurationer, även om säkerhetsrisken för fel konfigurationer är hög: NSA fann att olämpliga eller felaktiga säkerhetskonfigurationer (oftast orsakade av konfigurationsfel på lokal basnivå) var ansvariga för 80 procent av flygvapnets sårbarheter. [16, s. 55] En särskild variant av konfigurationsprovning är provning av samlingar av brandväggar och routrar för deras kombinerade beteende. Detta är ett viktigt scenario av minst två olika skäl: För det första är säkerheten för molnerbjudanden (för alla varianter av molntjänster, t.ex. infrastruktur-as-a-service, plattform-as-a-service, programvara-as-a-service) beroende av säkert separerade nätverkssegment och därmed på korrekt konfigurerade routrar och brandväggar. Följaktligen är det tillvägagångssätt som diskuteras i detta dokument tillämpligt på alla molndatacenter och kan stödja alla molnföretag i att erbjuda säkra tjänster till sina kunder. För det andra ändras brandväggspolicyn över tiden, ibland ändrad av olika administratörer, som kan tillhöra olika intressenter som upprätthåller sina egna säkerhetsintressen. Beroende på det konkreta testscenariot kan en brandväggspolicy spela rollen av ett program ('Ska en brandvägg tolka sin konfigurationsfil korrekt?') eller rollen för en policyspecifikation ('Är protokoll x möjligt från a till b?'). För såväl integrationstester som konfigurationstester kan den teknik som presenteras i detta dokument användas för att generera testare för körtid som används i "hardwarein-the-loop"-scenarier under installation och underhåll. Flera metoder för generering av testfall är välkända: medan enhetstestorienterade testmetoder i huvudsak använder förutsättningarna och postvillkoren för systemdriftsspecifikationer, använder sekvenstestinriktade metoder huvudsakligen tidsspecifikationer eller automatiserade specifikationer för systembeteende. Ofta kombinerar brandväggar båda aspekterna: medan brandväggspolicyer är statiska, kan de underliggande nätverksprotokollen bero på protokolltillstånd som vissa policyer är medvetna om. Denna kombination av komplexitet och kritiskhet gör brandväggar till ett utmanande och givande mål för säkerhetstester i den mening som avses i ISO 29199-specifikationen [29, avsnitt 4.36], dvs. överensstämmelsetestning av säkerhetsegenskaper. Även om det finns en överlappning av detekterbara sårbarheter, denna form av överensstämmelse testning kompletterar penetration tester metoder som simulerar en angripare försöker kringgå säkerhetsinfrastrukturer. I detta dokument presenteras en formell modell av brandväggspolicyer som paketfiltreringsfunktioner eller omvandlingar över dem i HOL. Det framlagda tillvägagångssättet kan således omfatta såväl dataorienterad som tidsbunden säkerhetspolitik. På grundval av denna formella modell genererar 11] automatiskt abstrakta testfall. Från det senare kan man härleda en betongprovningsdrivrutin som kan användas både för att testa brandväggsimplementeringar och nätverkskonfigurationer. Samtidigt som tillämpningen av HOL-TESTGEN "out-of-the-box" på denna typ av modell fungerar för mindre politik, det inte skal väl till politik av praktiskt relevant storlek, det vill säga gemensamma regler med flera hundra regler i medelstora företagsnätverk. Situationen förvärras särskilt om det underliggande tillståndet utvecklas över tiden (som i statliga brandväggar). För att övervinna denna tekniska svårighet utvecklas en strategi för politisk omvandling som omvandlar en viss politik till en funktionellt likvärdig, samtidigt som testgenereringens effektivitet förbättras genom storleksordningar. Den teoremprover-baserade metoden gör det möjligt både att formellt bevisa riktigheten i denna politiska omvandling, samt att integrera den i de symboliska beräkningarna av HOL-TESTGEN. Sammanfattande, detta dokument har följande huvudsakliga bidrag: 1. en formell modell av statslösa och ståtliga brandväggspolicyer, ögonblickliga den generiska Unified Policy Framework (UPF) [12], 2. en specifikationsbaserad testgenerering metod som kan användas för att testa korrektheten av brandväggsimplementeringar samt testa att en konkret konfiguration av ett nätverk överensstämmer med en viss policyspecifikation, 3. en policy transformationsmetod som är formellt bevisat korrekt; det visas att öka effektiviteten av metoden med flera storleksordningar, FORMAL FIREWALL Conformance TESTING 3 4. en kombination av enhet och sekvens teststrategier, som ger en effektiv testteknik för stateful brandväggar, och 5. ett domän-specifikt testverktyg byggt på toppen av HOL-TESTGEN som ökar graden av automatisering samt effektiviteten av HOL-TESTGEN. Detta testverktyg tillhandahåller en infrastruktur för testkörning och spårning på verkliga brandväggar och nätverk. Detta dokument utvidgar författarnas tidigare arbete [6, 8, 10, 13, 14] i flera avseenden: först integreras partiella lösningar som tidigare modellerats direkt i HOL i UPF, vilket gör det möjligt att lyfta fram gemensamma principer. För det andra utvidgas brandväggspolicymodellen avsevärt till att omfatta olika nätverksmodeller (adresspresentationer) och genomträngande stöd till NAT. För det tredje läggs en undersökning till om optimeringens roll för de ekvivalensklasser som ligger till grund för testgenerationen. Slutligen ges en empirisk utvärdering av olika aspekter av det optimerade testgenereringsförfarandet. Resten av dokumentet är uppbyggt på följande sätt: efter en introduktion av preliminärerna, dvs. Isabelle/HOL och HOL-TESTGEN-metoden (avsnitt 2), diskuterar vi den formella modellen för statslösa brandväggspolicyer i avsnitt 3. I Avsnitt 5 utvidgar vi denna modell till att omfatta statliga brandväggspolicyer. I avsnitt 4 presenteras omvandlingen av statslösa brandväggspolicyer och diskuteras dess inverkan på de underliggande likvärdighetsklasserna. Före diskussionen om empiriska resultat i Avsnitt 7 beskriver vi vårt områdesspecifika testramverk i Avsnitt 6. Slutligen diskuterar vi tillhörande arbete och drar slutsatser i avsnitt 8. Det presenterade domänspecifika testverktyget samt alla bevis och exempel som presenteras i detta dokument ingår i HOL-TESTGEN-distributionen, som kan laddas ner från webbplatsen: http://www.brucker.ch/projects/hol-testgen/. FORMELL OCH TEKNISKT BAKGRUND Isabelle [34] är ett generiskt teoremtest. Nya objektlogiker kan införas genom att ange deras syntax och naturliga avdrag inferens regler. Bland andra logiker stöder Isabelle första ordningens logik, Zermelo-Fraenkel sätter teori och exempel på kyrkans högre ordning logik HOL, som är grunden för HOL-TESTGEN och som introduceras i detta avsnitt. Dessutom är Isabelle också ett generiskt systemramverk (ungefär jämförbart med Eclipse) som erbjuder redigering, modellering, kodgenerering, dokumentgenerering och (som nämnts) teorembevisningsanläggningar, i den utsträckning som vissa användare använder det precis som programmeringsmiljö för SML eller för att skriva papper över kontrollerat matematiskt innehåll för att generera L A T E X-utmatning. Många användare vet bara teorem bevisspråk Isar för strukturerade bevis och är mer eller mindre omedvetna om att detta är en viss konfiguration av systemet, som lätt kan utökas. Detta är vad HOL-TESTGEN-systemet tekniskt ligger till grund för detta arbete: en utökad Isabelle/HOL-konfiguration som ger specialiserade kommandon för en dokumentcentrerad modellbaserad testgenereringsmetod. Högre ordningslogik (HOL) [2, 17] är en klassisk logik baserad på ett enkelt typsystem. Det ger de vanliga logiska bindväv såsom _ _ _, _ → _, ¬_ samt de objekt-logiska kvantifiers  på x. P x och  på x. P x; I motsats till första ordningens logik kan kvantifierare spänna över godtyckliga typer, inklusive totala funktioner f :: α  och β. HOL är centrerad kring extensiv jämlikhet _ = _ :: α..................................................................................................................................................................................................................................... HOL är mer uttrycksfull än första ordningens logik, eftersom exempelvis induktionsscheman kan uttryckas inom logiken. HOL är baserat på en polymorf typad λ-calculus, kan ses som en kombination av ett programmeringsspråk som SML eller Haskell, och en specifikation språk som ger kraftfulla logiska kvantifiers sträcker sig över elementära och funktionstyper. Isabelle/HOL är en logisk inbäddning av HOL i Isabelle. Det enkla systemet bakom HOL har utökats av Hindley/Milner stil polymorphism med typklasser som liknar Haskell. Isabelle/HOL erbjuder stöd för en viss metodologi för att utvidga givna teorier på ett logiskt säkert sätt: en teoriförlängning är konservativ om den utvidgade teorin är konsekvent förutsatt att den ursprungliga teorin var konsekvent. Konservativa förlängningar kan vara konstanta definitioner, typdefinitioner, datatypdefinitioner, primitiva rekursiva definitioner och välgrundade rekursiva definitioner. sorteringsfasen formaliseras som en funktion som kartlägger en lista över syntaktiska politiska operatörer (kallas kombinatorer) till en lista över kombinatorer sorterade enligt följande principer: • Om det finns en DenyAll, bör det vara på sista plats. • Regler som handlar om samma uppsättning av nätverk bör grupperas tillsammans, med DenyAll kommer efter CandyPort's.
En nyare artikel om HOL-TestGen REF presenterar en komplett fallstudie och etablerar en formell överensstämmelse mellan specifikationerna för programmet under test och de egenskaper som kommer att testas efter optimering.
Formal firewall conformance testing: an application of test and proof techniques
{'venue': 'Softw. Test. Verification Reliab.', 'journal': 'Softw. Test. Verification Reliab.', 'mag_field_of_study': ['Computer Science']}