Bezpieczeństwo serwera Microsoft IIS v. 7.0 BłaŜej Miga, Gerard Frankowski Zespół Bezpieczeństwa PCSS Centrum Innowacji Microsoft Poznań, 30.10.2007 1
Agenda 11:00 - Rozpoczęcie, powitanie uczestników, informacje organizacyjne 11:05 - Poznajmy się: czym jest MIC i PCSS? 11:15 - Microsoft IIS v. 7.0 historia, budowa, konfiguracja 12:00 - Przerwa 12:10 - Bezpieczeństwo Microsoft IIS v. 7.0 naduŝycia i obrona 12:50 - Podsumowanie, pytania, dyskusja 13:00 - Zakończenie 2
Ankieta Krótka Informacje organizacyjne Anonimowa Pomocna w organizacji przyszłych szkoleń Lista obecności Nie jest anonimowa ;-) Proszę zaznaczyć, czy chcecie Państwo otrzymywać informacje o kolejnych szkoleniach Prezentacja Dostępna na stronach WWW: Webcast http://mic.psnc.pl http://szkolenia.man.poznan.pl Dostępny na stronie WWW MIC w późniejszym terminie 3
Poznańskie Centrum Superkomputerowo- Sieciowe Operator sieci PIONIER oraz POZMAN Uczestnik projektów naukowo badawczych Główne obszary zainteresowań: Gridy, sieci nowej generacji, portale Bezpieczeństwo sieci i systemów PCSS http://www.man.poznan.pl 4
Zespół Bezpieczeństwa PCSS Dedykowany zespół istnieje od 1996r. Podstawowy zakres prac Zespołu Zabezpieczanie infrastruktury PCSS Zadania bezpieczeństwa w projektach naukowo badawczych Szkolenia, transfer wiedzy Badania własne Audyty i doradztwo w zakresie bezpieczeństwa IT Najciekawsze badania z ostatnich lat Bezpieczeństwo Instant Messengers (2004-05) Badania sieci bezprzewodowych na terenie Poznania (2005) Raport o bezpieczeństwie bankowości elektronicznej (2006) Bezpieczeństwo serwerów WWW Apache i MS IIS (2007) http://security.psnc.pl 5
Centrum Innowacji Microsoft Pierwsze w Polsce MIC Centrum bezpieczeństwa i usług outsourcingowych Otwarcie: 1.06.2006r. http://mic.psnc.pl Partnerzy: Microsoft Corporation Poznańskie Centrum Superkomputerowo-Sieciowe Politechnika Poznańska 6
Cele i zadania MIC Wybrane cele MIC: Edukacja poprzez zdalne udostępnianie aplikacji MS Szybszy rozwój lokalnych firm (MŚP) poprzez doradztwo w zakresie podnoszenia poziomu bezpieczeństwa teleinformatycznego, audyty oraz szkolenia Poprawa dostępu i jakości usług medycznych w Wlkp. Łatwy i bezpieczny dostęp do e-usług w urzędach Główne zadania MIC w roku 2007: Zdalne udostępnianie aplikacji Microsoft w polskim środowisku edukacyjnym Audyty bezpieczeństwa usług i aplikacji Szkolenia z zakresu bezpieczeństwa komputerowego Badania technologii multimedialnych Bezpieczne telekonsultacje medyczne wraz ze wspomaganiem decyzji 7
Program szkoleń bezpieczeństwa w MIC Przeprowadzone szkolenia bezpieczeństwa w roku 2007: 30.03.2007: Zabezpieczanie systemu Windows 17.05.2007: ZagroŜenia w sieciach komputerowych i metody ochrony 30.10.2007: Bezpieczeństwo serwera Microsoft IIS v. 7.0 Pozostałe tegoroczne szkolenia: 18.12.2007: Tworzenie bezpiecznego oprogramowania w systemach Microsoft Windows Szkolenia 2008 ustalenia zapadną pod koniec roku Patrz równieŝ: http://mic.psnc.pl/tasks/lect.html http://szkolenia.man.poznan.pl/kdm 8
Microsoft IIS 9
Microsoft IIS Internet Information Server / Services Historia wersji IIS 1.0 (Windows NT 3.51) IIS 2.0 (Windows NT 4.0) IIS 3.0 (Windows NT 4.0 SP 3) IIS 4.0 (Windows NT 4.0 Option Pack) IIS 5.0 (Windows 2000) IIS 5.1 (Windows XP Pro) IIS 6.0 (Windows Server 2003, Windows XP Pro 64-bit.) IIS 7.0 (Windows Vista, Windows Server 2008) http://www.microsoft.com/iis 10
Błędy bezpieczeństwa Za: http://secunia.com, okres 2003-2007 IIS 4.0 6 advisories, 3 x highly critical Wszystkie błędy poprawione IIS 5.0 14 advisories, 1 x extremely critical, 5 x highly critical Marzec 2003: przepełnienie bufora w komponencie WebDAV 1 błąd niezałatany (not critical) IIS 6.0 3 advisories, 2 x moderately critical Wszystkie błędy poprawione Apache: 1.3.x 20 advisories, 5 błędów niezałatanych (not critical) 2.0.x 35 advisories, 3 błędy niezałatane (less critical) 2.2.x 5 advisories, 1 błąd niezałatany (less critical) 11
Microsoft IIS 7.0 http://toolbar.netcraft.com/site_report?url=http://www.mic rosoft.com 12
Microsoft IIS a Apache Bezpieczeństwo oprogramowania komercyjnego a open source Popularność Liczba błędów Szybkość reakcji Specyfika produkcji Producent IX 2007 % X 2007 % Zmiana Apache 68,228,561 50,48% 68,155,320 47,73% -2,75% Microsoft 47,232,300 34,94% 53,017,735 37,13% 2,18% Google 6,616,713 4,90% 7,763,516 5,44% 0,54% Sun 2,212,821 1,64% 2,262,019 1,58% -0,05% lighttpd 1,515,963 1,12% 1,541,779 1,08% -0,04% Źródło: http://news.netcraft.com 13
Popularność Grafika: http://news.netcraft.com 14
Szybkość reakcji na błędy Szybkość reakcji producentów oprogramowania Systemy operacyjne Producent Liczba advisory Suma czasów reakcji Przeciętny czas reakcji Red Hat 31 348 11.23 Microsoft 61 982 16.10 Sun 8 716 89.50 Źródło : http://www.dwheeler.com/oss_fs_why.html Przeciętny czas reakcji producenta 90 80 70 60 50 40 30 20 10 0 Red Hat Microsoft Sun 15
Bezpieczeństwo IIS 16
Komponenty serwera IIS 5.1 DLLHost ISAPI Extensions ASPNETWP ASP.NET Apps INETINFO.EXE Metabase WinSock 2.0 user AFD.SYS kernel TCP/IP 17
Komponenty serwera IIS 7.0 W3SVC WAS Worker Process w3wp.exe ASP.NET Web App user HTTP.SYS kernel TCP/IP 18
W3SVC, WAS W3svc konfiguracja serwisów tworzenie HTTPListener'ów WAS Zarządca procesów Działa z uprawnieniami konta LocalSystem Tworzy worker procesy (w3wp.exe) 19
http.sys Driver kernel-mode komponent Sterownik protokołu HTTP Obsługuje połączenia https Cache'owanie odpowiedzi w pamięci jądra dla statycznych plików! Limitowanie ruchu 20
http.sys MoŜliwości konfiguracyjne netsh http... httpcfg HKLM\SYSTEM\CurrentControlSet\Services\HTT P\Parameters Strony z informacją o pojawiających się błędach wkompilowane w http.sys Log \systemroot\system32\logfiles 21
http.sys Windows XP Windows 2003 Windows Vista Rozmiar 263 040 291 328 385 536 Wersja 5.1.2600.2180 (xpsp_sp2_rtm) 5.2.3790.3959 (srv03_sp2_rtm) 6.0.600.16386 (vista_rtm) Obiekty \device\http\control \device\http\filter \device\http\apppool \device\http\control \device\http\filter \device\http\apppool \device\http\communica tion \device\http\reqqueue 22
Httpapi.dll Biblioteka z funkcjami do tworzenia własnych serwerow http Dwie wersje HTTP API: 1.0, 2.0 1.0: Windows XP, Windows 2003, Vista 2.0: Windows Vista, 2008 Program wymaga uprawnień Administartora! 23
namespace ConsoleApplication1{ class Program { static void Main(string[] args) { HttpListener hl = new HttpListener(); hl.prefixes.add("http://localhost/wsman/"); hl.start(); HttpListenerContext hlc = hl.getcontext(); byte[] buffer = "<html><body>hello world</body></html>"; hlc.response.outputstream.write(buffer,0,buf fer.length); hlc.response.outputstream.close(); hl.stop(); }}} 24
IIS 7.0 - Moduły Przeszło 40 modułów Biblioteka dll Pogrupowane Http modules Security modules Content modules Compression modules Caching modules Logging and Diagnostics modules 25
IIS http pipeline 26
IIS - konfiguracja Konfiguracja serwera i serwisów umieszczona jest w plikach xml Narzędzia konfiguracyjne: IIS Manager WMI Tworzenie własnych modułów klasa System.Web... vi webconfig.xml 27
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. 28
Application Domain Element łączący ASP.NET i IIS Główne zadanie zapewnienie 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) 29
High No unmanaged code. No enterprise services. CAS Can access SQL Server and other OLE DB data sources. Very limited reflection permissions. No ability to invoke code by using reflection. A broad set of other framework features are available. Applications have full access to the file system, and to sockets. Medium Permissions are limited to what the application can access within the directory structure of the application. No file access is permitted outside of the application's virtual directory hierarchy. Can access SQL Server. Can send e-mail by using SMTP servers. Limited rights to certain common environment variables. No reflection permissions whatsoever. No sockets permission. To access Web resources, you must explicitly add endpoint "URLs" either in the originurl attribute of the <trust> element or inside the policy file. Low Intended to model the concept of a read-only application with no network connectivity. Read only access for file I/O within the application's virtual directory structure. Minimal Execute only. No ability to change the "IPrincipal" on a thread or on the "HttpContext". 30
Kompilacja aspx worker proces (w3wp.exe) Sprawdzenie, czy istnieje skompilowana wersja Kompilacja kodu csc.exe... cvtres.exe... Pliki wynikowe umieszczane są w katalogu %SYSTEM%\Microsoft.NET\Framework\ver\Temporary ASP.NET Files\ 31
ZagroŜenia Zabawy ze zdalnymi serwerkami 32
Wyszukiwanie IIS Google: inurl:aspx Brak wraŝliwości na wielkość znaków w URL: default.aspx DeFAUlt.aspx %00 w URL :default.aspx?a=%00 Zakazane URL: http://../wsman/ http://../temporary_listen_addresses 33
http://.../trace.axd Trace.axd 34
Włączone raportowanie błędów 35
Przyklad Forum http://localhost/forum 36
ZagroŜenia Zabawy z kontem lokalnym 37
ZagroŜenie 1 DoS Maksymalne wykorzystanie zasobów dyskowych Do kompilowania plików aspx kompilator musi mieć uprawnienia do tworzenia plików w katalogu %SYSTEMROOT%\Microsoft.NET\Framework\ver\Tempor ary 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 Odmiana dla złośliwców wyszukanie w rejestrze w gałęziach HKLM kluczy, do których mamy prawo zapisu tworzenie nowych podkluczy. Zjadanie miejsca na dysku przez bazy rejestru. Omijanie quota! 38
ZagroŜenie 1 DoS 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 39
ZagroŜenie 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 40
ZagroŜenie 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 41
ZagroŜenie 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 42
ZagroŜenie 3 Umieszczenie serwera na listach spamerów Ograniczenie moŝliwości uruchamiania własnych programów przez klienta Zastosowanie firewall'a 43
ZagroŜenie 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 44
ZagroŜenie 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 45
Przykład Asp.Net Security Analyser Dinis Cruz www.ddplus.net http://localhost/ansa_v0_31b 46
ZagroŜenia prace w domu Zabawa z funkcją cache w http.sys Czyszczenie cache co 120 sekund Cache owane są tylko pliki statyczne (jpg,html) Brak limitów na rozmiar cache'a Przy braku pamięci zadania odrzucane z błędem 503 47
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 deweloperskie Visual Studio Express Zagwarantowany rozwój i support środowiska 48
PCSS Informacje kontaktowe WWW: http://www.man.poznan.pl E-mail: office@man.poznan.pl Centrum Innowacji Microsoft WWW: http://mic.psnc.pl WWW: http://telesfor.mic.psnc.pl E-mail: mic@man.poznan.pl Zespół Bezpieczeństwa PCSS WWW: http://security.psnc.pl E-mail: security@man.poznan.pl Autorzy prezentacji: BłaŜej Miga blazej.miga@man.poznan.pl Gerard Frankowski gerard@man.poznan.pl 49
Dyskusja Dziękujemy za uwagę! 50