Co to jest usługa Azure Web Application Firewall?
W tym miejscu poznasz podstawy usługi Azure Web Application Firewall. To omówienie pomoże ocenić, czy usługa Azure Web Application Firewall jest przydatnym narzędziem do dodania do ogólnej strategii zabezpieczeń sieci firmy Contoso.
Omówienie usługi Azure Web Application Firewall
Być może złośliwi użytkownicy nie będą przejmować się aplikacjami internetowymi. Jednak testy wykazały, że boty lub złośliwi aktorzy sondowali nowe aplikacje internetowe pod kątem słabych stron w ciągu kilku minut od wdrożenia. Jeśli aplikacja zostanie umieszczona w Internecie, załóżmy, że aktorzy zagrożeń będą testować aplikację pod kątem luk w zabezpieczeniach niemal natychmiast. Można również założyć, że takie sondy będą kontynuowane przez cały okres istnienia aplikacji.
Większość złośliwych testów aplikacji internetowych sprawdza obecność co najmniej jednej typowej luki w zabezpieczeniach. Jeśli zostanie znaleziona, aktor zagrożeń może użyć tych luk w zabezpieczeniach do uruchamiania ataków, takich jak następujące luki w zabezpieczeniach:
- Wstrzyknięcie kodu SQL
- Skrypty między witrynami
- Dołączanie plików lokalnych i zdalnych
- Powodzie HTTP/HTTPS
- Złośliwe ataki botów
Typowym zadaniem w cyklu tworzenia aplikacji internetowej jest napisanie kodu w celu zamknięcia najczęstszych luk w zabezpieczeniach. Pisanie kodu zabezpieczeń wymaga czasu, wiedzy i testowania.
Azure Web Application Firewall to usługa platformy Azure, która zapewnia scentralizowaną ochronę aplikacji internetowych hostowanych na platformie Azure. Usługa Azure Web Application Firewall chroni aplikacje internetowe przed typowymi zagrożeniami, takimi jak wstrzyknięcie kodu SQL i wykonywanie skryptów między witrynami.
Zaporę aplikacji internetowej platformy Azure można wdrożyć w ciągu kilku minut. Aplikacje internetowe natychmiast uzyskają zaawansowaną ochronę przed znanymi zagrożeniami bez konieczności pisania pojedynczego wiersza kodu zabezpieczeń.
Kluczowe funkcje usługi Azure Web Application Firewall
Aby ułatwić ocenę usługi Azure Web Application Firewall, poniżej przedstawiono niektóre z jego ważnych funkcji:
Reguły zarządzane: reguły używane przez usługę Azure Web Application Firewall do wykrywania i zapobiegania typowym lukom w zabezpieczeniach są tworzone, utrzymywane i aktualizowane przez zespół ds. zabezpieczeń firmy Microsoft. Jeśli reguła ulegnie zmianie lub zestaw reguł (zapoznaj się z poniższym opisem), firma Microsoft automatycznie i bezproblemowo aktualizuje zaporę aplikacji internetowej platformy Azure.
Uwaga
Nie można modyfikować ani usuwać reguł zarządzanych oferowanych przez usługę Azure Web Application Firewall. Jeśli jednak określona reguła jest problematyczna dla twojego środowiska (na przykład blokuje prawidłowy ruch do aplikacji internetowej), możesz utworzyć wykluczenia lub wyłączyć regułę lub zestaw reguł. Możesz również utworzyć reguły niestandardowe, aby zastąpić zachowanie domyślne.
Reguły botów: reguły botów identyfikują dobre boty i chronią przed złymi botami. Wykryto nieprawidłowe boty na podstawie analizy zagrożeń firmy Microsoft.
Reguły niestandardowe: jeśli reguły zarządzane oferowane przez usługę Azure Web Application Firewall nie obejmują określonego zagrożenia dla aplikacji internetowej, możesz utworzyć regułę niestandardową.
Tryby: Usługa Azure Web Application Firewall może działać w jednym z dwóch trybów: tryb wykrywania rejestruje tylko żądania naruszające regułę, podczas gdy tryb zapobiegania zarówno dziennikom, jak i blokuje żądania naruszające regułę.
Listy wykluczeń: zaporę aplikacji internetowej platformy Azure można skonfigurować tak, aby ignorowała określone atrybuty podczas sprawdzania żądań.
Zasady: można połączyć zestaw reguł zarządzanych, reguł niestandardowych, wykluczeń i innych ustawień usługi Azure Web Application Firewall w jeden element nazywany zasadami usługi Azure Web Application Firewall. Następnie można zastosować te zasady do wielu aplikacji internetowych w celu łatwego zarządzania i konserwacji.
Limity rozmiaru żądań: możesz skonfigurować usługę Azure Web Application Firewall tak, aby flagować żądania, które są zbyt małe lub zbyt duże.
Alerty: usługa Azure Web Application Firewall integruje się z usługą Azure Monitor. Ta integracja zapewnia alerty niemal w czasie rzeczywistym, gdy zapora aplikacji internetowej wykryje zagrożenie.
Typowe ataki blokowane przez usługę Azure Web Application Firewall
W poniższej tabeli opisano najczęstsze typy złośliwych zagrożeń, przed którymi pomaga usługa Azure Web Application Firewall.
Zagrożenie | opis |
---|---|
Skrypty między witrynami | Aktor zagrożeń używa aplikacji internetowej do wysyłania złośliwego kodu do przeglądarki internetowej innego użytkownika. Przeglądarka uruchamia kod, który zapewnia skryptowi dostęp do danych sesji użytkownika, plików cookie i innych poufnych informacji. |
Włączenie plików lokalnych | Osoba atakująca wykorzystuje luki w zabezpieczeniach w obsłudze instrukcji include serwera, najczęściej w skryptach PHP. Przekazując specjalnie skonfigurowany tekst do instrukcji skryptu include , osoba atakująca może dołączać pliki, które znajdują się lokalnie na serwerze. Osoba atakująca może wówczas mieć dostęp do poufnych informacji i uruchomić polecenia serwera. |
Iniekcja PHP | Osoba atakująca wstawia specjalnie tekst skonfigurowany do uruchamiania poleceń PHP na serwerze. Te polecenia umożliwiają osobie atakującej uruchomienie lokalnego lub zdalnego kodu PHP. Osoba atakująca może następnie mieć dostęp do poufnych danych i uruchamiać polecenia na serwerze. |
Atakom na protokół | Osoba atakująca wstawia specjalnie skonfigurowany tekst do nagłówka żądania HTTP/HTTPS. W zależności od określonego tekstu wprowadzonego do nagłówka osoba atakująca może oszukać serwer do wyświetlania poufnych danych lub uruchamiania kodu. |
Zdalne wykonywanie poleceń | Osoba atakująca nakłoni serwer do uruchamiania poleceń skojarzonych z systemem operacyjnym serwera. Na przykład w systemie system UNIX osoba atakująca może mieć uruchomiony ls serwer, aby uzyskać listę katalogów. |
Włączenie plików zdalnych | To samo, co lokalne dołączanie plików, z wyjątkiem osoby atakującej wysyła specjalnie skonfigurowany tekst serwera, który przekazuje plik zdalny — czyli plik na serwerze zdalnym kontrolowanym przez osobę atakującą — do instrukcji skryptu include . |
Fiksacja sesji | Osoba atakująca wykorzystuje lukę w zabezpieczeniach aplikacji internetowej, która umożliwia atakującemu uzyskanie prawidłowego identyfikatora sesji. Osoba atakująca oszuka użytkownika w celu uwierzytelnienia nowej sesji przy użyciu tego identyfikatora. Następnie osoba atakująca przechwyci tę sesję zweryfikowaną przez użytkownika. |
Wstrzyknięcie kodu SQL | W polu formularza internetowego osoba atakująca wstawia tekst (lub "wstrzykiwa") specjalnie skonfigurowany do uruchamiania poleceń SQL na serwerze. Te polecenia umożliwiają osobie atakującej dostęp do poufnych danych, wstawiania, aktualizowania lub usuwania danych albo uruchamiania operacji SQL. |
Wszystkie luki w zabezpieczeniach wymienione w poprzedniej tabeli są możliwe tylko wtedy, gdy serwer ufa danych wejściowych, które otrzymuje. Pisanie kodu, który sprawdza i czyści tylko te luki, byłoby trudne i czasochłonne. W poprzedniej tabeli jest reprezentowany tylko niewielki ułamek możliwych luk w zabezpieczeniach aplikacji internetowej. Usługa Azure Web Application Firewall została zaprojektowana w celu zapobiegania tym atakom i wielu innych.
Oczyszczanie danych wejściowych
Zagrożenia napotykane przez nowoczesne aplikacje internetowe są zróżnicowane i zaawansowane. Jednak w większości przypadków przyczyną wykorzystania luk jest to, że aplikacja internetowa niejawnie ufa odbieranych danych wejściowych.
Rozważmy na przykład formularz internetowy, który umożliwia autoryzowanemu użytkownikowi aplikacji internetowej logowanie się do konta użytkownika. Formularz składa się z zaledwie trzech elementów:
- Pole tekstowe Nazwa użytkownika
- Pole tekstowe Hasło
- Przycisk Zaloguj
Gdy autoryzowany użytkownik wypełni formularz i wybierze pozycję Zaloguj się, skrypt aplikacji internetowej przechowuje nazwę użytkownika i hasło w zmiennych. Załóżmy, że te zmienne mają odpowiednio nazwy userName
i userPassword
. Następnie skrypt wykona następującą instrukcję:
sql = "SELECT * FROM users WHERE username='" + userName + "' AND password='" + userPassword + "'"
Jeśli na przykład nazwa użytkownika to support
i hasło to 1234ABCD
, sql
zmienna ma następującą wartość:
SELECT * FROM users WHERE username='support' AND password='1234ABCD'
Aplikacja internetowa wykonuje tę instrukcję SQL. Jeśli rekord jest zwracany z zapytania, aplikacja internetowa podpisuje użytkownika.
Teraz załóżmy, że osoba atakująca wprowadza dane admin'--
w polu Nazwa użytkownika i pozostawia puste pole Hasło. W tym przypadku oto wynikowa instrukcja SQL:
SELECT * FROM users WHERE username='admin'--' AND password=''
W wielu systemach SQL podwójne kreski (--
) oznaczają początek komentarza. Wszystko po --
tym, jak jest ignorowane, więc poprzednia instrukcja jest równoważna następującemu kodowi:
SELECT * FROM users WHERE username='admin'
Zakładając, że istnieje użytkownik o nazwie admin
, to polecenie loguje się do osoby atakującej jako administrator; poważne naruszenie.
Powyższy przykład to wystąpienie luki w zabezpieczeniach o nazwie iniekcja SQL. Osoby atakujące mogą korzystać z iniekcji SQL i innych programów wykorzystujących luki w aplikacjach internetowych, które ufają wszystkim danym wejściowym.
Zapora aplikacji internetowej platformy Azure tworzy barierę braku zaufania między aplikacją internetową a danymi wejściowymi użytkownika. Zapora aplikacji internetowej platformy Azure zakłada, że wszystkie dane wejściowe są potencjalnie złośliwe, więc usuwa te dane wejściowe.
Oczyszczanie danych wejściowych oznacza różne elementy w zależności od kontekstu. Na przykład oczyszczanie danych wejściowych może oznaczać usunięcie wyraźnie niebezpiecznych elementów tekstowych, takich jak wskaźniki komentarzy SQL. Jednak występuje oczyszczanie, wynikiem są dane wejściowe, które nie mogą zaszkodzić aplikacji internetowej ani jej danych zaplecza.