Podobne dokumenty
Bezpieczeństwo heterogenicznej

Bezpieczeństwo aplikacji PHP hostowanych w środowisku. Windows. Gerard Frankowski, PCSS

Zabezpieczanie platformy Windows Server 2003

Zabezpieczanie platformy Windows Server 2003

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Zabezpieczanie platformy Windows Server 2003

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Bezpieczeństwo. hostingowej GERARD FRANKOWSKI, MARCIN JERZAK

Dokumentacja fillup - MS SQL

OWASP OWASP. The OWASP Foundation Cross-Site Scripting. Ryzyko do zaakceptowania? Warszawa, 27 stycznia 2011 Michał Kurek

Win Admin Monitor Instrukcja Obsługi

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Tomasz Greszata - Koszalin

Bezpieczne strony WWW dla edukacji, organizacji non-profit i uŝytkowników indywidualnych.

Zagrożenia związane z udostępnianiem aplikacji w sieci Internet

Kancelaria Prawna.WEB - POMOC

Systemy operacyjne i sieci komputerowe Szymon Wilk Konsola MMC 1

Platforma webowa IIS

Temat: Windows 7 Centrum akcji program antywirusowy

11. Autoryzacja użytkowników

Niezbędne narzędzia. Przed rozpoczęciem pracy z PHP należy zainstalować odpowiednie narzędzia: środowisko PHP serwer WWW serwer baz danych MySQL

Instrukcja instalacji

The OWASP Foundation Session Management. Sławomir Rozbicki.

enova Instalacja wersji demo

Windows Server 2008 Standard Str. 1 Ćwiczenia. Opr. JK. I. Instalowanie serwera FTP w Windows Server 2008 (zrzuty ekranowe z maszyny wirtualnej)

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Instalacja i konfiguracja serwera IIS z FTP

OCHRONA PRZED RANSOMWARE. Konfiguracja ustawień

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.

Rozwiązanie Trend Micro Worry-Free Business Security 8.0 Porady i wskazówki dotyczące konfiguracji początkowej

KONFIGURACJA SERWERA USŁUG INTERNETOWYCH

Systemy operacyjne. Zasady lokalne i konfiguracja środowiska Windows 2000

OCHRONA PRZED RANSOMWARE

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Drobne błędy w portalach WWW

Audyt zasobów sprzętowych i systemowych (za pomocą dostępnych apletów Windows oraz narzędzi specjalnych)

Usługi sieciowe systemu Linux

Bezpieczeństwo Windows Server 2008 R2

Procedury techniczne modułu Forte Kontroling. Środowisko pracy programu i elementy konfiguracji

Pracownia internetowa w szkole ZASTOSOWANIA

Instrukcja obsługi Modułu Payu dla Moodle 2.x

Instalacja i konfiguracja IIS-a na potrzeby dostępu WEB do aplikacji Wonderware InTouch Machine Edition

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Windows W celu dostępu do i konfiguracji firewall idź do Panelu sterowania -> System i zabezpieczenia -> Zapora systemu Windows.

Praktyczne wykorzystanie mechanizmów zabezpieczeń w aplikacjach chmurowych na przykładzie MS Azure

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu ftp.

Wykaz zmian w programie WinAdmin Replikator

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

Program kadrowo płacowy - wersja wielodostępna z bazą danych Oracle SQL Server 8 lub 9

Opis Przedmiotu Zamówienia na przeprowadzenie testów bezpieczeństwa systemu wspomagania nadzoru archiwalnego e-nadzór

Snifery wbudowane w Microsoft Windows

Obsługa poczty elektronicznej w domenie emeritus.ue.poznan.pl

Pracownia internetowa w każdej szkole (edycja jesień 2005)

Instalacja sieciowa Autodesk AutoCAD oraz wertykali

Pracownia internetowa w każdej szkole (edycja jesień 2005)

KONFIGURACJA INTERFEJSU SIECIOWEGO

System kontroli dostępu ACCO NET Instrukcja instalacji

DESlock+ szybki start

Sieciowa instalacja Sekafi 3 SQL

R o g e r A c c e s s C o n t r o l S y s t e m 5

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

1 Implementowanie i konfigurowanie infrastruktury wdraŝania systemu Windows... 1

Bezpieczne udostępnianie usług www. BłaŜej Miga Zespół Bezpieczeństwa PCSS

Logowanie do aplikacji TETA Web. Instrukcja Użytkownika

Win Admin Replikator Instrukcja Obsługi

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Windows Serwer 2008 R2. Moduł x. IIS

Wojciech Dworakowski. Zabezpieczanie aplikacji. Firewalle aplikacyjne - internetowych

Pomoc dla r.

Data modyfikacji:

Instrukcja instalacji oprogramowania dla środowiska Windows

Tomasz Greszata - Koszalin

4. Podstawowa konfiguracja

Instalacja i konfiguracja SAS PC Files Server

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Serwer Sieci Web (IIS)

Instalacja i podstawowa konfiguracja aplikacji ImageManager

Panda Managed Office Protection. Przewodnik. Panda Managed Office Protection. Przewodnik

Tomasz Greszata - Koszalin

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna)

Protokół HTTP (2) I) Wprowadzenie. II) Użyte narzędzia: III) Kolejność działań

Instrukcja instalacji systemu elektronicznego obiegu dokumentów - esoda.

ActiveXperts SMS Messaging Server

weblsp Wybór przeglądarki i jej ustawienia Instrukcja ADH-Soft sp. z o.o., ul. 17 Stycznia 74, Warszawa

INFORMATOR TECHNICZNY WONDERWARE

Win Admin Replikator Instrukcja Obsługi

Laboratorium - Użycie narzędzia Przywracanie systemu w systemie Windows XP

Zabawy z PHP em. Błażej Miga, Jaroslaw Sajko, PCSS blazej.miga@man.poznan.pl jaroslaw.sajko@man.poznan.pl

systemu informatycznego do przyjmowania i rozpatrywania wniosko w Dokumentacja Techniczna

Win Admin Monitor Instrukcja Obsługi

Instrukcja konfiguracji funkcji skanowania

Forte Zarządzanie Produkcją Instalacja i konfiguracja. Wersja B

Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie

Transkrypt:

Bezpieczeństwo heterogenicznej platformy hostingowej Marcin Jerzak, Zespół Bezpieczeństwa PCSS Szczawno Zdrój, 24.02.2011

Agenda Kim jesteśmy, co robimy? Wprowadzenie do tematu Zagrożenia Bezpieczeństwo platformy hostingowej Instalacjaacja testowa IIS + PHP Bezpieczeństwo PHP Zakończenie 2

Kim jesteśmy i co robimy? 3

Zespół Bezpieczeństwa PCSS Od 1996r. zajmujemy się: Zabezpieczaniem infrastruktury PCSS Zadaniami bezpieczeństwa w projektachr&d Szkoleniami i transferemem wiedzy Badaniami własnymi Audytami i doradztwem w zakresie bezpieczeństwa IT Wybrane badania z ostatnich lat: Raportnt. bezpieczeństwa bankowości elektronicznej(2006) Bezpieczeństwo serwerówwww ApacheiMS IIS(2007) Bezpieczeństwo sklepów internetowych(2008) Testy porównawcze przeglądarek internetowych (2010) http://security.psnc.pl 4

Bezpieczeństwo heterogenicznej platformy hostingowej 5

Cel prezentacji Pokazanie różnych ataków na aplikacje webowe Przedstawienie możliwości budowy mieszanegośrodowiska hostingowegow w kontekście bezpieczeństwa IT Szkolenie jest przeznaczone głównie dla administratorów serwerów WWW oraz twórców aplikacji webowych

Czego nie znajdziemy w prezentacji? Nie będzie wojny technologii Przegląd nie będzie kompletny, to raczej wskazanie na kierunek poszukiwań 7

Czy i dlaczego środowisko heterogeniczne? Kryteria wyboru Kwestie finansowe (MŚP, użytkownicy indywidualni) Doświadczenie Szybkość nauki Możliwości języka Dostępność specjalistów na rynku Docelowe wymagania stawiane przed aplikacją Preferencje i przekonania osobiste 8

PHP dobry pomysł Właściciel nowo działającego na rynku mikroprzedsiębiorstwa potrzebuje szybko uruchomić formularz zamówień oferowanego produktu Firma posiada tylko licencję na serwer Prezes firmy sam zaprojektował aplikację, a do jej wykonania zamierza zatrudnić studenta/praktykanta W celu zmniejszenia kosztów firma skorzysta z otwartego środowiska bazodanowego Docelowa aplikacja jest prosta i niewielka (Pamiętajmy o bezpieczeństwie!) 9

PHP zły pomysł Duża korporacja przygotowuje zestaw aplikacji intranetowychdo pracy grupowej oraz monitorowania działania sieci Firma posiada szereg licencji na różne rodzaje oprogramowania firmy Microsoft Koszt zatrudnienia nowych lub wyszkolenia własnych specjalistów ASP.NET jest pomijalny w stosunku do oczekiwanych zysków i możliwości firmy Aplikacje będą intensywnie korzystać z już zainstalowanego oprogramowania MS SQL Server 10

Najczęstsze komponenty środowiska interoperacyjnegohostingu Windows vs. Linux/Unix IIS vs. Apache MS SQL/Oracle vs. MySQL/Postgres ASP.NET vs. PHP Przedmiotem dzisiejszego szkolenia będzie środowisko hostingoweoparte oparte na MS Windows + IIS 7.0 oraz PHP 11

Bezpieczeństwowieloelementowegowieloelementowego środowiskahostingowego Bezpieczeństwo komponentów System operacyjny serwera Serwer WWW Serwer baz danych Interpreter języka stron Inne (np. aplikacje CMS, usługa FTP) Wzajemna współpraca heterogenicznych składników środowiska Możliwe problemy z bezpieczeństwem interfejsów 12

Agenda Kim jesteśmy, co robimy? Wprowadzenie do tematu Zagrożenia Bezpieczeństwo platformy hostingowej Instalacjaacja testowa IIS + PHP Bezpieczeństwo PHP Zakończenie 13

Ile to kosztuje?

Najważniejsze zagrożenia (według OWASP TOP 10) Injections Cross-Site Scripting (XSS) Błędna obsługa sesji Insecure Direct Object References Cross-Site Request Forgery (CSRF) Security Misconfiguration

Injections(1) Zmuszenie aplikacji, aby wysłany przez użytkownika ciąg znaków przesłała do interpretera stron SQL Injection Command Injection Xpath Injection HTML Injection XML Injection

Injections(2) Wykorzystanie: Procedur składowanych Preparedstatements Walidacja danych przesyłanych przez użytkownika (white list) Zasada minimalnych uprawnień

Cross-sitescripting(XSS) (1) Dane pochodzące od atakującego przekazane są do przeglądarki użytkownika ReflectedXSS Persistent XSS Zagrożenia: Kradzież identyfikatora sesji Kradzież danych Phishing

Cross-sitescripting(XSS) (2) Filtrowanie danych pochodzących od użytkownika przy użyciu białych list Przekodowanie danych pochodzących od użytkownika http://www.owasp.org/index.php/xss

Błędna obsługa sesji (1) HTTP to protokół bezstanowy Szyfrowanie wykorzystywane jedynie w momencie logowania Łatwe do przewidzenia identyfikatory sesji Sesje w ukrytych polach lub w URL-u Przechwycenie sesji = kradzież poświadczeń Firesheep http://security.psnc.pl/reports/sklepy_interne towe_cookies.pdf

Błędna obsługa sesji (2) Sesje losowe Przycisk wyloguj powoduje unieważnienie aktualnej sesji Wykorzystanie SSL Identyfikator sesji zmienia się po zalogowaniu Ochrona przed tzw. session fixation

InsecureDirectObjectReferences Błędna polityka dostępu do zasobów www.jakiśbank.pl/client/10002341 www.jakiśbank.pl/client client/10002342 Każdorazowa weryfikacja uprawnień przy próbie dostępu do obiektu

Cross SiteRequestForgery(CSRF) (1) Zmuszenie przeglądarki ofiary do wykonania akcji na atakowanej stronie Wykorzystanie przeglądarki: Sesje Adres IP User-Agent Certyfikat SSL Poświadczenia domeny Windows <img src=http:// ://www.jakiśbank.pl/deleteuser.php?id=123& width=1&height=1>

Cross SiteRequestForgery(CSRF) (2) Tokendodawany do każdego wrażliwego zapytania: W ukrytym polu O losowej wartości CSRF za pomocą XSS

Security misconfiguration Poprawki Utwardzanie systemu Zmiany w systemie a wpływ na bezpieczeństwo Domyślne ustawienia

Agenda Kim jesteśmy, co robimy? Wprowadzenie do tematu Zagrożenia Bezpieczeństwo platformy hostingowej Instalacjaacja testowa IIS + PHP Bezpieczeństwo PHP Zakończenie 26

System operacyjny

Bezpieczeństwosystemu systemu operacyjnego Legalny i aktualny system Minimalizacja liczby orazseparacja uruchomionych programów i usług Dodatkowa ochrona na poziomie hosta, np.: Host-based IDS Firewall lokalny Antywirus, Antirootkit Moduł badania integralności systemu plików Backup danych Ścisła polityka kontroli dostępu 28

Zasady zabezpieczeń lokalnych Wyłączenie konta Gościa Konta nie powinno się kasować! Zmiana nazwy konta administracyjnego Zły pomysł: Admin, root, Administrator Blokada czasowa konta Ukrywanie nazwy ostatniego użytkownika Codzienna praca na koncie o zwykłych uprawnieniach 29

Szablony zabezpieczeń Security Compliance Management Toolkit Definiowanie szablonu zabezpieczeń Start Uruchom mmc Przystawka Szablony Zabezpieczeń 30

Aplikowanie szablonów (1) Do zasad lokalnych mmc Przystawka Konfiguracja i analiza zabezpieczeń Otwieranie bazy danych + <Nowa_Nazwa> 31

Aplikowanie szablonów (2) Do zasad lokalnych c.d. Import wybranego szablonu, np. MIC.inf Konfiguruj komputer 32

Kreator konfiguracji zabezpieczeń Komponent domyślnie niezainstalowany Kreator tworzenia polityki Wyłączenie zbędnych usług Zamknięcie niepotrzebnych portów Logowanie zdarzeń Import szablonów zabezpieczeń 33

Enhanced Mitigation Experience Toolkit

Aktualizacje Windows Update Aktualizacje baz sygnatur wirusów Microsoft Security Bulletin *Full Disclosure *Buqtraq 35

Serwer WWW

Bezpieczeństwo serwera WWW Poprzednie prace MIC: badania poziomu bezpieczeństwa serwera IIS v. 7.0 Prezentacje MIC m.in. na konferencjach SecureCON, Confidence Szkolenie MIC 30.10.2007 http://mic.psnc.pl/pl/ev_301007.html Slajdy i webcastydostępne na WWW MIC http://mic.psnc.pl/pl/download/slides.html http://mic.psnc.pl/pl/download/webcasts.html 37

BezpiecznyserwerIIS (1) Wybór odpowiedniego serwera Unikanie kontrolera domeny Maksymalnie okrojona instalacja Minimum privileges principle Decyzja o wyborze niezbędnych usług (www, w, smtp, nntp, ftp, ) Dobrze dobrany katalog domowy serwisów (wydzielona partycja nie systemowa) Usunięcie domyślnie zainstalowanych katalogów (icon, iishelp) 38

Bezpieczny serwer IIS (2) Definicja odpowiednich uprawnień dlakont internetowych do katalogów nadrzędnych Wyłączenie niepotrzebnych filtrów ISAPI Wyłączenie mapowania dla nieużywanych typów plików:.asa,.bat,.cdx,.cer,.htr,.htw htw,.ida,.idc idc,.idq idq,.inc, printer,.shtml shtml,.shtm shtm,.stm stmi innych 39

Bezpieczny serwer IIS (3) Logowanie żądań HTTP Uprawnienia zapisu do HKLM/Software tylko dla administratora systemu Weryfikacja uprawnień grupy Everyonew stosunku do katalogów: Web root %systemroot% %systemroot%\system32system32 %systemroot%\system32\temptemp 40

Agenda Kim jesteśmy, co robimy? Wprowadzenie do tematu Zagrożenia Bezpieczeństwo platformy hostingowej Instalacjaacja testowa IIS + PHP Bezpieczeństwo PHP Zakończenie 41

IIS instalacja testowa Panel Sterowania -> Programy i Funkcje -> Włącz lub wyłącz funkcje systemu Windows 42

IIS centrum zarządzania (1) Uruchamianie menedżera IIS 7.0 Uruchamianie jako Administrator! Sposób 1: Konsola mmc -> Dodaj/Usuń przystawkę -> Menedżer internetowych usług informacyjnych -> Dodaj Sposób 2 (linia poleceń) inetmgr.exe 43

IIS centrum zarządzania (2) 44

Dodajemy witrynę Nazwa serwera -> Witryny -> Dodaj witrynę sieci Web 45

Dodatkowe mechanizmy zabezpieczeń Microsoft BaselineSecurity Analyzer Zawiera sekcję Checkfor IIS administrative vulnerabilities Web Application Configuration Analyzer UrlScan Omówimy go za chwilę dokładniej 46

MBSA http://www.microsoft.com/poland/ technet/security/tools/mbsa.mspx 47

MBSA

Web ApplicationConfiguration Analyzer(WACA) Narzędzie firmy Microsoft (v. 1.0, 2010) Wspomaga wykrywanie błędów Zawiera zestaw prawie 150 reguł i porad Analizator konfiguracji: Serwera IIS Bazy danych SQL Zabezpieczeń lokalnych Eksport danych do Excela i Team Foundation Server

URLScan informacje ogólne URLScanjest filtrem ISAPI monitorującym i blokującym żądania HTTP Ostatnia wersja: 3.1 Działa dla IIS 5.1, 6.0 http://www.iis.net/extensions/urlscan Zaawansowane możliwości filtrowania oraz logowania informacji Instalacja z pakietu MSI Od IIS 7.0 większość funkcjonalności została zaimplementowana w ramach modułu: Filtrowanie zapytań Od IIS 7.5 w pełni zintegrowany z serwerem 52

URLScan instalacja (1) Pakiet instalacyjny urlscan_v31_x86.msi Instalacja z konta administratora Może być konieczne korzystanie z linii komend msiexec/a urlscan_v31_x86.msi msiexec/a urlscan_v31_x86.msi /l*v urlscan_install.log msiexec/a urlscan_v31_x86.msi TARGETDIR=c:\windows Domyślne lokalizacje: Binaria: %SystemRoot%\System32\inetsrv\urlscan\urlscan.dllurlscan.dll Plik konfiguracyjny: %SystemRoot%\System32\inetsrv\urlscan\urlscan.iniurlscan.ini Pliki logu: %SystemRoot%\System32\inetsrv\urlscan\logslogs 53

URLScan instalacja (2)

URLScan konfiguracja narzędzia Przykładowy plik konfiguracyjny: http://www.iis.net/downloads/files/urlscan/urlscan- ini_v3.zipdownloads/files/urlscan/urlscan-ini_v31.zipini_v31.zip Zawiera dość dokładne wyjaśnienie używanych opcji Wybrane opcje UseAllowVerbs Biała lub czarna lista dozwolnonych/zabronionych metod HTTP Wartość domyślna = 1 (dopuszczanie żądań wymienionych w sekcji [AllowVerbs], 0 powoduje odrzucanie żądań z sekcji [Deny Verbs]) UseAllowExtensions Działa na identycznej zasadzie, jak powyżej, ale odnosi się do rozszerzeń żądanych plików 55

URLScan konfiguracja narzędzia (2) Wybrane opcje c.d. NormalizeUrlBeforeScan Wartość domyślna = 1 powoduje, że przekazany adres URL jest poddawany odkodowaniu Wartość 0 powoduje, że łatwo ominąć testy rozszerzeń lub URL! VerifyNormalization Wartość domyślna = 1 przekazany adres URL jest odkodowany po raz drugi, jeśli wystąpią różnice, żądanie jest odrzucane Wykrywa podwójne kodowanie złośliwych znaków, np. &-> %26-> %2526 Limity nakładane na żądanie Sekcja [RequestLimits] Długość żądania, długość URL, długość querystring,, 56

URLScan tworzenie własnych reguł Zadanie: odrzucić żądania, w których nazwa pliku bądź parametr zapytania zawierają dwa myślniki RuleList=testowatestowa [testowa] AppliesTo=.html DenyDataSection=denied_strings ScanUrl=1 ScanQueryString=1 [denied_strings] -- -- 57

URLScan konfiguracja IIS Po instalacji URLScannależy należy dać znać IIS-owi o jego obecności Dodajemy filtr ISAPI dla serwera lub witryny Menedżer IIS -> Widok funkcji -> IIS -> Filtry ISAPI -> Akcje -> Dodaj Restartujemy serwer IIS 58

Restart serwera IIS IIS Manager -> Akcje -> Zarządzaj serwerem -> Uruchom ponownie Linia komend net stop w3svc net start w3svc 59

Działanie URLScanna na przykładzie http://127.0.0.1:8080/test-1.html1.html i test--2.html 60

Dodatkowa konfiguracja witryny (1) Co jeszcze warto zrobić na początek? Nałożenie limitów Własne strony z komunikatami o błędach Zapewnienie, że nie są przeglądane katalogi Dostarczenie domyślnych podstron serwisu Dostrojenie funkcjonalności logowania Wygodny w użyciu Menedżer IIS Modyfikacji możemy dokonać globalnie dla serwera lub dla poszczególnych witryn Po dokonaniu zmian restartujemy serwer 61

Dodatkowa konfiguracja witryny (2) 62

Agenda Kim jesteśmy, co robimy? Wprowadzenie do tematu Zagrożenia Bezpieczeństwo platformy hostingowej Instalacjaacja testowa IIS + PHP Bezpieczeństwo PHP Zakończenie 63

Słowoo o hostingu współdzielonym Maksymalne ograniczenia przywilejów Minimalizacja liczby usług Maksymalne ograniczenie możliwości ładowania plików do katalogu WWW Usługi FTP i WWW w tym samym katalogu to prosta droga do problemów! Separacja katalogów użytkowników od danych systemowych i wzajemnie od siebie 64

JakpostawićPHP naiis? Interpreter php-cgi cgi.exe Wyjątkowo prosty Bardzo niewydajny Wtyczka ISAPI (php5isapi.dll) Szybsza niż interpreter Problemy z wielowątkowością Mechanizm FastCGI Nieco szybszy niż interpreter Znacznie stabilniejszy niż wtyczka ISAPI Implementacje Zend i Microsoft 65

Instalacja PHP jako ISAPI (1) Pobranie archiwum PHP (nie instalatora) Opcjonalnie pobranie rozszerzeń PECL http://pl2.php.net/get/php-5.2.14- Win32.zip/from/a/mirror Rozpakowanie np. do D:\PHP (w nazwie katalogu nie powinno być spacji!) Należy pobrać PECL dla PHP 5.2.6: http://www.php.net/get/pecl-5.2.6- Win32.zip/from/a/mirror Załadowanie zawartości archiwum do podkatalogu D:\PHP\ext Skopiowanie php5activescript.dll i php5servlet.dll z podkatalogu ext do głównego katalogu instalacji 66

Instalacja PHP jako ISAPI (2) Plik konfiguracyjny php.ini D:\PHP\php.ini-recommended -> D:\PHP PHP\php.ini Plik tekstowy możliwy do edycji np. w Notatniku Istotna zmiana (instalujemy jako ISAPI): ;cgi.force_redirect= 1 -> cgi.force_redirect = 0 Uaktywnienie zarządzania sesjami: session.save_path = "d:\php\sessions" Lokalizacja może znajdować się na maszynie sieciowej, ale musi być podmapowana jako napęd Uaktywnienie pożądanych rozszerzeń: ;extension=php_mysql.dll-> extension=php_mysql.dll

Instalacja PHP jako ISAPI (3) Dodanie ścieżki instalacyjnej PHP do zmiennej systemowej PATH Panel sterowania -> System i Zabezpieczenia -> System - > Zaawansowane ustawienia Systemu -> Zmienne środowiskowe Warto dodać ścieżkę na początek zmiennej Niezbędny restart serwera IIS 68

Instalacja PHP jako ISAPI (4) Konfiguracjaścieżki php.ini Uniknięcie problemów katalog systemowy czy instalacyjny? Uruchomienie regedit.exe HKLM -> Software -> [Nowy klucz: PHP] -> PHP -> [Nowa wartość ciągu: IniFilePath = D:\PHP] 69

Instalacja PHP jako ISAPI (5) Końcowa konfiguracja IIS Menedżer IIS -> Widok funkcji -> Mapowania obsługi -> Dodaj mapę skryptu Warto skonfigurować ograniczenie metod (żądań) 70

Instalacja PHP jako ISAPI (6) Końcowa konfiguracja IIS c.d. Dodanie filtru ISAPI Menedżer IIS -> Widok funkcji -> Filtry ISAPI -> Akcje -> Dodaj Restart serwera 71

Prosty test działania Test: <?php phpinfo();?> 72

Agenda Kim jesteśmy, co robimy? Wprowadzenie do tematu Zagrożenia Bezpieczeństwo platformy hostingowej Instalacjaacja testowa IIS + PHP Bezpieczeństwo PHP Zakończenie 73

Wybrane aspekty konfiguracji PHP (1) Polityka ujawniania informacji error_reporting = E_ALL & ~E_NOTICE expose_php = off display_errors = off log_errors = on error_log = c:\mylogs 74

Wybrane aspekty konfiguracji PHP (2) Limity memory_limit = 8M max_input_time = 60 max_execution_time= 120 Ograniczenie inwencji użytkownika file_uploads = off register_globals = off magic_quotes_gpc = on (?) allow_url_fopen = off disable_functions = passthru, exec,... 75

Lista niebezpiecznych funkcji (dla IIS) chmod exec get_cfg_var getenv ini_get ini_get_all ini_set mail passthru pcntl_exec phpuname popen proc_open send_mail shell_exec syslog system Dodatkowe funkcje dla serwera Apache, platform uniksowych, POSIX Jeśli powyższe funkcje nie są niezbędne, powinny być dopisane do php.iniw klauzuli disable_functions 76

Modyfikacja pliku php.ini Edytor tekstowy Narzędzie graficzne pod Windows AnalogX PHPConfig http://www.analogx.com/contents/download/ Network/phpconf/Freeware.htm Freeware Wersja 1.01 (2009) Instalacja przebiega bezproblemowo Plus: wygodny interfejs i grupowanie opcji o podobnym znaczeniu Minus: usuwanie komentarzy 77

AnalogXPHP Config 78

Czy PHP jest bezpieczny? To say PHP has a security problem suggests that it's impossible to develop a secure PHP application, but to say PHP doesn't have a security problem suggests that everything is perfect neither is true(chris Shifflet) PHP is neither inherintly securenor insecure. Itis theresponsibilityof of theprogrammerof of a web application, thedatabaseadministrator administrator and the system administrator to ensurethatsecurity isnot compromised at severallevels(james D. Keeline) 79

Zagrożenia związane z PHP Błędy w konfiguracji: Ujawnianie informacji Zła polityka logowania Zbyt szerokie uprawnienia użytkownika Błędy w tworzonych aplikacjach: Błędyprojektu Błędykodu Błędyśrodowiska PHP Współpracującekomponenty 80

Testy bezpieczeństwa konfiguracji Narzędzie PHPSecInfo Najnowsza wersja: 0.2.1, kwiecień 2007 http://phpsec.org/projects/phpsecinfo Projekt PHP Security Consortium Narzędzie napisanew PHP ;) Prosta analiza konfiguracji środowiska PHP Wgrywamynp. pod http://127.0.0.1/phpsecinfo Przyjaznyinterfejs Obszerneobjaśnienia Niewszystkietesty testy działają w środowisku Windows 81

82

83

Testy bezpieczeństwa kodu Bezpieczeństwo kodu kwestia programisty, administratora, czy specjalisty ds. bezpieczeństwa? Programista powinien znać i stosować dobre praktyki bezpiecznego programowania Przeszkolony administrator może (powinien?) stosować proste metody testowania kodu, aby wiedzieć, co dzieje się na jego serwerze Specjalista ds. bezpieczeństwa będzie optymalnie wykorzystany, gdy skoncentruje się na trudniejszych do wykrycia podatnościach Dlatego chcemy zachęcić do przetestowania prostych (darmowych) skanerów kodu PHP działających w środowisku Windows 84

RIPS podstawoweinformacje Analizator koduphp (napisany w PHP) Wizualizacja zmiennych, powiązanych funkcjii warunków Filtrowanie wyników w (verbosity, type) Generator exploitów dla CURL http://sourceforge.net/projects/rips-scannerscanner

RIPS

Pixy podstawowe informacje Skaner kodu źródłowego PHP 4.x oraz nieobiektowy PHP 5.x Ostatnia wersja: 3.0.3, lipiec 2007 Autorzy: Secure System Labs (Politechnika Wiedeńska) http://pixybox.seclab.tuwien.ac.at/pixy Narzędzie uruchamiane z linii komend WymagaSun JRE oraz narzędziadotty dotty z pakietu Graphvizdo analizy wyników Graphviz: http://www.graphviz.org Całość działa w środowisku Windows WykrywapodatnościXSS oraz SQL Injection 87 Obrazuje przepływ potencjalnie złośliwych danych

Wykorzystanie Pixy Należy uruchomić plik run-all.batz katalogu instalacyjnego Pixydziała na pojedynczych plikach: skanowanie katalogów wymaga oskryptowania run-all.bat all.bat[opcje] [plik_php plik_php] Program wypisuje część wyników na standardowe wyjście Po zakończeniu parsowaniaplików plików w podkatalogu graphs znajdują się dodatkowe rezultaty calledby_[ _[filename].txt includes_[ _[filename].txt xss_[ _[filename]_[n]_[dep min].dot sql_[ _[filename]_[n]_[dep min].dot 88

Wyniki Pixy standardowe wyjście Oprócz podatności narzędzie potrafi znaleźć np. partie nieosiągalnego kodu 89

Wyniki Pixy graf przepływu danych 90

Inne narzędzia pod Windows RATS http://www.fortify.com/security-resources/rats.jspresources/rats.jsp Służy do badania kodu C i PHP Bada głównie użycie niebezpiecznych funkcji YASCA http://www.yasca.org Kombajn do badania m.in. kodu PHP (wykorzystuje m.in. Pixy) PHPLint http://www.icosaedro.it/phplint Walidator i generator dokumentacji do PHP 4.x/5.x 91

Pamiętajmy, że Narzędzia testujące kod wykrywają tylko niektóre podatności Skanery kodu zgłaszają dużo false positives Wyniki analizy kodu muszą być przeanalizowane przez specjalistę do spraw bezpieczeństwa Wyniki działania skanerów powinny być dla administratora jedynie uzupełnieniem, przesłanką do zawiadomienia dedykowanego audytora kodu 92

Jak dowiedzieć się o błędach środowiska Portale i listy publikujące informacje o podatnościach http://secunia.com http://cve.mitre.org Bugtraq Full Disclosure Ostatnie błędy w PHP: 2.2250738585072011e-308308 (01.11) http://www.securityfocus.com/bid/45668 Denial Of Service (09.10) http://www.securityfocus.com/bid/43926 93

Zbliżamy się do końca 94

Podsumowanie Są sytuacje, w których warto pomieszać pomieszać technologie, ale nie zawszeinie wszystkie Nie ma problemu z hostowaniem aplikacjiphp pod Windows za pośrednictwem serwera IIS Trzeba zwrócić uwagę na kwestiebezpieczeństwaw kontekście wszystkich wykorzystanychrozwiązań, a także interfejsów międzynimi Dla systemu Windows istnieje szereg narzędzi, które wspomagają bezpieczną konfigurację i wykorzystanie elementów środowiska hostingowego Dziś poruszyliśmy jedynie wierzchołek góry lodowej 95

Więcejinformacji(wybraneźródła) Instalacja i uruchomienie aplikacjiphp na IIS: http://learn.iis.net/page.aspx/24/running-php-applications- on-iis http://www.webcheatsheet.com/php/install_and_configur e.php http://www.techit.pl/demonstracje/view.aspx?3582.instala cja+php+w+modelu+isapi+na+serwerze+iis+7(screencastscreencast dla konfiguracji PHP na IIS 7.0 dla Windows Server 2008) PHP Security Consortium http://phpsec.org http://phpsec.org/projects/guide 96

Informacje kontaktowe Autorprezentacji marcin.jerzak@man.poznan.plman.poznan.pl Centrum Innowacji Microsoft: http://mic.psnc.pl mic@man.poznan.pl.pl PCSS http://www.pcss.pl Zespół Bezpieczeństwa PCSS http://security.psnc.pl security@man.poznan.pl 97

Pytania i dyskusja Dziękuję za uwagę! 98