Wydanie Snuffleupagus 0.5.1, modułu blokującego podatności w aplikacjach PHP

Po roku rozwoju opublikowany wydanie projektu Wąchaki 0.5.1, który udostępnia moduł dla interpretera PHP7 poprawiający bezpieczeństwo środowiska i blokujący typowe błędy prowadzące do podatności w uruchamianiu aplikacji PHP. Moduł umożliwia także tworzenie wirtualne poprawki w celu wyeliminowania określonych problemów 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. Koszty ogólne modułu szacuje się na minimalne. Moduł napisany jest w C, jest 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. 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.

Tryby poprawy bezpieczeństwa PHP dostarczane przez Snuffleupagus:

  • 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;

Wśród zmiany w nowej wersji: Poprawione wsparcie dla PHP 7.4 i zaimplementowana kompatybilność z aktualnie opracowywaną gałęzią PHP 8. Dodano możliwość rejestrowania zdarzeń poprzez syslog (zaproponowano dołączenie dyrektywy sp.log_media, która może przyjmować wartości php lub syslog). Domyślny zestaw reguł został zaktualizowany w celu uwzględnienia nowych reguł dotyczących niedawno zidentyfikowanych luk w zabezpieczeniach i technik ataków na aplikacje internetowe. Ulepszona obsługa systemu macOS i rozszerzone wykorzystanie platformy ciągłej integracji opartej o GitLab.

Źródło: opennet.ru

Dodaj komentarz