Projekt Snuffleupagus vyvíjí PHP modul pro blokování zranitelností

V rámci projektu Snuffleupagus se vyvíjí modul pro připojení k PHP7 interpreteru, určený k posílení bezpečnosti prostředí a blokování typických chyb, které vedou k vzniku zranitelností v provozovaných PHP aplikacích. Modul také umožňuje vytvářet virtuální záplaty pro odstranění konkrétních problémů bez změny zdrojových textů zranitelné aplikace, což je výhodné pro použití v systémech hromadného hostingu, kde není možné udržovat všechny uživatelské aplikace aktuální. Modul je napsán v jazyce C, připojuje se jako sdílená knihovna („extension=snuffleupagus.so“ v php.ini) a distribuováno pod licencí LGPL 3.0.

Snuffleupagus poskytuje systém pravidel, který umožňuje využívat jak typové šablony pro zvýšení ochrany, tak vytvářet vlastní pravidla pro kontrolu vstupních dat a parametrů funkcí. Například pravidlo „sp.disable_function.function(„system“).param(„command“).value_r(„[$|;&`\\n]“).drop();“ umožňuje omezit použití speciálních znaků v argumentech funkce system() bez změny aplikace. Podobně lze vytvářet virtuální záplaty pro blokování známých zranitelností.

Podle testů provedených vývojáři Snuffleupagus prakticky neomezuje výkon. Pro zajištění vlastní bezpečnosti (možné zranitelnosti v ochraně mohou představovat dodatečný vektor pro útoky) se v projektu používá důkladné testování každého commitu v různých distribucích, využívají se systémy statické analýzy, kód je upraven a dokumentován pro usnadnění provádění auditu.

Jsou poskytovány vestavěné metody pro blokování takových tříd zranitelností, jako jsou problémy, spojené se serializací dat, nebezpečným používáním PHP funkce mail(), únikem obsahu Cookie při provádění XSS útoků, problémy způsobené nahráváním souborů s vykonatelným kódem (např. ve formátu phar), nekvalitní generací náhodných čísel a podstavou neplatných konstrukcí XML.

Z režimů pro zvýšení ochrany PHP jsou podporovány:

  • Automatické povolení flagů „secure“ a „samesite“ (ochrana proti CSRF) pro Cookie, šifrování Cookie;
  • Zabudovaný soubor pravidel pro odhalování stop po útocích a kompromitaci aplikací;
  • Povinné globální povolení režimu „strict“ (např. blokuje pokusy o zadání řetězce, když očekává celé číslo jako argument) a ochrana proti manipulaci s typy;
  • Blokování ve výchozím nastavení obalů pro protokoly např. zákaz „phar://“ s jejich explicitním povolením na whitelistu;
  • Zákaz provádění souborů, které jsou zapisovatelné;
  • Černé a bílé seznamy pro eval;
  • Povinné kontrolování certifikátů TLS při používání
    curl;
  • Přidání HMAC k serializovaným objektům zajišťuje, že po deserializaci jsou získaná data zachována původní aplikací;
  • Režim záznamu požadavků;
  • Blokování načítání externích souborů v libxml prostřednictvím odkazů v XML dokumentech;
  • Možnost připojení externích zpracovatelů (upload_validation) pro kontrolu a skenování nahrávaných souborů;

Projekt byl vytvořen a používán k ochraně uživatelů v infrastruktuře jednoho z velkých francouzských hostingových operátorů. Je poznamenáno, že jednoduché připojení Snuffleupagus by umožnilo chránit se před mnoha nebezpečnými zranitelnostmi, které byly odhaleny v tomto roce v Drupal, WordPress a phpBB. Zranitelnosti v Magento a Horde by mohly být blokovány aktivací režimu
„sp.readonly_exec.enable()“.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster