Wydanie Snuffleupagus 0.5.1, modułu do blokowania luk w aplikacjach PHP

Po roku prac rozwojowych opublikowano wydanie projektu Snuffleupagus 0.5.1, oferujący moduł do interpretera PHP7, zwiększający bezpieczeństwo środowiska oraz blokujący typowe błędy prowadzące do powstawania podatności w działających aplikacjach PHP. Moduł umożliwia również tworzenie wirtualne łatki konkretnych poprawek problemów bez zmiany oryginalnego kodu podatnej aplikacji, co jest wygodne w systemach masowego hostingu, gdzie trudno jest utrzymać wszystkie aplikacje użytkowników w aktualnej wersji. Koszty związane z działaniem modułu oceniane są jako minimalne. Moduł napisany jest w języku C, dodawany jako biblioteka współdzielona („extension=snuffleupagus.so” w php.ini) i rozpowszechniany jest objęty licencją LGPL 3.0.

Snuffleupagus oferuje system zasad, pozwalający na zastosowanie typowych szablonów w celu zwiększenia ochrony, jak również na tworzenie własnych zasad do kontroli danych wejściowych i parametrów funkcji. Na przykład zasada „sp.disable_function.function(„system”).param(„command”).value_r(„[$|;&`\n]”).drop();” pozwala na ograniczenie użycia znaków specjalnych w argumentach funkcji system() bez modyfikacji aplikacji. Dostarczane są wbudowane metody blokowania takich klas podatności jak problemy, związane z serializacją danych, niebezpiecznym wykorzystywaniem funkcji PHP mail(), wyciekami zawartości Cookie podczas ataków XSS, problemami związanymi z ładowaniem plików z wykonawczym kodem (na przykład w formacie phar), niskiej jakości generowaniem liczb losowych oraz podstawieniem niepoprawnych konstrukcji XML.

Tryby zwiększenia bezpieczeństwa PHP oferowane w Snuffleupagus:

  • Automatyczne włączanie flag „secure” i „samesite” (ochrona przed CSRF) dla Cookie, szyfrowanie Cookie;
  • Wbudowany zestaw reguł do wykrywania śladów ataków i kompromitacji aplikacji;
  • Wymuszone globalne włączenie trybu „strict” (na przykład blokuje próby określenia ciągu podczas oczekiwania na argument wartości całkowitej) oraz ochrona przed manipulacjami typami;
  • Domyślne blokowanie opakowań dla protokołów (na przykład zakaz „phar://” z ich wyraźnym zezwoleniem w białej liście);
  • Zakaz wykonywania plików, które są dostępne do zapisu;
  • Czarne i białe listy dla eval;
  • Obowiązkowe włączenie weryfikacji certyfikatów TLS podczas używania
    curl;
  • Dodanie HMAC do seryjnych obiektów w celu zapewnienia, że podczas deserializacji uzyskuje się dane zapisane przez oryginalną aplikację;
  • Tryb logowania zapytań;
  • Blokowanie ładowania zewnętrznych plików w libxml według linków w dokumentach XML;
  • Możliwość podłączenia zewnętrznych procesorów (upload_validation) do weryfikacji i skanowania przesyłanych plików;

Wśród zmian w nowym wydaniu: Ulepszono wsparcie dla PHP 7.4 oraz zaimplementowano kompatybilność z rozwijającą się wersją PHP 8. Dodano możliwość logowania zdarzeń przez syslog (do włączenia zaproponowano dyrektywę sp.log_media, która może przyjmować wartości php lub syslog). Zaktualizowano domyślny zestaw zasad, dodając nowe zasady dla niedawno odkrytych podatności i technik ataków na aplikacje webowe. Ulepszono wsparcie dla macOS oraz rozszerzono zastosowanie platformy ciągłej integracji opartej na GitLab.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster