Zabezpieczanie aplikacji webowych

ITpedia

Ochrona aplikacji webowych
Ochrona aplikacji webowych

Ataki na aplikacje webowe mogą powodować znaczące skutki negatywne dla aktywów, zasobów czy też reputacji firmy. Pakiety antywirusowe i zapory ogniowe utrzymywane na najwyższym poziomie uaktualnień szyfrowanie transakcji o znaczeniu strategicznym i dobry mechanizm uwierzytelniania, a nawet systemy wykrywania włamań w przypadku aplikacji webowych są środkami koniecznymi, ale nie dostatecznymi.

W tym kontekście niezmiernie ważnym zagadnieniem jest poziom umiejętności zespołów projektowych. Prawidłowo zaprojektowane oprogramowanie w znacznym stopniu eliminuje możliwość wykonywania niektórych ataków. Drugim elementem jest dbanie o poziom łatek programowych, zwłaszcza dla systemów operacyjnych – często możliwość ataku istnieje tylko dlatego, że administrator nie zainstalował wydanych już od dawna łatek uszczelniających system. Połączenie tych dwóch elementów w dużym stopniu przyczynia się do uszczelnienia webowych systemów aplikacyjnych.

Istnieje też wiele rozwiązań pozwalających ograniczyć możliwość takich ataków. Można je podzielić na trzy kategorie:

  • Proxy kontrolne – przejmujące na siebie zadanie kontroli dopuszczalnych wartości w polach formularzy, maskując niejako błędy w sztuce projektowania aplikacji webowych.
  • Uszczelnianie systemów operacyjnych i serwerów webowych – zapobiegające nieautoryzowanym zmianom w kluczowych elementach systemów operacyjnych Windows NT/2000 i ochrona serwerów webowych przed przeprowadzaniem akcji, które wykraczają poza normalny tok biznesu.
  • Kontrola zawartości – polegająca na kontrolowaniu treści nie podlegających modyfikacji.

Proxy kontrolne

W gruncie rzeczy rozwiązania te sprowadzają się do przysłaniania luk istniejących w wielu aplikacjach webowych – można to uznać za „leczenie objawów”. Bardzo często stosunkowo łatwo jest odnaleźć i podmienić ukryte pola formularzy HTML zawierające, na przykład, cenę produktu. Podobnie często można łatwo zmieniać parametry skryptów CGI w celu, na przykład, poszukiwania plików z hasłami zamiast cen produktów. Jeżeli możliwości przeszukiwania nie są zaimplementowane poprawnie, ośrodki mogą być także przedmiotem ataków typu przepełnienie bufora, co doprowadzić może napastnika do uprawnień administratora.

Produkty tej kategorii działają praktycznie jako proxy serwera webowego, kontrolujące w jego imieniu zlecenia. Sprawdzają one aplikacje webowe nabywając wiedzy, jakie łańcuchy wprowadzanych znaków należy uznać za akceptowalne w odniesieniu do poszczególnych pól formularzy HTML, i odmawiają akceptacji ciągom nie spełniającym normy. W ten sposób łatają luki, które programista zostawił w aplikacji. Jeżeli napastnik próbuje wprowadzić zbyt długi ciąg znaków do danego pola, to propozycja taka jest odrzucana i generowana jest strona sygnalizująca błąd.

Uszczelnianie systemu operacyjnego

W tym przypadku specjalny program przechwytuje odwołania do systemu operacyjnego i porównuje je z bazą danych, zawierającą znane wzorce zachowań nieprzyjaznych. Każde wywołanie uważane za podejrzane jest powiązane z bazą danych reguł polityki ochrony, które określają sposób postępowania z takim wywołaniem.

Niektóre rozwiązania uzupełnione są o funkcje specyficzne dla serwera webowego. System zapewnia między innymi to, że serwer webowy nie może być użyty jak furtka prowadząca do danych spoza wirtualnego drzewa tego serwera, definiującego części dysku dedykowane określonym serwerom.

Programy tego typu uszczelniają głównie serwery Windows przed atakami na komponenty systemu operacyjnego, takie jak konta, pliki wykonywalne i zawartość. Uniemożliwiają one napastnikom zmianę tych elementów – w tym zawartości stron webowych. Programy takie są chronione przed nieautoryzowanym usunięciem z systemu.

Kontrola zawartości

Rozwiązania opisane wcześniej polegają właściwie na maskowaniu błędów aplikacji i systemów operacyjnych, natomiast nie zapewniają możliwości, jakie daje wbudowana w aplikację kontrola krzyżowa, która uniemożliwia obsługiwanie nieautoryzowanej zawartości. Wymaga to takiego projektowania procesów, aby wbudowane w nie kontrole krzyżowe zapewniały zgodność pól niemodyfikowalnych z zawartością przechowywaną w bazie danych zaplecza (na przykład ceny artykułów).

Ważną sprawą jest też ochrona baz danych przechowujących różnorodne reguły biznesowe. Jeżeli reguła biznesowa określa np., że zamawiane są zawsze usługi spedytora najtańszego, to – po dostaniu się do takiej bazy danych – tym „najtańszym” może zostać na zawsze „szwagier” napastnika!

Jednym ze sposobów zabezpieczenia bazy danych reguł biznesowych jest stosowanie produktów wykrywających nieautoryzowane zmiany we wszystkich plikach. Pracują one w ten sposób, że plik jest „przepuszczany” przez algorytm tworzący unikatowy podpis cyfrowy. Jakiekolwiek zmiany w pliku powodują zmianę wzorca podpisu i tym samym dają powód do podniesienia alarmu.

W momencie, kiedy użytkownik żąda tej strony, sprawdzany jest podpis cyfrowy dla aktualnej zawartości strony – czy jest on zgodny z przechowywanym w bazie danych. Jeżeli tak, to strona jest serwowana. W przeciwnym razie w miejsce tej strony generowana jest strona błędu, a do administratora wysyłane jest powiadomienie. Rozwiązanie to może w znacznym stopniu utrudnić działanie „twórcom” graffiti webowych.

-
-