Podstawy bezpieczeństwa SOA

Jedną z najbardziej charakterystycznych cech usług SOA (Service Oriented Architecture) jest to, że są one dynamicznie konstruowane - zgodnie z faktycznymi potrzebami. To co jest niewątpliwym plusem po stronie funkcjonalności, po stronie bezpieczeństwa trzeba zapisać jako minus.

SOA jest architektonicznym podejściem, zakładającym udostępnianie aplikacji w modelu usługowym. Aplikacje SOA istotnie różnią się od tych tradycyjnych - monolitycznych. Web services mają naturę dynamiczną: są odnajdywane i łączone na czas realizacji zadania. W ramach SOA buduje się aplikacje dynamiczne, które ułatwiają tworzenie nowych lub wprowadzanie zmian w istniejących procesach biznesowych. To tworzy nowe wyzwania w zakresie zarządzania i bezpieczeństwa. Bezpieczeństwo transakcji jest dużo bardziej złożone.

Początkowo usługi w ramach SOA powiązane były ze stosem technologii obejmujących SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language) i UDDI (Universal Description Discovery and Integration). Jednak wielu projektantów zaczęło preferować lekkie usługi REST (Representational State Transfer) jako alternatywę przyciężkich komunikatów SOAP. Dlatego rozwiązania REST są obecnie akceptowane jako element SOA. REST to architektura programowania opierająca się na bezstanowej wymianie komunikatów w środowisku rozproszonym, wykorzystująca formaty XML i JSON (JavaScript Object Notation).

Rozwój technologii Web 2.0 ugruntował miejsce REST w świecie SOA, ponieważ architektura ta jest szeroko stosowana w Web 2.0. Od niedawna także cloud services, np. Amazon Simple Queuing Service (SQS), mogą być używane wraz z lokalnymi usługami do tworzenia hybrydowego środowiska SOA. W rezultacie, SOA obecnie obejmuje zarówno pierwotny zestaw SOAP/WDSL/UDDI, usługi REST, jak i cloud. Z punktu widzenia bezpieczeństwa, wszystkie te elementy muszą być zabezpieczane przed złośliwymi atakami.

Jednym z głównych powodów stosowania zabezpieczeń w SOA jest ochrona infrastruktury SOA przed atakami, a także potrzeba monitorowania korzystania z tych usług.

Podstawowe zagrożenia SOA

Zagrożenia związane z zawartością, a dotyczące głównie XML, to m.in. ataki SQL Injection czy XML eXternal Entity. Innymi, powodującymi zakłócenia normalnego działania, są np. ataki XML DoS czy XML Signature dereference.

Podstawy bezpieczeństwa SOA

Atak SQL Injection w ramach SOA polega na wprowadzeniu fragmentów SQL do danych XML w celu wydobycia zastrzeżonych danych lub wygenerowania błędu, który ujawni informacje związane z dostępem do bazy danych.

SQL Injection wykorzystuje luki w zabezpieczeniach aplikacji internetowych, polegające na nieodpowiednim filtrowaniu i późniejszym wykonaniu danych przesyłanych w postaci zapytań SQL do bazy danych. Podatne są na niego systemy dynamicznie generujące zapytania do bazy danych. Atak SQL Injection w ramach SOA polega na wprowadzeniu fragmentów SQL do danych XML w celu wydobycia zastrzeżonych danych lub wygenerowania błędu, który ujawni informacje związane z dostępem do bazy danych. Aby był on skuteczny, wymaga spełnienia dwóch warunków wstępnych: dane odbierane przez usługę w SOA muszą być zamieszczone bezpośrednio w wyrażeniu SQL, które musi być uruchamiane z uprawnieniami dostatecznymi do wykonania ataku.

Dlatego, żeby przeciwdziałać tego rodzaju atakom, konieczne jest zagwarantowanie, aby dane odbierane z nieuwierzytelnionych źródeł nie były umieszczane bezpośrednio w wyrażeniach SQL. Można to osiągnąć przez wymuszenie stosowania reguł sprawdzania treści i wykrywania zagrożeń w odniesieniu do otrzymanej zawartości.

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

TOP 200