Projekat Snuffleupagus razvija PHP modul za blokiranje ranjivosti

U granicama projekta Njuškalo se razvija modul za povezivanje na PHP7 interpreter, dizajniran da poboljša sigurnost okruženja i blokira uobičajene greške koje dovode do ranjivosti u pokretanju PHP aplikacija. Modul takođe omogućava kreiranje virtuelnih zakrpa za rešavanje određenih problema bez promene izvornog koda ranjive aplikacije, što je zgodno za upotrebu u masovnim hosting sistemima gde je nemoguće ažurirati sve korisničke aplikacije. Modul je napisan u C, povezan je u obliku zajedničke biblioteke (“extension=snuffleupagus.so” u php.ini) i distribuira licenciran prema LGPL 3.0.

Snuffleupagus pruža sistem pravila koji vam omogućava da koristite standardne šablone za poboljšanje sigurnosti ili kreirate vlastita pravila za kontrolu ulaznih podataka i parametara funkcija. Na primjer, pravilo "sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();" omogućava vam da ograničite upotrebu specijalnih znakova u argumentima funkcije system() bez promjene aplikacije. Slično, možete kreirati virtuelne zakrpe da blokira poznate ranjivosti.

Sudeći po testovima koje su sproveli programeri, Snuffleupagus jedva da smanjuje performanse. Kako bi osigurao vlastitu sigurnost (moguće ranjivosti u sigurnosnom sloju mogu poslužiti kao dodatni vektor za napade), projekat koristi temeljno testiranje svakog urezivanja u različitim distribucijama, koristi sisteme statičke analize, a kod je formatiran i dokumentiran kako bi se pojednostavila revizija.

Obezbeđene su ugrađene metode za blokiranje klasa ranjivosti kao što su problemi, povezane sa serijalizacijom podataka, nesigurno upotreba PHP mail() funkcije, curenje sadržaja kolačića tokom XSS napada, problemi zbog učitavanja datoteka sa izvršnim kodom (na primjer, u formatu phar), generiranje slučajnih brojeva lošeg kvaliteta i zamjena netačne XML konstrukcije.

Podržani su sljedeći načini kako bi se poboljšala sigurnost PHP-a:

  • Automatski omogući "sigurno" i "samesite" (CSRF zaštita) zastavice za kolačiće, šifriranje Cookie;
  • Ugrađeni skup pravila za identifikaciju tragova napada i kompromitovanja aplikacija;
  • Prisilno globalno aktiviranje "striktno" (na primjer, blokira pokušaj da se navede niz kada se očekuje cjelobrojna vrijednost kao argument) i zaštita od vrsta manipulacije;
  • Zadano blokiranje omoti protokola (na primjer, zabrana "phar://") sa njihovim eksplicitnim stavljanjem na bijelu listu;
  • Zabrana izvršavanja datoteka u koje se može pisati;
  • Crne i bijele liste za evaluaciju;
  • Potrebno za omogućavanje provjere TLS certifikata prilikom korištenja
    curl;

  • Dodavanje HMAC-a serijaliziranim objektima kako bi se osiguralo da deserijalizacija dohvaća podatke pohranjene u originalnoj aplikaciji;
  • Način evidentiranja upita;
  • Blokiranje učitavanja eksternih fajlova u libxml preko linkova u XML dokumentima;
  • Mogućnost povezivanja eksternih rukovaoca (upload_validation) za provjeru i skeniranje učitanih datoteka;

Projekat je kreiran i korišten za zaštitu korisnika u infrastrukturi jednog od velikih francuskih hosting operatera. Zabilježeno jeda bi jednostavno povezivanje Snuffleupagusa zaštitilo od mnogih opasnih ranjivosti identifikovanih ove godine u Drupalu, WordPress-u i phpBB-u. Ranjivosti u Magento i Horde mogu se blokirati omogućavanjem moda
"sp.readonly_exec.enable()".

izvor: opennet.ru

Dodajte komentar