HotFix 20151006 - CSRF
Natura della vulnerabilità: La patch risolve diverse vulnerabilità agli attacchi CSRF (cross.site request forgery) nella ZMI (Zope Management Interface).
La patch è stata rilasciata Martedì 6 ottobre 2015 alle 15:00 UTC ed è disponibile all'indirizzo: https://pypi.python.org/pypi/plone4.csrffixes
Per informazioni di carattere generale sulle vulnerabilità CSRF potete visitare la pagina (in inglese) https://en.wikipedia.org/wiki/Cross-site_request_forgery.
Versioni interessate
Tutte le versioni precedenti la 5.x sono vulnerabili.
Questa patch è compatibile con tutte le veriosni di plone supportate (4.x). Plone 5.x è già protetto e non necessita di questa patch.
Regole di blocco proxy per Nginx/Apache
Se usate una versione di Plone precedente alla 4.x, vi suggeriamo di eseguire l'upgrade o di bloccare l'accesso alla ZMI dall'esterno.
Sia che usiate Nginx o Apache le regole che seguono devono essere le prime della lista, prima della regola “location /”.
Usate questa regola di blocco per Nginx:
location ~ /manage(_.+)?$ {
deny all;
}
Usate questa regola di blocco per Apache:
RewriteRule ^(.*)manage(.*) - [L,NC]
<LocationMatch "^/(manage|manage_main|(.*)/manage(.*))" >
Deny from all
</LocationMatch>
Firewall
Vi suggeriamo anche di utilizzare un firewall che impedisca l'accesso diretto alle porte dello ZEO client, ad es. 8080, 8081, e a qualsiasi porta dello ZEO server, ad esempio 8100.
Potete visitare il link http://docs.plone.org/manage/deploying/production/ubuntu_production.html#step-8-set-up-a-firewall (in inglese) per maggiori informazioni sulla configurazione del firewall per proteggere Plone.
Informazioni su questa patch
Per prevenire i problemi di CSRF incriminati, la presente patch riporta su Plone 4.x il framework di protezione automatica dagli attacchi CSRF incluso nativamente in Plone 5.
Questa patch di Plone, a differenza dalle precedenti, non è un semplice prodotto installabile senza rieseguire il buildout.
La protezione CSRF funziona perfettamente su siti Plone di default, tuttavia potrebbe essere eccessivamente aggressiva se fate uso di add-on e personalizzazioni che comprendono quanto segue:
- l'uso di Zope session storage
- codice vulnerabile ad attacchi CSRF
- codice JavaScript non non-jQuery AJAX che non sia protetto da attacchi CSRF
- codice che effettua write-on-read
Dopo aver applicato la patch Plone potrebbe generare degli errori quando incontra il codice menzionato.
Dovrete aggiungere _authenticator a varie URL per impedire gli errori di write-on-read. Per ulteriori dettagli su come fare consultate la pagina: https://pypi.python.org/pypi/plone.protect (in inglese).
Vi raccomandiamo di testare in modo completo i vostri siti prima di eseguire la patch sulle versioni di esercizio.
Mentre verificate in ambiente di test l'efficacia della patch vi raccomandiamo di attivare le regole di blocco per Ngnix e Apache di cui sopra.
La Security Team è consapevole che l'applicazione di questa patch ai siti può essere molto onerosa, ed ha già fatto il massimo per ottenere questo risultato.
Potete contattare la Security Team all'indirizzo security@plone.org per dare suggerimenti relativi a migliorie che possono essere incluse nella patch.
Installazione
Le istruzioni complete per l'installazione (in inglese) sono disponibili sulla pagina di rilascio della HotFix
ATTENZIONE: l'installazione di questa patch richiede l'esecuzione del buildout. Metodi alternativi d'installazione potrebbero non funzionare correttamete, portando al malfunzionamento o alla non persistenza della vulnerabiltà del sito.
Supporto aggiuntivo
Se avete necessità di una consulenza specifica potete trovare una lista delle aziende che offrono consulenza Plone su plone.com/providers e plone.org/support/network.
E' disponibile anche un supporto gratuito online attraverso le mailing list Plone e il canale IRC.
Per leggere l'informativa originale (in inglese) potete consultare il link: https://plone.org/products/plone/security/advisories/security-vulnerability-20151006-csrf.