Suhosin

Suhosin
Oryginalni autorzy Stefana Essera
Pierwsze wydanie 2 października 2006
Ostateczne wydanie
0.9.38 / 21 maja 2015 r
Magazyn github.com/sektioneins/suhosin _ _ _
Napisane w C
Platforma PHP
Licencja Licencja PHP
Strona internetowa suhosin.org _

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ż

  1. ^   Rozdział 13, Zabezpieczanie aplikacji internetowych PHP, Tricia Ballad; William Ballad Wydawca: Addison-Wesley Professional, Web ISBN 978-0-321-57431-2
  2. ^ Oficjalna lista funkcji
  3. ^ Omówienie pakietu php5-suhosin w sid Debiana
  4. ^ Archiwum listy mailingowej: opensuse-factory (418 maili)
  5. ^ a b „Projekt Hardened-PHP - Bezpieczeństwo PHP - Aktualności” . hardened-php.net . Źródło 2017-01-18 .
  6. ^ SektionEins (11.06.2014). „Pobierz” . SUHOSIN . Źródło 2017-01-18 .
  7. ^ "sekcje/suhosin" . GitHub . Źródło 2017-01-18 .
  8. ^ " Re: [PHP-DEV] Łatka Suhosin wyłączona domyślnie w kompilacjach Debiana php5' - MARC" . marc.info . Źródło 2018-02-25 .
  9. ^ "pierwsze zatwierdzenie · sektioneins/suhosin7@aee7faf" . GitHub . Źródło 2017-01-18 .
  10. ^ "sektioneins/suhosin7" . GitHub . Źródło 2017-01-18 .

Linki zewnętrzne