Suhosin
Oryginalni autorzy | Stefana Essera |
---|---|
Pierwsze wydanie | 2 października 2006 |
Ostateczne wydanie | 0.9.38 / 21 maja 2015 r |
Magazyn | |
Napisane w | C |
Platforma | PHP |
Licencja | Licencja PHP |
Strona internetowa |
Suhosin (koreański 수호신, koreańska wymowa: [suɦoɕin] , co oznacza „anioła stróża”) to łatka open source dla PHP , a także rozszerzenie PHP, napisane przez niemiecką firmę Sektion Eins . Patch i rozszerzenie to dwie niezależne części, których można używać osobno lub w połączeniu. „Celem Suhosin jest stworzenie sieci bezpieczeństwa, która chroni serwery przed niebezpiecznymi praktykami kodowania PHP”.
Suhosin zmniejsza również „powierzchnię ataków”, którą PHP dodaje do serwera WWW poprzez białe listy funkcji , limity zasobów, przejrzyste szyfrowanie sesji i plików cookie, binarny filtr zawartości, logowanie i różne inne zabezpieczenia. Zmniejsza to ryzyko wdrożenia wcześniej uznanych za niebezpieczne programów PHP i chroni przed znanymi i nieznanymi atakami.
Cechy
Podczas gdy oryginalna łatka zawierała kilka niskopoziomowych usprawnień związanych z pamięcią, te funkcje nie są obecne w modułach, ale większość z nich została przeniesiona do PHP.
- Szyfrowanie plików cookie: aby ograniczyć kradzież plików cookie opartych na XSS , pliki cookie są szyfrowane, więc osoba atakująca nie może uzyskać ich wartości i są one powiązane z agentem użytkownika i częścią adresu IP użytkownika, co sprawia, że skradziony plik cookie nie może być używany przez napastnik.
- Ochrona włączenia: przesłane i zdalne pliki nie mogą zostać uwzględnione, co ogranicza arbitralne ataki na włączenie plików .
- Wyłączanie typowych wektorów wykonywania kodu: słowo kluczowe eval nie jest prawdziwą funkcją w PHP, dlatego nie można go wyłączyć za pomocą dyrektywy disable_function , ale Suhosin dodał tę możliwość, a także pozwolił wyłączyć niesławny operator /e dla funkcji preg_replace co może prowadzić do wykonania dowolnego kodu.
- Ochrona przed nieskończoną rekurencją : PHP ma udokumentowane zachowanie powodujące błąd segmentacji po nieskończonej rekurencji. Ponieważ jest to problem związany z bezpieczeństwem pamięci, Suhosin sprawi, że aplikacja z wdziękiem zakończy działanie po osiągnięciu maksymalnego poziomu rekurencji.
- Funkcja szczegółowa biała/czarna-lista: dyrektywa wyłączona_funkcja w PHP wcale nie jest szczegółowa, Suhosin zapewnia mechanizm białej i czarnej listy dla funkcji, na podstawie wirtualnego hosta i folderu.
- Czarna lista przeciwko wrażliwym nazwom zmiennych: Suhosin usunie zmienne GET, POST, COOKIE z globalnymi zastrzeżonymi nazwami zmiennych następującymi po nazwach, takich jak GLOBALS, _COOKIE, _ENV, _FILES, _GET, _POST,…
- Utrudnianie przesyłania plików: Suhosin obsługuje wywoływanie skryptów po przesłaniu pliku, umożliwiając na przykład automatyczne skanowanie antywirusowe po przesłaniu. Może również zapobiegać plikom ELF , plikom binarnym,…
- Niestandardowe akcje po naruszeniu: blokowanie naruszających zmienne, wysłanie określonego kodu odpowiedzi HTTP , przekierowanie lub nawet wykonanie innego skryptu PHP.
- Rozbudowane logowanie: wiele urządzeń logujących, logowanie obraźliwej nazwy pliku i numeru linii, adresu IP atakującego, nawet za odwrotnymi serwerami proxy .
Dystrybucja z systemami operacyjnymi
W niektórych dystrybucjach Linuksa , zwłaszcza Debian w wersjach do 6.x („Squeeze”) i Gentoo Linux , był dostarczany domyślnie zarówno z łatką, jak i rozszerzeniem. Suhosin został usunięty z Debiana w wersji 7 (Wheezy), ale pojawił się ponownie w bieżącej gałęzi rozwojowej.
Jest aktywowany domyślnie w systemie Mac OS X Server .
Począwszy od PHP 5.4, openSUSE usunął łatkę Suhosin, ale utrzymuje port rozszerzenia Suhosin.
FreeBSD 10.1 utrzymuje rozszerzenie Suhosin w swojej kolekcji portów.
Historia i dziedzictwo rozwoju
Suhosin został wydany po raz pierwszy w 2006 roku i był ukierunkowany na PHP 5.2.0. Ostatnie wydanie łatki utwardzającej miało miejsce kilka miesięcy po wydaniu modułu. Ostatni artykuł na oficjalnej stronie internetowej pochodzi z 2007 r., a od maja 2012 r. do lutego 2014 r. w repozytorium kodu nie wystąpiła żadna aktywność. Doprowadziło to niektóre dystrybucje do uznania projektu Suhosin za martwy, dopóki niektóre osoby ze społeczności nie zaczęły wnosić do niego wkładu. , około 2014 r. Nie ma planów upstream funkcji do PHP.
W listopadzie 2015 r. utworzono suhosin7 , aby zapewnić podobne funkcje wzmacniające do PHP7, ale nie udało mu się nabrać rozpędu wśród społeczności. Projekt Snuffleupagus ma być jego następcą, dla PHP7 i nowszych.
Zobacz też
- ^ Rozdział 13, Zabezpieczanie aplikacji internetowych PHP, Tricia Ballad; William Ballad Wydawca: Addison-Wesley Professional, Web ISBN 978-0-321-57431-2
- ^ Oficjalna lista funkcji
- ^ Omówienie pakietu php5-suhosin w sid Debiana
- ^ Archiwum listy mailingowej: opensuse-factory (418 maili)
- ^ a b „Projekt Hardened-PHP - Bezpieczeństwo PHP - Aktualności” . hardened-php.net . Źródło 2017-01-18 .
- ^ SektionEins (11.06.2014). „Pobierz” . SUHOSIN . Źródło 2017-01-18 .
- ^ "sekcje/suhosin" . GitHub . Źródło 2017-01-18 .
- ^ " Re: [PHP-DEV] Łatka Suhosin wyłączona domyślnie w kompilacjach Debiana php5' - MARC" . marc.info . Źródło 2018-02-25 .
- ^ "pierwsze zatwierdzenie · sektioneins/suhosin7@aee7faf" . GitHub . Źródło 2017-01-18 .
- ^ "sektioneins/suhosin7" . GitHub . Źródło 2017-01-18 .
Linki zewnętrzne