Pas një vit zhvillimi publikimi i projektit , ofron module për përkthyesin PHP7 për të rritur sigurinë e mjedisit dhe për të bllokuar gabimet tipike që çojnë në shfaqjen e pasiguri në aplikacionet PHP-në ekzekutues. Moduli gjithashtu lejon krijimin e për të zgjidhur probleme specifike pa ndryshuar kodin burimor të aplikacionit të prekshëm, gjë që është e përshtatshme për përdorim në sistemet e hostimit në masë, ku nuk është e mundur të mbahen të gjithë aplikacionet e përdoruesve në një version të azhurnuar. Kostot që shkakton moduli janë vlerësuar si minimale. Moduli është shkruar në gjuhën C, dhe lidhet në formën e një biblioteke të ndarë ("extension=snuffleupagus.so" në php.ini) dhe në përputhje me licencën LGPL 3.0.
Snuffleupagus ofron një sistem rregullash që lejon përdorimin e si modele standarde për përmirësimin e mbrojtjes ashtu edhe krijimin e rregullave të personalizuara për kontrollin e të dhënave hyrëse dhe parametrave të funksioneve. Për shembull, rregulli "sp.disable_function.function("system").param("command").value_r("[$|;&`\\n] ").drop();" lejon të kufizoni përdorimin e simboleve speciale në argumentet e funksionit system() pa ndryshuar aplikacionet. Ofron metoda të ndërtuara për të bllokuar klasa të tilla të pasigurisë si problemi me serializimin e të dhënave, përdorimin e funksionit PHP mail(), rrjedhjen e përmbajtjes së Cookie gjatë sulmeve XSS, problemet që shkaktohen nga ngarkimi i skedarëve me kod ekzekutues (për shembull, në formatin ), gjenerimin e rastit të dobët dhe e përbërjeve të papërshtatshme XML.
Modet e ofruara në Snuffleupagus për rritjen e sigurisë në PHP:
- Aktivizimi automatik i flamujve "secure" dhe "samesite" (mbrojtja nga CSRF) për Cookie, i Cookie;
- Një grup të integruar rregullash për identifikimin e shenjave të sulmeve dhe kompromiseve në aplikacione;
- Aktivizimi global i detyrueshëm i modit "" (për shembuj, bllokon përpjekjet për të treguar një varg kur pritet një vlerë e plotë numrore si argument) dhe mbrojtja nga ;
- Përjashtimi i parazgjedhur (për shembull, ndalimi "phar://"ët me leje të qartë nëpërmjet një liste të bardhë;
- Ndalimi i ekzekutimit të skedarëve që janë të shkruar;
- Lista të zeza dhe të bardha për eval;
- Aktivizimi i kontrollit të domosdoshëm të certifikatave TLS gjatë përdorimit të
curl; - Shtimi i HMAC në objektet e serializuara për të garantuar që gjatë deserializimit të dhënat e marra kanë ardhur nga aplikacioni burim;
- Rehimi i regjistrimit të kërkesave;
- Bllokimi i ngarkimit të skedarëve të jashtëm në libxml përmes lidhjeve në dokumentet XML;
- Mundësia e lidhjes së trajtuesve të jashtëm (upload_validation) për verifikimin dhe skanimin e skedarëve të ngarkuar;
Ndër në këtë version të ri: përmirësimi i mbështetjes për PHP 7.4 dhe implementimi i kompatibilitetit me degën në zhvillim të PHP 8. Shtimi i mundësisë së regjistrimit të ngjarjeve përmes syslog (për aktivizimin, është propozuar direktiva sp.log_media, e cila mund të pranojë vlerat php ose syslog). Grupi i rregullave të parazgjedhura është rifreskuar, duke shtuar rregulla të reja për pasiguritë dhe teknikat e sulmeve të zbuluara kohët e fundit në aplikacione web. Përmirësimi i mbështetjes për macOS dhe zgjerimi i aplikimit të platformës së integrimit të vazhdueshëm të bazuar në GitLab.
Burimi: opennet.ru
