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

V hranicích projektu snuffleupagus se vyvíjí modul pro připojení k PHP7 interpretu, určený ke zlepšení bezpečnosti prostředí a blokování běžných chyb, které vedou k zranitelnosti při běhu PHP aplikací. Modul také umožňuje vytvářet virtuální záplaty pro opravu konkrétních problémů bez změny zdrojového kódu zranitelné aplikace, což je vhodné pro použití v systémech hromadného hostování, kde není možné udržovat všechny uživatelské aplikace aktuální. Modul je napsán v C, je připojen ve formě sdílené knihovny („extension=snuffleupagus.so“ v php.ini) a distribuovány licencováno pod LGPL 3.0.

Snuffleupagus poskytuje systém pravidel, který vám umožňuje používat standardní šablony ke zlepšení zabezpečení nebo vytvářet vlastní pravidla pro řízení 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() beze změny aplikace. Podobně můžete tvořit virtuální záplaty k blokování známých zranitelností.

Soudě podle testů provedených vývojáři Snuffleupagus téměř nesnižuje výkon. Pro zajištění vlastní bezpečnosti (možná zranitelnost v bezpečnostní vrstvě mohou sloužit jako další vektor pro útoky) projekt využívá důkladné testování každého potvrzení v různých distribucích, využívá systémy statické analýzy a kód je formátován a dokumentován pro zjednodušení auditování.

K dispozici jsou vestavěné metody pro blokování tříd zranitelností, jako jsou problémy, příbuzný se serializací dat, nebezpečný použití funkce PHP mail(), únik obsahu cookie během XSS útoků, problémy kvůli načítání souborů se spustitelným kódem (například ve formátu phar), nekvalitní generování náhodných čísel a substituce nesprávné konstrukce XML.

Pro zvýšení zabezpečení PHP jsou podporovány následující režimy:

  • Automaticky povolit příznaky „secure“ a „samesite“ (ochrana CSRF) pro soubory cookie, šifrování cookie;
  • Vestavěná sada pravidel pro identifikaci stop útoků a kompromitace aplikací;
  • Vynucená globální aktivace „přísný" (například blokuje pokus o zadání řetězce, když se jako argument očekává celočíselná hodnota) a ochrana proti manipulace s typem;
  • Výchozí blokování obaly protokolů (například zákaz "phar://") s jejich explicitním zařazením na bílou listinu;
  • Zákaz spouštění souborů, do kterých lze zapisovat;
  • Černobílé seznamy pro hodnocení;
  • Vyžadováno k povolení kontroly certifikátu TLS při používání
    kučera;

  • Přidání HMAC k serializovaným objektům, aby bylo zajištěno, že deseralizace načte data uložená původní aplikací;
  • Žádost o režim protokolování;
  • Blokování načítání externích souborů v libxml prostřednictvím odkazů v dokumentech XML;
  • Možnost připojení externích ovladačů (upload_validation) pro kontrolu a skenování nahraných souborů;

Projekt vznikl a slouží k ochraně uživatelů v infrastruktuře jednoho z velkých francouzských hostingových operátorů. Je zaznamenánože pouhé připojení Snuffleupagus by ochránilo před mnoha nebezpečnými zranitelnostmi zjištěnými letos v Drupalu, WordPressu a phpBB. Zranitelnosti v Magento a Horde by mohly být blokovány povolením režimu
"sp.readonly_exec.enable()".

Zdroj: opennet.ru

Přidat komentář