bezpieczeństwo serwera microsoft iis v. 7security.psnc.pl/files/szkolenia/mic_071030.pdf · –...
TRANSCRIPT
1
Bezpieczeństwo serweraMicrosoft IIS v. 7.0
Poznań, 30.10.2007
BłaŜej Miga, Gerard Frankowski
Zespół Bezpieczeństwa PCSS –
Centrum Innowacji Microsoft
2
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,
konfiguracja12:00 - Przerwa12:10 - Bezpieczeństwo Microsoft IIS v. 7.0 – naduŜycia i
obrona12:50 - Podsumowanie, pytania, dyskusja13:00 - Zakończenie
3
Informacje organizacyjne• Ankieta
– Krótka– 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:
• http://mic.psnc.pl• http://szkolenia.man.poznan.pl
• Webcast– Dostępny na stronie WWW MIC w późniejszym terminie
4
PCSS
• 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
• http://www.man.poznan.pl
5
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
6
Centrum Innowacji Microsoft
• Otwarcie: 1.06.2006r.
• Pierwsze w Polsce MIC– „Centrum bezpieczeństwa i
usług outsourcingowych”
• Partnerzy:– Microsoft Corporation– Poznańskie Centrum
Superkomputerowo-Sieciowe– Politechnika Poznańska
• http://mic.psnc.pl
7
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
8
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
• Patrz równieŜ:– http://mic.psnc.pl/tasks/lect.html– http://szkolenia.man.poznan.pl/kdm
• Pozostałe tegoroczne szkolenia:– 18.12.2007: Tworzenie bezpiecznego
oprogramowania w systemach Microsoft Windows
• Szkolenia 2008 – ustalenia zapadną pod koniec roku
10
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
11
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)
13
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
15
Szybkość reakcji na błędy
0102030405060708090
Red Hat Microsoft Sun
Przeciętny czas reakcji producenta
89.507168Sun
16.1098261Microsoft
11.2334831Red Hat
Przeciętnyczas reakcji
Sumaczasówreakcji
Liczba advisoryProducent
Źródło : http://www.dwheeler.com/oss_fs_why.html
• Szybkość reakcji producentów oprogramowania – Systemy operacyjne
17
Komponenty serwera IIS 5.1
kernelkernel
useruser
DLLHostDLLHost
ISAPIISAPIExtensionsExtensions
WinSock 2.0WinSock 2.0
INETINFO.EXEINETINFO.EXE
MetabaseMetabase
TCP/IPTCP/IP
AFD.SYSAFD.SYS
ASPNETWPASPNETWP
ASP.NETASP.NETAppsApps
18
Komponenty serwera IIS 7.0
kernelkernel
useruser
TCP/IPTCP/IP
HTTP.SYSHTTP.SYS
Worker Worker ProcessProcess
w3wp.exew3wp.exe
ASP.NET ASP.NET Web AppWeb App
W3SVC
WAS
19
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)
20
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
21
http.sys
� MoŜliwości konfiguracyjne� netsh http ...� httpcfg
� HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
� Strony z informacją o pojawiających się błędachwkompilowane w http.sys
� Log \systemroot\System32\LogFiles
22
http.sys
Obiekty
Wersja
Rozmiar
\device\http\Communication\device\http\ReqQueue
\device\http\control\device\http\Filter\device\http\AppPool
\device\http\control\device\http\Filter\device\http\AppPool
6.0.600.16386(vista_rtm)
5.2.3790.3959(srv03_sp2_rtm)
5.1.2600.2180(xpsp_sp2_rtm)
385 536291 328263 040
Windows VistaWindows 2003Windows XP
23
Httpapi.dll
• Biblioteka z funkcjami do tworzeniawł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!
24
• 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,buffer.Length); hlc.Response.OutputStream.Close(); hl.Stop();}}}
25
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
27
IIS - konfiguracja
• Konfiguracja serwera i serwisów umieszczona jest w plikach xml
• Narzędzia konfiguracyjne:
– IIS Manager • Tworzenie własnych modułów
– WMI
– klasa System.Web ....
– vi webconfig.xml
28
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.
29
Application Domain
• Element łączący ASP.NET i IIS
– Główne zadanie – zapewnienie izolacji międzyaplikacjami
• MoŜliwości konfiguracyjne:
– Wybór środowiska .NET
– Limity przydziału procesora
– Limity przydziału pamięci
– Wybór uŜytkownika, z uprawnieniami któregoaplikacje będą uruchamiane
• Konfiguracja .NET Trust Levels (Code Access Security)
30
CASHigh No unmanaged code.
No enterprise services.
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 originUrlattribute 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".
31
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\
33
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
38
ZagroŜenie 1 – DoS – Maksymalnewykorzystanie zasobów dyskowych
• Do kompilowania plików aspx kompilator musi miećuprawnienia do tworzenia plików w katalogu%SYSTEMROOT%\Microsoft.NET\Framework\ver\Temporary ASP.NET Files\...
• Katalog ten wykorzystywany jest do zapisywaniaskompilowanych skryptów
• Program uŜytkownika zapisuje nieskończenie wieledanych 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 nadysku przez bazy rejestru. Omijanie quota!
39
ZagroŜenie 1 – DoS – Maksymalnewykorzystanie zasobów dyskowych
• NTFS – przydziały (quota)
• Problemy z wyznaczeniem wartości limitu przy jednymApplication Domain
• Ograniczenie ilości katalogów, w których skryptyuŜytkownika mają moŜliwość zapisywania danych
40
ZagroŜenie 2 – DoS – wykorzystaniezasobów pamięci
• Uruchomienie nieskończonej ilości procesów dzieci
• Tworzenie nieskończenie wielkich tablic w wykonywanychskryptach ASP.NET
41
ZagroŜenie 2 – DoS – wykorzystaniezasobów pamięci
• Utworzenie osobnych Application Domain dla kaŜdegohostowanego serwisu
• Ustawienie limitów przydziału procesora i pamięci dlakaŜdego Application Domain
• Ograniczenie moŜliwości uruchamiania własnychprogramów przez klienta
42
ZagroŜenie 3 – Umieszczenie serwerana 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łaniadanych
43
ZagroŜenie 3 – Umieszczenie serwerana listach spamerów
• Ograniczenie moŜliwości uruchamiania własnychprogramów przez klienta
• Zastosowanie firewall'a
44
ZagroŜenie 4 – Utrata poufnościdanych umieszczonych na serwerze
• WMI
– System.Management
• Informacje o środowisku, uruchomionych procesach
– System.Diagnostics.Process
– System.Environment
• Własne programy
– Odczyt rejestru
– Przeszukiwanie filesystemu serwera
45
ZagroŜenie 4 – Utrata poufnościdanych umieszczonych na serwerze
• Ograniczenie moŜliwości uruchamiania własnychprogramó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 wersjiskryptów
47
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
48
Podsumowanie
• IIS + ASP.NET – ogromne moŜliwości tworzenia aplikacjiwebowych
• 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
49
Informacje kontaktowe• PCSS
– WWW: http://www.man.poznan.pl
– E-mail: [email protected]
• Centrum Innowacji Microsoft– WWW: http://mic.psnc.pl
– WWW: http://telesfor.mic.psnc.pl
– E-mail: [email protected]
• Zespół Bezpieczeństwa PCSS– WWW: http://security.psnc.pl
– E-mail: [email protected]
– Autorzy prezentacji:• BłaŜej Miga – [email protected]
• Gerard Frankowski – [email protected]