In het kader van het project een module voor verbinding met de PHP7-interpreter, bedoeld om de veiligheid van de omgeving te vergroten en typische fouten te blokkeren die leiden tot kwetsbaarheden in uitgevoerde PHP-toepassingen. De module maakt ook het aanmaken van virtuele patches mogelijk om specifieke problemen op te lossen zonder de broncode van de kwetsbare toepassing te wijzigen, wat handig is voor systemen voor massahosting, waar het niet mogelijk is om alle gebruikersapplicaties up-to-date te houden. De module is geschreven in de programmeertaal C, wordt aangesloten in de vorm van een gedeelde bibliotheek (“extension=snuffleupagus.so” in php.ini) en onder LGPL 3.0-licentie.
Snuffleupagus biedt een regelsysteem waarmee zowel standaard sjablonen voor verhoogde beveiliging kunnen worden gebruikt als eigen regels kunnen worden aangemaakt voor het controleren van invoer en parameters van functies. Bijvoorbeeld, de regel “sp.disable_function.function(‘system’).param(‘command’).value_r(‘[$|;&`\n]’).drop();” maakt het mogelijk om zonder de applicaties aan te passen het gebruik van speciale symbolen in de argumenten van de system() functie te beperken. Op soortgelijke wijze kunnen worden aangemaakt voor het blokkeren van bekende kwetsbaarheden.
Volgens de uitgevoerde tests door de ontwikkelaars vermindert Snuffleupagus de prestaties vrijwel niet. Om de eigen veiligheid te waarborgen (mogelijke kwetsbaarheden in de beschermingslaag kunnen een extra aanvalsdoel vormen) wordt in het project grondig getest op elke commit in verschillende distributies, wordt gebruikgemaakt van statische analysetools, en wordt de code opgemaakt en gedocumenteerd om audits eenvoudiger te maken.
Ingebouwde methoden worden geboden om te blokkeren dergelijke categorieën kwetsbaarheden zoals problemen, met gegevensserialisatie, het gebruik van de PHP-functie mail(), het lekken van cookie-inhoud tijdens XSS-aanvallen, problemen door het uploaden van bestanden met uitvoerbare code (bijvoorbeeld in het formaat ), slechte willekeurige getallengeneratie en van onjuiste XML-constructies.
Onder de modi voor het verbeteren van de PHP-beveiliging worden ondersteund:
- Automatische activatie van de ‘secure’ en ‘samesite’ vlaggen (bescherming tegen CSRF) voor cookies, van cookies;
- Ingebouwde set regels voor het opsporen van sporen van aanvallen en compromittering van applicaties;
- Dwingende mondiale inschakeling van de ‘» (bijvoorbeeld, blokkeert een poging om een string op te geven wanneer een geheel getal als argument wordt verwacht) en bescherming tegen ;
- Standaard blokkering (bijvoorbeeld, verbod op 'phar://') met hun expliciete toestemming via een whitelist;
- Verbod op het uitvoeren van bestanden die schrijfbaar zijn;
- Zwarte en witte lijsten voor eval;
- Verplichte controle van TLS-certificaten bij gebruik van
curl; - Toevoegen van HMAC aan geserialiseerde objecten om ervoor te zorgen dat de gegevens die bij deserialisatie worden ontvangen, zijn opgeslagen door de oorspronkelijke applicatie;
- Loggingmodus voor aanvragen;
- Blokkeren van het laden van externe bestanden in libxml via links in XML-documenten;
- Mogelijkheid om externe verwerkingshandlers (upload_validation) aan te sluiten voor controle en scanning van geüploade bestanden;
Het project is opgericht en wordt gebruikt ter bescherming van gebruikers in de infrastructuur van een van de grote Franse hostingproviders. , waarbij gewoon het aansluiten van Snuffleupagus zou helpen om veel gevaarlijke kwetsbaarheden te blokkeren die dit jaar zijn ontdekt in Drupal, WordPress en phpBB. Kwetsbaarheden in Magento en Horde zouden kunnen worden geblokkeerd door de modus
‘sp.readonly_exec.enable()’ in te schakelen.
Bron: opennet.ru
