Inom ramen för projektet en modul för att ansluta till PHP7-tolken, avsedd att öka sÀkerheten i miljön och blockera typiska fel som leder till sÄrbarheter i körande PHP-applikationer. Modulen möjliggör ocksÄ skapandet av virtuella patchar för att ÄtgÀrda specifika problem utan att Àndra kÀllkoden för den sÄrbara applikationen, vilket Àr bekvÀmt för anvÀndning i masshosting-system dÀr det Àr svÄrt att hÄlla alla anvÀndarapplikationer aktuella. Modulen Àr skriven i C och ansluts i form av ett delat bibliotek ("extension=snuffleupagus.so" i php.ini) och under LGPL 3.0-licens.
Snuffleupagus erbjuder ett regelsystem som lÄter anvÀndaren anvÀnda bÄde standardmallar för att öka skyddet och skapa egna regler för att kontrollera indata och funktionsparametrar. Till exempel gör regeln "sp.disable_function.function(«system»).param(«command»).value_r(«[$|;&`\\n]»).drop();" det möjligt att begrÀnsa anvÀndningen av specialtecken i argumenten för funktionen system() utan att behöva Àndra applikationen. PÄ liknande sÀtt kan skapas för att blockera kÀnda sÄrbarheter.
Enligt tester utförda av utvecklarna pÄverkar Snuffleupagus nÀstan inte prestandan. För att sÀkerstÀlla egen sÀkerhet (eventuella sÄrbarheter i skyddslagret kan utgöra en extra vektor för attacker) tillÀmpas grundlig testning av varje commit i olika distributioner, statiska analysystem anvÀnds, och koden struktureras och dokumenteras för att underlÀtta granskning.
Inbyggda metoder för att blockera sÄdana typer av sÄrbarheter erbjuds, som problem med data serialisering, anvÀndning av PHP-funktionen mail(), lÀckage av Cookie-innehÄll vid XSS-attacker, problem pÄ grund av uppladdning av filer med körbar kod (till exempel i formatet ), dÄlig generering av slumpmÀssiga tal och av felaktiga XML-konstruktioner.
De skyddsmekanismer som stöds av PHP inkluderar:
- Automatisk aktivering av flaggor "secure" och "samesite" (skydd mot CSRF) för Cookies, av Cookies;
- Ett inbyggt regelsystem för att upptÀcka spÄr av attacker och kompromettering av applikationer;
- Tvingande global aktivering av "strict"-lÀget.» (t.ex. blockerar försök att ange en strÀng nÀr ett heltal förvÀntas som argument) och skydd mot ;
- Standardblockering (t.ex. förbud mot "phar://"), med uttryckligt tillstÄnd genom vitlista;
- Förbud mot körning av filer som Àr skrivbara;
- Svarta och vita listor för eval;
- Krav pÄ certifikatkontroll av TLS vid anvÀndning av
curl; - TillÀgg av HMAC till serialiserade objekt för att sÀkerstÀlla att de data som ÄterhÀmtas vid deserialisering kommer frÄn den ursprungliga applikationen;
- Logger för begÀrningar;
- Blockering av laddning av externa filer i libxml via lÀnkar i XML-dokument;
- Möjlighet att ansluta externa hanterare (upload_validation) för att kontrollera och skanna uppladdade filer;
Projektet skapades och anvÀnds för att skydda anvÀndare i infrastrukturen hos en av de stora franska hostingoperatörerna. , vilket innebÀr att en enkel installation av Snuffleupagus skulle kunna skydda mot mÄnga farliga sÄrbarheter som identifierades i Är i Drupal, WordPress och phpBB. SÄrbarheter i Magento och Horde skulle kunna blockeras genom att aktivera lÀget
"sp.readonly_exec.enable()".
KĂ€lla: opennet.ru
