Po roku vývoja vydanie projektu , poskytujúci modul pre PHP7 interpreter na zvýšenie bezpečnosti prostredia a blokovanie typických chýb, ktoré vedú k vzniku zraniteľností v spúšťaných PHP aplikáciách. Modul tiež umožňuje vytvárať na odstránenie konkrétnych problémov bez zmeny zdrojových textov zraniteľnej aplikácie, čo je pohodlné pre použitie v systémoch hromadného hosťovania, kde nie je možné udržiavať všetky používateľské aplikácie aktuálne. Nákupné náklady na modul sú považované za minimálne. Modul je napísaný v jazyku C, pripojuje sa vo forme zdieľanej knižnice ("extension=snuffleupagus.so" v php.ini) a pod licenciou LGPL 3.0.
Snuffleupagus poskytuje systém pravidiel, ktorý umožňuje používať ako typové šablóny na zvýšenie ochrany, tak aj vytvárať vlastné pravidlá na kontrolu vstupných údajov a parametrov funkcií. Napríklad pravidlo "sp.disable_function.function('system').param('command').value_r('[$|;&`\n]').drop();" umožňuje obmedziť používanie špeciálnych znakov v argumentoch funkcie system() bez zmeny aplikácie. Poskytujú sa vstavané metódy na blokovanie takých tried zraniteľností, ako sú problémy, so serializáciou údajov, použitím PHP funkcie mail(), únikom obsahu Cookie pri XSS útokoch, problémami spôsobenými nahrávaním súborov s vykonateľným kódom (napríklad vo formáte ), nekvalitnou generáciou náhodných čísel a nesprávnych konštrukcií XML.
Poskytované v Snuffleupagus režimy zvýšenia ochrany PHP:
- Automatické zapínanie vlajok „secure“ a „samesite“ (ochrana pred CSRF) pre Cookie, Cookie;
- Vstavaný súbor pravidiel na zistovanie stôp útokov a kompromitácie aplikácií;
- Povinné globálne zapnutie režimu „“ (napríklad zablokuje pokus o uvedenie reťazca pri očakávaní celého čísla ako argumentu) a ochrana pred ;
- Predvolené blokovanie (napríklad zákaz „phar://“ ) s ich explicitným povolením v bielom zozname;
- Zákaz vykonávania súborov, ktoré sú prístupné na zápis;
- Čierne a biele zoznamy pre eval;
- Povinné overovanie certifikátov TLS pri použití
curl; - Pridanie HMAC k serializovaným objektom na zabezpečenie, že pri deserializácii sa dostanú údaje, ktoré uložila pôvodná aplikácia;
- Režim logovania požiadaviek;
- Zablokovanie nahrávania externých súborov v libxml cez odkazy v XML dokumentoch;
- Možnosť pripojenia externých spracovateľov (upload_validation) na overenie a skenovanie nahrávaných súborov;
Medzi v novej verzii: Vylepšená podpora PHP 7.4 a implementovaná kompatibilita s vyvíjajúcou sa vetvou PHP 8. Pridaná možnosť zaznamenávania udalostí cez syslog (na aktiváciu je navrhnutá direktíva sp.log_media, ktorá môže prijímať hodnoty php alebo syslog). Aktualizovaná predvolená sada pravidiel, do ktorej boli pridané nové pravidlá pre nedávno objavené zraniteľnosti a techniky útokov na webové aplikácie. Vylepšená podpora macOS a rozšírené využitie platformy kontinuálnej integrácie na báze GitLab.
Zdroj: opennet.ru
