Som en del af projektet modul til at forbinde til PHP7-fortolkeren, designet til at øge sikkerheden i miljøet og blokere typiske fejl, der fører til sårbarheder i udførte PHP-applikationer. Modulet gør det også muligt at oprette virtuelle patches for at løse specifikke problemer uden at ændre kildeteksterne i den sårbare applikation, hvilket er praktisk til brug i masshostingsystemer, hvor det ikke er muligt at holde alle brugerapplikationer opdateret. Modulet er skrevet i C, tilsluttes som et delt bibliotek ("extension=snuffleupagus.so" i php.ini) og under LGPL 3.0 licensen.
Snuffleupagus tilbyder et regelsystem, der gør det muligt at bruge både typiske skabeloner til at øge beskyttelsen og skabe egne regler til kontrol af inputdata og funktionsparametre. For eksempel tillader reglen "sp.disable_function.function('system').param('command').value_r('[$|;&`\\n]').drop();" uden at ændre applikationer at begrænse brugen af specialtegn i argumenterne til funktionen system(). Lignende kan der oprettes til at blokere kendte sårbarheder.
Ifølge tests udført af udviklerne påvirker Snuffleupagus næsten ikke ydeevnen. For at sikre egen sikkerhed (mulige sårbarheder i beskyttelseslaget kan fungere som en yderligere vektor for angreb) anvendes grundig testning af hver commit i forskellige distributioner, statisk analyse systemer anvendes, og koden formateres og dokumenteres for at lette revision.
Der tilbydes indbyggede metoder til at blokere sådanne klasser af sårbarheder som problemer, til dat(serialisering, brug af PHP-funktionen mail(), lækage af cookieindhold ved XSS-angreb, problemer forårsaget af upload af filer med eksekverbar kode (f.eks. i formatet ), dårlig generering af tilfældige tal og af ugyldige XML-konstruktioner.
Af de tilgængelige beskyttelsesmetoder for PHP understøttes:
- Automatisk aktivering af flagene "secure" og "samesite" (beskyttelse mod CSRF) for cookies, af cookies;
- Indbygget regelsæt til at opdage spor af angreb og kompromitterede applikationer;
- Tvangsaktivering af "» (for example, it blocks attempts to specify a string when an integer value is expected as an argument) and protection against ;
- Default blocking (for example, prohibiting 'phar://' with explicit permission through a whitelist;
- Prohibition of executing files that are writable;
- Black and white lists for eval;
- Mandatory TLS certificate verification when using
curl; - Adding HMAC to serialized objects to ensure that the data obtained during deserialization was saved by the original application;
- Request logging mode;
- Blocking the loading of external files in libxml via links in XML documents;
- Ability to connect external handlers (upload_validation) for checking and scanning uploaded files;
The project was created and is used to protect users in the infrastructure of one of the major French hosting operators. , which simply connecting Snuffleupagus would protect against many dangerous vulnerabilities identified this year in Drupal, WordPress, and phpBB. Vulnerabilities in Magento and Horde could be blocked by enabling the
‘sp.readonly_exec.enable()’.
Kilde: opennet.ru
