Podstawy bezpieczeństwa SOA

Ataki przechwycenie/odtworzenie (Capture/Replay) to proces, w którym napastnik przechwytuje odpowiedni strumień danych i następnie odtwarza go w celu uzyskania określonych efektów. Usługa w ramach SOA jest chroniona przez odpowiednią politykę, zapewniającą, że jej żądania są podpisywane cyfrowo. I chociaż taki system wygląda na bezpieczny, to jednak nie można zapominać, że pozostaje podatny na tzw. atak odtworzenia, w którym po prostu odtwarza się poprawnie podpisany komunikat, uzyskując tym samym nieupoważniony dostęp. Rozwiązaniem tego problemu jest użycie znaczników czasowych (datowników). Standard WS-Security uwzględnia ich stosowanie, a WS-Policy może być używane do sprawdzania ich obecności w przychodzącym komunikacie. W ten sposób można wykryć komunikat odtworzony, ponieważ zawiera nieaktualny znacznik czasowy. Wymagany przedział czasowy ważności znaczników trzeba wybierać bardzo ostrożnie: musi być dostatecznie krótki, aby napastnik nie miał czasu na przechwycenie, deszyfrowanie i odtworzenie komunikatu jako poprawnego. Jednak z drugiej strony musi być wystarczająco długi, by niewielkie rozbieżności między systemami zegarowymi Web service i żądającego Web service nie powodowały blokowania legalnych komunikatów.

Należy również uważać, aby nie pomylić ataku typu Replay z atakiem DoS (Denial-of-Service). Chociaż oba wykorzystują odtwarzany komunikat, atak DoS ma na celu przeciążenie i wyłączenie zaatakowanego systemu, podczas gdy Capture/Replay stosuje luki w schemacie uwierzytelniania atakowanego systemu.

XXE (XML eXternal Entity) to atak na aplikację, która wykonuje na wejściu analizę składniową XML, używając niepoprawnie skonfigurowanego parsera XML. Specjalnie spreparowane dane mogą doprowadzić do wymuszenia otwarcia plików lub połączeń TCP. Atak wykorzystuje fakt, że zewnętrzne dane mogą być zagnieżdżane w dokumencie XML za pośrednictwem pozycji DTD (Document Type Definition). Poprzez specyfikację pliku lokalnego niektóre silniki XML mogą wykonywać nieautoryzowany dostęp do informacji z lokalnego systemu plików. Należy tu zwrócić uwagę, że SOAP nie dopuszcza używania DTD.

XPath Injection, który jest analogiczny do SQL Injection, jest techniką ataku wykorzystującą dane wprowadzane przez użytkownika do konstrukcji kwerendy XPath. Może być używany do wyprowadzania informacji z baz danych XML.

XPath Injection można zablokować wprowadzając kontrolę, aby dane przekazywane do wyrażenia XPath same nie zawierały XPath.

Atak XDoS (XML DoS) wykorzystuje mechanizm DTD, głównie jego możliwość zamieszczania oddzielnych jednostek zawartości identyfikowanych przez nazwę (encji). W dokumentach XML mechanizm może być wykorzystany w postaci odsyłaczy do wielokrotnie powtarzanych elementów tekstu. Przez powtarzalne zagnieżdżanie encji, napastnik może utworzyć wiadomość XML, która "eksploduje" w pamięci (stąd nazwa “bomba XML") i spowoduje efekt denial of service. Najpopularniejsza forma tego ataku to wiadomość XML wysłana z wieloma podpisami cyfrowymi, co powoduje obciążenie parsera zmuszonego do zajęcia się każdym takim podpisem.

Problemy z załącznikami - podobnie jak w wiadomościach poczty elektronicznej, szkodliwe załączniki SOAP mogą być groźne, jeżeli są zbyt duże lub trudne do przetwarzania (clogging attack), lub jeżeli są nośnikami wirusów. Rozwiązaniem jest blokowanie załączników SOA, filtrowanie na podstawie typu MIME lub przepuszczanie przez skaner antywirusowy.

Atak XML Signature dereference. Specyfikacja XML Signature zawiera element “Reference", wskazujący na podpisane dane. Aplikacja wykonująca analizę składniową musi pobrać (“dereference") odpowiedni zasób wskazany przez URI (Uniform Resource Identifier). Standard podpisów cyfrowych XML określa, że aplikacja podpisów XML musi mieć możliwość analizy składni URI i rekomenduje wykonanie tego w schemacie HTTP (RFC3075 - XML Signature Syntax and Processing). Jednak zalecenia te mają pewną lukę - powiązane dane mogą być fałszywe lub po prostu stanowić sposób na marnowanie zasobów odbiorcy poprzez ściąganie dużych plików.


TOP 200