Snuffleupagus-prosjektet utvikler en PHP-modul for blokkering av sårbarheter

I prosjektets grenser snuffleupagus utvikler seg en modul for å koble til PHP7-tolken, designet for å forbedre sikkerheten til miljøet og blokkere vanlige feil som fører til sårbarheter i å kjøre PHP-applikasjoner. Modulen lar deg også lage virtuelle patcher for å fikse spesifikke problemer uten å endre kildekoden til den sårbare applikasjonen, noe som er praktisk for bruk i massevertssystemer der det er umulig å holde alle brukerapplikasjoner oppdatert. Modulen er skrevet i C, er koblet til i form av et delt bibliotek ("extension=snuffleupagus.so" i php.ini) og distribuert av lisensiert under LGPL 3.0.

Snuffleupagus tilbyr et regelsystem som lar deg bruke standardmaler for å forbedre sikkerheten, eller lage dine egne regler for å kontrollere inngangsdata og funksjonsparametere. For eksempel regelen “sp.disable_function.function(“system”).param(“command”).value_r(“[$|;&`\\n]”).drop();” lar deg begrense bruken av spesialtegn i system() funksjonsargumenter uten å endre applikasjonen. På samme måte kan du lage virtuelle patcher for å blokkere kjente sårbarheter.

Etter testene utført av utviklerne å dømme, reduserer Snuffleupagus knapt ytelsen. For å sikre sin egen sikkerhet (mulige sårbarheter i sikkerhetslaget kan fungere som en ekstra vektor for angrep), bruker prosjektet grundig testing av hver commit i ulike distribusjoner, bruker statiske analysesystemer, og kode formateres og dokumenteres for å forenkle revisjon.

Innebygde metoder er gitt for å blokkere klasser av sårbarheter som problemer, i slekt med dataserialisering, utrygt bruk av PHP mail()-funksjonen, lekkasje av informasjonskapselinnhold under XSS-angrep, problemer på grunn av lasting av filer med kjørbar kode (for eksempel i formatet phar), dårlig kvalitet generering av tilfeldige tall og substitusjon feil XML-konstruksjoner.

Følgende moduser støttes for å forbedre PHP-sikkerheten:

  • Aktiver automatisk "secure" og "samesite" (CSRF-beskyttelse) flagg for informasjonskapsler, kryptering Kjeks;
  • Innebygd sett med regler for å identifisere spor etter angrep og kompromittering av applikasjoner;
  • Tvunget global aktivering av "streng" (blokkerer for eksempel et forsøk på å spesifisere en streng når man forventer en heltallsverdi som et argument) og beskyttelse mot type manipulasjon;
  • Standard blokkering protokollinnpakninger (for eksempel forbud mot "phar://") med deres eksplisitte hviteliste;
  • Forbud mot å kjøre filer som er skrivbare;
  • Svarte og hvite lister for eval;
  • Nødvendig for å aktivere TLS-sertifikatkontroll ved bruk
    krølle;

  • Legge til HMAC til serialiserte objekter for å sikre at deserialisering henter dataene som er lagret av den opprinnelige applikasjonen;
  • Be om loggingsmodus;
  • Blokkering av lasting av eksterne filer i libxml via lenker i XML-dokumenter;
  • Evne til å koble til eksterne behandlere (upload_validation) for å sjekke og skanne opplastede filer;

Prosjektet ble opprettet og brukt for å beskytte brukere i infrastrukturen til en av de store franske hosting-operatørene. Det er notertat bare å koble til Snuffleupagus ville beskytte mot mange av de farlige sårbarhetene identifisert i år i Drupal, WordPress og phpBB. Sårbarheter i Magento og Horde kan blokkeres ved å aktivere modusen
"sp.readonly_exec.enable()".

Kilde: opennet.ru

Legg til en kommentar