Projekt Snuffleupagus opracowuje moduł PHP do blokowania luk w zabezpieczeniach

W granicach projektu wąchać rozwija się moduł umożliwiający połączenie z interpreterem PHP7, mający na celu poprawę bezpieczeństwa środowiska i blokowanie typowych błędów prowadzących do podatności w uruchamianiu aplikacji PHP. Moduł pozwala także na tworzenie wirtualnych łatek naprawiających określone problemy bez zmiany kodu źródłowego podatnej aplikacji, co jest wygodne w użyciu w systemach masowego hostingu, gdzie nie jest możliwe zapewnienie aktualności wszystkich aplikacji użytkownika. Moduł napisany jest w C, podłączony w formie współdzielonej biblioteki („extension=snuffleupagus.so” w php.ini) i dystrybuowane przez na licencji LGPL 3.0.

Snuffleupagus udostępnia system reguł, który umożliwia korzystanie ze standardowych szablonów w celu poprawy bezpieczeństwa lub tworzenie własnych reguł w celu kontrolowania danych wejściowych i parametrów funkcji. Na przykład reguła „sp.disable_function.function(„system”).param(„polecenie”).value_r(„[$|;&`\\n]”).drop();” pozwala ograniczyć użycie znaków specjalnych w argumentach funkcji system() bez zmiany aplikacji. Podobnie możesz tworzyć wirtualne poprawki aby zablokować znane luki.

Sądząc po testach przeprowadzonych przez twórców, Snuffleupagus prawie nie zmniejsza wydajności. Aby zapewnić własne bezpieczeństwo (ewentualne luki w warstwie bezpieczeństwa mogą służyć jako dodatkowy wektor ataków), projekt przeprowadza dokładne testy każdego zatwierdzenia w różnych dystrybucjach, wykorzystuje systemy analizy statycznej, a kod jest formatowany i dokumentowany w celu uproszczenia audytu.

Dostępne są wbudowane metody blokowania klas luk w zabezpieczeniach, takich jak problemy, związane z z serializacją danych, niebezpieczny użycie funkcji PHP mail(), wyciek zawartości Cookie podczas ataków XSS, problemy związane z ładowaniem plików z kodem wykonywalnym (np. w formacie fara), słaba jakość generowania liczb losowych i podstawienie nieprawidłowe konstrukcje XML.

Obsługiwane są następujące tryby w celu zwiększenia bezpieczeństwa PHP:

  • Automatycznie włączaj flagi „bezpieczne” i „samesite” (ochrona CSRF) dla plików cookie, szyfrowanie Ciastko;
  • Wbudowany zestaw reguł identyfikujących ślady ataków i kompromisów aplikacji;
  • Wymuszona globalna aktywacja „rygorystyczny" (na przykład blokuje próbę podania ciągu znaków, gdy jako argument oczekuje się wartości całkowitej) i zabezpieczenie przed manipulacja typem;
  • Domyślne blokowanie opakowania protokołów (na przykład banowanie „phar://”) z ich wyraźnym umieszczeniem na białej liście;
  • Zakaz wykonywania plików zapisywalnych;
  • Czarno-białe listy eval;
  • Wymagane, aby włączyć sprawdzanie certyfikatu TLS podczas korzystania
    kędzior;

  • Dodanie HMAC do serializowanych obiektów, aby mieć pewność, że deserializacja pobierze dane przechowywane przez oryginalną aplikację;
  • Żądanie trybu logowania;
  • Blokowanie ładowania plików zewnętrznych w libxml poprzez linki w dokumentach XML;
  • Możliwość podłączenia zewnętrznych procedur obsługi (upload_validation) w celu sprawdzenia i skanowania przesłanych plików;

Projekt powstał i został wykorzystany w celu ochrony użytkowników w infrastrukturze jednego z dużych francuskich operatorów hostingowych. odnotowanyże samo podłączenie Snuffleupagusa ochroniłoby przed wieloma niebezpiecznymi lukami zidentyfikowanymi w tym roku w Drupal, WordPress i phpBB. Luki w Magento i Horde można zablokować poprzez włączenie tego trybu
„sp.readonly_exec.enable()”.

Źródło: opennet.ru

Dodaj komentarz