Bezpieczne udostępnianie usług www BłaŜej Miga blazej.miga@man.poznan.pl Zespół Bezpieczeństwa PCSS
Wstęp Bezpieczny hosting IIS + ASP.NET - dobrana para ZagroŜenia przykładowe ataki Zabezpieczamy serwer
Bezpieczny hosting Poufność zapewnienie poufności kodom źródłowych skryptów klienta ograniczenie dostępu do danych konfiguracyjnych serwera, serwisów, aplikacji Dostępność dostępność aplikacji 24x7x365 minimalizacja czasu odtworzenia środowiska Integralność danych zabezpieczenie aplikacji i danych przed modyfikacjami osób trzecich.
Internet Information Services IIS ver 1.0 Windows NT 3.51 (maj 1995r.) 13 lipiec 2001 Code Red worm 30 styczeń 2007 Windows Vista IIS 7.0 Budowa modułowa Konfiguracja pliki xml Nowy panel administracyjny KONKURS
KONKURS www.secunia.com IIS ver. 6.0 2003-2006 3 advisories (2 Moderately, 1 less) Apache 2.0.x 2003-2006 33 advisories (większość less critical) Sun ONE/iPlanet 6.x 19 advisories
ASP.NET Połączenie ASP i.net W skład platformy wchodzą: Kompilatory C#, Visual Basic.NET, J# Kompilator kodu zarządzającego Metody umieszczania serwisów: Wersja skompilowana Wersja w postaci kodu źródłowego kod ten jest kompilowany przy pierwszym Ŝądaniu strony.
Application Domain Element łączący ASP.NET i IIS Główne zadanie zapewnieni izolacji między aplikacjami MoŜliwości konfiguracyjne: Wybór środowiska.net Limity przydziału procesora Limity przydziału pamięci Wybór uŝytkownika z uprawnieniami którego aplikacje będą uruchamiane Konfiguracja.NET Trust Levels (Code Access Security)
IIS + ASP.NET IIS 5.0 IIS 6.0 DLLHost ISAPI Extensions INETINFO.EXE ASPNETWP ASP.NET Apps Worker Process w3wp.exe ASP.NET Web App Metabase WinSock 2.0 user AFD.SYS TCP/IP kernel HTTP.SYS TCP/IP
ZAGROśENIA
ZagroŜenia załoŝenia wstępne Serwer hostuje n klientów Klienci mają moŝliwość umieszczania własnych aplikacji, skryptów ASP.NET ZagroŜenia dotyczą błędów konfiguracyjnych środowiska hostującego Nie analizujemy ataków na serwisy XSS, Sql injection etc. Cel: Co złego moŝe zrobić skrypt/program umieszczony na naszym serwerze?
ZagroŜenia 1 DoS Maksymalne wykorzystanie zasobów dyskowych Do kompilowania plików aspx kompilator musi mieć uprawnienia tworzenia plików w katalogu %SYSTEMROOT%\Microsoft.NET\Framew ork\ver\temporary ASP.NET Files\... Katalog ten wykorzystywany jest do zapisywania skompilowanych skryptów Program uŝytkownika zapisuje nieskończenie wiele danych do losowych plików w tym katalogu
Ochrona 1 - Maksymalne wykorzystanie zasobów dyskowych NTFS przydziały (quota) Problemy z wyznaczeniem wartości limitu przy jednym Application Domain Ograniczenie ilości katalogów w których skrypty uŝytkownika mają moŝliwość zapisywania danych
ZagroŜenia 2 DoS wykorzystanie zasobów pamięci Uruchomienie nieskończonej ilości procesów dzieci Tworzenie nieskończenie wielkich tablic w wykonywanych skryptach ASP.NET
Ochrona 2 DoS wykorzystanie zasobów pamięci Utworzenie osobnych Application Domain dla kaŝdego hostowanego serwisu Ustawienie limitów przydziału procesora i pamięci dla kaŝdego Application Domain Ograniczenie moŝliwości uruchamiania własnych programów przez klienta
ZagroŜenia 3 Umieszczenie serwera na listach spamerów Wysyłanie nieautoryzowanego mailingu z serwera.net System.Net.Mail System.Net.Sockets Własne programy wykorzystujące połączenia TCP do wysyłania danych
Ochrona 3 Umieszczenie serwera na listach spamerów Ograniczenie moŝliwości uruchamiania własnych programów przez klienta Zastosowanie firewall'a
ZagroŜenia 4 Utrata poufności danych umieszczonych na serwerze WMI System.Management Informacje ośrodowisku, uruchomionych procesach System.Diagnostics.Process System.Environment Własne programy Odczyt rejestru Przeszukiwanie filesystemu serwera
Ochrona 4 Utrata poufności danych umieszczonych na serwerze Ograniczenie moŝliwości uruchamiania własnych programów przez klienta Ustawienie odpowiednich uprawnień do plików i katalogów dla uŝytkownika uruchamiającego kod strony Szyfrowanie haseł wykorzystywanych do łączenia się z bazą danych Umieszczanie na serwerze skompilowanych wersji skryptów
Podsumowanie: IIS + ASP.NET ogromne moŝliwości tworzenia aplikacji webowych DuŜe moŝliwości konfiguracyjne (xml, mmc, WMI) Bogata dokumentacja (www.asp.net, MSDN) Darmowe środowisko developerskie Visual Studio Express Zagwarantowany rozwój i support środowiska
Dziękuje za uwagę. Pytania? Sugestie? Wątpliwości? Zapraszamy na Lunch. blazej.miga@man.poznan.pl