• Nie Znaleziono Wyników

Index of /rozprawy2/10323

N/A
N/A
Protected

Academic year: 2021

Share "Index of /rozprawy2/10323"

Copied!
186
0
0

Pełen tekst

(1)WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI, INFORMATYKI I ELEKTRONIKI KATEDRA ELEKTRONIKI. Maciej Twardy. Rekonfigurowany system ochrony transmisji danych typu Firewall dla sieci Ethernet o wielkich przepływnościach implementowany w układach FPGA. Rozprawa doktorska. Promotor: Prof. dr hab. inż. Kazimierz Wiatr. Kraków 2010.

(2) Pragnę wyrazić serdeczne podziękowania Panu Profesorowi Kazimierzowi Wiatrowi za inspirację, mobilizację oraz nieocenioną pomoc w powstaniu tej rozprawy.. 2.

(3) Spis treści Wykaz skrótów.........................................................................................................................................5 1.. 2.. Wstęp .............................................................................................................................................10 1.1.. Motywacja ............................................................................................................................. 10. 1.2.. Cel i teza pracy ...................................................................................................................... 12. 1.3.. Organizacja pracy .................................................................................................................. 14. Przegląd rozwiązań systemów ochrony danych przesyłanych w sieciach teleinformatycznych .....................................................................................................................15 2.1.. Wprowadzenie ....................................................................................................................... 15. 2.2.. Klasyfikacja funkcjonalna ..................................................................................................... 16. 2.2.1.. Pasywne filtry pakietów ................................................................................................ 16. 2.2.2.. Dynamiczne filtry pakietów .......................................................................................... 17. 2.2.3.. Bramki typu Circuit-level.............................................................................................. 18. 2.2.4.. Bramki aplikacyjne ....................................................................................................... 19. 2.2.5.. Filtry typu Stateful Inspection ....................................................................................... 20. 2.2.6.. Proxy odcinające ........................................................................................................... 20. 2.2.7.. Rozwiązania typu Air Gap ............................................................................................ 21. 2.2.8.. Filtry typu Deep Packet Inspection ............................................................................... 22. 2.2.9.. Zunifikowane zarządzanie zagrożeniami ...................................................................... 23. 2.3.. 3.. 4.. Klasyfikacja implementacyjna ............................................................................................... 24. 2.3.1.. Firewalle programowe................................................................................................... 24. 2.3.2.. Firewalle sprzętowe....................................................................................................... 34. Stanowisko badawcze ...................................................................................................................45 3.1.. Wprowadzenie ....................................................................................................................... 45. 3.2.. Pakiet Active-HDL ................................................................................................................. 45. 3.3.. Płyta testowo-uruchomieniowa Digilab 2E firmy Digilent ................................................... 47. 3.4.. Płyta testowo-uruchomieniowa XUPV2 firmy Digilent ........................................................ 49. 3.5.. Realizacja dostępowych interfejsów fizycznych dla sieci Fast i Gigabit Ethernet ................ 52. 3.5.1.. Karta Fast Ethernet ........................................................................................................ 53. 3.5.2.. Karta Gigabit Ethernet .................................................................................................. 59. Sprzętowa implementacja kontrolerów MAC dla sieci Ethernet .............................................65 4.1.. Wprowadzenie ....................................................................................................................... 65. 4.2.. Struktura ramki Ethernet ........................................................................................................ 68. 4.2.1.. Charakterystyka pól składowych ramki podstawowej .................................................. 69. 4.2.2.. Format ramki znakowanej ............................................................................................. 71 3.

(4) 4.3.. 4.3.1.. Schemat blokowy .......................................................................................................... 72. 4.3.2.. Tor odbiorczy Rx .......................................................................................................... 73. 4.3.3.. Tor nadawczy TX .......................................................................................................... 77. 4.3.4.. Moduł kontrolny............................................................................................................ 85. 4.3.5.. Wyniki implementacji ................................................................................................... 87. 4.4.. 5.. Sprzętowy kontroler MAC - wersja Fast Ethernet ................................................................. 72. Sprzętowy kontroler MAC - wersja Gigabit Ethernet ........................................................... 88. 4.4.1.. Schemat blokowy .......................................................................................................... 89. 4.4.2.. Tor odbiorczy Rx .......................................................................................................... 90. 4.4.3.. Tor nadawczy Tx ........................................................................................................... 96. 4.4.4.. Moduł kontrolny.......................................................................................................... 104. 4.4.5.. Wyniki implementacji ................................................................................................. 104. Sprzętowy system bezpieczeństwa typu Firewall.....................................................................105 5.1.. Wprowadzenie ..................................................................................................................... 105. 5.2.. Silnik sprzętowego systemu typu Firewall .......................................................................... 109. 5.2.1.. Schemat blokowy ........................................................................................................ 109. 5.2.2.. Kontroler pamięci ramkowej ....................................................................................... 111. 5.2.3.. Moduł generujący deskryptor bezpieczeństwa ............................................................ 113. 5.2.4.. Pamięć wspomagająca cache ...................................................................................... 113. 5.2.5.. Moduł zarządzający..................................................................................................... 117. 5.2.6.. Wyniki implementacji ................................................................................................. 119. 5.3.. Sprzętowy klasyfikator pakietów......................................................................................... 119. 5.3.1.. Schemat blokowy ........................................................................................................ 120. 5.3.2.. Filtr adresów sieciowych ............................................................................................. 122. 5.3.3.. Filtr portów sieciowych ............................................................................................... 126. 5.3.4.. Moduł sterujący ........................................................................................................... 131. 5.3.5.. Wyniki implementacji oraz ocena wydajności sprzętowego klasyfikatora pakietów . 133. 5.4.. Blok ładowania polityki bezpieczeństwa ............................................................................. 135. 5.5.. Aplikacja zarządzająca ........................................................................................................ 140. 5.6.. Ocena wyników implementacji kompletnej zapory sieciowej ............................................. 142. 6.. Podsumowanie ............................................................................................................................149. 7.. Bibliografia..................................................................................................................................154. 8.. Dodatek A – opis funkcji sygnałów poszczególnych modułów sprzętowego systemu Firewall .......................................................................................................................................163. 9.. Dodatek B - szczegółowe wyniki syntezy modułów sprzętowego Firewalla ..........................172. 10. Dodatek C – zawartość płyty CD ..............................................................................................186. 4.

(5) Wykaz skrótów 2sBFCE. - sprzętowa. wersja. algorytmu. klasyfikacji. pakietów. wykorzystującego. wielopoziomowe filtry Bloom’a (ang. Dual Stage Bloom Filter Classification Engine) ABV. - algorytm klasyfikacji pakietów wykorzystujący zagregowane wektory bitowe (ang. Aggregated Bit Vector). ACE. - opracowany przez firmę Xilinx system zarządzania konfiguracją wewnętrzną układów FPGA (ang. Advanced Configuration Environment). ACL. - lista kontroli dostępu (ang. Access Control List). AQT. - algorytm klasyfikacji dwuwymiarowej opracowany przez M. Buddhikot'a et al. (ang. Area-based Quad Tree). ARP. - protokół odnajdywania adresu sprzętowego hosta na podstawie adresu warstwy sieciowej (ang. Address Resolution Protocol). ASIC. - układy scalone projektowane do ściśle określonych zastosowań, zgodnie ze specyfikacją użytkownika (ang. Application Specific Integrated Circuits). B2PC. - algorytm klasyfikacji pakietów bazujący na wielopoziomowych filtrach Bloom’a (ang. Bloom Based Packet Classification). BRGC. - binarny refleksyjny kod Gray’a (ang. Binary-Reflected Gray Code). BVL. - algorytm klasyfikowania pakietów wykorzystujący wektory bitowe (ang. Bit Vector Linear serach). BWL. - typ kompresji zniekształceń sygnału w sieciach Ethernet (ang. Base Line Wander). CAM. - pamięć adresowana zawartością (ang. Content Addressable Memory). CLB. - konfigurowalny blok logiczny dostępny w zasobach układów FPGA Virtex firmy Xilinx (ang. Configurable Logic Blocks). CMOS. - technologia wytwarzania układów scalonych wykorzystująca tranzystory MOS o przeciwnym typie przewodnictwa (ang. Complementary MOS). CRC. - cykliczny kod nadmiarowy (ang. Cyclic Redundancy Check). CSMA/CD - protokół wielodostępu ze śledzeniem stanu medium transmisyjnego (ang. Carrier Sense Multiple Access with Collision Detect) DAC. - model. nieobowiązkowej. kontroli. dostępu. do. systemów. komputerowych. niezależnym. przeszukiwaniu. (ang. Discretionary Access Control) DCFL. - metoda. klasyfikacji. pakietów. bazująca. na. poszczególnych pól, połączonym z kodowaniem i agregacją pośrednich wyników. 5.

(6) kwerend (ang. Distributed Crossproducting Field Labels) DCFLE. - rozszerzona wersja algorytmu DCFL zaproponowana przez G. Jedhe et al. (ang. Distributed Crossproducting of Field Labels Extended). DCM. - blok zarządzania zegarem cyfrowym dostępny w zasobach układów FPGA Virtex firmy Xilinx (ang. Digital Clock Management). DDR. - podwójna szybkość przesyłu danych (ang. Double Data Rate). DIRE. - metoda kodowania zakresów uzależniona od zawartości bazy reguł bezpieczeństwa (ang. Database Independent Range Encoding). DIRPE. - metoda kodowania zakresów niezależna od zawartości bazy reguł bezpieczeństwa (ang. Database Independent Range PreEncoding). DoS. - atak typu odmowa usługi (ang. Denial of Service). DPI. - metoda pełnej (głębokiej) analizy pakietów (ang. Deep Packet Inspection). EDA. - elektroniczne wspomaganie procesu projektowania (ang. Electronic Design Automation). EPP. - standard dwukierunkowego równoległego portu komunikacyjnego urządzeń komputerowych (ang. Enhanced Parallel Port),. ERS. - metoda jawnego wyszukiwania zakresów zaproponowana przez Y. Lou et al. (ang. Explicite Range Serach). E-TCAM. - zmodyfikowana trójwartościowa pamięć adresowana zawartością, pozwalająca na zapisywanie przedziałów (ang. Extended TCAM). FCS. - sekwencja kontrolna ramki Ethernet zawierająca 4-bajtowy kod CRC (ang. Frame Check Sequence). FIFO. - kolejka, liniowy bufor danych (ang. First In, First Out). FIS-tree. - algorytm klasyfikacji pakietów wykorzystujący zmodyfikowaną wersję drzewa odcinków (ang. Fat Inverted Segment tree). FPGA. - układy programowalne o architekturze matrycowej (ang. Field Programmable Gate Array). FSM. - automat skończony (ang. Finite State Machine). FTP. - protokół transferu plików (ang. File Transfer Protocol). GMII. - gigabitowy interfejs komunikacyjny niezależny od typu medium fizycznego (ang. Gigabit Media Independent Interface). GOT. - algorytm klasyfikacji pakietów bazujący na strukturach typu trie opracowany przez V. Srinivasan’a et al. (ang. Grid-Of-Tries). GPP. - procesor ogólnego przeznaczenia (ang. General Purpose Processor). GUI. - graficzny interfejs użytkownika (ang. Graphical User Interface). HiCuts. - heurystyczny algorytm klasyfikacji pakietów opracowany przez P. Gupta et al. (ang. Hierarchical Intelligent Cuttings) 6.

(7) http. - protokół przesyłania dokumentów hipertekstowych (ang. Hypertext Transfer Protocol). ICMP. - internetowy protokół komunikatów kontrolnych wykorzystywany w diagnostyce sieci oraz trasowaniu pakietów (ang. Internet Control Message Protocol). IDS. - system wykrywania włamań (ang. Intrusion Detection System). IOS. - system operacyjny urządzeń sieciowych firmy Cisco (ang. Internetwork Operating System). IP. - protokół komunikacyjny warstwy sieciowej modelu OSI (ang. Internet Protocol). IP-Core. - elementy biblioteczne o określonej funkcjonalności (ang. Intellectual Property Core). IPS. - system zapobiegania włamaniom (ang. Intrusion Prevention System). ISO/OSI. - model odniesienia przeznaczony do łączenia systemów otwartych (ang. International Organization for Standardization / Open System Interconnection Reference Model). ISP. - dostawca usług internetowych (ang. Internet Service Provider). JTAG. - nazwa standardu IEEE 1149.1. definiującego protokół używany do testowania. połączeń na płytkach drukowanych oraz diagnostyki układów cyfrowych (ang. Joint Test Action Group) LAN. - lokalna sieć komputerowa (ang. Local Area Network). LCA. - najniższy wspólny przodek w strukturze danych typu drzewo (ang. Lowest Common Ancestor). LDPS. - tryb pracy układu PHY redukujący pobieraną moc (ang. Link Down Power Saving). LED. - dioda elektroluminescencyjna (ang. Light-Emitting Diode). LRU. - najdawniej używane wpisy w tablicy połączeń Firewalla (ang. Last Recently Used). LSB. - najmniej znaczący bit w słowie (ang. Least Significant Bit). LUT. - tablica spełniająca rolę tablicy wartości funkcji logicznej (ang. Look-Up-Table). MAC. - kontroler dostępu do sieci Ethernet (ang. Media Access Control). MAC. - obligatoryjny model ochrony systemów komputerowych (ang. Mandatory Access Control). MAU. - łącze interfejsu dopasowującego do typu medium fizycznego (ang. Media Attachment Unit). MDC. - linia zegarowa interfejsu MDIO (ang. Management Data Clock). MDI. - element MAU zapewniający właściwe połączenie fizyczne oraz elektryczne z medium transmisyjnym (ang. Medium Dependent Interface). MDIO. - typ szeregowego interfejsu zarządzającego układami PHY (ang. Management Data Input/Output). MDIX. - odmiana MDI z zamienionymi parami przewodów (ang. MDI crossover). MGT. - standard gigabitowego portu komunikacyjnego (ang. Multi-Gigabit Transceiver). MII. - w modelu ISO/OSI interfejs komunikacyjny niezależny od typu medium fizycznego 7.

(8) (ang. Media Independent Interface) MLS. - wielopoziomowy model bezpieczeństwa systemów komputerowych (ang. MultiLevel Security). MLT-3. - standard kodowania sygnałów (ang. Multi-Level Transmit). Mpps. - jednostka wydajności przetwarzania danych wyrażona w milionach pakietów na sekundę (ang. Mega packets per second). MSB. - najbardziej znaczący bit w słowie (ang. Most Significant Bit). MTU. - maksymalny rozmiar datagramu w protokole transportowym (ang. Maximum Transmission Unit). NIC. - karta interfejsu sieciowego (ang. Network Interface Card). NRZ. - standard kodowania sygnałów (ang. Non Return to Zero). NRZI. - standard kodowania sygnałów (ang. Non Return to Zero Inverted). P2C. - metoda równoległej klasyfikacji pakietów opracowana przez J. Lunteren'a et al. (ang. Parallel Packet Classification). PAD. - sekwencja bitów uzupełniających ramkę Ethernet do minimalnej wymaganej standardem długości (ang. padding). PCS. - podwarstwa fizycznego kodowania sygnału w modelu ISO/OSI (ang. Physical Coding Sublayer). PHY. - urządzenie warstwy fizycznej w modelu ISO/OSI odpowiedzialne za obsługę połączenia z medium komunikacyjnym w sieci Ethernet (ang. Physical Layer Device). PLL. - pętla sprzężenia fazowego (ang. Phase-Locked Loop). PMA. - przyłącze medium fizycznego w modelu ISO/OSI (ang. Physical Medium Attachment). PMD. - podwarstwa. modelu. ISO/OSI. odpowiedzialna. za. transmisję. oraz. odbiór. poszczególnych bitów z medium fizycznego (ang. Physical Medium Dependent) RAM. - pamięć o dostępie swobodnym (ang. Random Access Memory). RARP. - protokół odnajdywania adresu warstwy sieciowej hosta na podstawie adresu sprzętowego (ang. Reverse Address Resolution Protocol). RBAC. - model bezpieczeństwa systemów komputerowych bazujący na rolach przydzielanych użytkownikom (ang. Role-Based Access Control). RFC. - heurystyczny algorytm klasyfikacji pakietów opracowany przez P. Gupta et al. (ang. Recursive Flow Classification). RGMII. - odmiana interfejsu GMII o zredukowanej liczbie linii sygnałowych (ang. Reduced GMII). SATA. - szeregowa magistrala komputerowa służąca komunikacji z urządzeniami pamięci masowej (ang. Serial Advanced Technology Attachment) 8.

(9) SDRAM. - synchroniczna dynamiczna pamięć RAM (ang. Synchronous Dynamic RAM). SFD. - znacznik początku ramki Ethernet (ang. Start Frame Delimiter). SMA. - typ złącza koncentrycznego (ang. SubMiniature version A). SMB. - protokół współdzielenia plików w sieci Microsoft Network (ang. Server Message Block). SMD. - element elektroniczny przystosowany do montażu powierzchniowego (ang. Surface Mount Device). SNI. - szeregowy interfejs sieciowy (ang. Serial Network Interface). SOI. - flaga zakończenia transmisji danych (ang. Start Of Idle). SRGE. - algorytm niezależnego od kontekstu bazy reguł klasyfikowania pakietów wykorzystujący kod BRGC (ang. Short Range Gray Encoding). TCAM. - trójwartościowa pamięć adresowana zawartością (ang. Ternary Content Addressable Memory). TCP. - strumieniowy protokół komunikacyjny warstwy transportowej modelu OSI (ang. Transmission Control Protocol). TE. - model bezpieczeństwa systemów komputerowych bazujący na kontroli typów obiektów(ang. Type Enforcement). TOE NIC. - kontroler NIC wyposażony w sprzętowe wspomaganie obsługi protokołów TCP/IP (ang. TCP/IP Offload Engine Network Interface Card). TP-PMD. - podwarstwa obsługi medium transmisyjnego typu skrętka miedziana w modelu ISO/OSI (ang. Twisted Pair Physical Medium Dependent Sublayer). UDP. - bezpołączeniowy protokół komunikacyjny zlokalizowany w warstwie transportowej modelu ISO/OSI (ang. User Datagram Protocol). UTM. - system. zunifikowanego. zarządzenia. zagrożeniami. (ang.. Unified. Threat. Management) VBA. - język programowania zaimplementowany w aplikacjach pakietu Microsoft Office (ang. Visual Basic for Applications). VHDL. - język opisu sprzętu (ang. Very High Speed Integrated Circuits Hardware Description Language). VPN. - wirtualna sieć prywatna (ang. Virtual Private Network). WAN. - rozległa sieć komputerowa (ang. Wide Area Network). WSC4VB. - biblioteka funkcji obsługi komunikacji szeregowej dla języka VBA (ang. Windows Standard Serial Communications Library for Visual Basic). 9.

(10) 1. Wstęp 1.1.. Motywacja Metody ochrony krytycznych danych w firmach i instytucjach podlegają ciągłej ewolucji,. powodowanej zmianami wymogów formalnych oraz postępem technologicznym w obszarze przetwarzania i przechowywania informacji. Powszechne wykorzystanie systemów komputerowych, postępujący proces cyfryzacji treści wraz z popularyzacją technologii sieciowej transmisji danych, doprowadził do sytuacji, w której pierwotne mechanizmy bezpieczeństwa, oparte głównie o środki fizyczne i procedury administracyjne, przestały należycie spełniać swe zadanie. Ewolucyjne zmiany dotknęły także informacji samej w sobie – stała się ona strategicznym dobrem wymagającym szczególnej ochrony. Nieuprawnione wykorzystywanie poufnych zasobów, ich niekontrolowane „przecieki”, mogłyby bowiem wywołać nieodwracalne szkody z punktu widzenia interesów organizacji zarówno naukowych, jak również publicznych i komercyjnych. Globalna sieć Internet jest z jednej strony nieocenionym narzędziem służącym wymianie myśli i wiedzy we współczesnym świecie. Dla organizacji komercyjnych stanowi ona platformę efektywnego prowadzenia działalności gospodarczej, umożliwiając wzajemną komunikację kluczowych aplikacji biznesowych, niezależnie od lokalizacji geograficznej poszczególnych jednostek. Z drugiej strony tak ogromny potencjał Internetu daje dużej liczbie użytkowników dostęp do współdzielonych zasobów komputerowych, wprowadzając nieznane wcześniej zagrożenia dla bezpieczeństwa systemów informatycznych: włamania, wirusy, spamming, blokowanie działania, itp. Wskutek lawinowej ekspansji nowoczesnych, mobilnych urządzeń wymiany danych (np. komputery przenośne, telefony komórkowe typu smartfon, etc.), zaciera się bardzo wyraźna kiedyś granica pomiędzy wewnętrzną siecią chronioną biura czy też centrum danych a zewnętrznym, niebezpiecznym środowiskiem publicznego Internetu. Działy bezpieczeństwa informacji firm i instytucji starają się nadążyć za postępującymi zmianami, wdrażając coraz bardziej wyrafinowane systemy ochrony, jednak liczba nowych zagrożeń czyni to zadanie niełatwym. Niejednokrotnie wysiłek oraz nakłady finansowe poniesionie na wdrożenie systemów bezpieczeństwa wewnętrznych sieci organizacji nie przynoszą należytych efektów. Całkowita efektywność kompleksowego łańcucha ochrony danych jest bowiem uzależniona od jego najsłabszego ogniwa – często jeden nieodpowiedzialny pracownik wykonujący powierzone mu zadania, korzystając z domowej publicznej sieci Internet, stanowi lukę pozwalającą na obejście (tzw. tylne drzwi) nawet najbardziej zaawansowanych systemów zabezpieczających [66]. O skali prezentowanego problemu dobitnie świadczą statystyki występujących obecnie zagrożeń. Firma Google wylicza, że z przeanalizowanych 450 milionów stron WWW (ang. World Wide Web) 10.

(11) publikowanych w sieci Internet 450 tysięcy było zainfekowanych złośliwym oprogramowaniem typu malware (z ang. malicious software). Każdego dnia identyfikowano ponad 8 tysięcy nowych przypadków takich stron [54]. Z kolei raporty czołowego producenta systemów bezpieczeństwa firmy McAfee ostrzegają przed drastycznym zwiększeniem się szybkości rozprzestrzeniania szkodliwych aplikacji komputerowych. Przykładowo, program “Code Red v2” (robak internetowy) potrzebował 14 godzin do zarażenia 400 tysięcy komputerów, dzięki czemu zespoły programistów dysponowały czasem niezbędnym do opracowania skutecznych środków ochrony. Bardziej zaawansowany robak “Warhol” w ciągu 15 minut był w stanie zainfekować ponad milion komputerów, podczas gdy najnowszy kod „Flash” dokonuje tego w ciągu zaledwie 30 sekund [67]. Drogą propagacji robaków i wirusów bywa najczęściej poczta elektroniczna (ang. e-mail). Pomiędzy styczniem a marcem roku 2009 wysłano 139 miliardów niepożądanych wiadomości e-mail (tzw. spam), co stanowi 89% ogólnej liczby wiadomości przesłanych w tym okresie [66]. Wymienione przykłady ukazują jedynie niewielką grupę występujących współcześnie zagrożeń. Co niezwykle istotne, w miarę upływu czasu zwiększa się nie tylko liczba wykrywanych zdarzeń danego typu, ale również poszerza się zbiór metod naruszania bezpieczeństwa danych oraz systemów informatycznych służących ich przetwarzaniu. Naturalną konsekwencją takiego stanu rzeczy jest poszukiwanie automatycznych narzędzi pozwalających na zabezpieczenie krytycznych zasobów organizacji. Muszą one sprostać wyzwaniom wydajnościowo-funkcjonalnym, wynikającym ze stale powiększającego się wolumenu oraz szybkości przesyłania danych w sieciach teleinformatycznych, jak również z wykazanej wcześniej eskalacji rodzajów zagrożeń. Od początku swego istnienia aż do chwili obecnej architektura powszechnie wykorzystywanych systemów zabezpieczających bazuje przede wszystkim na rozwiązaniach programowych. Wszelkie implementowane funkcje ochrony danych są efektem wykonywania poleceń kodu specjalizowanego oprogramowania, uruchamianego na platformach sprzętowych ogólnego przeznaczenia. Tylko w nielicznych wypadkach tworzone są rozwiązania dedykowane: odpowiednio zaprojektowany sprzęt wraz z niezbędnym oprogramowaniem, co jednak znacznie podnosi koszty całego urządzenia. Standardowe podejście do budowy systemów bezpieczeństwa w oparciu o oprogramowanie posiada jednak wiele wad. Do najistotniejszych należy niewątpliwie duża podatność na próby naruszenia bezpieczeństwa, związana m.in. z wykorzystywaniem błędów systemów operacyjnych, stanowiących platformę dla implementacji programowego mechanizmu zabezpieczającego. Opisana sytuacja dotyczy nie tylko popularnych rodzin systemów operacyjnych Windows czy też Linux, ale również rozwiązań przeznaczonych wyłącznie do zastosowania w infrastrukturze sieci komputerowych produkowanych przez czołowe firmy tego sektora, takie jak Cisco, Check Point czy Juniper Networks. Przykładowo, w ciągu ostatnich 7 lat w oprogramowaniu Cisco IOS (ang. Internetwork Operating System) w wersji 12.x wykryto 82 błędy [89] pozwalające na złamanie zabezpieczeń, przejęcie kontroli nad urządzeniem wykorzystującym ten system bądź nieuprawniony dostęp do chronionych danych. Podobnie w wypadku innych produktów: Cisco 11.

(12) Intrusion Prevention System (IPS) 5.x - 6 luk bezpieczeństwa od 2005 roku [88], Cisco PIX 6.x – 10 luk od 2003 roku [90], itd. Również inni producenci nie wypadają na tym polu lepiej od firmy Cisco. Presja rynkowa jak najszybszego wprowadzania do sprzedaży kolejnych generacji urządzeń oraz minimalizacja kosztów ich wytworzenia wpływają negatywnie na jakość wytwarzanych produktów, szczególnie w kontekście oferowanej stabilności pracy, funkcjonalności, a przede wszystkim poziomu ochrony danych. Drugie istotne ograniczenie konwencjonalnych systemów bezpieczeństwa, zbudowanych w oparciu o procesory ogólnego przeznaczenia GPP (ang. General Purpose Processors), to niska wydajność przetwarzania danych. Coraz szybszy rozwój technologii komunikacji sieciowej stymulowany jest przede wszystkim ogromnym zapotrzebowaniem na pasmo transmisyjne, generowane przez współczesne aplikacje strumieniowe. Standard 10 Gb Ethernet staje się powoli powszechnym medium komunikacyjnym w większości centrów przetwarzania danych; w drugim kwartale 2010 roku sprzedano ponad milion portów tego rodzaju [17]. Tak duża przepustowość uniemożliwia wykorzystanie wyłącznie programowych metod analizy przesyłanych danych. Producenci posiłkują się w takich przypadkach akceleracją wybranych elementów funkcjonalnych kompletnego systemu (np. obsługa wirtualnych sieci prywatnych tzw. VPN), najczęściej przy wykorzystaniu specjalizowanych układów ASIC (ang. Application Specific Integrated Circuit), bądź stosują wydajniejsze wersje procesorów GPP. Oczywiście konsekwencją takich działań jest wzrost ceny urządzenia, często nieadekwatny do rzeczywistych kosztów poniesionych przez producentów. Na rynku produktów komputerowych jest bowiem bardzo wyraźnie zarysowana granica ekonomiczna pomiędzy tanim sprzętem popularnym, adresowanym do szerokiego grona odbiorców (ang. low level) a wielokrotnie droższymi, zaawansowanymi rozwiązaniami z grupy „profesjonalnej” (ang. high-end).. 1.2. Cel i teza pracy Ostatnie lata przyniosły również dynamiczny rozwój technologii cyfrowych układów programowalnych FPGA (ang. Field Programmable Gate Array). Nieustannie zwiększająca się szybkość oraz coraz większa ilość dostępnych zasobów sprzętowych, otwierają przed logiką reprogramowalną nowe obszary zastosowań. Oferowana przez układy FPGA elastyczność w zakresie zmian. konfiguracji. zasobów. wewnętrznych,. umożliwia. budowę. systemów. uniwersalnych. i parametryzowanych przy jednoczesnej dużej ekonomiczności takiego rozwiązania. Ma ona związek z możliwością zapamiętywania części map konfiguracji w pamięci RAM i dynamicznego rekonfigurowania struktury w zależności od aktualnych potrzeb. Nieograniczona liczba takich zmian, wynikająca z faktu zapisywania konfiguracji w pamięci RAM, pozwala na zastosowanie układów reprogramowalnych w projektach, w których sprzęt musi być ściśle dostosowany do wymagań aplikacji różnych użytkowników. Atrakcyjność technologii FPGA bierze się z połączenia jej naturalnych walorów, wpływających m.in. na skrócenie czasu opracowania prototypów oraz łatwości modyfikacji funkcjonalnej realizowanych systemów, ze stale polepszającymi się ich parametrami 12.

(13) użytkowymi, takimi jak: szybkość działania czy też wielkość dostępnych zasobów [122, 123]. Fakt ten został bardzo szybko dostrzeżony przez wiele zespołów badawczych, koncentrujących swą aktywność naukową. na. optymalizacji. systemów. zabezpieczających. transmisję. danych. w. sieciach. teleinformatycznych [7, 31, 59, 61, 62, 81]. Wykorzystanie potencjału układów FPGA stwarza bowiem całkowicie nowe możliwości w dziedzinie zdominowanej dotychczas przez rozwiązania oparte o procesory GPP. W tym miejscu watro jednak podkreślić, że w zdecydowanej większości prowadzone w tym zakresie prace badawcze skupiają się przede wszystkim na ulepszaniu algorytmów klasyfikacji danych, pomijając lub marginalizując kwestie pozostałych elementów wchodzących w skład architektury Firewalla. Tylko niewielka grupa publikacji [43, 59] podejmuje temat kompleksowej. sprzętowej. implementacji. zapory. ogniowej. z wykorzystaniem. logiki. reprogramowalnej. Jednak nawet w wypadku takich prac, stosowane wstępne założenia projektowe powodują ograniczenie funkcjonalności bądź elastyczności konfiguracji systemu, w sposób utrudniający jego praktyczną eksploatację. Obserwacje te legły u podstaw podjęcia przez autora niniejszej rozprawy badań w zakresie metod efektywnej realizacji sprzętowego Firewalla, przy uwzględnieniu realnych wymagań funkcjonalnych, stawianych przez współczesne, wysoko wydajne systemy komputerowe. Celem pracy była praktyczna realizacja w pełni funkcjonalnego, rekonfigurowanego systemu ochrony transmisji danych typu Firewall, zaimplementowanego w logice FPGA, pozbawionego wszelkich elementów programowych w procesie klasyfikacji przetwarzanych danych. Dzięki temu wyeliminowana została możliwość włamań poprzez uruchamianie obcego kodu, przejmowanie uprawnień, itp. Spodziewanym rezultatem zastosowania sprzętowego weryfikowania pakietów pod kątem zgodności z bazą reguł bezpieczeństwa miał być również znaczący wzrost wydajności przetwarzania danych. Rozprawa ta wpisuje się w nowy, dynamicznie rozwijający się nurt wykorzystywania technologii FPGA w obszarach zabezpieczania transmisji danych w szybkich sieciach teleinformatycznych. Większość z zaplanowanych prac badawczych prowadziło do opracowania elementów otwierających nowe możliwości dla zastosowania logiki reprogramowalnej. Wymienić tutaj można sprzętową implementację kontrolerów sieci Ethernet czy też mechanizmy analizy transmitowanego strumienia danych, stanowiących zasadniczy element projektowanego systemu bezpieczeństwa. Doświadczenia zdobyte w trakcie realizacji niniejszej rozprawy pozwolą kontynuować prace badawcze w opisanym powyżej zakresie. W wyniku przeprowadzonych badań, autor zamierza udowodnić następującą tezę pracy: „Implementacja w układach FPGA rekonfigurowanego systemu ochrony transmisji danych typu Firewall dla sieci Ethernet o wielkich przepływnościach pozwala uzyskać wysoki poziom bezpieczeństwa, dużą szybkość przetwarzania danych oraz możliwość dynamicznej zmiany parametrów”.. 13.

(14) 1.3. Organizacja pracy Niniejsza praca została podzielona na 6 rozdziałów obejmujących zagadnienia związane z przedmiotem prowadzonych badań, w szczególności: przegląd i analizę dostępnych metod i systemów klasyfikacji pakietów w systemach ochrony transmisji danych, prezentację niezbędnych składników środowiska testowo-uruchomieniowego oraz zasadniczy opis poszczególnych elementów zrealizowanej zapory ogniowej. Rozdział 1 zarysowuje w sposób ogólny genezę oraz problematykę przeprowadzonych badań. Na tym tle prezentuje również tezę pracy oraz jej główny cel. Rozdział 2 prezentuje przekrojową analizę dostępnych algorytmów oraz systemów zabezpieczania krytycznych zasobów informacyjnych ze szczególnym uwzględnieniem sposobów sprzętowej akceleracji procesu weryfikacji przetwarzanych pakietów. Autor w syntetyczny i czytelny sposób stara się podsumować wady i zalety poszczególnych rozwiązań, poszukując na tej podstawie dróg dalszej optymalizacji procesu klasyfikacji pakietów oraz architektury zapory ogniowej. Rozdział 3 zawiera dokładny opis elementów wchodzących w skład środowiska testowouruchomieniowego, niezbędnego do realizacji prac projektowych. W szczególności omawia parametry i konfiguracje wykorzystywanych płyt z układami FPGA oraz środowiska programistycznego Active-HDL. Rozdział 4 przedstawia budowę, funkcjonalność oraz uzyskane parametry wydajnościowe zrealizowanych w ramach prac badawczych sprzętowych wersji kontrolerów MAC dla sieci Ethernet. Stanowią one główny pomost komunikacyjny pomiędzy silnikiem klasyfikacji pakietów a urządzeniami przesyłającymi dane w infrastrukturze sieciowej. Rozdział 5 to kluczowa część rozprawy, zawierająca opis opracowanej architektury sprzętowej zapory ogniowej wraz z charakterystyką poszczególnych elementów wchodzących w jej skład. Dla każdego z modułów sprzętowego Firewalla szczegółowo omówiono realizowane przez nie funkcjonalności, jak również zaprezentowano uzyskane parametry implementacji w układach FPGA. Rozdział 6 zawiera wnioski końcowe, najistotniejsze osiągnięcia uzyskane w toku realizacji pracy oraz zarys przyszłych kierunków badań nad rozwojem opracowanego systemu. Dodatki prezentują pełne wyniki syntezy logicznej, jak również wyjaśniają funkcje linii sygnałowych poszczególnych modułów kompletnej sprzętowej zapory ogniowej. Do pracy załączono także płytę CD z dokumentacją techniczną oraz kodami źródłowymi w języku VHDL.. 14.

(15) 2. Przegląd rozwiązań systemów ochrony danych przesyłanych w sieciach teleinformatycznych 2.1. Wprowadzenie Wykazany we wstępie do niniejszej rozprawy ogromny wzrost liczby potencjalnych zagrożeń dla danych przetwarzanych w formie cyfrowej generuje potrzebę stosowania szeregu różnorodnych systemów zabezpieczających. Od wielu lat dominujące wśród nich są rozwiązania określane mianem ścian ogniowych (ang. Firewall). W miarę upływu czasu, w związku z dynamicznym postępem technologicznym, ta wąska początkowo grupa rozrosła się do wielkiej rodziny, składającej się obecnie z wielu odmiennych funkcjonalnie urządzeń. W tej sytuacji punktem wyjścia przy opracowywaniu ich klasyfikacji musi być próba sformułowania ogólnej definicji systemu bezpieczeństwa typu Firewall, obejmującej wszelkie formy jego implementacji. Optymalnym terminem wydaje się być generalne stwierdzenie opisujące Firewall jako systemem komputerowy, złożony z komponentów sprzętowych oraz/lub programowych, zabezpieczający wewnętrzną sieć teleinformatyczną organizacji w każdym z punktów styku z mniej zaufanymi sieciami zewnętrznymi (np. Internetem) [10, 70]. Zwykle, w warunkach rzeczywistych, administratorzy zapór ogniowych zdecydowanie bardziej rygorystycznie podchodzą do weryfikacji ruchu sieciowego pochodzącego spoza danej organizacji, niż w odniesieniu do informacji wysyłanych w kierunku przeciwnym. Wszystkie istniejące typy systemów Firewall analizują strumienie danych pod kątem zgodności z obowiązującym schematem polityki bezpieczeństwa. Ocena taka dokonywana jest na podstawie zawartości określonych pól w przetwarzanych pakietach, ulokowanych w różnych warstwach modelu referencyjnego OSI [42], w zależności od typu wykorzystywanej ściany ogniowej. To właśnie opisany czynnik – funkcjonowanie w ściśle określonej warstwie modelu OSI – jest podstawą do dokonania głównego podziału funkcjonalnego całej rodziny systemów Firewall, zaprezentowanego w dalszej części rozdziału. Drugi istotny czynnik wyróżniający poszczególne implementacje dotyczy platformy wykorzystanej do budowy systemu bezpieczeństwa. Do niedawna najbardziej rozpowszechnionymi w tym obszarze były rozwiązania wykorzystujące procesory ogólnego przeznaczenia GPP oraz dedykowane oprogramowanie filtrujące [36]. Obecnie wiele zespołów badawczych poszukuje alternatywnych metod weryfikacji danych przesyłanych w sieciach teleinformatycznych, opracowując nowe algorytmy klasyfikujące [5, 6, 33] bądź wykorzystując ogromny potencjał stricte sprzętowych realizacji, bazujących na logice reprogramowalnej FPGA [7, 31, 59, 61, 62, 81]. 15.

(16) 2.2. Klasyfikacja funkcjonalna W początkowym okresie istnienia zapór ogniowych podział pomiędzy poszczególnymi ich rodzajami rysował się w sposób jasny i czytelny. Definiował go jedynie poziom w modelu OSI, do którego system analizował przetwarzane dane. W miarę rozwoju technik zabezpieczania transmisji sieciowej następowało coraz większe różnicowanie ścian ogniowych, któremu często towarzyszyło łączenie funkcjonalności odrębnych wcześniej rozwiązań. Powstawały więc swego rodzaju hybrydy nie wnoszące całkowicie nowych usług, lecz pozwalające na lepsze dostosowanie się do wymagań specyficznych użytkowników. Proces ten trwa nadal; co więcej w ostatnich latach przybrał on na sile, choć, obserwując jego kierunek, można wysnuć wniosek, że kolejne generacje wprowadzonych urządzeń w wielu przypadkach inicjowane są planami marketingowymi producentów, aniżeli racjonalnymi potrzebami klientów. W celu sformułowania pełnej klasyfikacji ścian ogniowych również i takie systemy zostały uwzględnione w zaprezentowanym dalej zestawieniu.. 2.2.1. Pasywne filtry pakietów Pasywne filtry pakietów (ang. Static Packet Filters) są najstarszą i najprostszą z istniejących architektur systemów bezpieczeństwa typu Firewall [36]. Z tej przyczyny aktualnie stanowią najbardziej popularną metodę ochrony danych przesyłanych w sieciach komputerowych. Znajdują zastosowanie zarówno w komercyjnych rozwiązaniach, takich jak listy kontroli dostępu Cisco ACL (ang. Access Control List), czy też w otwartych rozwiązaniach typu IPChains (obecnie IPTables) wykorzystywanych w systemie operacyjnym Linux [76].. Statyczny filtr pakietów WARSTWY MODELU REFERENCYJNEGO OSI APLIKACJI PREZENTACJI SESJI TRANSPORTOWA SIECIOWA ŁĄCZA DANYCH FIZYCZNA. Sieć zewnętrzna. Interfejs sieciowy. Interfejs sieciowy. Sieć wewnętrzna. Rys. 2.1. Poglądowy schemat strukturalny pasywnego filtru pakietów.. Weryfikacja przetwarzanych pakietów dokonywana jest w filtrach statycznych na podstawie danych zawartych w nagłówkach warstwy sieciowej i transportowej (Rys.2.1), obejmujących:  źródłowy adres IP,  docelowy adres IP, 16.

(17)  numer portu źródłowego,  numer portu docelowego,  typ protokołu. Podstawową zaletą statycznych filtrów pakietów jest ich duża wydajność [2] oraz niski koszt budowy wynikający z ograniczonej funkcjonalności. Negatywną konsekwencją tego jest podatność na ataki polegające na podszywaniu się pod zaufane adresy sieciowe (tzw. spoofing). Administrator systemu, tworząc schemat reguł odzwierciedlających obowiązującą politykę bezpieczeństwa, zmuszony jest do uwzględniania wszystkich możliwych przypadków komunikacji występującej w danej sieci komputerowej. Pasywne filtry pakietów nie analizują bowiem stanów połączeń [13], stąd każdemu otwartemu portowi aplikacji wysyłającej bądź odbierającej dane należy przyporządkować dedykowaną regułę zezwalającą albo zapobiegającą przepływowi strumienia informacji. Konieczne jest również zastosowanie domyślnej reguły blokującej ruch pakietów zawierających nagłówki wykraczające poza wcześniej zdefiniowany schemat polityki bezpieczeństwa.. 2.2.2. Dynamiczne filtry pakietów Dynamiczne filtry pakietów stanowią modyfikację wersji pasywnej, polegającą na wprowadzeniu analizy stanów połączeń. Do weryfikacji przetwarzanych danych wykorzystują one dokładnie te same pola, jak w przypadku filtrów statycznych, stąd ulokowanie w modelu OSI jest analogiczne do przedstawionego na rysunku 2.1. Dane o połączeniach przechowywane są w specjalnej tablicy (ang. Connection Bypass table) [10], dzięki czemu filtr jest w stanie precyzyjnie śledzić poszczególne fazy nawiązywania komunikacji, a przez to określać ich zgodność z obowiązującymi standardami. Jeśli przetwarzany pakiet zostanie zidentyfikowany jako część już wcześniej zainicjowanego połączenia, nie jest konieczna jego dalsza weryfikacja [36]. Wpływa to na zwiększenie wydajności przetwarzania informacji w stosunku do klasycznych filtrów statycznych, które muszą analizować wszystkie pakiety. Najbardziej krytycznym elementem konstrukcji dynamicznego filtru pakietów jest tablica połączeń implementowana w pamięci RAM (ang. Random Access Memory). Pamięć taka dysponuje zwykle ograniczoną pojemnością, co ma związek z minimalizacją kosztów urządzeń. Dlatego filtry dynamiczne są podatne na ataki typu maksymalnego wykorzystania zasobów (ang. resource starvation attack) [10]. W takiej sytuacji Firewall może wykonać następujące akcje [30]:  zablokować generowanie nowych wpisów do tablicy połączeń, a tym samym doprowadzić do paraliżu funkcjonalnego systemu – odmowa usługi, czyli atak typu DoS (ang. Denial of Service),  usunąć tylko najstarsze wpisy LRU (ang. Last Recently Used), upewniając się najpierw, czy połączenie nadal nie jest aktywne,  zastosować mechanizm wczesnej detekcji losowej (ang. Random Early Detection), wybierający i usuwający pakiety w sytuacji przepełniania się tabeli połączeń, 17.

(18)  usuwać po określonym czasie (ang. time out) poszczególne wpisy z tabeli połączeń.. 2.2.3. Bramki typu Circuit-level Bramki typu Circuit-level, zwane również filtrami połączeń [10] lub bramkami na poziomie sesji [48], stanowią kolejny etap zwiększania funkcjonalności filtrów pakietów. Operując na piątej warstwie modelu OSI (Rys. 2.2), można pozyskać dodatkowe informacje pozwalające na dokładniejszą weryfikację strumieni danych. Pełna lista analizowanych pól obejmuje [36]:  źródłowy adres IP,  docelowy adres IP,  numer portu źródłowego,  numer portu docelowego,  typ protokołu,  potwierdzenia protokołu transmisyjnego oraz numery sekwencji.. Bramka typu Circuit-level WARSTWY MODELU REFERENCYJNEGO OSI APLIKACJI PREZENTACJI SESJI TRANSPORTOWA SIECIOWA ŁĄCZA DANYCH FIZYCZNA. Sieć zewnętrzna. Interfejs sieciowy. Interfejs sieciowy. Sieć wewnętrzna. Rys. 2.2. Poglądowy schemat strukturalny bramki typu Circuit-level.. Pierwszym etapem weryfikacji pakietów jest sprawdzenie zgodności pól adresowych oraz portów z zapisami zdefiniowanymi w zestawie reguł bezpieczeństwa. Następnie filtr analizuje parametry sesji na podstawie flag SYN, ACK oraz numeru sekwencji potwierdzeń protokołu TCP (ang. Transmission Control Protocol) pod kątem zgodności z wymogami specyfikacji RFC 793 [16]. Do tego celu wykorzystuje on specjalną tabelę weryfikacji połączeń (ang. Connection Verification Table), w której każdy wpis zawiera informacje o stanie flag (m.in. SYN, ACK) oraz numer sekwencji ostatnio odebranego pakietu w danym strumieniu komunikacyjnym [10]. Bramki tego typu charakteryzują się dużą wydajnością przetwarzania danych, ponieważ operują na dolnych warstwach modelu OSI. Dzięki swej funkcjonalności umożliwiają zabezpieczenie istotnych segmentów sieci komputerowych przed atakami hakerów polegającymi na przejmowaniu sesji (tzw. hijack) i wprowadzaniu w strumienie połączeń nieautoryzowanych pakietów danych.. 18.

(19) 2.2.4. Bramki aplikacyjne Bramka. aplikacyjna (ang.. Application-level. Gateway), określana także jako filtr. aplikacyjny [10], analizuje szczegółowe dane zawarte w najwyższej warstwie modelu OSI (Rys. 2.3). Taka funkcjonalność wymusza pełną obsługę połączeń pomiędzy komputerami zlokalizowanymi w sieci zewnętrznej oraz w bezpiecznym segmencie wewnętrznym [76], stąd też konieczne jest zaimplementowanie w filtrze aplikacyjnym dedykowanego oprogramowania pośredniczącego (tzw. proxy). Zazwyczaj jest ono dedykowane do obsługi konkretnej usługi sieciowej (np. HTTP, FTP, itp.), stąd w przypadku wykrycia nieobsługiwanego serwisu proxy zablokuje takie pakiety [13, 30]. Co więcej, zastosowanie rozważań dedykowanych poszczególnym aplikacjom, pozwala na drobiazgową analizę przetwarzanych danych aż do poziomu poszczególnych poleceń danego protokołu. Dzięki temu administrator otrzymuje narzędzie umożliwiające bardzo precyzyjne przydzielanie uprawnień dostępowych do poszczególnych usług systemów informatycznych na etapie tworzenia polityki bezpieczeństwa organizacji.. Bramka aplikacyjna WARSTWY MODELU REFERENCYJNEGO OSI APLIKACJI PREZENTACJI SESJI TRANSPORTOWA SIECIOWA ŁĄCZA DANYCH FIZYCZNA. Sieć zewnętrzna. Interfejs sieciowy. Interfejs sieciowy. Sieć wewnętrzna. Rys. 2.3. Poglądowy schemat strukturalny bramki aplikacyjnej.. Wysoki poziom ochrony oferowany przez bramki aplikacyjne wynika z weryfikowania przez nie wszystkich istotnych informacji zawartych w górnych poziomach modelu OSI, począwszy od warstwy sieciowej. Negatywną konsekwencją takiej funkcjonalności jest niewątpliwie duży narzut wydajnościowy, związany z koniecznością obsługi proxy. Producenci filtrów aplikacyjnych zmuszeni są do ciągłego śledzenia potrzeb odbiorców wykorzystujących coraz to nowe usługi sieciowe, bowiem dla każdej z nich trzeba tworzyć specyficzną aplikację pośredniczącą implementowaną w bramce. O ile rosnące w ten sposób zapotrzebowanie na moc obliczeniową można w stosunkowo łatwy sposób zaspokoić poprzez zastosowanie nowocześniejszych procesorów GPP, to w przypadku dodawania kolejnych elementów aplikacyjnych istnieje duże ryzyko niewykrycia na etapie testów luk w oprogramowaniu. Dlatego w wielu wypadkach nieostrożna implementacja oraz słaba jakość kodu źródłowego doprowadziły do złamania zabezpieczeń tego typu systemów (szczególnie poprzez ataki polegające na tzw. przepełnieniu bufora – ang. buffer overrun) [36]. 19.

(20) 2.2.5. Filtry typu Stateful Inspection Omówiona w punkcie 2.2.4 bramka aplikacyjna jest ostatnim z wariantów rozbudowy funkcjonalnej filtru pakietów. Kolejno prezentowane systemy bezpieczeństwa stanowią złożenie kilku bloków filtrujących, pozwalających na uzyskanie dodatkowych mechanizmów ochrony przesyłanych informacji. Pierwszą tego rodzaju hybrydą jest filtr typu Stateful Inspection. W teorii analizuje on wszystkie 7 warstw modelu OSI (Rys. 2.4), łącząc w sobie cechy dynamicznego filtru pakietów, bramki Circuit-level oraz bramki aplikacyjnej. Każdy z analizowanych pakietów jest najpierw weryfikowany pod kątem zgodności z zakresami adresów i portów sieciowych, zdefiniowanych w regułach bezpieczeństwa. Kolejno weryfikowane są pod kątem logiczności flagi SYN, ACK oraz numery sekwencji, tak jak ma to miejsce w filtrach połączeń. Na koniec w ograniczonym zakresie możliwe jest przeprowadzenie oceny kontekstowej danych aplikacji. Filtr typu Stateful Inspection WARSTWY MODELU REFERENCYJNEGO OSI. Sieć zewnętrzna. WARSTWY MODELU REFERENCYJNEGO OSI. APLIKACJI. APLIKACJI. APLIKACJI. PREZENTACJI. PREZENTACJI. PREZENTACJI. SESJI. SESJI. SESJI. TRANSPORTOWA. TRANSPORTOWA. TRANSPORTOWA. SIECIOWA. SIECIOWA. SIECIOWA. ŁĄCZA DANYCH. ŁĄCZA DANYCH. ŁĄCZA DANYCH. FIZYCZNA FIZYCZNA Interfejs sieciowy. WARSTWY MODELU REFERENCYJNEGO OSI. Dynamiczny filtr pakietów. FIZYCZNA. FIZYCZNA. Ograniczone funkcje bramki typu Circuit-level. Ograniczone funkcje bramki aplikacyjnej. Interfejs sieciowy. Sieć wewnętrzna. Rys. 2.4. Poglądowy schemat strukturalny filtru typu Stateful inspection.. Praktyczne implementacje, pomimo odmiennych twierdzeń producentów, często ograniczają się jednak wyłącznie do obsługi jedynie warstwy sieciowej, co ma związek z ogromnym obciążeniem generowanym przez pojedyncze wątki analizy stanu połączeń [36]. Wymusza to konieczność degradacji funkcjonalności urządzenia do poziomu odpowiadającego dynamicznemu filtrowi pakietów. Co bardziej istotne, duża część rozwiązań typu Stateful inspection wykorzystuje w swym działaniu jednowątkowe procesy obsługujące algorytmy weryfikujące, stąd brak jest możliwości kompensowania zapotrzebowania na moc obliczeniową poprzez wykorzystanie nowoczesnych procesorów wielordzeniowych GPP. Dodatkowym problemem są ograniczenia języka stosowanego do opisu reguł bezpieczeństwa dla silnika klasyfikującego, z tego też powodu zdecydowanie szybciej popularyzują się rozwiązania bramek aplikacyjnych [36, 100].. 2.2.6. Proxy odcinające Proxy odcinające (ang. Cutoff Proxy) stanowi złożenie dynamicznego filtru pakietów oraz części funkcjonalności bramki na poziomie sesji (Rys. 2.5). W pierwszej kolejności weryfikowane są 20.

(21) parametry sesji pod kątem zgodności z wymaganiami rekomendacji RFC [16], w szczególności trójetapowa wymiana komunikatów oraz niezbędna autentykacja. Po poprawnym zakończeniu analizy stanu sesji Proxy przełącza się w tryb dynamicznego filtru pakietów, weryfikującego parametry trzeciej warstwy modelu OSI [36]. Proxy odcinające WARSTWY MODELU REFERENCYJNEGO OSI APLIKACJI. APLIKACJI. PREZENTACJI. PREZENTACJI. SESJI. SESJI. TRANSPORTOWA. TRANSPORTOWA. SIECIOWA. SIECIOWA. ŁĄCZA DANYCH. ŁĄCZA DANYCH. FIZYCZNA FIZYCZNA. Sieć zewnętrzna. Interfejs sieciowy. WARSTWY MODELU REFERENCYJNEGO OSI. Ograniczone funkcje bramki typu Circuit-level. FIZYCZNA Dynamiczny filtr pakietów. Interfejs sieciowy. Sieć wewnętrzna. Rys. 2.5. Poglądowy schemat strukturalny filtru proxy odcinającego.. W przeciwieństwie do standardowej bramki sesyjnej, omówionej w punkcie 2.2.3, proxy odcinające nie tworzy bariery w modelu klient-serwer w czasie nawiązywania połączenia. Stanowi ono bezpośrednie połączenie pomiędzy zdalnym klientem a serwerem usługowym zlokalizowanym za zabezpieczającą go ścianą ogniową [36]. Cecha ta lokuje proxy odcinające w grupie tzw. pośredników transparentnych (ang. Transparent Proxies), które mogą przesyłać otrzymywane pakiety bez konieczności ich modyfikowania [10]. Jest to oczywiste ograniczenie w stosunku do funkcjonalności typowych bram sesyjnych, powodujące zmniejszenie poziomu zabezpieczeń świadczonych przez zaporę. Z drugiej strony, z racji ogromnej różnorodności systemów sieciowych, a przez to i potrzeb w zakresie ich ochrony, proxy odcinające znajdują swoje miejsce w grupie systemów realizujących tego typu usługi.. 2.2.7. Rozwiązania typu Air Gap System zabezpieczający typu Air Gap (szczelina powietrzna) jest dobrym przykładem obrazującym występujące obecnie zjawisko szybkiego wprowadzania do sprzedaży nowych rozwiązań systemów Firewall, których nowatorstwo sprowadza się jedynie do wdrożenia elementów pozwalających na odróżnianie się od produktów konkurencyjnych. Nie powoduje to istotnej zmiany funkcjonalnej. Co gorsze, często cechy użytkowe nowego produktu ulegają pogorszeniu. Tak jest właśnie w przypadku systemu Air Gap, w którym każde z połączeń pochodzących z zewnętrznej sieci przed przekazaniem do segmentu chronionego zostaje zapisane na wewnętrzny dysk twardy (Rys. 2.6). Utworzony w ten sposób bufor – „szczelina powietrzna”, zdaniem producentów, zapewnia uzyskanie większego poziomu bezpieczeństwa chronionych danych [36]. 21.

(22) Air Gap Dysk twardy. APLIKACJI PREZENTACJI SESJI TRANSPORTOWA SIECIOWA ŁĄCZA DANYCH FIZYCZNA. Sieć zewnętrzna. Interfejs sieciowy. WARSTWY MODELU REFERENCYJNEGO OSI. Interfejs sieciowy. Sieć wewnętrzna. Rys. 2.6. Poglądowy schemat strukturalny rozwiązania typu Air Gap.. Weryfikacja danych dokonywana jest we wszystkich warstwach modelu OSI, stąd rozwiązanie Air Gap jest bliźniaczo podobne do bramki aplikacyjnej. Trudno jest doszukać się wyjątkowego zysku z wykorzystania dodatkowego mechanizmu buforująco-separującego w postaci dysku twardego. Element ten wpływa raczej na degradację zarówno wydajności systemu, jak również jego awaryjności. Typowa brama aplikacyjna wykorzystuje również buforowanie, tyle że zrealizowane za pomocą pamięci RAM, która jest zdecydowanie szybsza od dysku twardego oraz mniej zawodna, ze względu na brak jakichkolwiek elementów mechanicznych.. 2.2.8. Filtry typu Deep Packet Inspection Mechanizm głębokiej analizy pakietów DPI (ang. Deep Packet Inspection) polega na szczegółowej analizie zawartości przetwarzanych pakietów w celu odnalezienia określonych wzorców bajtowych, zdefiniowanych w bazie sygnatur. W tradycyjnych implementacjach każda z reguł bezpieczeństwa zawiera ciąg znakowy identyfikujący konkretne zdarzenie bądź zagrożenie dla bezpieczeństwa danych [51]. Dzięki temu, że filtry DPI stanowią połączenie systemu detekcji intruzów IDS (ang. Intrusion Detection System) oraz ściany ogniowej [25], w przypadku wykrycia określonego. wzorca. automatycznie. blokują. niebezpieczne. połączenia.. Odmienne. od. konwencjonalnych systemów Firewall podejście do weryfikacji danych, polegające na monitorowaniu jedynie podejrzanego ruchu, niesie z sobą pewną słabość tego typu rozwiązań. Całkowita efektywność wykrywania zagrożeń sprowadza się bowiem do poziomu aktualności bazy sygnatur. Jest to zadanie niezwykle trudne wobec ogromnej liczby zagrożeń powstających co roku. Jeśli wziąć pod uwagę jedynie złośliwe oprogramowanie (tzw. malware), w każdym kwartale jest rejestrowanych klika milionów nowych przypadków (Rys. 2.7). Do tego należy uwzględnić jeszcze wszelkiego rodzaju luki w systemach i aplikacjach użytkowych oraz zagrożenia związane z ingerencją w protokoły komunikacyjne. 22.

(23) Liczba zarejestrowanych przypadków. Przyrost Malware (pierwsze kwartały lat 2008–2010) 4,500,000 4,000,000 3,500,000 3,000,000 2,500,000 2,000,000. 1,500,000 1,000,000 500,000 0,000 Q1 2008. Q1 2009. Q1 2010. Rys. 2.7. Porównanie liczby zarejestrowanych przypadków oprogramowania malware w pierwszych kwartałach lat 2008-2010 [66].. Dodatkowym problemem jest zapewnienie odpowiednio skalowalnej bazy danych sygnatur, która zapewni możliwość przechowywania nowopowstających wzorców przez cały okres eksploatacji urządzania (zwykle 3-5 lat).. 2.2.9. Zunifikowane zarządzanie zagrożeniami Najnowszym produktem w dziedzinie ochrony danych jest system zunifikowanego zarządzenia zagrożeniami UTM (ang. Unified Threat Management). Według definicji IDC (ang. International Data Corporation) UTM to dedykowane urządzenie (tzw. appliance), które unifikuje i integruje wiele funkcjonalności bezpieczeństwa na pojedynczej platformie sprzętowej. Zaklasyfikowanie do tej kategorii wymaga zaimplementowania co najmniej podsystemu Firewalla, detekcji lub prewencji przed intruzami (IDS lub IPS) oraz skanera antywirusowego. Niekoniecznie trzeba ich używać równocześnie, ale muszą istnieć w danym produkcie [36, 41, 87]. Tak bogate wyposażenie bywa jednak w praktyce często ograniczane przez producentów redukujących koszty wytworzenia. Stosowanie typowych komercyjnych lub otwartych systemów operacyjnych, w których funkcjonują poszczególne usługi bezpieczeństwa, stwarza ogromne zagrożenie dla chronionych danych. W takiej sytuacji zdecydowanie łatwiej jest dokonać włamania do bazowego systemu operacyjnego niż bezpośrednio do poszczególnych usług bezpieczeństwa [36]. Podobne redukcje dotykają pozostałych podsystemów: IDS/IPS, antywirus czy też antyspam. Do poprawnej pracy wymagają one bieżącej aktualizacji baz sygnatur, co narzuca na producenta obowiązek utrzymania kosztownych laboratoriów gromadzących informacje o nowych przypadkach zagrożeń bądź zakupywania gotowych aktualizacji od zewnętrznych podmiotów prowadzących tego typu działalność.. 23.

(24) 2.3. Klasyfikacja implementacyjna Rozwój platform implementacyjnych systemów bezpieczeństwa typu Firewall jest ściśle powiązany z opisaną w rozdziale 2.2 klasyfikacją funkcjonalną. Wdrażanie nowych mechanizmów ochrony danych niesie z sobą konieczność poszukiwania coraz bardziej wydajnych algorytmów lub architektur sprzętowych. Trend ten utrzymuje się stale, choć obecnie jest bardziej uwarunkowany przez lawinowo rosnącą ilość informacji przetwarzanych w systemach zabezpieczających. Jego efektem jest powstanie rozwiązań wyraźnie wyróżniających w dotychczas jednorodnej grupie systemów stricte programowych, wykorzystujących aplikacje filtrujące oraz popularne procesory ogólnego przeznaczenia. Mowa tutaj o próbach zastosowania rozwiązań sprzętowych w postaci układów ASIC, FPGA bądź pamięci TCAM jako metody zwiększenia bezpieczeństwa oraz wydajności przetwarzania danych.. 2.3.1. Firewalle programowe Historycznie najstarsza metoda implementacji ścian ogniowych wykorzystuje dedykowane aplikacje filtrujące działające w systemie komputerowym opartym na procesorach GPU. To rozwiązanie, choć niewątpliwie najprostsze i najtańsze z możliwych, niesie ze sobą wiele poważnych wad (Rys. 2.8). Przede wszystkim wykorzystanie typowego (powszechnie wykorzystywanego) systemu operacyjnego umożliwia hakerom podejmowanie prób włamań z wykorzystaniem znanych luk bezpieczeństwa.. Atak. Aplikacja usługowa. Aplikacja usługowa. Niemodyfikowany system operacyjny. Moduły obsługi komunikacji sieciowej. Platforma komputerowa ogólnego przeznaczenia. . . . . .. ... . . .. Ograniczenia wydajnościowe. Rys. 2.8. Poglądowy diagram wrażliwych punktów struktury programowego Firewalla.. O skali tego problemu świadczy dobitnie liczba rejestrowanych co roku błędów w zabezpieczeniach oprogramowania. Przykładowe zestawienie za rok 2009 dla czterech wybranych wersji popularnych systemów operacyjnych zaprezentowano na rysunku 2.9.. 24.

(25) Liczba zarejestrowanych luk bezpieczeństwa. 25. 20. 15. 10. 5. 0. Microsoft Windows Server 2008 SUSE Linux Enterprise Server (SLES) 11 Red Hat Enterprise Linux ES4 Debian GNU/Linux 5.0. Rys. 2.9. Liczba luk bezpieczeństwa wybranych systemów operacyjnych wykrytych w roku 2009 (na podstawie [102]) .. Producenci systemów operacyjnych starają się na bieżąco wydawać odpowiednie poprawki likwidujące. wykryte. zagrożenia.. Jednak. to. na. użytkownikach. zapór. ogniowych. ciąży. odpowiedzialność ciągłej aktualizacji oprogramowania wewnętrznego. Jakiekolwiek zaniedbania w tej kwestii mogą doprowadzić do przełamania zabezpieczeń i utraty istotnych danych. Drugi problemem dotyczy platformy sprzętowej wykorzystanej do budowy tego typu urządzeń. Z reguły minimalizacja kosztów produkcji zmusza producentów do stosowania uniwersalnych. rozwiązań. sprzętowych. wyposażonych. w. popularne. procesory. ogólnego. przeznaczenia. Nieoptymalizowana pod kątem realizowanych zadań architektura płyt głównych, w połączeniu z dużą ilością zbędnych usług działających w systemie operacyjnym, zmniejsza w sposób radykalny całkowitą wydajność zapory. Poszukiwania metod rozwiązania opisanych słabych stron zapór programowych obejmują kilka równolegle rozwijających się działań:  tworzenie specjalnie zabezpieczonych wersji systemów operacyjnych,  optymalizacja algorytmów klasyfikujących pakiety,  akceleracja weryfikacji danych z wykorzystaniem rozwiązań sprzętowych.. 25.

(26) Zabezpieczanie systemu operacyjnego, zwane również utwardzaniem (ang. hardening), polega na minimalizacji ekspozycji na aktualne oraz przyszłe zagrożenia poprzez przeprowadzenie pełnej konfiguracji systemu wraz z usunięciem zbędnych aplikacji i urządzeń [78]. Proces ten nie kończy się na jednorazowej aktywności, lecz powinien być kontynuowany przez administratorów w toku produkcyjnej eksploatacji poszczególnych urządzeń.. W przypadku wykorzystywania systemu. operacyjnego do budowy dedykowanych ścian ogniowych, utwardzanie powinno sięgać o wiele dalej. Konieczna jest ingerencja w kod źródłowy systemu, tak, aby wdrożyć mechanizmy rozgraniczające w wyraźny sposób obszary, w których funkcjonują aplikacje bezpieczne bądź narażone na złamanie (Rys. 2.10). Dopiero takie podejście daje gwarancję prawidłowej ochrony danych, eliminując możliwość włamania się hakera do systemu operacyjnego z wysokimi prawami użytkownika [36].. Atak. Niezabezpieczona aplikacja usługowa. Zabezpieczona aplikacja usługowa. Bezpieczny system operacyjny. Bezpieczne moduły obsługi komunikacji sieciowej. Granica bezpieczeństwa. . . . . .. ... . . ... Platforma komputerowa ogólnego przeznaczenia. Ograniczenia wydajnościowe. Rys. 2.10. Poglądowy diagram struktury programowego Firewalla z zabezpieczonym („utwardzonym”) systemem operacyjnym (na podstawie [36]).. Dla systemów z grupy Linux, często wykorzystywanych do budowy programowych ścian ogniowych, stosowane w praktyce mechanizmy ochrony można podzielić na cztery grupy [77]:  ochrona pamięci w jądrze systemu,  ochrona pamięci w kompilatorze,  nadzór nad dostępem do systemu (kontrola dostępu),  inne (stosujące randomizację, szczegółowe ograniczenia dostępu, zapis zdarzeń zachodzących w systemie itp.). Wpisują się one w szersze modele definiujące sposób przydzielania i kontroli uprawnień. W najbardziej powszechnym modelu nieobowiązkowej kontroli DAC (ang. Discretionary Access Control) zarówno użytkownicy, jak i procesy, dysponują możliwością pełnej kontroli nad posiadanymi obiektami (m.in. plikami, katalogami, urządzeniami, itp.) [60, 77]. Takie podejście nie nadaje się do budowy bezpiecznego środowiska dla funkcjonowania krytycznych aplikacji. Stąd też w roku 1985 Departament Obrony Stanów Zjednoczonych opracował standard wprowadzający 26.

(27) obligatoryjny mechanizm ochrony zwany MAC (ang. Mandatory Access Control) [19]. Model ten można podzielić na składowe polityki obejmujące m.in.: kontrolę dostępu podmiotów (użytkownicy i procesy) do obiektów, autentykację tożsamości a zarazem przywilejów poszczególnych użytkowników oraz metody szyfrowania istotnych danych [60]. W tym przypadku to administrator systemu decyduje o konfiguracji zabezpieczeń i praw dostępów. Użytkownicy nie są w stanie samodzielnie zmienić narzuconej im polityki bez wcześniejszej zgody administratora. Nieustanny rozwój systemów komputerowych oraz wzrost znaczenia informacji przetwarzanej w postaci cyfrowej spowodował konieczność modyfikowania ogólnych założeń modeli DAC i MDAC. W wyniku takich działań powstało szereg dodatkowych rozwinięć koncepcji ochrony systemów operacyjnych, dostosowanych do specyficznych potrzeb aplikacyjno-użytkowych. Do najważniejszych zaliczyć należy modele: . wymuszania typów TE (ang. Type Enforcement),. . kontroli dostępu na podstawie ról RBAC (ang. Role-Based Access Control),. . wielopoziomowego bezpieczeństwa MLS (ang. Multi-Level Security).. Model bezpieczeństwa TE, bazujący na kontroli typów obiektów, minimalizuje uprawnienia aplikacji do zakresu pozwalającego na ich poprawne funkcjonowanie oraz ogranicza potencjalne negatywne skutki nadużycia tychże przywilejów [60]. Stanowi on praktyczną implementację elastycznej architektury Flask [95], w której każdemu procesowi oraz obiektowi przypisany zostaje specjalny zestaw atrybutów bezpieczeństwa (ang. security attributes), określany jako tzw. kontekst bezpieczeństwa [124]. Dzięki temu funkcja kontrolująca uprawnienia, w momencie podejmowania decyzji o zezwoleniu danej operacji, dysponuje zbiorem niezbędnych informacji. Implementacja TE wprowadza pojęcie domeny jako atrybutu opisującego każdy proces oraz pojęcie typu klasyfikującego każdy obiekt. Wszystkie procesy będące w tej samej domenie, jak również wszystkie obiekty o konkretnym typie, podlegają takim samym zasadom bezpieczeństwa. Pojedynczy zestaw atrybutów, opisujący zarówno procesy jak i obiekty, pozwala wykorzystać jedną macierz specyfikującą warunki dostępu oraz wzajemnej interakcji pomiędzy typami i obiektami [124]. Kontrola dostępu na podstawie ról RBAC wykorzystuje do podejmowania decyzji informacje o funkcjach, jakie przydzielono użytkownikowi w danej organizacji. Użytkownik nie może według własnego uznania dokonywać operacji czy też uzyskiwać dostępu do danych innych użytkowników systemu. RBAC jest więc przeciwieństwem modelu DAC. Ze względu na brak wykorzystania wielopoziomowych mechanizmów zabezpieczających nie można go jednak zaliczyć wprost do grupy obligatoryjnych modeli MDAC [27]. Wprowadzenie klasyfikowania użytkowników według ról ułatwia proces zarządzania polityką bezpieczeństwa systemu. Wystarczy bowiem zdefiniować zestaw zasad i uprawnień odzwierciedlających strukturę organizacji, a później przyporządkować użytkowników według właściwej im lokalizacji. W przypadku zmiany stanowiska czy też przynależności działowej pracownikowi przydzielony zostaje nowy zestaw reguł.. 27.

(28) System zabezpieczony zgodnie z wymogami modelu wielopoziomowego bezpieczeństwa MLS, powinien być wyposażony w następujące funkcjonalności [55]:  możliwość tworzenia oraz izolowania równoważnych klas zasobów systemowych, przez co wszystkie aktywne elementy danej klasy są dostępne na takich samych zasadach bezpieczeństwa,  zdefiniowane zasady interakcji pomiędzy poszczególnymi klasami,  mechanizmy gwarantujące wdrożenie polityki MLS,  metody kontroli zgodności działania mechanizmów zabezpieczających z obowiązującymi regułami,  nadanie czytelnych, łatwo identyfikowalnych etykiet poszczególnym klasom zasobów systemowych. Dzięki takim cechom system MLS pozwala w praktyce precyzyjnie odseparować poszczególne klasy informacji oraz zarządzać użytkownikami o różnych poziomach uprawnień. Hierarchiczna struktura klasyfikująca dane oraz uprawnienia, w połączeniu z mechanizmami weryfikacji użytkowników, uniemożliwia nieautoryzowany dostęp do zasobów systemowych. Klasyczne rozwiązania MLS opierają się na modelu kontroli dostępu Bell-LaPadula [9], w którym użytkownik nie może odczytywać danych z wyższych poziomów uprawnień oraz nie może dokonywać zapisów na poziomach innych od przydzielonego użytkownikowi. Restrykcje takie odnoszą się również do programów uruchamianych przez użytkownika w danym systemie [86] . Zaprezentowanej aktywności w obszarze zwiększania bezpieczeństwa systemów operacyjnych towarzyszy poszukiwanie metod optymalizacji algorytmów klasyfikacji pakietów przetwarzanych przez zapory ogniowe. Pomimo tego, że parametry funkcjonalne poszczególnych rozwiązań są uwarunkowane docelowym obszarem zastosowań, można wyróżnić kilka uniwersalnych wymagań, stawianych wszystkim nowoczesnym algorytmom klasyfikującym. Należą do nich m.in. [26, 33, 34, 62]:  duża prędkość wyszukiwania – coraz szybsze łącza teleinformatyczne oraz rosnące wymagania co do akceptowalnych poziomów opóźnień przetwarzania danych wymuszają opracowywanie. rozwiązań. pozwalających. na. pracę. z. prędkościami. medium. komunikacyjnego (ang. wire-speed),  minimalizacja ilości zasobów pamięciowych niezbędnych do implementacji algorytmu – w zależności od przeznaczenia urządzenia zestaw reguł bezpieczeństwa może zawierać od kilkudziesięciu do kilkuset tysięcy elementów,  skalowalność ilości pól wykorzystywanych do weryfikacji danych – rozbudowa funkcjonalna systemów bezpieczeństwa wiąże się z koniecznością analizy dodatkowych informacji z nagłówków pakietów. Uniwersalny algorytm klasyfikujący powinien pozwalać na łatwe poszerzenie zakresu sprawdzanych pól,. 28.

(29)  elastyczność definiowania opisu reguł – oprócz arbitralnego ustalania wartości poszczególnych pól składowych reguły, wymagana jest możliwość wykorzystywania masek, operatorów (mniejszy, większy, etc.) czy też zakresów,  szybkość aktualizacji zestawu reguł – praktyczna eksploatacja klasyfikatorów wiąże się z koniecznością wdrożenia mechanizmów umożliwiających aktualizację definicji polityki bezpieczeństwa. Szybkość realizacji tego procesu wpływa na efektywność całego urządzenia. Problem klasyfikacji pakietów w ujęciu ogólnym sprowadza się do porównywania określonych pól nagłówków przetwarzanych pakietów z bazą danych klasyfikatora, zawierającą skończoną sekwencję n reguł bezpieczeństwa: R1, R2… Rn. Poszczególne reguły składają się z k-elementarnych wartości, odpowiadających analizowanym polom nagłówków pakietów. Każde pole może być porównane z k-tym elementem reguły na jeden z trzech sposobów: bezpośrednio, prefiksowo lub poprzez zakres. W przypadku porównywania bezpośredniego pole nagłówka musi jednoznacznie odpowiadać wartości k danej reguły. Sytuacja taka ma miejsce przy specyfikowaniu pojedynczego adresu IP, konkretnego numeru portu lub protokołu sieciowego. Dopasowywanie prefiksowe jest wykorzystywane do opisywania grup adresów tworzących podsieci. Ostatni sposób, polegający na porównywaniu zakresów, służy w praktyce określaniu przedziałów portów protokołów transportowych [6]. Niezależnie od zastosowanej metody weryfikowany pakiet jest zgodny z daną regułą Ri jedynie wówczas, jeśli ściśle zdefiniowane pola nagłówka odpowiadają jednocześnie wszystkim k-elementarnym wartościom składowym reguły. Do wyrażenia funkcyjnej złożoności czasowej algorytmów klasyfikujących powszechnie używana jest w literaturze notacja „dużego O” [3]. W celu zapewnienia jak najlepszej czytelności prezentowanych w dalszej części rozdziału charakterystyk metod weryfikacji pakietów, w tabeli 2.1 przedstawiono listę zmiennych wykorzystywanych w funkcjach opisujących złożoność czasową poszczególnych algorytmów. Tab. 2.1. Opis zmiennych wykorzystywanych w funkcjach złożoności czasowej poszczególnych algorytmów. Zmienna. Opis. N. Liczba reguł. d. Liczba wymiarów (analizowanych pól nagłówków). W. Długość (bitowa) prefiksu pojedynczego wymiaru. S. Szerokość słowa danych pamięci. A, α, l. Parametry optymalizacyjne, specyficzne dla danego algorytmu. 29.

Cytaty

Powiązane dokumenty

(The Euler genus of a surface Σ is 2h if Σ is the sphere with h handles and k if Σ is the sphere with k crosscaps.) In this note, we give a simple proof of Theorem 1.1 by using

Please write down the solutions (transformations, substitutions etc.), and additionally provide the final answer in the space specified (the answer should be a number in

Please write down the solutions (transformations, substitutions etc.), and additio- nally provide the final answer in the space specified (the answer should be a number in

Please write down the solutions (transformations, substitutions etc.), and additio- nally provide the final answer in the space specified (the answer should be a number in

Please write down the solutions (transformations, substitutions etc.), and additio- nally provide the final answer in the space specified (the answer should be a number in

[r]

Let k be a number field of degree n over Q. The purpose of this paper is to generalize this formula to an arbitrary number field k. As an application, we shall give another proof of

In particular, the lower bounds for the relative class number established by Louboutin [L1] enable us to give reason- able upper bounds for the conductors of abelian sextic