Në kuadër të projektit moduli për lidhjen me interpreterin PHP7, i destinuar për të rritur sigurinë e mjedisit dhe për të bllokuar gabimet standarde që çojnë në shfaqjen e dobësive në aplikacionet PHP që ekzekutohen. Moduli gjithashtu lejon krijimin e patçave virtuale për zgjidhjen e problemeve specifike pa ndryshuar tekstet origjinale të aplikacionit të cenueshëm, gjë që është e dobishme për t'u aplikuar në sistemet e hostingut masiv, ku nuk është e mundur të ruhet çdo aplikacion përdoruesi në versionin më të fundit. Moduli është shkruar në gjuhën C, lidhet në formën e një biblioteke të shpërndarë ("extension=snuffleupagus.so" në php.ini) dhe nën licencën LGPL 3.0.
Snuffleupagus ofron një sistem rregullash, duke lejuar përdorimin si të shabloneve standarde për rritjen e mbrojtjes ashtu edhe krijimin e rregullave të veta për të kontrolluar hyrjet dhe parametrat e funksioneve. Për shembull, rregulli "sp.disable_function.function('system').param('command').value_r('[$|;&`\\n]').drop();" lejon kufizimin e përdorimit të simbolëve special në argumentet e funksionit system() pa ndryshuar aplikacionet. Njësoj mund të krijohen për bllokimin e dobësive të njohura.
Sipas testeve të kryera nga zhvilluesit, Snuffleupagus pothuajse nuk zvogëlon performancën. Për të siguruar sigurinë e saj (dobësitë e mundshme në shtresën mbrojtëse mund të shërbejnë si një vektor shtesë për sulme), projekti përdor teste të hollësishme për çdo commit në distribucione të ndryshme, përdor sisteme analize statike, kodi formatizohet dhe dokumentohet për të lehtësuar zhvillimin e auditit.
Përfshihen metoda të ndërtuara për bllokimin e klasave të tilla të dobësive 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.
Nga modet për rritjen e mbrojtjes, PHP mbështet:
- 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;
Projekti është krijuar dhe përdoret për të mbrojtur përdoruesit në infrastrukturën e një prej operatorëve të mëdhenj të hostingut francez. , kështu që thjesht lidhja e Snuffleupagus do të mundësonte mbrojtjen nga shumë dobësi të rrezikshme, të identifikuara këtë vit në Drupal, WordPress dhe phpBB. Dobësitë në Magento dhe Horde do të mund të ishin bllokuar duke aktivizuar modin
"sp.readonly_exec.enable()".
Burimi: opennet.ru
