Projekti raames moodul PHP7 tõlgendajaga ühendamiseks, mis on mõeldud keskkonna turvalisuse tõstmiseks ja tüüpiliste vigade blokeerimiseks, mis põhjustavad haavatavuste tekkimist käideldavates PHP-rakendustes. Moodul võimaldab luua ka virtuaalseid patše, et lahendada konkreetseid probleeme ilma haavatava rakenduse lähtekoodide muutmiseta, mis on mugav massilise hostimise süsteemides, kus ei ole võimalik kõiki kasutajarakendusi ajakohasena hoida. Moodul on kirjutatud keeles C, ühildub jagatud teegina („extension=snuffleupagus.so” php.ini-s) ja all LGPL 3.0 litsentsi all.
Snuffleupagus pakub reeglite süsteemi, mis võimaldab kasutada nii standardseid malle kaitse suurendamiseks kui ka luua oma reegleid sisendi ja funktsiooniparametrite kontrollimiseks. Näiteks reegel „sp.disable_function.function(„system“).param(„command“).value_r(„[$|;&`\\n]“).drop();“ võimaldab piirata erimärkide kasutamist funktsiooni system() argumentides, muutes rakendusi. Samamoodi saab luua tunnustatud haavatavuste blokeerimiseks.
Arendajate testide põhjal ei vähenda Snuffleupagus peaaegu üldse jõudlust. Omandi turvalisuse tagamiseks (võimalikud haavatavused kaitsekihis võivad toimida rünnakute täiendava vektorina) rakendatakse projektis iga kohanduse põhjalikku testimist erinevates distributsioonides, kasutatakse staatilise analüüsi süsteeme, kood on vormindatud ja dokumenteeritud, et lihtsustada auditi läbiviimist.
Pakutakse sisseehitatud meetodeid selliste haavatavuste klasside nagu probleemide blokeerimiseks, andmete serialiseerimisega, PHP funktsiooni mail() kasutamine, küpsisefailide lekked XSS rünnakute käigus, probleemid faili laadimisega täidetavate koodidega (näiteks formaadis ), madala kvaliteediga juhuslike numbrite genereerimine ja valedega XML konstruktsioonidega.
PHP kaitse tõstmiseks toetatavad režiimid:
- Küpsiste «secure» ja «samesite» lippude automaatne sisselülitamine (CSRF kaitse), ;
- Sisseehitatud reeglite kogum rünnakute ja rakenduste kompromiteerimise jälgede tuvastamiseks;
- Kohustuslik ülemaailmne «» režiimi sisselülitamine (nt blokeerib stringi näitamise, kui oodatakse täisarvu) ja kaitse ;
- Vaikimisi blokeerimine (nt «phar://» keelamine), nende lubamine valge nimekirja kaudu;
- Failide käitamise keeld, mis on kirjutamiseks saadaval;
- Eval'i mustad ja valged nimekirjad;
- TLS sertifikaatide kontrollimise kohustuslik sisselülitamine curl'i kasutamisel;
HMAC lisamine serialiseeritud objektidele, et tagada andmete saamine, mis on algse rakenduse poolt salvestatud deserialiseerimise käigus; - HMAC-i lisamine serialiseeritud objektidele tagab, et andmed, mis salvestati algse rakenduse poolt, saadakse deserialiseerimisel.
- Päringute logimisrežiim;
- Väliste failide laadimise blokeerimine libxml-is, mis on seotud XML-dokumentidega;
- Võimalus liita väliseid töötlejaid (upload_validation), et kontrollida ja skaneerida üles laetavaid faile;
Projekt on loodud ja seda kasutatakse kasutajate kaitsmiseks ühe suurima Prantsuse hostinguoperaatori infrastruktuuris. , et lihtne Snuffleupagus'e ühendamine võimaldaks kaitsta kasutajaid paljude ohtlike haavatavuste eest, mis sel aastal Drupal'i, WordPress'i ja phpBB-s tuvastati. Haavatavused Magento's ja Horde'is oleks saanud blokeerida režiimi aktiviseerimisega
«sp.readonly_exec.enable()».
Allikas: opennet.ru
