IIS - Bezpieczny hosting - PSNC Security Team

echinoidqueenServers

Dec 4, 2013 (3 years and 14 days ago)

123 views

1
IIS–Bezpiecznyhosting
ITUnderground
Warszawa,79.11.2007
BłaŜejMiga
GerardFrankowski
ZespółBezpieczeństwaPCSS
2
Agenda
•Kimjesteśmy
–PCSS+ZespółBezpieczeństwa
•PrzedstawienieMicrosoftIIS
–Historia
–Funkcjonalność
•Hacking IIS Web Server
•Pytaniaidyskusja
3
PCSS
•PoznańskieCentrum
Superkomputerowo$
Sieciowe
•OperatorsieciPIONIER
orazPOZMAN
•Uczestnikprojektów
naukowo$badawczych
•Główneobszary
zainteresowań:
–Gridy,siecinowej
generacji,portale
–Bezpieczeństwosiecii
systemów
•http://www.man.poznan.pl
4
ZespółBezpieczeństwaPCSS
•Dedykowanyzespó
istniejeod1996r.
•PodstawowyzakrespracZespo
u
￿
ZabezpieczanieinfrastrukturyPCSS
￿
Zadaniabezpieczeństwawprojektachnaukowo–badawczych
￿
Szkolenia,transferwiedzy
￿
Badaniaw
asne
￿
AudytyidoradztwowzakresiebezpieczeństwaIT
•Najciekawszebadaniazostatnichlat
￿
BezpieczeństwoInstantMessengers(2004$05)
￿
BadaniasiecibezprzewodowychnatereniePoznania(2005)
￿
Raportobezpieczeństwiebankowościelektronicznej(2006)
￿
BezpieczeństwoserwerówWWWApacheiMSIIS(2006,2007)
•http://security.psnc.pl
5
Microsoft IIS
•InternetInformationServer/Services
•Historiawersji
￿
IIS1.0(WindowsNT3.51)
￿
IIS2.0(WindowsNT4.0)
￿
IIS3.0(WindowsNT4.0SP3)
￿
IIS4.0(WindowsNT4.0OptionPack)
￿
IIS5.0(Windows2000)
￿
IIS5.1(WindowsXPPro)
￿
IIS6.0(WindowsServer2003,WindowsXPPro64$bit.)
￿
IIS7.0(WindowsVista,WindowsServer2008)
•http://www.microsoft.com/iis
6
Błędy bezpieczeństwa
•Za:http://secunia.com,okres2003$2007
•IIS4.0
￿
6advisories,3xhighly critical
￿
Wszystkieb
ędypoprawione
•IIS5.0
￿
14advisories,1xextremely critical,5xhighly critical
￿
Marzec2003:przepe
nieniebuforawkomponencieWebDAV
￿
1b
ądnieza
atany(not critical)
•IIS6.0
￿
3advisories,2xmoderately critical
￿
Wszystkieb
ędypoprawione
•Apache:
￿
1.3.x–20advisories,5b
ędównieza
atanych(not critical)
￿
2.0.x–35advisories,3b
ędynieza
atane(less critical)
￿
2.2.x–5advisories,1b
ądnieza
atany(less critical)
7
Microsoft IIS 7.0
•http://toolbar.netcraft.com/site_report?url=http://www.mic
rosoft.com
8
Popularność
9
IIS7.0
10
Bezpiecznyhosting
–Poufność
–Zapewnieniepoufnościkodówźródłowych
skryptówklienta
–Ograniczeniedostępudodanych
konfiguracyjnychserwera,serwisów
–Dostępność
–Działanieaplikacji24x7x365
–Minimalizacjaczasuodtworzeniaśrodowiska
–Integralnośćdanych
–Zabezpieczenieaplikacjiidanychprzed
modyfikacjamiosóbtrzecich
11
Komponenty serweraIIS 5.1
kernel
kernel
user
user
12
Komponenty serweraIIS 7.0
kernel
kernel
user
user
Worker
Worker
Process
Process
w3wp.exe
w3wp.exe
ASP.NET
ASP.NET
Web App
Web App
W3SVC WAS
13
W3SVC, WAS
￿
W3svc
￿
konfiguracjaserwisów
￿
Aktualizacjaustawieńdriverahttp.sys
￿
WAS
￿
Zarządcaprocesów
￿
Tworzyworkerprocesy(w3wp.exe)
14
http.sys
￿
Driver–kernel$modekomponent
￿
SterownikprotokołuHTTP
￿
Obsługujepołączeniahttps
￿
Cache'owanieodpowiedziwpamięcijądradla
statycznychplików!
￿
Limitowanieruchu
￿
SprawdzeniepoprawnościŜądań
15
http.sys
￿
MoŜliwościkonfiguracyjne
￿
netshhttp...
￿
httpcfg
￿
HKLM\SYSTEM\CurrentControlSet\Services\HTT
P\Parameters
￿
Stronyzinformacjąopojawiającychsiębłędach
wkompilowanewhttp.sys
￿
Log\systemroot\System32\LogFiles
16
http.sys
ObiektyWersjaRozmiar
\device\http\Communication
\device\http\ReqQueue
\device\http\control
\device\http\Filter
\device\http\AppPo
ol
\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)
385536291328263040
Windows VistaWindows 2003Windows XP
17
Httpapi.dll
•Bibliotekazfunkcjamidotworzenia
własnychserwerówHTTP
•DwiewersjeHTTPAPI:1.0,2.0
–1.0:WindowsXP,Windows2003,
Vista
–2.0:WindowsVista,2008
•Stworzenieserwerawymagainterwencji
Administratora!
18
•namespace ConsoleApplication1{
class Program {
static void Main(string[]args)
{
HttpListenerhl = newHttpListener();
hl.Prefixes.Add("http://localhost/test/");
hl.Start();
HttpListenerContext hlc= hl.GetContext();
byte[] buffer =
UTF8.GetBytes("<html><body>hello
world</body></html>");
hlc.Response.OutputStream.Write(buffer,0,bu
ffer.Length);
hlc.Response.OutputStream.Close();
hl.Stop();
}
}}
19
Vista 6zagroŜenia
•Netshhttpshowurlacl
ReservedURL:http://+:80/wsman/
User:NTAUTHORITY\NETWORKSERVICE
Listen:Yes
Delegate:Yes
SDDL:D:(A;;GA;;;NS)
ReservedURL:http://+:80/Temporary_Listen_Addresses/
User:\Everyone
Listen:Yes
Delegate:No
SDDL:D:(A;;GX;;;WD)

ProcesuŜytkownikaNSmoŜepodczepićswój
serwerhttppodurl
http://dowolna_domena/wsman/!!!!
20
Vista 6zagroŜenia
•Przykład
http://test.com/wsman/
http://hackme.test.com/test/
http://test.com/wsman/
21
IIS 7.0 6Moduły
￿
Przeszło40modułów
￿
BibliotekaDLL
￿
Pogrupowane
￿
Httpmodules
￿
Securitymodules
￿
Contentmodules
￿
Compressionmodules
￿
Cachingmodules
￿
LoggingandDiagnosticsmodules
22
IIS http pipeline
23
IIS 6konfiguracja
•Konfiguracjaserweraiserwisówumieszczonajestw
plikachXML
•Narzędziakonfiguracyjne:
–IISManager
•Tworzeniewłasnychmodułów
–WMI
–klasaSystem.Web...
–viwebconfig.xml
24
Application Domain
•ElementłączącyASP.NETiIIS
–Głównezadanie–zapewnienieizolacjimiędzy
aplikacjami
•MoŜliwościkonfiguracyjne:
–Wybórśrodowiska.NET
–Limityprzydziałuprocesora
–Limityprzydziałupamięci
–WybóruŜytkownika,zuprawnieniamiktóregoaplikacje
będąuruchamiane
•Konfiguracja.NETTrustLevels(CodeAccessSecurity)
25
CAS
High
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 virtualdirectory hierarchy.
Can access SQL Server.
Can send e6mail 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 theoriginUrl
attribute of the <trust> element or inside the policy file.
Low
Intended to model the concept of a read6only 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".
26
CAS 6Permissions
27
Uruchamianie dynamicznych
stron6http.sys
•Ustalenie,czycontentznajdujesięw
pamięcicache
•UstalenieodpowiedniegoApplicationPool
•Wprzypadkubrakuodpowiedniego
workerprocesu–ŜądaniedoWASo
stworzenienowegow3wp.exe
28
Uruchamianie dynamicznych
stron6WAS
•Wprzypadkubrakuodpowiedniego
w3wp.exe,uruchomienienowego
•ProcesWPzostajeuruchomionyz
odpowiednimidentity
•KomunikacjazWPpoprzeznamed pipe
(\\.\pipe\iis....)
29
Uruchamianie dynamicznych
stron6w3wp.exe
–Sprawdzenie,czyistnieje
skompilowanawersja
–Kompilacjakodu
•csc.exe...
•cvtres.exe...
–Plikiwynikoweumieszczanesąw
katalogu
%SYSTEM%\Microsoft.NET\Framework
\ver\TemporaryASP.NETFiles\
30
ZagroŜenia
Zabawyzezdalnymiserwerkami
31
WyszukiwanieIIS
•Google:inurl:aspx
•BrakwraŜliwościnawielkośćznakóww
URL:default.aspxDeFAUlt.aspx
•%00wURL:default.aspx?a=%00
•“URL503”:
–http://../wsman/
–http://../Temporary_Listen_Addresses
32
Trace.axd
•http://.../trace.axd
34
ZagroŜenia
Zabawyzkontemlokalnym
35
ZagroŜenia1 –DoS–
Maksymalne wykorzystanie
zasobów dyskowych
•Dokompilowaniaplikówaspxkompilatormusimieć
uprawnieniatworzeniaplikówwkatalogu
%SYSTEMROOT%\Microsoft.NET\Framework\ver\Tempor
aryASP.NETFiles\...
•Katalogtenwykorzystywanyjestdozapisywania
skompilowanychskryptów
•ProgramuŜytkownikazapisujenieskończeniewiele
danychdolosowychplikówwtymkatalogu
•Odmianadlazłośliwców–wyszukaniewrejestrzew
gałęziachHKLMkluczy,doktórychmamyprawozapisu–
tworzenienowychpodkluczy.“Zjadanie”miejscana
dyskuprzezbazyrejestru.Omijaniequota!
36
ZagroŜenia2 –DoS–
wykorzystanie zasobów
pamięci
•Uruchomienienieskończonejilościprocesów$dzieci
•Tworzenienieskończeniewielkichtablicwwykonywanych
skryptachASP.NET
37
ZagroŜenia3 –Umieszczenie
serwera na listach spamerów
•Wysyłanienieautoryzowanegomailinguzserwera
•.NET
–System.Net.Mail
–System.Net.Sockets
•WłasneprogramywykorzystującepołączeniaTCPdo
wysyłaniadanych
38
ZagroŜenia4 –Utrata
poufności danych
umieszczonych na serwerze
•WMI
–System.Management
•Informacjeośrodowisku,uruchomionychprocesach
–System.Diagnostics.Process
–System.Environment
•Własneprogramy
–Odczytrejestru
–Przeszukiwaniefilesystemuserwera
39
Przykład
•Asp.NetSecurityAnalyser
DinisCruz
www.ddplus.net
http://ansa.test.com/ANSA_V0_31b
40
Ochrona
•StosowanieosobnychApplication
DomaindlaróŜnychdomen
•MinimalizacjauprawnieńuŜytkownika
(TrustLevel)
•Stosowanielimitówprzydziałupamięci
iprocesora
•Ustawienieodpowiedniejquoty
•Weryfikacjauprawnieńdokluczy
rejestrówiNTFS
41
Informacje kontaktowe
•BłaŜej Miga
bla@man.poznan.pl
•GerardFrankowski
gerard@man.poznan.pl
•ZespółBezpieczeństwaPCSS
￿
WWW:http://security.psnc.pl
￿
E$mail:security@man.poznan.pl
42
Dyskusja
Dziękujemyzauwagę!