Na een jaar van ontwikkeling de release van het project , een module voor de PHP7-interpreter die de beveiliging van de omgeving verhoogt en typische fouten blokkeert die kunnen leiden tot kwetsbaarheden in uitvoerende PHP-toepassingen. De module stelt ook in staat om specifieke problemen op te lossen zonder de oorspronkelijke tekst van de kwetsbare toepassing te wijzigen, wat handig is voor gebruik in massahostingsystemen waar het niet mogelijk is om alle gebruikersapplicaties up-to-date te houden. De overhead van de werking van de module wordt als minimaal beschouwd. De module is geschreven in de C-taal, en 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 dat zowel standaardpatronen voor het verhogen van de bescherming kan gebruiken als aangepaste regels kan creëren voor het controleren van invoerparameters en functieparameters. Bijvoorbeeld, de regel ‘sp.disable_function.function(‘system’).param(‘command’).value_r(‘[$|;&`\\n]’).drop();’ maakt het mogelijk om, zonder de applicaties te wijzigen, het gebruik van speciale tekens in de argumenten van de functie system() te beperken. Er zijn ingebouwde methoden beschikbaar om klassen van kwetsbaarheden te blokkeren, 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.
De door Snuffleupagus aangeboden modi voor het verhogen van de beveiliging van PHP:
- 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;
Onder in de nieuwe uitgave: Verbeterde ondersteuning voor PHP 7.4 en compatibiliteit met de in ontwikkeling zijnde tak van PHP 8. De mogelijkheid voor het loggen van evenementen via syslog is toegevoegd (voor het inschakelen is de richtlijn sp.log_media voorgesteld, die waarde php of syslog kan aanvaarden). De standaardset regels is bijgewerkt, met nieuwe regels voor recent ontdekte kwetsbaarheden en aanvalstechnieken op webapplicaties. Verbeterde ondersteuning voor macOS en uitgebreide toepassing van het continue integratieplatform op basis van GitLab.
Bron: opennet.ru
