CRASH - system odpornościowy dla sieci

Naukowcy agencji DARPA (Defense Advanced Research Project Agency) ogłosili program CRASH (CleanSlate Design of Resilent, Adaptative, Secure Hosts), który ma umożliwić projektowanie samodostosowujących się, niezwykle bezpiecznych sieci komputerowych, korzystających z mechanizmów analogicznych do systemów odpornościowych organizmu ludzkiego.

Program CRASH zakłada m.in. przeniesienie zasad działania systemów odpornościowych człowieka w dziedzinę IT. W ludzkim systemie immunologicznym wiele niezależnych mechanizmów stale monitoruje nasz organizm pod kątem patogenów. Nawet na poziomie komórki funkcjonuje wiele redundantnych mechanizmów monitorujących i naprawiających strukturę DNA. Konsumują one dużo zasobów, ale powalają organizmowi na funkcjonowanie oraz naprawianie uszkodzeń spowodowanych przez patogeny.

Analog naturalnego systemu odpornościowego w obszarze systemów komputerowych ma obejmować elementy sprzętowe i programowe, które stale będą monitorować podstawowe własności semantyczne, takie jak bezpieczne wprowadzanie, integralność pamięci operacyjnej, rozróżnianie danych i kodu, przepływ informacji i ograniczenia w ramach kontroli dostępu. Taki podsystem ma rozpoznawać potencjalne ataki na podstawie luk wynikających z naruszania podstawowych własności. Analogicznie jak w systemach biologicznych, do tych zadań powinny być przydzielane znaczące zasoby. Ponieważ te sprzętowe są obecnie olbrzymie, rozsądne będzie ich używanie tam, gdzie zapewni to pełne egzekwowanie zasad oraz lepszą wydajność.

Zobacz również:

  • Bezpieczeństwo w chmurze publicznej nadal priorytetowe
  • Nowa usługa IBM wykorzystuje DNS do zapewnienia łączności w wielu chmurach
  • Wyjaśniamy czym jest SD-WAN i jakie są zalety tego rozwiązania

System CRASH ma wykorzystywać ścisłą integrację sprzętu, systemów i języków programowania oraz środowisk projektowych. Często dokonanie niewielkiej zmiany w jednej z tych domen może w znacznym stopniu ułatwić zadanie innej. Na przykład zapewnienie jednolitego systemu programowania, wspierającego zarządzanie pamięcią operacyjną - może zmniejszyć zakres zadań związanych z analizowaniem bezpieczeństwa pamięci. Podobnie sprzętowe metkowanie może zapewnić systematyczne egzekwowanie rozróżniania kodu i danych, co może być trudne i bardziej kosztowne do zagwarantowania na innych poziomach. Języki i środowiska programowania, które zapewniają racjonalne podstawy projektowania - ograniczenia i inwarianty (niezmienniki) - ułatwiają wdrażanie samokontrolujących i samodostosowujących się systemów.

W ramach projektu CRASH, DARPA planuje przebadanie następujących obszarów w zakresie technik IT: architektura procesora, systemy operacyjne, mechanizmy adaptacyjne, diagnostyki, odtwarzania i naprawiania, języki i środowiska programowania, metody formalne oraz dynamiczną dywersyfikację.

Architektura procesora: niewielkie rozszerzenia procesora mogą być najwłaściwszymi mechanizmami przy systematycznym wprowadzaniu bazowych własności semantycznych, takich jak: bezpieczne wprowadzanie, bezpieczeństwo pamięci i kontrola informacji. Takie rozszerzenia mogą obejmować m.in. metkowanie w celu śledzenia przepływu informacji, kontrolę wartości granicznych, kontrolę wprowadzania danych, kontrolę dostępu i współbieżności. Możliwe do zaimplementowania techniki to Field Programmable Gate Arrays (programowalny układ logiczny) lub symulacja zbioru instrukcji. Cel wydajnościowy tych implementacji to osiągnięcie szybkości wystarczającej do wsparcia eksperymentów w tym lub innych obszarach. Według specjalistów DARPA, kosztowne i czasochłonne implementacje takich technik w postaci specjalizowanych mikroukładów, których jedynym celem jest osiągnięcie jak najwyższej wydajności, powinny zostać zaniechane.

Systemy operacyjne powinny być projektowane z uwzględnieniem egzekwowania bazowych własności semantycznych, takich jak bezpieczeństwo pamięci, bezpieczeństwo wprowadzania, przepływ informacji i kontrola dostępu. Powinny one pracować w zgodzie z mechanizmami przewidzianymi na poziomie sprzętowym. Jeżeli projektowany jest nowy sprzęt, to DARPA zaleca ścisłą współpracę między systemem operacyjnym i projektowanym sprzętem. System operacyjny powinien zapewniać środki efektywnego odtwarzania, śledzenia przepływu informacji i systematycznego rejestrowania zdarzeń. Celem ma być nie tylko uzyskanie bogatego w mechanizmy systemu operacyjnego, konkurencyjnego w stosunku do komercyjnych systemów, ale raczej zbudowanie systemu prototypowego, zdolnego do ilustrowania i testowania pewnych zasad.

Samoadaptacja, diagnostyka, odtwarzanie i naprawianie. Wykorzystywane w tym zakresie techniki obejmują m.in. sposoby określania, czy zachowanie programu nie wykracza poza określone w założeniach granice, zapewnienie możliwości kontynuowania działania programu nawet po skutecznym ataku niszczącym niektóre zasoby, izolowanie przyczyn występujących problemów, techniki odtwarzania pozwalające na cofnięcie programu do bezpiecznego stanu, z którego może być kontynuowany, techniki naprawcze powalające na usuwanie luk bezpieczeństwa.

Języki i środowiska programistyczne mogą zapewniać mechanizmy, które wykorzystują stosowanie istotnych ograniczeń w wykonywaniu programu, np. w odniesieniu do przepływu informacji, lub niezmienniki utrzymywane w określonych punktach programu.

Metody formalne. W warunkach idealnych, formalna analiza projektu oprogramowania lub sprzętu będzie używana do weryfikowania, czy zostały zachowane istotne jego właściwości. Jednak ważniejsze jest, aby informacje z analiz formalnych były częścią ewolucyjnego procesu projektowania. Poszukiwane są techniki, które pozwolą na formalne sprawdzenie właściwości programu, a także techniki statycznej analizy, wspomagające budowanie efektywnych modeli behawioralnych programów. Takie techniki mogą obejmować efektywne wyznaczanie sprawdzalnych warunków inwariantnych, jak również modele dozwolonych sterowań przepływem i samego przepływu danych.

Dynamiczna dywersyfikacja. Ten obszar powinien skupiać się na technikach wprowadzających rozróżnienie między kopiami tego samego systemu oraz pojedynczej kopii na osi czasu. Obejmują one randomizację pamięci, struktur danych i stosu, dywersyfikację zestawu instrukcji oraz użycie innych alternatywnych metod do osiągnięcia tego samego celu.

Potrzeba opracowania tak zaawansowanych systemów jest oczywista, ponieważ obecne systemy komputerowe nie są odporne na ataki. Brak im środków do odtwarzania po atakach - bądź poprzez znalezienie alternatywnych metod, bądź przez naprawę zasobów zniszczonych w wyniku ataku. Brak im też zazwyczaj zdolności do diagnozowania przyczyn problemów oraz środków do usuwania luk umożliwiających ataki. W razie uszkodzenia maszyny, konieczna jest ręczna naprawa przez specjalizowany personel, gdy informacja śledcza, niezbędna do efektywnej naprawy, jest zazwyczaj niedostępna.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200