Problemy bezpieczeństwa ośrodków webowych

  • Józef Muszyński,

Coraz większa liczba ataków dotyczy również baz danych usytuowanych poza serwerem webowym. Wykorzystując luki w serwerze IIS, można uruchomić komendy SQL, uzyskując dostęp do bazy danych lub nawet uprawnienia uprzywilejowane. Przykładem jest luka MDAC RDS. MDAC jest pakietem używanym do integracji Weba z usługami baz danych. Zawiera on komponent RDS zapewniający zdalny dostęp do obiektów bazy danych za pośrednictwem IIS. Wykorzystując lukę w RDS (zakładając, że atakowany ośrodek webowy spełnia kilka niezbędnych warunków), atakujący może wysłać dowolne komendy SQL, zmieniając zawartość bazy danych lub pobierając poufne informacje.

Ataki na aplikacje webowe

Aplikacje webowe stały się wszechobecne i są używane przez większość ośrodków webowych do generowania stron webowych, wykorzystując wprowadzane dane i zawartość baz danych. Większość serwerów webowych zapewnia pewien interfejs używany do komunikacji z aplikacją webową. Interfejs ten tworzy połączenia pomiędzy zleceniem HTTP i aplikacją. Określa on aplikację, która powinna być wywołana, parametry i dane przekazywane do aplikacji oraz mechanizm zapewniający dynamiczne generowanie stron przez serwer webowy. Jednym z takich interfejsów jest szeroko stosowany CGI (Common Gateway Interface).

Wiele aplikacji webowych jest podatnych na atak przez serwery, aplikacje i inne projektowane we własnym zakresie oprogramowanie. Ataki te przechodzą bezpośrednio przez perymetr zapór ogniowych, ponieważ port 80 (HTTP) czy 443 dla SSL (Security Sockets Layer) muszą być otwarte, aby aplikacje te mogły funkcjonować. Ataki na aplikacje webowe obejmują kategorie, takie jak DoS (blokowanie usług), zmiana zawartości stron webowych, przechwytywanie istotnych informacji korporacyjnych lub o użytkownikach - np. numery kart kredytowych.

Źródłem słabych punktów w aplikacjach webowych są najczęściej nieprofesjonalni projektanci i dostawcy aplikacji webowych. Zazwyczaj takie aplikacje można podejrzewać o skrócony cykl projektowy, kiepskie przetestowanie i minimalne procedury zapewnienia jakości. Wielu programistów CGI tworzy skrypty, które mogą być używane do wykonywania szkodliwych akcji. Powszechnym problemem aplikacji webowych jest także słaba kontrola wprowadzanych danych.

Bardzo często cały wysiłek w zakresie ochrony skupia się na samej sieci, kosztem zaniedbania lub wręcz zaniechania ochrony aplikacji webowych. Być może powodem tego jest to, że tradycyjne aplikacje były programami niezależnymi, pracującymi na konkretnym komputerze - jeżeli taki komputer był dobrze zabezpieczony, to aplikacja także była bezpieczna.

Technika internetowa zmieniła jednak ten model eksploatacji. Aplikacje webowe pracować mogą na czterech różnych maszynach: kliencie, serwerze webowym, serwerze aplikacyjnym i serwerze baz danych. A ponieważ są one na ogół dostępne dla wszystkich, to stają się miejscem szczególnie podatnym na ataki (zob. Słabe punkty aplikacji webowych).

Włamanie do takiej sieci staje się łatwiejsze, ponieważ serwery webowe muszą zapewniać szereg różnych sposobów przekazywania zleceń do serwera aplikacji oraz w odpowiedzi na zmodyfikowane lub nowe zlecenia wysyłać strony webowe do użytkownika końcowego.

Słabe punkty aplikacji webowych

Generalnie ataki na aplikacje webowe różnią się od innych ataków tym, że są trudne do wykrycia i mogą pochodzić od dowolnego użytkownika włączającego się do sieci - nawet tego uwierzytelnionego! Do dzisiaj obszar ten jest w dużym stopniu zaniedbany, ponieważ firmy ciągle jeszcze zmagają się z zabezpieczaniem swoich sieci za pomocą zapór ogniowych i rozwiązań wykrywania wtargnięć, które to środki nie wykrywają ataków webowych.

Ataki pośrednie

Oprócz znanego portu 80 (HTTP) istnieje cały szereg dróg alternatywnych, którymi można dostać się do serwera webowego. Napastnik może w końcu zacząć proces włamania, skanując kolejne porty TCP/IP i poszukując serwera internetowego nadsłuchującego w otwartym porcie.

Może to być np. port 21 (FTP). Niektóre serwery FTP mają luki, wykorzystanie których może udostępnić hakerowi poufne dane lub informacje umożliwiające włamanie do maszyny i uzyskanie uprawnień administratora.