Podstawy bezpieczeństwa SOA
- Józef Muszyński,
-
- NetWorld,
- 13.07.2009
REST, Web 2.0 i SOA
Chociaż architektura SOA była pierwotnie powiązana z SOAP, WSDL i UDDI, wielu programistów preferowało wykorzystanie usług REST, które są bliższe schematowi współdziałania przeglądarki z ośrodkiem webowym. Do popularności stosowania tej metody przyczyniło się pojawienie Web 2.0, a w szczególności przejście do Rich Internet Applications (RIA), wykorzystujących usługi REST do wyciągania danych z serwerów webowych do przeglądarek. Technologia ta, która w Web 2.0 umożliwia włączanie skryptów JavaScript po stronie przeglądarki, przeważnie wywołuje REST Web services po stronie serwera. Na przykład witryna Flickr zawiera skrypty Java, uruchamiane w przeglądarce w celu wywołania serwerowych Web services do zmiany nazwy zdjęcia. W AJAX (Asynchronous JavaScript and XML), JavaScript po stronie klienta wywołuje na serwerze Web services, w celu pobrania danych XML lub JSON. Odbywa się to asynchronicznie, bez wymagania, aby użytkownik przeszedł w przeglądarce na nową stronę.
W świecie Web 2.0 na zapleczu funkcjonują Web services, które stają się kluczowym celem ataku. Taki atak na Web 2.0 jest czasami określany jako “zmasowany", ponieważ napastnik może próbować atakować aplikacje poprzez jej interfejs klienta lub może obejść ten interfejs i bezpośrednio zmierzać do Web services zaplecza.
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. Rozwiązaniem jest użycie znaczników czasowych (datowników). W ten sposób można wykryć komunikat odtworzony, ponieważ zawiera nieaktualny znacznik czasowy.
Częściowo bezpłatne Web services i ryzyko nadużyć
Web services, określane mianem “Freemium", obejmują podstawowe usługi oferowane bezpłatnie, podczas gdy sprzedawane są zaawansowane lub specjalne mechanizmy, zazwyczaj w cenie “premium". Określenie “freemium" stanowi zbitkę słowną, oddającą połączenie dwóch aspektów modelu biznesowego: bezpłatny i płatny ekstra.
Dopuszczenie niektórych usług SOA do funkcjonowania w modelu freemium wydaje się kuszące, jako że stwarza możliwość łatwego przejścia do komercyjnego modelu opłat. Jednak praktyka jest bardziej złożona. Model ten zakłada pewną strukturę bezpieczeństwa SOA, która ma wykrywać nadużycia i wymuszać płatności za użytkowanie usług premium. W takiej strukturze użytkowanie Web services musi być uwierzytelniane, aby nadużywanie usługi przez niektórych użytkowników mogło być wykrywane, a użytkownicy wzywani do wniesienia opłaty premium. Zazwyczaj osiąga się to przez wykorzystanie tzw. developer tokens. Takie tokeny są zagnieżdżane w wywołaniach Web services wysyłanych do oferowanej usługi. Użytkownik może korzystać bezpłatnie z usługi wyszukiwania do określonego punktu, ale nie może (potajemnie) wyszukiwać np. warunków do eksploracji danych - wtedy wymagana jest opłata premium.
Gdy wdraża się model freemium dla usług SOA, organizacja ma możliwość wyboru: napisanie specjalistycznego kodu programowego lub wykorzystanie produktów, takich jak XML Gateway. Jego zaletą jest to, że zapewnia wykonywanie zmian w parametrach modelu bez konieczności zmiany bieżącego kodu. XML Gateway skanuje także pod kątem wcześniej wymienionych ataków, takich jak “wstrzykiwanie" kodów złośliwych.