bezpieczeństwo serwera microsoft iis v. 7security.psnc.pl/files/szkolenia/mic_071030.pdf · –...

50
1 Bezpieczeństwo serwera Microsoft IIS v. 7.0 Poznań, 30.10.2007 BłaŜej Miga, Gerard Frankowski Zespół Bezpieczeństwa PCSS – Centrum Innowacji Microsoft

Upload: others

Post on 10-Jul-2020

2 views

Category:

Documents


0 download

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

9

Microsoft IIS

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)

12

Microsoft IIS 7.0

• http://toolbar.netcraft.com/site_report?url=http://www.microsoft.com

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

14

Popularność

Grafika: 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

16

Bezpieczeństwo IIS

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

26

IIS http pipeline

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\

32

ZagroŜenia

Zabawy ze zdalnymi serwerkami

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

34

Trace.axd• http://.../trace.axd

35

Włączone raportowanie błędów

36

Przyklad

• Forum– http://localhost/forum

37

ZagroŜenia

Zabawy z kontem lokalnym

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

46

Przykład

• Asp.Net Security Analyser

Dinis Cruzwww.ddplus.net

http://localhost/ANSA_V0_31b

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]

50

Dyskusja

Dziękujemy za uwagę!