Pas një viti zhvillimi lëshimin e projektit , që ofron një modul për interpretorin PHP7 për të përmirësuar sigurinë e mjedisit dhe për të bllokuar gabimet tipike që shkaktojnë ndjeshmëri në aplikacionet PHP në ekzekutim. Moduli gjithashtu lejon krijimin për të eliminuar probleme specifike pa ndryshuar tekstet origjinale të aplikacionit të ndjeshëm, që është e përshtatshme për aplikim në sistemet e hostimit masiv, ku nuk është e mundur të mbahen të gjitha aplikacionet e përdoruesve të azhurnuara. Kostot e funksionimit të modulit vlerësohen si minimale. Moduli është shkruar në gjuhën C, lidhet në formën e një biblioteke të ndarë ("extension=snuffleupagus.so" në php.ini) dhe nën licencën LGPL 3.0.
Snuffleupagus ofron një sistem rregullash që lejon përdorimin e templates standarde për përmirësimin e sigurisë, si dhe krijimin e rregullave të veta 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 që pa ndryshuar aplikacionet të kufizojë përdorimin e karaktereve speciale në argumentet e funksionit system(). Ofron metoda të ndërtuara për të bllokuar klasa të tilla të ndjeshmërive si problemet, me serializimin e të dhënave, i funksionit PHP mail(), dalja e përmbajtjes së Cookie gjatë sulmeve XSS, probleme për shkak të ngarkimit të skedarëve me kod ekzekutiv (p.sh., në formatin ), gjenerimi i dobët i numrave të rastësishëm dhe i konstrukcioneve të papara XML.
Modet e ofruara në Snuffleupagus për përmirësimin e sigurisë së PHP:
- Aktivizimi automatik i flagjeve "secure" dhe "samesite" (mbrojtja nga CSRF) për Cookie, i Cookie;
- Një set i integruar rregullash për identifikimin e gjurmëve të sulmeve të kryera dhe komprometimit të aplikacioneve;
- Aktivizimi global i detyrueshëm i modit "" (p.sh., bllokon përpjekjet për të përdorur një varg kur pritet një vlerë numerike si argument) dhe mbrojtja nga ;
- Bllokimi si parazgjedhje (p.sh., ndalimi "phar://") me lejen e tyre të qartë në listën e bardhë;
- Ndalimi i ekzekutimit të skedarëve që janë të aksesueshëm për shk writing;
- Lista të zeza dhe të bardha për eval;
- Aktivizimi i kontrollit të domosdoshëm të certifikatave TLS gjatë përdorimit
curl; - Shtimi i HMAC në objektet e serializuara për të garantuar se të dhënat e ruajtur gjatë deserializimit janë ato që ka ruajtur aplikacioni origjinal;
- Mënyra e 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 të verifikuar dhe skanuar skedarët e ngarkuar;
Ndër në versionin e ri: Përmirësuar mbështetje për PHP 7.4 dhe realizuar përputhshmëria me degën e zhvillimit të PHP 8. Shtuar mundësinë e regjistrimit të ngjarjeve përmes syslog (për aktivizim propozohet direktiva sp.log_media, e cila mund të pranojë vlera php ose syslog). Përsëritur grupi i rregullave të propozuara si standard, në të cilën janë shtuar rregulla të reja për dobësitë dhe teknikat e sulmit që janë identifikuar së fundmi në aplikacionet web. Përmirësuar mbështetje për macOS dhe zgjeruar përdorimin e platformës për integrimin e vazhdueshëm mbi bazën e GitLab.
Burimi: opennet.ru
