czwartek, 21 października 2010

ISM - Storage Security Domains

Środowisko urządzeń storage i dostęp do danych na nich składowanych poprzez sieć, rodzi zagrożenia pod postacią ataków i próby uzyskania nieautoryzowanego wejścia i zmiany danych, lub ich uszkodzenia. Aby dobrze zidentyfikować rodzaje zagrożeń dzielimy całą sieć storage na trzy domeny:
  • Appliaction access - domena zawierająca ten fragment sieci, który jest wykorzystywany do dostępu do danych. 
  • Management access - w tej domenie znajdują się wszystkie ścieżki i urządzenia, które wykorzystuje się przy zarządzaniu i konfigurowaniu storage.
  • BURA - obejmuje wszyskie ścieżki danych i urządzania uczestniczące w procesie backup/recovery.

Application Access Domain:

W skład tej domeny wchodzą te komponenty (aplikacje, hosty, urządzania w sieci SAN itd.) które współuczestniczą w ruchu danych z/do urządzeń storage. Przykładowe zagrożenia związane z domeną Application Access to np: podszywanie się jednego hosta za drugiego, w celu uzyskania dostępu do zasobów storage, podsłuchiwanie transmisji w sieci , przeprowadzanie ataku DoS itd... Metody zapobiegawcze to przede wszystkim autentyfikacja i autoryzacja użytkowników, ważne jest także aby macierz mogła widzieć jedynie te hosty które powinny z jej zasobów korzystać.
Przykłady zabezpieczenia i kontroli dostępu użytkownika do danych (ataki typu: podszywanie się pod użytkownika): Autentyfikacja hasłami , NAS: Access Control Lists
Przykłady zabezpieczenia i kontorli dostępu hostów do danych (ataki typu: podszywanie się pod hosta): Zony w sieci SAN , LUN Maskig, iSCSI autentyfikacja wykorzystująca CHAPa
Przykłady zabezpieczeń i ochrony infrastruktury (ataki DoS, podsłuchiwanie transmisji itd...): używanie bezpiecznych protokołów IPSec i FC-SP ( Fibre Channel Security Protocol)
Przykłady zabezpieczeń danych istniejących na macierzach i taśmach (ataki bezpośrednio skierowane w dane: fizyczna kradzież ): Szyfrowanie danych, bezpieczne usuwanie.


Management Access Domain:

Za pomocą komponentów tej domeny możliwe jest zarządzanie urządzeniami storage (monitoring, wystawianie LUNów , provisioning itd...). W większości przypadków sieć zarządzająca to sieć LAN, a dostęp do samych macierzy odbywa się za pomocą CLI (Command Line Interface) lub przeglądarki sieciowej. Zagrożenia związane z Management Access Domain wiążą się z podsłuchem ruchu pomiędzy macierzami, a konsolami zarządzającymi oraz na próbach nieautoryzowanego łączenia się i zarządzania urządzeniami storage. Przeciwdziałania to wprowadzenie dwustronnej autentyfikacji (macierz identyfikuje się hostowi i host macierzy) , używanie bezpiecznych protokołów komunikacyjnych (np: SSH) przy łączeniu się do macierzy. Wydzielenie sieci LAN zarządzającej, od pozostałej infrastruktury sieciowej ( fizyczne rozdzielenie lub zdefiniowanie VLANu )


BURA Domain

BURA obejmuje sobą wszystkie urządzenia i ścieżki danych, które są wykorzystywane przez środowisko backupowe ( takie jak np: taśmy czy replikację ). Zabezpieczenie domeny BURA bazuje zwykle na specyfice działania aplikacji backupowej, gdyż musi bardzo ściśle z nią współpracować. Przykładami ataków w tej domenie to podszywanie się intruza pod serwer backupowy lub DR site, czy próba przechwycenia transmisji danych dla backupu, poprzez podsłuchiwanie kanału komunikacyjnego. Ochrona polega na wprowadzaniu szyfrowanej transmisji oraz mechanizmach autentyfikacji.





Tyle o domenach. W kolejnym odcinku telenoweli pt ISM , prześledzimy zagadnienia związane z konkretnymi
metodami zabezpieczeń w sieciach storage.

sobota, 16 października 2010

ISM - Budowa podstaw polityki bezpieczeństwa w obszarze storage

Czym jest bezpieczeństwo storage?

Jest to wdrożenie pewnych polityk, zasad i praktyk do technologii związanych ze storage. Główny nacisk jest kładziony na zapewnienie bezpiecznego(kontrolowanego) dostępu do informacji.
Podstawowy szkielet zasad i procedur ( tzw: framework ) bezpieczeństwa storage powinien obejmować następujące pojęcia:
  • Poufność (Confidentiality) - zapewnia, że jedynie upoważnieni użytkownicy mają dostęp do informacji. Każda osoba chcące przeczytać lub zapisać dane musi być zautentyfikowana i jej upoważnienia potwierdzone. Dane powinny być przechowywane i przesyłane wyłączenie w postaci zaszyfrowanej.
  • Integralność (Integrity) - zapewnia, iż dane nie zostaną niezauważalnie i bezprawnie zmodyfikowane. Dopusza zmianę jedynie dla uprawnionych do tego użytkowników.
  • Dostępność (Availability) - zapewnia że dane są dostępne zawsze i z odpowiednio dużą szybkością
  • Monitoring (Accountability) -  zapewnia, że wszystkie działania i operacje na danych będą zapisane i przechowywane w logach, w celach audytowych lub sprawdzenia w przyszłości.

Elementy wchodzące w skład bezpieczeństwa

Jednym z najważniejszych pojęć związanych z bezpieczeństwem (nie tylko storage) jest ryzyko (risk), które można opisać jako pewną miarę zagrożenia. Trzy pojęcia związane z ryzykiem to: Zasób (Asset) , Zagrożenie (Threat) i Wrażliwość (Vulnerability)

Elementy bezpieczeństwa: Zasoby
Najważniejszym zasobem jest informacja.
Inne rodzaje zasobów to hardware, software i infrastruktura sieciowa. Głównym zadaniem bezpieczeństwa jest chronienie zasobów. Planując zabezpieczenia należy pilnować dwóch rzeczy: Po pierwsze dane muszą być w łatwy sposób dostępne dla uprawnionych użytkowników i po drugie bardzo ciężko dostępne dla potencjalnych intruzów. Efektywność kosztową systemu zabezpieczeń także można ocenić za pomocą dwóch wskaźników: koszt implementacji systemu musi być nieduży, w stosunku do wartości danych w nim przechowywanych, a jednocześnie koszt przeprowadzenia ataku i uzyskanie nieuprawnionego dostępu powinien być dużo większy, niż wartość samych danych.

Elementy bezpieczeństwa: Zagrożenia
Zagrożenia są to potencjalne miejsca i sposoby ataku na naszą strukturę IT.
Można je podzielić na dwie grupy:
  • Ataki pasywne
    • Próby uzyskania nieautoryzowanego dostępu
    • Zagrożenia dla tajności informacji
  • Ataki aktywne
    • Modyfikacja danych , Denial of Service (DoS)
    • Zagrożenia dla integralności i dostępności danych

Elementy bezpieczeństwa: Wrażliwość
Należy pamiętać, że słaby punkt (wrażliwość) może wystąpić w każdym miejscu/elemencie naszego środowiska ( sieć, system operacyjny , użytkownicy , dostęp fizyczny itd.) i dodatkowo udany atak w tym miejscu może skompromitować cały system i dać intruzowi dowolny dostęp do danych.
Mówiąc o konkretnej wrażliwości systemu można przypisać jej 3 cechy:

  • Attack surface - jest związany z punktem w systemie, który intruz może wykorzystać do przeprowadzenia ataku. Przykładem może być każdy komponent infrastruktury sieciowej , taki jak np konkretny interfejs, protokół, usługa sieciowa itd...
  • Attack vector - to szereg kroków jakie muszą być wykonane aby atak się udał. 
  • Work factor - to ilość czasu i starań jakie są potrzebne aby przejść przez "attack vector"
Aby likwidować lub ograniczać wpływ wrażliwości należy stosować metody zapobiegawcze. Można je podzielić na dwie kategorie: techniczne i nie-techniczne (procedury bezpieczeństwa, fizyczna ochrona obiektów). Jeżeli chodzi o sposób działania to metody przeciwdziałania używają trzech sposobów:
  • Prewencja - likwidowanie wrażliwości lub zmniejszanie ich wpływu
  • Korekcja - usuwanie skutków ataku
  • Detekcja - wykrywanie ataków i uruchamianie mechanizmów prewencyjnych i korekcyjnych.





Już widzę, że ta sekcją będzie dla mnie najcięższa. Tematyka w miarę odległa od tego czym się zajmuję i dużo nowych pojęć. Na szczęście za niedługo już koniec ;)

Kolejny wpis będzie o: Storage Security Domains.

poniedziałek, 11 października 2010

ISM - Replikacja zdalna

Replikacja zdalna jest to tworzenie repliki w innej lokacji. Druga lokacja (macierz) na którą wykonuje się replikacje może być kilka metrów od macierzy źródła lub znajdować się na innym kontynencie.
Replikowanie zdalne zabezpiecza dane przed ich utratą spowodowaną przez lokalną katastrofę ( powódz, pożar, zamieszki itd...)

Wyróżnia się dwa podstawowe typy replikacji: Synchroniczną i Asynchroniczną. Dane pomiędzy lokacjami mogą być przesyłane na kilka sposobów, poprzez: Sieć IP, Sieć SAN, za pomocą Dense Wave Division Multiplexing (DWDM) lub Synchronous Optical Network (SONET)


Replikacja Synchroniczna:

W replikacji synchronicznej każdy zapis wykonany przez hosta zostaje przesłany z macierzy źródła, na macierz cel, następnie cel potwierdza zapis danych i dopiero po tym macierz źródłowa wysyła do hosta potwierdzenie wykonania operacji. Takie działanie powoduje, że przez cały czas, na obydwu macierzach są te same dane, dodatkowo zachowywana jest kolejność zapisów. RPO jest zerowe , RTO wynosi tyle ile potrzeba do uruchomienia aplikacji po stronie celu.
Replikacja synchroniczna ma wysokie wymagania, jeżeli chodzi o przepustowość łącza, pomiędzy dwoma lokalizacjami. Musi być ono w stanie obsłużyć maksymalne obciążenia generowane przez I/O
Ten rodzaj replikacji zwykle nie jest możliwy na odległości większe niż 100-200km


Replikacja Asynchroniczna:

W tej replikacji po wysłaniu żądania zapisu przez hosta, dane zostają zapisane na macierzy źródle i od razu host otrzymuje potwierdzenie. Źródło buforuje nowe dane i periodycznie wysyła do drugiej lokacji. RPO jest niezerowe i zależne od częstości wysyłania danych do macierzy celu. Zużycie łącza jest dużo niższe i zwykle przepustowość może być mniejsza niż typowe obciążenie I/O generowane przez hosta. Na macierzy źródle należy utrzymywać bufory na dane przygotowywane do wysłania. Ten rodzaj synchronizacji może być implementowany na długich dystansach.


Rodzaje replikacji zdalnej:

Ze względu na poziom na jakim działa replikacja zdalna, podobnie jak w przypadku replikacji lokalnej możemy wyróżnić dwa jej typy:
  • Host Based Replication
    • Logical Volume Manager (LVM) based
    • Log Shipping
  • Storage Array based
    • Support both synchronous and asynchronous mode
    • Disk Buffered - Consistent PITs


Host Based Replication: LVM Based

Odbywa się na poziomie LVMowych volume grup (więcej o LVMie jest w poprzednim wpisie). LVM, na hoście źródle, wysyła poprzez sieć IP wszyskie zapisy, do swojej volume grupy, LVM na źródle zapisuje te zmiany do volume grupy docelowej. Ten typ replikacji może działać zarówno w sposób synchroniczny jak i asynchroniczny, dane są wtedy wpierw zapisywane do log file na źródle i dopiero potem wysyłane do celu. Log file jest także wykorzystywany, jako tymczasowe miejsce przechownia zmian w przypadku utraty połączenia. Ten rodzaj replikacji pozwala utrzymywać kopię danych bez potrzeby używania sieci SAN.

Zalety:
  • Różne poziomy RAID mogą być zdefiniowane na celu i źródle
Wady:
  • Długie problemy z połączeniem siecowym, powodują powstawanie wielkich log filów.
  • Negatywny wpływ na wydajność hosta


Host Based Replication: Log Shipping

Jest to rodzaj replikacji na poziomie hosta, wykorzystywany przez bazy danych. Transakcje wykonywane na źródle są zapisywane do logu, który następnie jest periodycznie wysyłany na źródło. Źródło zapisuje loga a następnie wprowadza zawarte w nim operacje do swojej bazy. RPO jest zależne od wielkości loga i częstotliwości jego wysyłania. Zaletami tego typu replikacji jest małe zużycie CPU oraz małe wymagania dotyczące przepustowości łącza.


Storage Array Based Remote Replication

W tym rodzaju replikacji podobnie jak w przypadku lokalnym (poprzedni wpis) wszystkie operacje odbywają się i są zarządzane przez macierz - powoduje to zwolnienie zasobów CPU. Do połączenia między macierzami można wykorzystać łącze dedykowane lub współdzielone.
Replikacja Storage Based może występować w wersji synchronicznej (potwierdzenie zapisu do hosta zostaje wysłane dopiero po otrzymaniu potwierdzenia o zapisaniu zmiany na macierzy celu ) lub asynchronicznej ( potwierdzenie zapisu zostaje wysłane do hosta natychmiast, a dane ze źródła na cel są wysyłane co pewien ustalony okres czasu). W replikacji asynchronicznej stosowane są różne metody zapewnienia spójności danych , niektórzy producenci dołączają do każdego żądania znacznik czasowy, tak żeby na macierzy celowej zachować kolejność z zapisów. Innym sposobem jest zapisywanie na bufor cache przez zadany okres czasu, a następnie zablokowanie bufora w stanie spójnym i przesłanie go na drugą stronę.


Storage Array Based - Disk Buffered Replication

Jest to połączenie lokalnej i zdalnej replikacji na poziomie macierzy. Najpierw spójna kopia PIT (snapshot) jest tworzona lokalnie na macierzy źródle. Następnie ta replika jest przesyłana na macierz docelową. RPO jest zależne od częstości


Replikacja na trzy lokacje.

W replikacji synchronicznej źródło i cel nie mogą być oddalone od siebie bardziej niż około 200km. Powoduje to, że taka konfiguracja jest wrażliwa na katastrofy o lokalnym zasięgu. Rozwiązaniem jest stosowanie replikacji asynchronicznej i lokacji odległych o setki czy tysiące kilometrów. W takich konfiguracjach jednak RPO jest niezerowe i często nie akceptowalne.
Rozwiązaniem jest replikacja na trzy lokacje (Three site replication).
Replikacja tego rodzaju może odbywać się na dwa sposoby:

  • Cascade/Multi-hop
  • Triangle/Multi-target
Cascade/Multi-hop:

SOURCE----------->BUNKER---------->TARGET

W tym rodzaju replikacji przepływ danych jest następujący: Ze źródła (SOURCE) dane są synchronicznie replikowane na BUNKER a z niego asynchronicznie lub metodą Disk Buffered na TARGET

Triangle/Multi-target:
W rozwiązaniu cascade/multi-hop mamy większą niezawodność, niż przy dwóch lokacjach, ale zagrożenie nie jest wyeliminowane całkowice. Utrata BUNKER powoduje, że aplikacje działają na produkcji, ale brak jakiejkolwiek replikacji na TARGET. Wady te eliminuje rozwiązanie Triangle/Multi-target, gdzie każda lokalizacja jest połączona z dwoma pozostałymi.
Schemat przepływu danych jest następujący: Ze SOURCE dane są synchronicznie replikowanie na BUNKER oraz asynchronicznie na TARGET. Pomiędzy BUNKER a REMOTE zestawiona jest również replikacja asynchorniczne z dyferencyjną resychronizacją (Asych with Differential Resynch).
Takie rozwiązanie gwarantuje, że po utracie lokacji dane nie dość że są dostępne, to jeszcze mamy rozwiązanie DR (Disaster Recovery) - czyli jesteśmy w stanie przetrwać utratę drugiej lokalizacji.


SAN Based Remote Replication

Ten rodzaj replikacji może odbywać się pomiędzy macierzami różnych producentów. Dane są przesyłane poprzez SAN/WAN. Samą replikacją steruje jedna z macierzy, nazywana "contolling array". Macierz docelowa nosi nazwę "Remote array". W SAN Based Remote Replication możliwe są dwie operacje: push i pull. Push polega na wysłaniu danych z control array do remote array , natomiast pull to przesłanie danych z remote array do control array. Obydwie te czynności nadzoruje i inicjuje control array.


Nośniki zdalnej replikacji

Aby zdalna replikacja mogła mieć miejsce między macierzami biorącymi w niej udział musi istnieć połączenie.
Przykłady takiego połączenia to:
  • ESCON i FC dla krótszych odległości
  • IP network dla dalekich dystansó
  • Sieci optyczne: DWDM i SONET


Sekcja nr 3 została oficjalnie skończona, została jeszcze część 4 opisująca zabezpieczanie i zarządzanie zasobami storage. Z racji pewnych zmian zachodzących ostatnio w moim życiu zawodowym wpisy mogą pojawiać się nieco rzadziej, choć będę chciał utrzymać poziom co najmniej jednego nowego na tydzień.
Zobaczymy czy się uda.

środa, 6 października 2010

ISM - Metody lokalnej replikacji

Metody lokalnej replikacji można podzielić na dwie kategorie:
  • Host based
  • Storage Array based
Gdy mówimy o lokalnej replikacji typu host based, to odbywa się ona z wykorzystaniem zasobów hosta (CPU) i na poziomie hosta, poprzez pracujący na nim software. W tym przypadku o lokalnej replikacji mówimy jeżeli odbywa się w zakresie jednego datacenter. Przykładami replikacji lokalnej tyou host based są: Logical Volume Manager (LVM) base mirroring i File System Snapshot

Replikacja lokalna typu Storage Array based odbywa się w obrębie jednej macierzy i wykorzystuje jej zasoby do stworzenia kopii danych. Przykładami replikacji tego typu są: Full volume mirroring , Pointer based full volume replication, Pointer based virtual replication


Replikacja host based: LVM Based Mirroring

W tej metodzie za replikację jest odpowiedzialny LVM, który składa się z trzech komponentów:
  • Wolumeny fizyczne (physical volumes) - tożsame z dyskami
  • Grupy wolumenów (volume groups) - jeden lub większa ilość wolumenów fizycznych
  • Logiczny wolumen (logical volumes) - struktura logiczna zbudowana w obrębie jednej grupy
Przy replikacji na poziomie LVMa, każda partycja logiczna (struktura w logicznym wolumenie) jest podmapowana do dwóch partycji fizycznych. Aplikacja pisze do podmapowanej partycji logicznej a sterownik LVMa zapisuje na dwie partycje fizyczne. Ta metoda jest także znana jako LVM mirroring.
Dwie zmirrorowane partycje fizyczne mogą być rozdzielone.


Replikacja host based: File System Snapshot

Snapshot FSa to replika oparta na wskaźnikach do danych. Metoda ta wykorzystuje dwie struktury bitmape i mapę bloków:
  • Bitmap : używana jest do śledzenia bloków które ulegają zmianie po stworzeniu snapshota. Początkowo cała wypełniona jest zerami.
  • Block map : zawiera wskaźniki do bloków danych które musza byc odczytane ze snapshota
Mechanizm działania snapshota jest następujący: podczas jego tworzenia, powstają także bitmapa i block mapa. Przy zapisywaniu danych stosowany jest mechanizm Copy on First Write (COFW) - oznacza to że przy pierwszej zmianie danego bloku, dane nie są nadpisywane ale przekopiowywane na nowe miejsce. Następnie bit w bitmapie odpowiadającej za ten blok danych zmienia swoją wartość z 0 na 1 , a wskaźnik w block mapie zaczyna wskazywać na miejsce do którego przekopiowano dane. 
Dzięki zastosowaniu tej metody snapshot zajmuje tylko tyle miejsca ile zajmują zmiany wykonane od czasu jego wykonania do chwili obecnej. Wadą tego typu replikacji jest wyższe zużycie CPU ( LVM musi zajmować się śledzeniem zmian).


Replikacja storage based: Full Volume Mirroring

W full volume mirroring-u do LUNa źródłowego jest przypisany (attached) LUN docelowy i między nimi ustalone jest powiązanie typu mirror. Wszyskie dane zostają przegrane z źródła do celu, nowe zmiany także są synchronizowane. LUN źródłowy i docelowy mają dokładnie te same dane.
Jeżeli cel jest w stanie: przypisany (attached) wtedy jest on niedostępny dla hostów.
Taką struktrurę można rozłączyć (detached) w takim przypadku cel staje się PIT (Point in time) repliką LUNa źródła i może zostać podłączony do hostów np w celach testowych lub do zrobienia backupu.
Po rozłączeniu zmiany zarówno na LUNie źródłowym jak i docelowym są śledzone i przy ponownym przypisaniu synchronizowaniu ulegają jedynie zmiany.


Replikacja storage based: Pointer Based Full Volume Replication

Ten typ replikacji tworzy replikę od razu dostępną po włączeniu sesji replikacyjnej ( nie ma potrzeby czekania aż istniejące dane przekopiują się ze źródła do celu ), od razu kopia jest też dostępna do wystawienia dla hostów. Czas aktywowania definiuje PIT kopii.
Pointer based, full volume repliaction może być uruchomiona w dwóch trybach:
  • Copy on First Access (CoFA)
  • Full Copy
W obydwu przypadkach, podczas aktywowania replikacji tworzona jest bitmapa dla wszystkich danych na źródle. Wskaźniki w tej bitmapie wiążą puste bloki na celu z blokami z danymi na źródle. Następnie w zależności od trybu w jakim działa replikacja dane są kopiowane ze źródła do celu.

Copy on First Access:
W tym trybie dane są kopiowane na źródło zawsze kiedy host próbuje się do nich odnieść po raz pierwszy od stworzenia PIT kopii.
Nieco dokładniejszy opis tego procesu:
  • Kiedy do źródła jest wysyłane ( po raz pierwszy) żądanie zapisu - oryginalne dane są kopiowane na cel + nowe dane są zapisywane na źródle. Dane zostają oznaczone (na bitmapie) jako przekopiowane.
  • Kiedy do celu wysyłane ( po raz pierwszy) jest żądanie odczytu - oryginalne dane są kopiowane ze źródła na cel. Dane zostają oznaczone (na bitmapie) jako przekopiowane.
  • Kiedy do celu jest wysyłane (po raz pierwszy) jest żądanie zapisu - oryginalne dane są kopiowane ze źródła na cel a następnie nadpisywane nowymi danymi. Dane zostają oznaczone (na bitmapie) jako przekopiowane.
Kluczowy tutaj jest fakt oznaczania danych jako przekopiowanych. Po tej zmianie zarówno dane na źródle jak i na celu mogą się zmieniać, co doprowadza do sytuacji, że oryginalna PIT kopia przestaje istnieć.


Full Copy Mode:
W tym trybie od razu po stworzeniu PIT kopii (aktywacji sesji replikacyjnej) rozpoczyna się proces kopiowania w tle wszystkich danych ze źródła na cel.


Replikacja storage based: Pointer Based Virtual Replication

W tym rodzaju replikacji po uruchomieniu cel zawiera tylko wskaźniki do danych na źródle. Początkowo wielkość repliki jest równa zero. W tej metodzie replikacji cel jest nazywany virtualną repliką, ponieważ nie jest LUNem czy przestrzenią dyskową ale zbiorem wskaźników.
Pointer Based Virtual Replication używa mechanizmu Copy on First Write ( CoFW)
CoFW działa następująco:

  • Kiedy do źródła jest wysyłane ( po raz pierwszy) żądanie zapisu - oryginalne dane są kopiowane do pewnego wcześniej zdefiniowanego obszaru na macierzy (tzw: save location). Wskaźnik na celu jest zmieniany na tą nową lokację. Po wykonaniu tego orginalne dane na źródle są nadpisywane. 
  • Kiedy do celu jest wysyłane (po raz pierwszy) jest żądanie zapisu - oryginalne dane są kopiowane ze źródła na save location, a następnie zmianie ulegają wskaźniki w celu. Potem wykonuje się jeszcze jedną kopię danych w save location i dopiero potem nadpisuje je nowymi danymi.



Tyle o lokalnej replikacji - pominąłem trochę materiału o szczegółach dotyczących śledzenia zmian i odtwarzania z repliki. Sprawy raczej oczywiste i wynikające już z tego co zostało napisane.
Kolejny wpis będzie o zdalnej replikacji i na tym skończymy trzecią (z czterech) sekcji przygotowujących do egzaminu na EMC Proven Associate.