Veiligheidsscherm

Het veiligheidsscherm is een PHP-bestand dat sites beschermt door het blokkeren van bepaalde aanvallen die verband houden met gaten in de beveiliging. Dit systeem maakt het mogelijk om zeer snel te reageren wanneer zich een probleem voordoet door het gat te sluiten zonder een complexe "patch" te hoeven toepassen.

Filosofie

Wanneer een "lek" in de beveiliging wordt ontdekt, zal het SPIP development team het probleem zo snel mogelijk trachten te verhelpen voor zijn ontwikkelingsversie en de stabiele versies.

Maar een meerderheid van de gebruikers zal niet altijd de tijd of mogelijkheid hebbe, om de update uit te voeren en heeft de neiging de voors en tegens tegen elkaar af te wegen. Tijdens een update, hoe klein ook, kunnen immers inconsistenties of afwijkingen met geteste en gevalideerde code ontstaan.

Voor een host heeft de informatie over een veiligheidsprobleem is twee kanten: aan de ene kant het "gat" op een van de gehoste sites niet te willen laten zitten en aan de andere kant de beperking zo’n site te mogen aanpassen. En ze offline zetten is vaak niet mogelijk.

Het beveiligingsscherm is gemaakt om op dit probleem te reageren. Het is een uniek, apart PHP-bestand in SPIP dat onafhankelijk van de rest van de code kan worden bijgewerkt en compatibel is met alle versies van SPIP, zelfs de oudste.

Dit bestand is geen vervanging van een echte upgrade van de versie van SPIP, maar het kan helpen sommige aanvallen te blokkeren in afwachting van een goed voorbereide migratie.

In feite kan dit scherm worden ingeschakeld op de server voor alle PHP-scripts (dus niet alleen SPIP) en garandeert, als het wordt bijgewerkt, een beveiliging tegen alle bekende kwetsbaarheden in elke versie van SPIP. Vandaar de naam "screen": het wordt geplaatst tussen de bezoeker en SPIP en controleert of de bezoeker niet probeert om een ​​bekende aanvalsvectoren te exploiteren.

Wanneer een nieuwe kwetsbaarheid wordt ontdekt, is het dus voldoende dit scherm te updaten om ook deze nieuwe soort aanval af te weren. Ondertussen wordt eraan gewerkt de scripts van SPIP aan te passen en deze aanvallen permanent het hoofd te bieden.

Downloaden

De meest recente versie van dit scherm vind je altijd op het adres:
http://zone.spip.org/trac/spip-zone/browser/_core_/securite/

Download link:
http://zone.spip.org/trac/spip-zone...

Je kunt hem ook ophalen en synchroniseren met SVN:
svn co svn://zone.spip.org/spip-zone/_core_/securite/

Het bestand heeft de naam ecran_securite.php

Installatie

Er bestaan meerdere methodes om het veiligheidsscherm te installeren:

Op een bepaalde SPIP site:

Vanaf SPIP 2.0.9 volstaat het dit bestand ecran_securite.php te plaatsen in de map config/ van de site, waarna het automatisch wordt toegepast.

Voor oudere versies van SPIP moet je de volgende code toevoegen aan config/mes_options.php of ecrire/mes_options.php3 afhankelijk van de gebruikte versie (het bestand moet eventueel worden gemaakt):

<?php
@include_once dirname(__FILE__).'/ecran_securite.php';
?>

Het scherm zal vervolgens worden geladen na het laden van het bestand mes_options.php.

 

Op serverniveau:

Plaats het bestand in een voor alle sites leesbare map (bijvoorbeeld in /usr/share/php/ecran_securite/).

Pas php.ini aan en voeg de volgende regels toe:

auto_prepend_file '/usr/share/php/ecran_securite/ecran_securite.php'

of pas httpd.conf aan met de toevoeging:

php_admin_value auto_prepend_file '/usr/share/php/ecran_securite/ecran_securite.php'

In beide gevallen zal het scherm worden opgenomen bij iedere PHP «hit» php en wel vóór het gewone script. Alle bekende «vijandige» aanvallen worden afgeweerd.

Configuratie

Naast beveiliging zorgt het script ook voor het regelen van de toegang door indexatie robots tot PHP scripts, door hun te zeggen «later terug te komen» wanneer de server verzadigd is.

Dit gedrag kan worden geconfigureerd door bovenin het bestand zelf aan te geven:

define('_ECRAN_SECURITE_LOAD', X);

Deze anti-robot beveiliging wordt actief wanneer de load van de server boven de waarde X ligt. De standaardwaarde is 4 en om de functie uit te schakelen geef je waarde 0 aan.

Integratie

Vanaf SPIP 2.1 is het veiligheidsscherm standaard in SPIP geïntegreerd en hoeft bij het ontdekken van een nieuw veiligheidslek alleen een nieuw bestand ecran_securite.php te worden geïnstalleerd in de plaats van het oude.

Compatibiliteit

Het scherm grijpt zo weinig mogelijk in, het blokkeert alleen variabelen waarvan het weet dat ze ooit slecht door SPIP werden gecontroleerd en dus als gevaarlijke aanval moeten worden beschouwd. Het is dus compatibel met alle versies van SPIP.

Toch blokkeert het scherm enkele variabelen. Zo zal van een variabele met naam id_xxx altijd worden gecontroleerd of de waarde een geheel getal is om een mogelijke injectie in de SQL code tegen te gaan.

Bepaalde plugins zijn niet compatibel met alle regels van het veiligheidsscherm, wanner ze bijvoorbeeld een &id_x=new gebruiken om een object x aan te maken.

Verificatie en test

Om de goede werking van het script te testen, kun je op de publieke site de volgende variabele aan een URL toevoegen ?test_ecran_securite=1, ofwel &test_ecran_securite=1.

het weergegeven resultaat zal moeten zijn:

Error 403

You are not authorized to view this page (test X.X)

(waarin X.X de versie van het veiligheidsscherm is).

Auteur Hanjo, Suske Gepubliceerd op: Aangepast: 02/07/23

Vertalingen: عربي, català, corsu, English, Español, فارسى, français, Nederlands