BezpieczeBezpiecze ństwo heterogenicznej ństwo heterogenicznej platformy hostingowejplatformy hostingowej
Gerard Frankowski, Zespół Bezpiecze ństwa PCSSGerard Frankowski, Zespół Bezpiecze ństwa PCSS
Szkolenie Centrum Innowacji MicrosoftSzkolenie Centrum Innowacji MicrosoftPoznań, 23.06.2009Poznań, 23.06.2009
AgendaAgenda11:00 11:00 –– Wprowadzenie, informacje organizacyjneWprowadzenie, informacje organizacyjne
11:05 11:05 –– Poznajmy Poznajmy się: czym jest PCSS isię: czym jest PCSS i MIC? Program MIC? Program szkoleń MICszkoleń MIC
11:15 11:15 –– Bezpieczeństwo heterogenicznej platformy Bezpieczeństwo heterogenicznej platformy 11:15 11:15 –– Bezpieczeństwo heterogenicznej platformy Bezpieczeństwo heterogenicznej platformy hostingowejhostingowej (1) (1) –– wprowadzenie + serwer IISwprowadzenie + serwer IIS
11:50 11:50 –– PrzerwaPrzerwa
12:00 12:00 –– Bezpieczeństwo heterogenicznej platformy Bezpieczeństwo heterogenicznej platformy hostingowejhostingowej (2) (2) –– interpreter PHPinterpreter PHP
12:45 12:45 –– Podsumowanie, pytania, dyskusjaPodsumowanie, pytania, dyskusja
13:00 13:00 –– ZakoZakońńczenieczenie2
Informacje organizacyjneInformacje organizacyjneAnkietaAnkieta
Krótka i anonimowaKrótka i anonimowa
Pomoc na przyszłośćPomoc na przyszłość
Lista obecnościLista obecności
KKonkursyonkursyKKonkursyonkursy2 pytania = 2 nagrody2 pytania = 2 nagrody
Osoba znająca odpowiedź podnosi rękęOsoba znająca odpowiedź podnosi rękę
Pierwsza poprawna odpowiedź wygrywaPierwsza poprawna odpowiedź wygrywa
Prezentacja Prezentacja –– dostępna na stronach WWWdostępna na stronach WWWhttp://mic.psnc.pl http://mic.psnc.pl
http://security.psnc.pl http://security.psnc.pl
http://szkolenia.man.poznan.plhttp://szkolenia.man.poznan.pl
WebcastWebcast –– dziś brakdziś brak 3
Kim jesteKim jesteśśmy i co robimy?my i co robimy?
4
PCSSPCSSPoznańskie Centrum Poznańskie Centrum SuperkomputerowoSuperkomputerowo--Sieciowe (1993)Sieciowe (1993)
Operator sieci PIONIER Operator sieci PIONIER oraz POZMANoraz POZMAN
Uczestnik projektów Uczestnik projektów naukowonaukowo--badawczychbadawczych
Główne obszary Główne obszary zainteresowań:zainteresowań:
GridyGridy, sieci nowej , sieci nowej generacji, portalegeneracji, portale
Bezpieczeństwo sieci i Bezpieczeństwo sieci i systemówsystemów
http://www.pcss.plhttp://www.pcss.pl
Zespół Bezpieczeństwa PCSSZespół Bezpieczeństwa PCSSZespółZespół BezpieczeństwaBezpieczeństwa PCSS PCSS istniejeistnieje odod 1996r.1996r.
ZabezpieczanieZabezpieczanie infrastrukturyinfrastruktury PCSSPCSS
ZadaniaZadania bezpieczeństwabezpieczeństwa w w projektachprojektach R&DR&D
SzkoleniaSzkolenia, transfer , transfer wiedzywiedzy
BadaniaBadania własnewłasneBadaniaBadania własnewłasne
UsługiUsługi zewnętrznezewnętrzne
NajciekawszeNajciekawsze badaniabadania z z ostatnichostatnich latlatBadaniaBadania siecisieci bezprzewodowychbezprzewodowych nana terenieterenie PoznaniaPoznania
RaportRaport nt. nt. bezpieczeństwabezpieczeństwa bankowościbankowości elektronicznejelektronicznej
BezpieczeństwoBezpieczeństwo serwerówserwerów WWW (Apache, MS IIS)WWW (Apache, MS IIS)
BezpieczeństwoBezpieczeństwo sklepówsklepów internetowychinternetowych
http://security.psnc.plhttp://security.psnc.pl 6
Centrum Innowacji MicrosoftCentrum Innowacji Microsoft
Centrum bezpieczeństwa Centrum bezpieczeństwa i usług outsourcingowychi usług outsourcingowych
http://mic.psnc.plhttp://mic.psnc.pl
Działa od 1.06.2006r.Działa od 1.06.2006r.Działa od 1.06.2006r.Działa od 1.06.2006r.
Partnerzy projektuPartnerzy projektuMicrosoft PolskaMicrosoft Polska
PCSSPCSS
Politechnika PoznańskaPolitechnika Poznańska
Wybrane zadania MIC w 2009Wybrane zadania MIC w 2009Nowe obszary badań (od I 2009)Nowe obszary badań (od I 2009)
InteroperacyjnośćInteroperacyjność systemów i technologiisystemów i technologii
Wirtualizacja systemówWirtualizacja systemów
Wysokowydajne przetwarzanie komputerowe (HPC) Wysokowydajne przetwarzanie komputerowe (HPC) ––
8
Wysokowydajne przetwarzanie komputerowe (HPC) Wysokowydajne przetwarzanie komputerowe (HPC) ––m.in. udział w programie HPC TAPm.in. udział w programie HPC TAP
Program szkoleniowyProgram szkoleniowy
Interoperacyjność systemów i technologiiInteroperacyjność systemów i technologii
Szkolenia w Warszawie (IXSzkolenia w Warszawie (IX--X 2009)X 2009)
Szkolenia w zakresie bezpieczeństwa ITSzkolenia w zakresie bezpieczeństwa IT
Doroczna Konferencja MICDoroczna Konferencja MIC
16 kwietnia 2009, 3. edycja16 kwietnia 2009, 3. edycja
BezpieczeństwoBezpieczeństwo w MICw MIC
OchronaOchrona infrastrukturyinfrastruktury MICMICAudyty bezpieczeństwa, konsultacjeAudyty bezpieczeństwa, konsultacje
Program szkoleń bezpieczeństwaProgram szkoleń bezpieczeństwaWięcej informacji w programie szkoleńWięcej informacji w programie szkoleńWięcej informacji w programie szkoleńWięcej informacji w programie szkoleń
http://http://mic.psnc.pl/szkoleniamic.psnc.pl/szkolenia
Badania poziomu bezpieczeństwa Badania poziomu bezpieczeństwa technologii Microsoft (2007technologii Microsoft (2007--0808))
Audyty bezpieczeństwa dla administracji Audyty bezpieczeństwa dla administracji i MŚP (2007i MŚP (2007))
Konferencje, MS Konferencje, MS SpeakersSpeakers BiuroBiuro
9
WprowadzenieWprowadzenie do do programuprogramuszkoleniowegoszkoleniowego MICMIC
10
Szkolenia MIC Szkolenia MIC –– I półrocze 2009I półrocze 2009InteroperacyjnośćInteroperacyjność
27.05: Zastosowanie technologii 27.05: Zastosowanie technologii
SilverlightSilverlight......
10.06: Windows Server 2008 jako 10.06: Windows Server 2008 jako
uniwersalna platforma zapewniająca usługi uniwersalna platforma zapewniająca usługi
11
uniwersalna platforma zapewniająca usługi uniwersalna platforma zapewniająca usługi
wirtualizacji i wirtualizacji i klastrowaniaklastrowania
23.06: Bezpieczeństwo heterogenicznej 23.06: Bezpieczeństwo heterogenicznej
platformy platformy hostingowejhostingowej
BezpieczeństwoBezpieczeństwo
18.06: Omijanie firewalli w systemach 18.06: Omijanie firewalli w systemach
Windows Windows –– warsztaty BYOL dla specjalistów warsztaty BYOL dla specjalistów
bezpieczeństwabezpieczeństwa
Szkolenia MIC Szkolenia MIC –– II półrocze 2009II półrocze 2009InteroperacyjnośćInteroperacyjność
Windows HPC ServerWindows HPC Server
Exchange Exchange LabsLabs jako uniwersalna platforma ejako uniwersalna platforma e--mailmail
BezpieczeństwoBezpieczeństwo
12
Bezpieczeństwo aplikacji ASP.NET MVCBezpieczeństwo aplikacji ASP.NET MVC
Bezpieczeństwo kontrolera domenyBezpieczeństwo kontrolera domeny
Szkolenia w Warszawie: IX/X 2009 Szkolenia w Warszawie: IX/X 2009 (powtórzenie cyklu „(powtórzenie cyklu „InteroperacyjnośćInteroperacyjność”) ”)
MTS 2009? (29MTS 2009? (29--30.09.2009)30.09.2009)
Zachęcamy do zgłaszania Zachęcamy do zgłaszania w ankietachw ankietachpropozycji dalszych tematów!propozycji dalszych tematów!
Bezpieczeństwo heterogenicznej Bezpieczeństwo heterogenicznej platformy platformy hostingowejhostingowej
13
Cel prezentacjiCel prezentacji
Przedstawienie możliwości budowy Przedstawienie możliwości budowy mieszanegomieszanego środowiska środowiska hostingowegohostingowego w kontekście w kontekście bezpieczeństwa ITbezpieczeństwa ITbezpieczeństwa ITbezpieczeństwa IT
Szkolenie jest przeznaczone głównie Szkolenie jest przeznaczone głównie dla administratorów serwerów dla administratorów serwerów WWW oraz twórców aplikacji WWW oraz twórców aplikacji webowychwebowych
Częściowo skorzystają specjaliści Częściowo skorzystają specjaliści bezpieczeństwa ITbezpieczeństwa IT
Czego nie znajdziemy w prezentacji?Czego nie znajdziemy w prezentacji?
Nie będzie „wojny technologii”Nie będzie „wojny technologii”
15
Przegląd nie będzie kompletny, to raczej Przegląd nie będzie kompletny, to raczej wskazanie na kierunek poszukiwańwskazanie na kierunek poszukiwań
Czy i dlaczego środowisko heterogeniczne?Czy i dlaczego środowisko heterogeniczne?
Kryteria wyboruKryteria wyboruKwestie finansowe (MŚP, użytkownicy Kwestie finansowe (MŚP, użytkownicy indywidualni)indywidualni)
DoświadczenieDoświadczenie
16
DoświadczenieDoświadczenie
Szybkość naukiSzybkość nauki
Możliwości językaMożliwości języka
Dostępność specjalistów na rynkuDostępność specjalistów na rynku
Docelowe wymagania stawiane przed aplikacjąDocelowe wymagania stawiane przed aplikacją
Preferencje i przekonania osobiste Preferencje i przekonania osobiste
PHP PHP –– dobry pomysłdobry pomysł
WłaścicielWłaściciel nowonowo działającegodziałającego nana rynkurynkumikroprzedsiębiorstwamikroprzedsiębiorstwa potrzebujepotrzebuje szybkoszybko uruchomićuruchomićformularzformularz zamówieńzamówień oferowanegooferowanego produktuproduktu
Firma posiada tylko licencję na serwer Firma posiada tylko licencję na serwer
17
Prezes firmy sam zaprojektował aplikację, a do jej Prezes firmy sam zaprojektował aplikację, a do jej wykonania zamierza zatrudnić studenta/praktykantawykonania zamierza zatrudnić studenta/praktykanta
W celu zmniejszenia kosztów firma skorzysta z otwartego W celu zmniejszenia kosztów firma skorzysta z otwartego środowiska bazodanowegośrodowiska bazodanowego
Docelowa aplikacja jest prosta i niewielkaDocelowa aplikacja jest prosta i niewielka
(Pamiętajmy o bezpieczeństwie!)(Pamiętajmy o bezpieczeństwie!)
PHP PHP –– zły pomysłzły pomysł
DużaDuża korporacjakorporacja przygotowujeprzygotowuje zestawzestaw aplikacjiaplikacjiintranetowychintranetowych do do pracypracy grupowejgrupowej orazorazmonitorowaniamonitorowania działaniadziałania siecisieci
Firma posiada szereg licencji na różne rodzaje Firma posiada szereg licencji na różne rodzaje oprogramowania firmy Microsoft oprogramowania firmy Microsoft
18
oprogramowania firmy Microsoft oprogramowania firmy Microsoft
Koszt zatrudnienia nowych lub wyszkolenia własnych Koszt zatrudnienia nowych lub wyszkolenia własnych specjalistów ASP.NET jest pomijalny w stosunku do specjalistów ASP.NET jest pomijalny w stosunku do oczekiwanych zysków i możliwości firmyoczekiwanych zysków i możliwości firmy
Aplikacje będą intensywnie korzystać z już zainstalowanego Aplikacje będą intensywnie korzystać z już zainstalowanego oprogramowania MS SQL Serveroprogramowania MS SQL Server
BezpieczeństwoBezpieczeństwo wieloelementowegowieloelementowegośrodowiskaśrodowiska hostingowegohostingowego
Bezpieczeństwo komponentówBezpieczeństwo komponentówSystem operacyjny serweraSystem operacyjny serwera
Serwer WWWSerwer WWW
19
Serwer WWWSerwer WWW
Serwer baz danychSerwer baz danych
Interpreter języka stronInterpreter języka stron
Inne (np. aplikacje CMS, usługa FTP)Inne (np. aplikacje CMS, usługa FTP)
Wzajemna współpraca heterogenicznych składników Wzajemna współpraca heterogenicznych składników środowiska środowiska
Możliwe problemy z bezpieczeństwem interfejsówMożliwe problemy z bezpieczeństwem interfejsów
Najczęstsze komponenty środowiska Najczęstsze komponenty środowiska interoperacyjnegointeroperacyjnego hostinguhostingu
Windows Windows vsvs. Linux/Unix. Linux/Unix
IIS IIS vsvs. Apache. Apache
MS SQL/Oracle MS SQL/Oracle vsvs. . MySQLMySQL//PostgresPostgres
20
MS SQL/Oracle MS SQL/Oracle vsvs. . MySQLMySQL//PostgresPostgres
ASP.NET ASP.NET vsvs. PHP. PHP
Przedmiotem dzisiejszego szkolenia będzie Przedmiotem dzisiejszego szkolenia będzie środowisko środowisko hostingowehostingowe oparte na MS Windows + IIS 7.0 oraz PHPoparte na MS Windows + IIS 7.0 oraz PHP
BezpieczeństwoBezpieczeństwo systemu operacyjnegosystemu operacyjnego
PrzypomnieniePrzypomnienieLegalny i aktualny systemLegalny i aktualny system
Minimalizacja liczby Minimalizacja liczby orazoraz separacjaseparacja uruchomionych uruchomionych programów i usługprogramów i usługprogramów i usługprogramów i usług
Dodatkowa ochrona na poziomie hosta, np.: Dodatkowa ochrona na poziomie hosta, np.: HostHost--basedbased IDSIDS
Firewall lokalnyFirewall lokalny
AntywirusAntywirus, , AntirootkitAntirootkit
Moduł badania integralności systemu plikówModuł badania integralności systemu plików
Backup Backup danychdanych
Ścisła polityka kontroli dostępuŚcisła polityka kontroli dostępu21
Bezpieczeństwo serwera WWWBezpieczeństwo serwera WWW
Poprzednie prace MIC: badania Poprzednie prace MIC: badania poziomu poziomu bezpieczeństwa serwera IIS v. 7.0 bezpieczeństwa serwera IIS v. 7.0
Prezentacje MIC m.in. na konferencjach Prezentacje MIC m.in. na konferencjach SecureSecure CON, CON, ConfidenceConfidenceSecureSecure CON, CON, ConfidenceConfidence
Szkolenie MIC Szkolenie MIC 30.10.200730.10.2007http://mic.psnc.pl/pl/ev_301007.htmlhttp://mic.psnc.pl/pl/ev_301007.html
Slajdy Slajdy i i webcastywebcasty dostępne dostępne na WWW na WWW MICMIChttp://mic.psnc.pl/pl/download/slides.htmlhttp://mic.psnc.pl/pl/download/slides.html
http://mic.psnc.pl/pl/download/webcasts.htmlhttp://mic.psnc.pl/pl/download/webcasts.html
22
BezpiecznyBezpieczny serwerserwer IIS (1)IIS (1)
WybórWybór odpowiedniegoodpowiedniego serweraserweraUnikanie kontrolera domenyUnikanie kontrolera domeny
Maksymalnie okrojona Maksymalnie okrojona instalacjainstalacjaMinimum Minimum privilegesprivileges principleprincipleMinimum Minimum privilegesprivileges principleprinciple
Decyzja Decyzja o wyborze niezbędnych usług o wyborze niezbędnych usług (ww(www, w, smtpsmtp, , nntpnntp, ftp, …), ftp, …)
Dobrze dobrany katalog domowy serwisów Dobrze dobrany katalog domowy serwisów (wydzielona (wydzielona partycja partycja –– nie systemowa)nie systemowa)
Usunięcie domyślnie zainstalowanych katalogów Usunięcie domyślnie zainstalowanych katalogów ((iconicon, , iishelpiishelp))
23
Bezpieczny serwer IIS (2)Bezpieczny serwer IIS (2)
DefinicjaDefinicja odpowiednichodpowiednich uprawnieńuprawnień dladlakatalogukatalogu domowegodomowego serweraserwera (Read, Log)(Read, Log)
Ustawienie uprawnień do katalogu ze Ustawienie uprawnień do katalogu ze skryptami (skryptami (ExecuteExecute))
Wyłączenie niepotrzebnych filtrów ISAPI (np. Wyłączenie niepotrzebnych filtrów ISAPI (np. DigestDigest, , FrontpageFrontpage, , CompressionCompression) i ) i skasowanie plików DLLskasowanie plików DLL
Wyłączenie mapowania dla typów plików: Wyłączenie mapowania dla typów plików: .asa, .asa, .as.asp, .bat, .cdx, .cer, .p, .bat, .cdx, .cer, .htrhtr, ., .htwhtw, , .id.idaa, ., .idcidc, , ..idqidq, , ,.,.incinc, , printerprinter, ., .shtmlshtml, ., .shtmshtm, ., .stmstm i innychi innych
24
Bezpieczny serwer IIS (3)Bezpieczny serwer IIS (3)
LogowanieLogowanie żądańżądań HTTPHTTP
Uprawnienia odczytu pliku logu jedynie dla Uprawnienia odczytu pliku logu jedynie dla administratora systemuadministratora systemu
Uprawnienia zapisu do HKLM/Software Uprawnienia zapisu do HKLM/Software Uprawnienia zapisu do HKLM/Software Uprawnienia zapisu do HKLM/Software tylko dla administratora systemutylko dla administratora systemu
Weryfikacja uprawnień grupy Weryfikacja uprawnień grupy EveryoneEveryone w w stosunku do katalogów: stosunku do katalogów:
Web Web rootroot
%%systemrootsystemroot%%
%systemroot%%systemroot%\\system32system32
%systemroot%%systemroot%\\system32system32\\temptemp25
IIS IIS –– instalacja testowa na MS Vistainstalacja testowa na MS Vista
Panel Sterowania Panel Sterowania --> Programy i Funkcje > Programy i Funkcje --> > Włącz lub wyłącz funkcje systemu WindowsWłącz lub wyłącz funkcje systemu Windows
26
IIS IIS –– centrum zarządzania (1)centrum zarządzania (1)
Uruchamianie menedżera IIS 7.0Uruchamianie menedżera IIS 7.0Uruchamianie jako Administrator!Uruchamianie jako Administrator!
Sposób 1: Konsola mmc Sposób 1: Konsola mmc --> Dodaj/Usuń > Dodaj/Usuń przystawkę przystawkę --> Menedżer internetowych usług > Menedżer internetowych usług przystawkę przystawkę --> Menedżer internetowych usług > Menedżer internetowych usług informacyjnych informacyjnych --> Dodaj> Dodaj
Sposób 2 (linia poleceń) Sposób 2 (linia poleceń) –– inetmgr.exeinetmgr.exe
27
IIS IIS –– centrum zarządzania (2)centrum zarządzania (2)
28
Dodajemy witrynęDodajemy witrynę
Nazwa serwera Nazwa serwera --> > Witryny Witryny --> Dodaj > Dodaj witrynę sieci witrynę sieci Web…Web…Web…Web…
29
Dodatkowe mechanizmy zabezpieczeńDodatkowe mechanizmy zabezpieczeń
IIS IIS LockdownLockdown WizardWizardOstatnia wersja: 2.1, styczeń 2007Ostatnia wersja: 2.1, styczeń 2007
Obsługuje IIS 4.0, 5.0, 5.1Obsługuje IIS 4.0, 5.0, 5.1
W dalszych wersjach konfiguracja domyślna została W dalszych wersjach konfiguracja domyślna została poprawiona i narzędzie określono jako zbędnepoprawiona i narzędzie określono jako zbędneW dalszych wersjach konfiguracja domyślna została W dalszych wersjach konfiguracja domyślna została poprawiona i narzędzie określono jako zbędnepoprawiona i narzędzie określono jako zbędne
Warto uruchomić przy migracji IIS 5.0/1 Warto uruchomić przy migracji IIS 5.0/1 --> IIS 6.0> IIS 6.0
Microsoft Microsoft BaselineBaseline Security Security AnalyserAnalyserZawiera sekcję „Zawiera sekcję „CheckCheck for IIS for IIS administrativeadministrative vulnerabilitiesvulnerabilities””
UrlScanUrlScanOmówimy go za chwilę dokładniejOmówimy go za chwilę dokładniej
30
MBSAMBSA http://www.microsoft.com/poland/http://www.microsoft.com/poland/technet/security/tools/mbsa.mspxtechnet/security/tools/mbsa.mspx
31
URLScanURLScan –– informacje ogólneinformacje ogólne
URLScanURLScan jest filtrem ISAPI monitorującym i jest filtrem ISAPI monitorującym i blokującym żądania HTTPblokującym żądania HTTP
Ostatnia wersja: 3.1 Ostatnia wersja: 3.1
Działa dla IIS 5.1, 6.0, 7.0Działa dla IIS 5.1, 6.0, 7.0
Systemy: Windows Vista, 2008 ServerSystemy: Windows Vista, 2008 Server
http://www.iis.net/extensions/UrlScanhttp://www.iis.net/extensions/UrlScan
Zaawansowane możliwości filtrowania Zaawansowane możliwości filtrowania oraz logowania informacjioraz logowania informacji
Instalacja z pakietu Instalacja z pakietu MSIMSI
32
URLScanURLScan czy funkcjonalność IIS?czy funkcjonalność IIS?
Spora część funkcjonalności narzędzia może Spora część funkcjonalności narzędzia może być osiągnięta w samym IISbyć osiągnięta w samym IIS
Czy Czy URLScanURLScan jest zatem potrzebny?jest zatem potrzebny?URLScanURLScan jest bardziej elastycznyjest bardziej elastycznyURLScanURLScan jest bardziej elastycznyjest bardziej elastyczny
Działa na wcześniejszym etapie przetwarzania Działa na wcześniejszym etapie przetwarzania żądania, szybciej (wydajniej) odrzucając groźne żądania, szybciej (wydajniej) odrzucając groźne pakiety pakiety
Pozwala zdywersyfikować ryzyko popełnienia błęduPozwala zdywersyfikować ryzyko popełnienia błędu
Jego zastosowanie lepiej realizuje strategię Jego zastosowanie lepiej realizuje strategię DefenseDefenseinin depthdepth
33
URLScanURLScan -- instalacjainstalacja
Pakiet instalacyjny urlscan_v31_x86.msiPakiet instalacyjny urlscan_v31_x86.msiInstalacja z konta administratoraInstalacja z konta administratora
Może być konieczne korzystanie z linii komendMoże być konieczne korzystanie z linii komendmsiexecmsiexec /a urlscan_v31_x86.msi/a urlscan_v31_x86.msi
msiexecmsiexec /a urlscan_v31_x86.msi //a urlscan_v31_x86.msi /l*vl*v urlscan_install.logurlscan_install.log
msiexecmsiexec /a urlscan_v31_x86.msi /a urlscan_v31_x86.msi TARGETDIR=c:TARGETDIR=c:\\windowswindows
Domyślne lokalizacje:Domyślne lokalizacje:BinariaBinaria: : %SystemRoot%%SystemRoot%\\System32System32\\inetsrvinetsrv\\urlscanurlscan\\urlscan.dllurlscan.dll
Plik konfiguracyjny: Plik konfiguracyjny: %SystemRoot%%SystemRoot%\\System32System32\\inetsrvinetsrv\\urlscanurlscan\\urlscan.iniurlscan.ini
Pliki logu: %SystemRoot%Pliki logu: %SystemRoot%\\System32System32\\inetsrvinetsrv\\urlscanurlscan\\logslogs34
URLScanURLScan –– konfiguracja narzędziakonfiguracja narzędzia
Przykładowy plik konfiguracyjny:Przykładowy plik konfiguracyjny:http://www.iis.net/Downloads/files/URLScan/URLScanhttp://www.iis.net/Downloads/files/URLScan/URLScan--ini_v3.zipdownloads/files/URLScan/URLScanini_v3.zipdownloads/files/URLScan/URLScan--ini_v31.zipini_v31.zip
Zawiera dość dokładne wyjaśnienie używanych opcjiZawiera dość dokładne wyjaśnienie używanych opcji
Wybrane opcjeWybrane opcjeWybrane opcjeWybrane opcjeUseAllowVerbsUseAllowVerbs
„Biała” lub „czarna lista” „Biała” lub „czarna lista” dozwolnonychdozwolnonych/zabronionych metod HTTP/zabronionych metod HTTP
Wartość domyślna = 1 (dopuszczanie żądań wymienionych w sekcji Wartość domyślna = 1 (dopuszczanie żądań wymienionych w sekcji [[AllowVerbsAllowVerbs], 0 powoduje odrzucanie żądań z sekcji [], 0 powoduje odrzucanie żądań z sekcji [DenyDeny VerbsVerbs])])
UseAllowExtensionsUseAllowExtensionsDziała na identycznej zasadzie, jak powyżej, ale odnosi się do Działa na identycznej zasadzie, jak powyżej, ale odnosi się do rozszerzeń żądanych plikówrozszerzeń żądanych plików
35
URLScanURLScan –– konfiguracja narzędzia (2)konfiguracja narzędzia (2)
Wybrane opcje Wybrane opcje –– c.d.c.d.NormalizeUrlBeforeScanNormalizeUrlBeforeScan
Wartość domyślna = 1 Wartość domyślna = 1 –– powoduje, że przekazany adres URL jest powoduje, że przekazany adres URL jest poddawany odkodowaniupoddawany odkodowaniu
Wartość 0 powoduje, że łatwo ominąć testy rozszerzeń lub URL!Wartość 0 powoduje, że łatwo ominąć testy rozszerzeń lub URL!Wartość 0 powoduje, że łatwo ominąć testy rozszerzeń lub URL!Wartość 0 powoduje, że łatwo ominąć testy rozszerzeń lub URL!
VerifyNormalizationVerifyNormalizationWartość domyślna = 1 Wartość domyślna = 1 –– przekazany adres URL jest odkodowany po przekazany adres URL jest odkodowany po raz drugi, jeśli wystąpią różnice, żądanie jest odrzucaneraz drugi, jeśli wystąpią różnice, żądanie jest odrzucane
Wykrywa podwójne kodowanie złośliwych znaków, np. & Wykrywa podwójne kodowanie złośliwych znaków, np. & --> %26 > %26 --> > %2526%2526
Limity nakładane na żądanieLimity nakładane na żądanieSekcja [Sekcja [RequestLimitsRequestLimits]]
Długość żądania, długość URL, długość Długość żądania, długość URL, długość queryquery stringstring, …, …36
Konkurs 1Konkurs 1
Nagroda: MS Office StandardNagroda: MS Office StandardMożliwość dowolnego (także komercyjnego) Możliwość dowolnego (także komercyjnego) wykorzystaniawykorzystania
PytaniePytanie
Jak nazywa się jedna z opcji Jak nazywa się jedna z opcji URLScanURLScan, która , która bezpośrednio wpływa na możliwość bezpośrednio wpływa na możliwość zabezpieczenia się przed atakiem typu zabezpieczenia się przed atakiem typu DirectoryDirectoryTraversalTraversal??
37
Podpowiedź Podpowiedź –– przykłady ataku przykłady ataku DirectoryDirectory TraversalTraversalhttp://vulnerable.com/main.php?file=../../../../etc/passwdhttp://vulnerable.com/main.php?file=../../../../etc/passwd
http://insecure.org/images/../../../../../../../boot.inihttp://insecure.org/images/../../../../../../../boot.ini
Konkurs 1 Konkurs 1 -- odpowiedźodpowiedź
OdpowiedźOdpowiedź
Nazwa opcji to Nazwa opcji to AllowDotInPathAllowDotInPath
Możliwe wartości: 0/1Możliwe wartości: 0/10 = żądania plików o ścieżce zawierającej wielokrotne 0 = żądania plików o ścieżce zawierającej wielokrotne wystąpienie znaku „..” zostaną odrzuconewystąpienie znaku „..” zostaną odrzuconewystąpienie znaku „..” zostaną odrzuconewystąpienie znaku „..” zostaną odrzucone
1 = test nie jest przeprowadzany1 = test nie jest przeprowadzany
38
URLScanURLScan –– tworzenie własnych regułtworzenie własnych reguł
Zadanie: odrzucić żądania, w których nazwa pliku Zadanie: odrzucić żądania, w których nazwa pliku bądź parametr zapytania zawierają dwa myślnikibądź parametr zapytania zawierają dwa myślniki
RuleListRuleList==testowatestowa
[[testowatestowa]]
AppliesToAppliesTo=.html=.html
DenyDataSectionDenyDataSection==denied_stringsdenied_strings
ScanUrlScanUrl=1=1
ScanQueryStringScanQueryString=1=1
[[denied_stringsdenied_strings]]
---- 39
URLScanURLScan –– konfiguracja IISkonfiguracja IIS
Po instalacji Po instalacji URLScanURLScan należy „dać znać” należy „dać znać” IISIIS--owiowio jego obecnościo jego obecności
Dodajemy filtr ISAPI dla serwera lub witrynyDodajemy filtr ISAPI dla serwera lub witryny
Menedżer IIS Menedżer IIS --> Widok funkcji > Widok funkcji --> IIS > IIS --> Filtry ISAPI > Filtry ISAPI --> > Akcje Akcje --> Dodaj> DodajAkcje Akcje --> Dodaj> Dodaj
Restartujemy serwer IISRestartujemy serwer IIS
40
Restart serwera IISRestart serwera IIS
IIS Manager IIS Manager --> Akcje > Akcje --> Zarządzaj > Zarządzaj serwerem serwerem --> Uruchom ponownie> Uruchom ponownie
Linia komendLinia komendnet stop w3svcnet stop w3svc
net start w3svcnet start w3svc
41
Działanie Działanie URLScanURLScan na przykładziena przykładziehttp://127.0.0.1:8080/testhttp://127.0.0.1:8080/test--1.html1.html i i testtest----2.html2.html
42
Dodatkowa konfiguracja witryny (1)Dodatkowa konfiguracja witryny (1)
Co jeszcze warto zrobić na początek?Co jeszcze warto zrobić na początek?Nałożenie limitówNałożenie limitów
Własne strony z komunikatami o błędachWłasne strony z komunikatami o błędach
Zapewnienie, że nie są przeglądane katalogiZapewnienie, że nie są przeglądane katalogiZapewnienie, że nie są przeglądane katalogiZapewnienie, że nie są przeglądane katalogi
Dostarczenie domyślnych Dostarczenie domyślnych podstronpodstron serwisuserwisu
Dostrojenie funkcjonalności logowaniaDostrojenie funkcjonalności logowania
Wygodny w użyciu Menedżer IISWygodny w użyciu Menedżer IISModyfikacji możemy dokonać globalnie dla serwera Modyfikacji możemy dokonać globalnie dla serwera lub dla poszczególnych witrynlub dla poszczególnych witryn
Po dokonaniu zmian restartujemy serwerPo dokonaniu zmian restartujemy serwer
43
Dodatkowa konfiguracja witryny (2)Dodatkowa konfiguracja witryny (2)
44
SSłowołowo o hostingu współdzielonymo hostingu współdzielonym
Maksymalne ograniczenia przywilejówMaksymalne ograniczenia przywilejówMinimalizacja liczby usługMinimalizacja liczby usług
Maksymalne ograniczenie możliwości ładowania Maksymalne ograniczenie możliwości ładowania plików do katalogu WWWplików do katalogu WWW
Usługi FTP i WWW w tym samym katalogu to prosta droga Usługi FTP i WWW w tym samym katalogu to prosta droga Usługi FTP i WWW w tym samym katalogu to prosta droga Usługi FTP i WWW w tym samym katalogu to prosta droga do problemów!do problemów!
Separacja katalogów użytkowników od danych Separacja katalogów użytkowników od danych systemowych i wzajemnie od systemowych i wzajemnie od siebiesiebie
45
PrzerwaPrzerwa
46
JakJak postawićpostawić PHP PHP nana IIS?IIS?
Interpreter Interpreter phpphp--cgicgi.exe.exeWyjątkowo prostyWyjątkowo prosty
Bardzo niewydajnyBardzo niewydajny
Wtyczka ISAPI (php5isapi.dll)Wtyczka ISAPI (php5isapi.dll)Wtyczka ISAPI (php5isapi.dll)Wtyczka ISAPI (php5isapi.dll)Szybsza niż interpreterSzybsza niż interpreter
Problemy z wielowątkowościąProblemy z wielowątkowością
Mechanizm Mechanizm FastCGIFastCGINieco szybszy niż interpreterNieco szybszy niż interpreter
Znacznie stabilniejszy niż wtyczka ISAPIZnacznie stabilniejszy niż wtyczka ISAPI
Implementacje Implementacje ZendZend i Microsofti Microsoft
47
Instalacja PHP jako ISAPI (1)Instalacja PHP jako ISAPI (1)
Pobranie archiwum PHP (nie instalatora)Pobranie archiwum PHP (nie instalatora)http://www.php.net/get/phphttp://www.php.net/get/php--5.2.105.2.10--Win32.zip/from/a/mirrorWin32.zip/from/a/mirror
Rozpakowanie np. do D:Rozpakowanie np. do D:\\PHP (w nazwie katalogu PHP (w nazwie katalogu nie powinno być spacji!)nie powinno być spacji!)nie powinno być spacji!)nie powinno być spacji!)
Opcjonalnie Opcjonalnie –– pobranie rozszerzeń PECLpobranie rozszerzeń PECLNależy pobrać PECL dla PHP 5.2.6: Należy pobrać PECL dla PHP 5.2.6: http://www.php.net/get/peclhttp://www.php.net/get/pecl--5.2.65.2.6--Win32.zip/from/a/mirrorWin32.zip/from/a/mirror
Załadowanie zawartości archiwum do podkatalogu Załadowanie zawartości archiwum do podkatalogu D:D:\\PHPPHP\\extext
Skopiowanie php5activescript.dll i php5servlet.dll z Skopiowanie php5activescript.dll i php5servlet.dll z podkatalogu podkatalogu extext do głównego katalogu do głównego katalogu instalacjiinstalacji 48
Instalacja PHP jako ISAPI (2)Instalacja PHP jako ISAPI (2)
Plik konfiguracyjny Plik konfiguracyjny php.iniphp.iniD:D:\\PHPPHP\\php.iniphp.ini--recommended recommended --> D:> D:\\PHPPHP\\php.iniphp.ini
Plik tekstowy możliwy do edycji np. w NotatnikuPlik tekstowy możliwy do edycji np. w Notatniku
Istotna zmiana (instalujemy jako ISAPI):Istotna zmiana (instalujemy jako ISAPI):Istotna zmiana (instalujemy jako ISAPI):Istotna zmiana (instalujemy jako ISAPI):;;cgi.force_redirectcgi.force_redirect = 1 = 1 --> > cgi.force_redirectcgi.force_redirect = 0= 0
Uaktywnienie zarządzania sesjami:Uaktywnienie zarządzania sesjami:session.save_pathsession.save_path = "d:= "d:\\PHPPHP\\sessions"sessions"
Lokalizacja może znajdować się na maszynie sieciowej, Lokalizacja może znajdować się na maszynie sieciowej, ale musi być ale musi być podmapowanapodmapowana jako napędjako napęd
Uaktywnienie pożądanych rozszerzeń:Uaktywnienie pożądanych rozszerzeń:;;extension=php_mysql.dllextension=php_mysql.dll --> > extension=php_mysql.dllextension=php_mysql.dll
Instalacja PHP jako ISAPI (3)Instalacja PHP jako ISAPI (3)
Dodanie ścieżki Dodanie ścieżki instalacyjnej PHP do instalacyjnej PHP do zmiennej systemowej zmiennej systemowej PATHPATH
Panel sterowania Panel sterowania --> > Panel sterowania Panel sterowania --> > System System --> > Zaawansowane Zaawansowane ustawienia Systemu ustawienia Systemu --> > Zmienne Zmienne środowiskoweśrodowiskowe
Warto dodać ścieżkę Warto dodać ścieżkę na początek zmiennejna początek zmiennej
Niezbędny restart Niezbędny restart serwera IISserwera IIS 50
Instalacja PHP jako ISAPI (Instalacja PHP jako ISAPI (44))
KonfiguracjaKonfiguracja ścieżki ścieżki php.iniphp.iniUniknięcie problemów „katalog systemowy czy Uniknięcie problemów „katalog systemowy czy instalacyjny”?instalacyjny”?
Uruchomienie Uruchomienie regedit.exeregedit.exe
HKLM HKLM --> Software > Software --> [Nowy klucz> [Nowy klucz: : PHP] PHP] --> PHP > PHP --> > HKLM HKLM --> Software > Software --> [Nowy klucz> [Nowy klucz: : PHP] PHP] --> PHP > PHP --> > [Nowa wartość ciągu: [Nowa wartość ciągu: IniFilePathIniFilePath = D:= D:\\PHP]PHP]
51
Instalacja PHP jako ISAPI (5)Instalacja PHP jako ISAPI (5)
Końcowa konfiguracja IISKońcowa konfiguracja IISMenedżer IIS Menedżer IIS --> Widok funkcji > Widok funkcji --> Mapowania obsługi > Mapowania obsługi --> > Dodaj mapę skryptuDodaj mapę skryptu
Warto skonfigurować ograniczenie metod (żądań)Warto skonfigurować ograniczenie metod (żądań)
52
Instalacja PHP jako ISAPI (6)Instalacja PHP jako ISAPI (6)
Końcowa Końcowa konfiguracja IIS konfiguracja IIS –– c.d.c.d.
Dodanie filtru Dodanie filtru ISAPIISAPIISAPIISAPI
Menedżer IIS Menedżer IIS --> Widok > Widok funkcji funkcji --> Filtry > Filtry ISAPI ISAPI --> Akcje > Akcje --> Dodaj> Dodaj
Restart Restart serwera…serwera…
53
Prosty test działaniaProsty test działania
Testowy skrypt PHP: Testowy skrypt PHP: info.phpinfo.php<?<?phpphp
phpinfophpinfo();();
?>?>?>?>
54
Konkurs 2Konkurs 2
Nagroda: Nagroda: Create the next generation Web Create the next generation Web --Developer Resource KitDeveloper Resource Kit
PytaniePytanie
Dlaczego skrypt z poprzedniego slajdu, w nieco Dlaczego skrypt z poprzedniego slajdu, w nieco zmienionej postaci:zmienionej postaci:Dlaczego skrypt z poprzedniego slajdu, w nieco Dlaczego skrypt z poprzedniego slajdu, w nieco zmienionej postaci:zmienionej postaci:
<?<?
phpinfophpinfo();();
?>?>
nie zadziałał? nie zadziałał?
55
Podpowiedź Podpowiedź –– co oznacza parametr co oznacza parametr short_open_tagshort_open_tag??
Konkurs 2 Konkurs 2 -- odpowiedźodpowiedź
OdpowiedźOdpowiedź
W domyślnym pliku konfiguracyjnym znajduje się W domyślnym pliku konfiguracyjnym znajduje się klauzulaklauzula
short_open_tagshort_open_tag = = OffOff
która blokuje użycie znaczników „<? ?>” z przyczyn która blokuje użycie znaczników „<? ?>” z przyczyn która blokuje użycie znaczników „<? ?>” z przyczyn która blokuje użycie znaczników „<? ?>” z przyczyn kompatybilnościowychkompatybilnościowych
W celu umożliwienia użycia skróconych znaczników W celu umożliwienia użycia skróconych znaczników należy:należy:
Zmienić odpowiednią linię pliku Zmienić odpowiednią linię pliku php.iniphp.ini na:na:
short_open_tagshort_open_tag = On= On
Zrestartować serwer WWWZrestartować serwer WWW
56
Wybrane aspekty konfiguracji PHP (1)Wybrane aspekty konfiguracji PHP (1)
Polityka ujawniania informacjiPolityka ujawniania informacjierror_reportingerror_reporting = E_ALL & ~E_NOTICE= E_ALL & ~E_NOTICE
expose_phpexpose_php = off= off
display_errorsdisplay_errors = off= offdisplay_errorsdisplay_errors = off= off
log_errorslog_errors = on= on
error_logerror_log = c:= c:\\MyLogsMyLogs
57
Wybrane aspekty konfiguracji PHP (2)Wybrane aspekty konfiguracji PHP (2)
LimityLimitymemory_limitmemory_limit = 8M= 8M
max_input_timemax_input_time = 60= 60
max_execution_timemax_execution_time = 120 = 120
58
max_execution_timemax_execution_time = 120 = 120
Ograniczenie inwencji użytkownika Ograniczenie inwencji użytkownika file_uploadsfile_uploads = off= off
register_globalsregister_globals = off= off
magic_quotes_gpcmagic_quotes_gpc = on (?)= on (?)
allow_url_fopenallow_url_fopen = off= off
disable_functionsdisable_functions = = „„passthrupassthru, exec, , exec, ......””
Lista niebezpiecznych funkcji (dla IIS)Lista niebezpiecznych funkcji (dla IIS)
chmodchmod
execexec
get_cfg_varget_cfg_var
getenvgetenv
popenpopen
proc_openproc_open
send_mailsend_mail
shell_execshell_exec
59
ini_getini_get
ini_get_allini_get_all
ini_setini_set
mailmail
passthrupassthru
pcntl_execpcntl_exec
phpunamephpuname
syslogsyslog
systemsystem
Dodatkowe funkcje dla serwera Dodatkowe funkcje dla serwera Apache, platform Apache, platform uniksowychuniksowych, , POSIXPOSIX
Jeśli powyższe funkcje nie są Jeśli powyższe funkcje nie są niezbędne, powinny być niezbędne, powinny być dopisane do dopisane do php.iniphp.ini w klauzuli w klauzuli disable_functionsdisable_functions
Modyfikacja pliku Modyfikacja pliku php.iniphp.ini
Edytor tekstowyEdytor tekstowy
Narzędzie graficzne pod WindowsNarzędzie graficzne pod WindowsAnalogXAnalogX PHPConfigPHPConfig
http://www.analogx.com/contents/download/http://www.analogx.com/contents/download/
60
http://www.analogx.com/contents/download/http://www.analogx.com/contents/download/Network/phpconf/Freeware.htmNetwork/phpconf/Freeware.htm
FreewareFreeware
Wersja 1.01 (2009)Wersja 1.01 (2009)
Instalacja przebiega bezproblemowoInstalacja przebiega bezproblemowo
Plus: wygodny interfejs i grupowanie opcji o Plus: wygodny interfejs i grupowanie opcji o podobnym znaczeniupodobnym znaczeniu
Minus: usuwanie komentarzyMinus: usuwanie komentarzy
AnalogXAnalogX PHP ConfigPHP Config
61
Czy PHP jest bezpieczny?Czy PHP jest bezpieczny?
To say PHP has a security problem suggests that To say PHP has a security problem suggests that it's impossible to develop a secure PHP it's impossible to develop a secure PHP application, but to say PHP doesn't have a security application, but to say PHP doesn't have a security problem suggests that everything is perfect problem suggests that everything is perfect ––neither is trueneither is true (Chris (Chris ShiffletShifflet))neither is trueneither is true (Chris (Chris ShiffletShifflet))
PHP PHP isis neitherneither inherintlyinherintly securesecure nor nor insecureinsecure. . ItIt isisthethe responsibilityresponsibility of of thethe programmerprogrammer of a of a webwebapplicationapplication, , thethe databasedatabase administrator and administrator and thethesystem administrator to system administrator to ensureensure thatthat security security isis not not compromisedcompromised atat severalseveral levelslevels (James D. (James D. KeelineKeeline))
62
Zagrożenia związane z PHPZagrożenia związane z PHPBłędyBłędy w w konfiguracjikonfiguracji::
UjawnianieUjawnianie informacjiinformacji
ZłaZła politykapolityka logowanialogowania
ZbytZbyt szerokieszerokie uprawnieniauprawnienia użytkownikaużytkownika
Błędy w tworzonych aplikacjach:Błędy w tworzonych aplikacjach:BłędyBłędy projektuprojektu
BłędyBłędy kodukodu
BłędyBłędy środowiskaśrodowiskaPHPPHP
WspółpracująceWspółpracujące komponentykomponenty
63
Testy bezpieczeństwa konfiguracjiTesty bezpieczeństwa konfiguracjiNarzędzie Narzędzie PHPSecInfoPHPSecInfo
Najnowsza wersja: 0.2.1, kwiecień 2007Najnowsza wersja: 0.2.1, kwiecień 2007
http://phpsec.org/projects/phpsecinfohttp://phpsec.org/projects/phpsecinfo
ProjektProjekt PHP Security ConsortiumPHP Security Consortium
NNarzędziearzędzie napisanenapisane w PHP ;)w PHP ;)
Prosta analiza konfiguracji środowiska PHPProsta analiza konfiguracji środowiska PHPWgrywamyWgrywamy np. np. pod pod http://127.0.0.1/phpsecinfohttp://127.0.0.1/phpsecinfo
PrzyjaznyPrzyjazny interfejsinterfejs
ObszerneObszerne objaśnieniaobjaśnienia
NieNie wszystkiewszystkie testy testy działajądziałają w w środowiskuśrodowiskuWindowsWindows
64
65
66
Testy bezpieczeństwa koduTesty bezpieczeństwa koduBezpieczeństwo kodu Bezpieczeństwo kodu –– kwestia programisty, kwestia programisty, administratora, czy specjalisty ds. bezpieczeństwa?administratora, czy specjalisty ds. bezpieczeństwa?
Programista powinien znać i stosować dobre praktyki Programista powinien znać i stosować dobre praktyki bezpiecznego programowaniabezpiecznego programowania
Przeszkolony administrator może (powinien?) stosować Przeszkolony administrator może (powinien?) stosować Przeszkolony administrator może (powinien?) stosować Przeszkolony administrator może (powinien?) stosować proste metody testowania kodu, aby wiedzieć, co dzieje proste metody testowania kodu, aby wiedzieć, co dzieje się na jego serwerzesię na jego serwerze
Specjalista ds. bezpieczeństwa będzie optymalnie Specjalista ds. bezpieczeństwa będzie optymalnie wykorzystany, gdy skoncentruje się na trudniejszych do wykorzystany, gdy skoncentruje się na trudniejszych do wykrycia wykrycia podatnościachpodatnościach
Dlatego chcemy zachęcić do przetestowania Dlatego chcemy zachęcić do przetestowania prostego skanera kodu PHP działającego w prostego skanera kodu PHP działającego w środowisku Windowsśrodowisku Windows
67
Pixy Pixy –– podstawowe informacjepodstawowe informacje
SkanerSkaner kodukodu źródłowegoźródłowegoPHP 4.x oraz PHP 4.x oraz nieobiektowynieobiektowy PHP 5.xPHP 5.x
Ostatnia wersja: 3.0.3, lipiec 2007Ostatnia wersja: 3.0.3, lipiec 2007
AutorzyAutorzy: Secure System Labs (: Secure System Labs (PolitechnikaPolitechnika WiedeńskaWiedeńska))AutorzyAutorzy: Secure System Labs (: Secure System Labs (PolitechnikaPolitechnika WiedeńskaWiedeńska))http://pixybox.seclab.tuwien.ac.at/pixyhttp://pixybox.seclab.tuwien.ac.at/pixy
Narzędzie uruchamiane z linii komendNarzędzie uruchamiane z linii komendWymagaWymaga Sun JRE Sun JRE orazoraz narzędzianarzędzia dotty dotty z pakietu z pakietu GraphvizGraphviz do do analizyanalizy wynikówwyników
GraphvizGraphviz: : http://www.graphviz.orghttp://www.graphviz.org
CałośćCałość działadziała w w środowiskuśrodowisku WindowsWindows
WykrywaWykrywa podatnościpodatności XSS XSS orazoraz SQL InjectionSQL Injection
ObrazujeObrazuje przepływprzepływ potencjalniepotencjalnie złośliwychzłośliwych danychdanych 68
Wykorzystanie Wykorzystanie PixyPixy
Należy uruchomić plik Należy uruchomić plik runrun--all.batall.bat z katalogu z katalogu instalacyjnegoinstalacyjnego
PixyPixy działa na pojedynczych plikach: skanowanie katalogów działa na pojedynczych plikach: skanowanie katalogów wymaga wymaga oskryptowaniaoskryptowania
runrun--all.batall.bat [opcje] [[opcje] [plik_PHPplik_PHP]]runrun--all.batall.bat [opcje] [[opcje] [plik_PHPplik_PHP]]
Program wypisuje część wyników na standardowe wyjścieProgram wypisuje część wyników na standardowe wyjście
Po zakończeniu Po zakończeniu parsowaniaparsowania plików w podkatalogu plików w podkatalogu graphsgraphsznajdują się dodatkowe rezultatyznajdują się dodatkowe rezultaty
calledbycalledby_[_[filenamefilename].].txttxt
includesincludes_[_[filenamefilename].].txttxt
xssxss_[_[filenamefilename]_[n]_[]_[n]_[dep|mindep|min].].dotdot
sqlsql_[_[filenamefilename]_[n]_[]_[n]_[dep|mindep|min].].dotdot
69
Wyniki Wyniki PixyPixy –– standardowe wyjściestandardowe wyjścieOprócz podatności narzędzie potrafi Oprócz podatności narzędzie potrafi znaleźć np. partie nieosiągalnego koduznaleźć np. partie nieosiągalnego kodu
70
Wyniki Wyniki PixyPixy –– katalog katalog graphsgraphsPliki należy zachować samodzielnie Pliki należy zachować samodzielnie –– PixyPixynadpisze je przy następnym uruchomieniunadpisze je przy następnym uruchomieniu
Pliki .Pliki .dotdot należy analizować należy analizować narzędziem narzędziem dottydotty
71
Analiza grafów Analiza grafów -- dottydottyTutorialTutorial: : http://pixybox.seclab.tuwien.ac.at/pixy/basics.phphttp://pixybox.seclab.tuwien.ac.at/pixy/basics.php
72
PixyPixy -- kilka podpowiedzikilka podpowiedziWykryte podatności Wykryte podatności dpowiadajądpowiadają grafom grafom zawierającym sufiks _minzawierającym sufiks _min
W przypadku tworzenia skryptów można zachować W przypadku tworzenia skryptów można zachować jedynie wspomniane grafyjedynie wspomniane grafy
Grafy przechowywane są w formie tekstowejGrafy przechowywane są w formie tekstowejGrafy przechowywane są w formie tekstowejGrafy przechowywane są w formie tekstowejMożna łatwo napisać własne narzędzie do Można łatwo napisać własne narzędzie do kompleksowej analizy wynikówkompleksowej analizy wyników
73
Inne narzędzia pod WindowsInne narzędzia pod WindowsRATS RATS
http://www.fortify.com/securityhttp://www.fortify.com/security--resources/rats.jspresources/rats.jsp
Służy do badania kodu C i PHPSłuży do badania kodu C i PHP
Bada głównie użycie niebezpiecznych funkcjiBada głównie użycie niebezpiecznych funkcji
YASCAYASCAYASCAYASCAhttp://www.yasca.orghttp://www.yasca.org
Kombajn do badania m.in. kodu PHP (wykorzystuje Kombajn do badania m.in. kodu PHP (wykorzystuje m.in. m.in. PixyPixy) )
PHPLintPHPLinthttp://www.icosaedro.it/phplinthttp://www.icosaedro.it/phplint
WalidatorWalidator i generator dokumentacji do PHP 4.x/5.xi generator dokumentacji do PHP 4.x/5.x74
Pamiętajmy, że…Pamiętajmy, że…Narzędzia testujące kod wykrywają tylko Narzędzia testujące kod wykrywają tylko niektóre podatnościniektóre podatności
Skanery kodu zgłaszają dużo Skanery kodu zgłaszają dużo falsefalse positivespositives
Wyniki analizy kodu muszą być Wyniki analizy kodu muszą być przeanalizowane przez specjalistę do spraw przeanalizowane przez specjalistę do spraw Wyniki analizy kodu muszą być Wyniki analizy kodu muszą być przeanalizowane przez specjalistę do spraw przeanalizowane przez specjalistę do spraw bezpieczeństwabezpieczeństwa
Wyniki działania skanerów powinny być dla Wyniki działania skanerów powinny być dla administratora jedynie uzupełnieniem, administratora jedynie uzupełnieniem, przesłanką do zawiadomienia dedykowanego przesłanką do zawiadomienia dedykowanego audytora koduaudytora kodu
75
Jak dowiedzieć się o błędach środowiskaJak dowiedzieć się o błędach środowiskaPortale i listy publikujące informacje o Portale i listy publikujące informacje o podatnościachpodatnościach
http://secunia.comhttp://secunia.com
http://cve.mitre.orghttp://cve.mitre.org
BugtraqBugtraqBugtraqBugtraq
FullFull DisclosureDisclosure
Ostatni błąd w PHP: ogłoszony 19.06.09!Ostatni błąd w PHP: ogłoszony 19.06.09!http://secunia.com/advisories/35441http://secunia.com/advisories/35441
Błędy PHP specyficzne dla środowiska WindowsBłędy PHP specyficzne dla środowiska Windows14.04.09: 14.04.09: PHP for Windows PHP for Windows OpenSSLOpenSSL Multiple Multiple VulnerabilitiesVulnerabilities
http://secunia.com/advisories/34666http://secunia.com/advisories/34666 76
Zbliżamy się do końca…Zbliżamy się do końca…
77
Gdyby ta prezentacja była dłuższa…Gdyby ta prezentacja była dłuższa…Kolejne tematy do poruszenia:Kolejne tematy do poruszenia:
Bezpieczeństwo serwera baz danychBezpieczeństwo serwera baz danychPorównanie poziomu bezpieczeństwa MS SQL Porównanie poziomu bezpieczeństwa MS SQL ServeraServera oraz oraz MySQLMySQL
Bezpieczna konfiguracja środowisk bazodanowychBezpieczna konfiguracja środowisk bazodanowychBezpieczna konfiguracja środowisk bazodanowychBezpieczna konfiguracja środowisk bazodanowych
HardeningHardening serwerowego systemu operacyjnegoserwerowego systemu operacyjnego
Bezpieczeństwo aplikacji CMS w systemach WindowsBezpieczeństwo aplikacji CMS w systemach WindowsPorównanie dostępnych rozwiązańPorównanie dostępnych rozwiązań
Narzędzia skanująceNarzędzia skanujące
Wykorzystanie kryptografii w zabezpieczaniu Wykorzystanie kryptografii w zabezpieczaniu środowiska środowiska hostingowegohostingowego
Ochrona przed atakami Ochrona przed atakami DoSDoS//DDoSDDoS
…… 78
PodsumowaniePodsumowanie
SąSą sytuacjesytuacje, w , w którychktórych wartowarto „„pomieszaćpomieszać” ” technologietechnologie, ale , ale nienie zawszezawsze ii nienie wszystkiewszystkie
Nie ma problemu z Nie ma problemu z hostowahostowaniemniem aplikacjaplikacjii PHP pod PHP pod Windows Windows zaza pośrednictwempośrednictwem serweraserwera IISIIS
TrzebaTrzeba zwrócićzwrócić uwagęuwagę nana kwestiekwestie bezpieczeństwabezpieczeństwa w w kontekściekontekście wszystkichwszystkich wykorzystanychwykorzystanych rozwiązańrozwiązań, a , a takżetakże interfejsówinterfejsów międzymiędzy niminimi
Dla systemu Windows istnieje szereg narzędzi, które Dla systemu Windows istnieje szereg narzędzi, które wspomagają bezpieczną konfigurację i wspomagają bezpieczną konfigurację i wykorzystanie elementów środowiska wykorzystanie elementów środowiska hostingowegohostingowego
Dziś poruszyliśmy jedynie wierzchołek góry lodowejDziś poruszyliśmy jedynie wierzchołek góry lodowej79
WięcejWięcej informacjiinformacji ((wybranewybrane źródłaźródła))InstalacjaInstalacja ii uruchomienieuruchomienie aplikacjiaplikacji PHP PHP nana IIS:IIS:
http://shabbir.hassanally.net/blog/2007/10/11http://shabbir.hassanally.net/blog/2007/10/11
httphttp://learn.iis.net/page.aspx/24/running://learn.iis.net/page.aspx/24/running--phpphp--applicationsapplications--onon--iisiis
http://www.webcheatsheet.com/PHP/install_and_configurhttp://www.webcheatsheet.com/PHP/install_and_configurhttp://www.webcheatsheet.com/PHP/install_and_configurhttp://www.webcheatsheet.com/PHP/install_and_configure.phpe.php
http://www.techit.pl/Demonstracje/View.aspx?3582.instalahttp://www.techit.pl/Demonstracje/View.aspx?3582.instalacja+php+w+modelu+isapi+na+serwerze+iis+7cja+php+w+modelu+isapi+na+serwerze+iis+7 ((screencastscreencastdla konfiguracji PHP na IIS 7.0 dla Windows Server 2008)dla konfiguracji PHP na IIS 7.0 dla Windows Server 2008)
PHP Security ConsortiumPHP Security Consortiumhttp://phpsec.orghttp://phpsec.org
http://phpsec.org/projects/guidhttp://phpsec.org/projects/guidee
80
Informacje kontaktoweInformacje kontaktoweAutorAutor prezentacjiprezentacji
[email protected]@man.poznan.pl
Centrum Innowacji Microsoft:Centrum Innowacji Microsoft:http://mic.psnc.plhttp://mic.psnc.pl
micmic@@man.poznanman.poznan.pl.pl
PCSS PCSS http://http://www.pcss.plwww.pcss.pl
81
Zespół Bezpieczeństwa PCSSZespół Bezpieczeństwa PCSShttp://security.psnc.plhttp://security.psnc.pl
[email protected]@man.poznan.pl
Pytania i dyskusjaPytania i dyskusja
DziękujęDziękuję zaza uwagęuwagę!!82