secure php framework

Download Secure PHP framework

Post on 11-Jan-2017

214 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

  • Copyright The OWASP FoundationPermission is granted to copy, distribute and/or modify this document under the terms of the OWASP License.

    The OWASP Foundation

    OWASP

    http://www.owasp.org

    Bezpieczny framework PHP

    ukasz Pilorz

    Allegro.pl

    10 marca 2010, Krakw

  • 2OWASP

    Plan prezentacji

    Cz teoretyczna

    Wstp frameworki PHP dla aplikacji webowychCechy bezpiecznego frameworka

    Cz praktyczna

    Bdy, ktrych chcemy uniknPrzykady podatnego koduDemonstracja atakw

  • 3OWASP

    Framework

    pl.wikipedia.org:Struktura wspomagajca tworzenie, rozwj i

    testowanie powstajcej aplikacjiSzkielet dziaania aplikacji, ktry zapewnia

    podstawowe mechanizmy i moe by wypeniany waciw treci programu

    Szybciej, wygodniej i bezpieczniej?

  • 4OWASP

    PHP

    - Zend Framework- Symfony- CakePHP- Kohana- CodeIgniteri wiele innych

    MVC: Model-View-Controller

  • 5OWASP

    Framework i bezpieczestwo

    Wykorzystanie frameworka wpywa najczciej pozytywnie na bezpieczestwo aplikacji:

    - gotowe, sprawdzone i poprawne rozwizania- jednolity standard programowania

    ale rwnie

    - podatnoci we frameworkach i pluginach- bezpieczestwo jako opcja, nie stan domylny

  • 6OWASP

    Cechy bezpiecznego frameworka

    1. Dokumentacja

    - szczegowa, przejrzysta, prawdziwa- zalecenia nt. bezpiecznego programowania- sowa kluczowe:

    injection, traversal, XSS, CSRF, authentication, authorization, access, validation, escaping

    W praktyce czasem lepiej przygotowana, ni dokumentacja PHP...

  • 7OWASP

    ... ktra zaleca niebezpieczne rozwizania:

  • 8OWASP

    Skutek:http://pear.php.net/bugs/bug.php?id=16200Mail package uses escapeshellcmd function incorrectly, so it may allow to read/write arbitrary file

    Bd mona wykorzysta w przypadku, gdy adres e-mail pochodzcy od uytkownika trafia do nagwka From.

    Poprawka w wersji 1.2.0 (2010-03-01)- zastosowanie funkcji escapeshellarg

    http://pear.php.net/bugs/bug.php?id=16200

  • 9OWASP

    Cechy bezpiecznego frameworka

    2. Mechanizmy uwierzytelnienia i autoryzacji

    - poprawno :-)- elastyczno i uniwersalno

    opcja default deny w konfiguracji logowanie, wylogowanie, zmiana/reset hasa, rejestracja,

    role i uprawnienia, zmiana uprawnie w czasie trwania sesji

    - bezpieczestwo sesji zapewnione niezalenie od ustawie php.ini regeneracja id sesji przy podniesieniu uprawnie zabezpieczenia przed przechwyceniem (np. httpOnly,

    secure) ochrona formularzy przed CSRF wygasanie wanoci sesji (po stronie serwera)

  • 10OWASP

    Test na spostrzegawczo

  • 11OWASP

    Cechy bezpiecznego frameworka

    3. Walidacja danych wejciowych- mechanizmy umoliwiajce (lub wymuszajce) weryfikacj typu, dugoci, kodowania znakw, dozwolonego zakresu i formatu danych- walidacja na podstawie zaoe logiki biznesowej- automagiczne rozwizania na tym etapie nie mog zastpi zabezpiecze w kolejnych warstwach aplikacji- dispatcher: whitelisting

    Typowe problemy: bajt zerowy (np. ereg, wzorce preg_*) dane w zakodowanej postaci (serializacja, base64, XML itp.) zaufanie do tablicy $_SERVER (nagwkw HTTP)

  • 12OWASP

    Przykady

  • 13OWASP

    Przykady

  • 14OWASP

    Dispatcher

  • 15OWASP

    Cechy bezpiecznego frameworka

    4. Formatowanie danych wyjciowych(escape'owanie)

    zapytania SQLHTML, XML, JavaScript, CSS itp.wszystkie formaty i protokoy stosowane przez

    aplikacj do wymiany danychpolecenia i cieki systemowe

    Narzucenie programicie metod opakowujcych dostp do poszczeglnych formatw iprotokow, automatycznie wymuszajcych bezpieczestwo.

  • 16OWASP

    Escape'owanie

    Jeli jakiekolwiek dane wejciowe mog doprowadzi do wyniku wyjciowego nie bdcego poprawnym wyraeniem docelowego formatu lub protokou, naley zaoy, e metody formatujce/escape'ujce s bdne.

    Bd !== podatno

    Eliminujemy bdy.

  • 17OWASP

    Cechy bezpiecznego frameworka

    5. Kryptografia

    Funkcje realizujce typowe scenariusze zastosowania kryptografii w aplikacjach webowych: generowanie unikalnych tokenw/kodw (losowych,

    powizanych z uytkownikiem, powizanych z sesj, jedno- lub wielokrotnego uytku)

    przezroczyste szyfrowanie zawartoci bazy danych solone haszowanie danych uwierzytelniajcych szyfrowanie i dodawanie sum kontrolnych do parametrw

    URL, ciasteczek, ukrytych pl formularzy i innych danych przesyanych za porednictwem niezaufanych kanaw (pliki, aplikacje zewntrzne, przegldarki uytkownikw)

  • 18OWASP

    Czsto w charakterze zabezpieczenia kryptograficznego (szyfrowania) bdnie stosowane s funkcje kodujce lub ich kombinacje: base64_encode serialize urlencode bzcompress bin2hex XOR ze sta wartoci

    Rola bezpiecznego frameworka polega na podsuwaniu gotowych funkcji i przykadw w taki sposb, aby skorzystanie z poprawnego rozwizania byo atwiejsze, ni stworzenie wasnego.

  • 19OWASP

    Niebezpieczna serializacja

    Najciekawsza podatno 2009 roku:

    Zastosowanie PHP-IDS

  • 20OWASP

    Wicej informacji o bezpieczestwie frameworkw:

    OWASP ISWG (Intrinsic Security Working Group)Secure Web Application Framework ManifestoChangelogi

    Symfony SQL Injection luty 2010 Zend Framework XSS stycze 2010 CakePHP bd zabezpiecze przed CSRF stycze 2010

    Ty te moesz uratowa Web: Testy i analizy bezpieczestwa frameworkw Porwnanie zastosowanych rozwiza i zabezpiecze Zgaszanie bdw w kodzie i dokumentacji Rozwj OWASP ESAPI dla PHP

  • 21OWASP

    Dzikuj