Po letu razvoja izdanje projekta , ki omogoča modul za PHP7 interpreter za povečanje varnosti okolja in blokado tipičnih napak, ki pripeljejo do ranljivosti v izvajanih PHP aplikacijah. Modul omogoča tudi ustvarjanje za odpravo specifičnih težav brez spreminjanja izvorne kode ranljive aplikacije, kar je primerno za uporabo v sistemih množičnega gostovanja, kjer ni mogoče vzdrževati vse uporabniške aplikacije posodobljene. Stroški obratovanja modula so ocenjeni kot minimalni. Modul je napisan v jeziku C, povezuje se v obliki deljene knjižnice ("extension=snuffleupagus.so" v php.ini) in pod licencom LGPL 3.0.
Snuffleupagus nudi sistem pravil, ki omogoča uporabo tako tipičnih predlog za povečanje zaščite, kot tudi ustvarjanje lastnih pravil za nadzor vhodnih podatkov in parametrov funkcij. Na primer, pravilo "sp.disable_function.function('system').param('command').value_r('[$|;&`\\n]').drop();" omogoča, da omejite uporabo posebnih znakov v argumentih funkcije system() brez spreminjanja aplikacij. Na voljo so vgrajene metode za blokiranje takšnih razredov ranljivosti, kot so težave, za serijalizaciju podataka, korištenje PHP funkcije mail(), curenje sadržaja kolačića prilikom XSS napada, problemi zbog učitavanja datoteka s izvršnim kodom (na primjer, u formatu ), loša generacija nasumičnih brojeva i nekorektnih XML konstrukcija.
Načini za povečanje varnosti PHP, ki jih nudi Snuffleupagus:
- Automatsko uključivanje oznaka „secure” i „samesite” (zaštita od CSRF) za kolačiće, kolačića;
- Vgrajen nabor pravil za odkrivanje sledi napadov in kompromitacije aplikacij;
- Obvezno globalno vključevanje načina „” (na primer, blokira poskuse določitve niza, ko se pričakuje celo število kot argument) in zaščita pred ;
- Privzeto blokiranje (na primer, prepoved „phar://“) z njihovim izrecnim dovoljenjem na belih seznamih;
- Prepoved izvajanja datotek, do katerih je možno pisati;
- Črni in beli seznami za eval;
- Obvezno preverjanje certifikatov TLS pri uporabi
curl; - Dodajanje HMAC k serijaliziranim objektom za zagotovitev, da so ob deserializaciji pridobljeni podatki, shranjeni iz prvotne aplikacije;
- Način beleženja zahtevkov;
- Blokiranje nalaganja zunanjih datotek v libxml prek povezav v XML-dokumentih;
- Možnost povezovanja zunanjih obdelovalcev (upload_validation) za preverjanje in skeniranje nalaganja datotek;
Med novim izdanju: Izboljšana podpora za PHP 7.4 in omogočena združljivost z razvijajočo se vejo PHP 8. Dodana je možnost beleženja dogodkov preko syslog (za omogočitev je predlagana direktiva sp.log_media, ki lahko sprejme vrednosti php ali syslog). Posodobljen je privzeti niz pravil, ki vključuje nova pravila za nedavno odkrivene ranljivosti in tehnike napadov na spletne aplikacije. Izboljšana podpora za macOS in razširjena uporaba platforme za stalno integracijo na osnovi GitLab.
Izvor: opennet.ru
