Vulnerabilitate de securitate: 20151006 – CSRF
Natura vulnerabilității: multiple vulnerabilități CSRF (cross-site request forgery) în ZMI (Zope Management Interface).
Aceest patch a fost lansat marți 6 octombrie la ora 15:00 UTC și este disponibil aici https://pypi.python.org/
Pentru informații generale legate de vulnerabilitățile CSRF, citiți aici https://en.wikipedia.org/wiki/Cross-site_request_forgery
Versiuni afectate
Toate versiunile înaine de Plone 5.x sunt vulnerabile
Acest patch va fi compatibil cu toate versiunile Plone 4.x. Plone 5.x este deja protejat și nu are nevoie de acest patch.
Nginx/Apache proxy block rules
Dacă folosiți versiuni Plone de dinainte de 4.x, vă recomandăm să faceți upgrade sau să blocați accesul public la ZMI
Indiferent că folosiți Nginx sau Apache , aceste reguli trebuie să apară întâi, înaintea regulii “location /”
Folosiți această regulă de blocare pentru Nginx
location ~ /manage(_(?!translations).+)?$ {
deny all;
}
Folosiți această regulă de blocare pentru Apache(2.2 syntax)
RewriteRule ^(.*)/manage(_(?!translations).*)$ - [L,NC]
<LocationMatch "^(.*)/(manage|manage_main|manage(_(?!translations).*))$" >
Order deny,allow
Deny from all
</LocationMatch>
Aceste mecanisme de blocare nu elimină în totalitate vulnerabilitățile CSRF, dar le fac mult mai greu de exploatat. Managerii de site ar trebui să se disciplineze ei însuși să folosească accesul direct (tunel ssh) numai temporar, atunci când au nevoie pentru a utiliza interfața de gestionare Zope.
Firewall
De asemenea vă recomandăm să aveți firewall care nu permite accesul direct la porturile clientului ZEO, ex. 8080, 8081, și nici la porturile server ZEO ex 8100.
Pentru mai multe informații despre folosirea firewall-ului pentru a proteja Plone, citiți http://docs.plone.org/manage/deploying/production/ubuntu_production.html#step-8-set-up-a-firewall
Despre patch
În scopul de a preveni aceste probleme CSRF, patch-ul transpune noul CSRF protection framework de la Plone 5 la Plone 4.x
Spre deosebire de patch-urile anterioare Plone, acest patch nu este un produs simplu, care poate fi instalat fără a executa buildout.
Protecția CSRF pentru Plone funcționează fără probleme pe site-uri Plone default. Cu toate acestea, ea poate fi prea agresivă dacă utilizați addons sau personalizări care includ următoarele:
- cod care nu este protejat CSRF
- cod personalizat non-jQuery AJAX JavaScript care nu este protejat CSRF
- cod care face write-on-read
Odată ce patch-ul a fost aplicat, Plone poate da erori când întâlnește cele de mai sus.
Veți avea nevoie să adăugați valori _authenticator la multe URL-uri pentru a preveni erorile write-on-read. Pentru detalii cu privire la modul de a face acest lucru, citiți aici https://pypi.python.org/pypi/plone.protect
Vă recomandăm să testați cu atenție site-urile înainte de a da drumul live la patch.
În timp ce lucrați la efectele patch-ului pe site, vă recomandăm cu tărie să implementați regulile de blocare de mai sus pentru Nginx și Apache.
Echipa de securitate își dă seama că acest patch poate fi dificil de încorporat pe site-urile voastre. Am încercat din greu și am lucrat mult timp la această problemă pentru a face tot ce putem pentru a preveni vulnerabilități CSRF.
Vă rugăm să contactați echipa de securitate la security@plone.org cu sugestiile dumneavoastră pentru îmbunătățirile pe care le-am putea încorpora în patch.
Instalare
Instrucțiunile complete de instalare sunt disponobile pe pagina de lansări de HotFix
ATENȚIE: Instalarea acestui patch necesită rularea de buildout. Alte metode de instalare utilizate cu patch-uri anterioare nu vor funcționa corect și vor avea ca rezultat erori și / sau site-ul va continua să fie vulnerabil.
Ajutor Suplimentar
În cazul în care nu aveți administratori de server interni sau a unui contract de servicii de support pentru site-ul vostru puteți găsi companii de consultanță la plone.com/providers și plone.org/support/network
Există de asemenea suport gratuit disponibil on-line, prin intermediul listelor de mail Plone și canalelor IRC Plone.
Întrebări și răspunsuri
Î. Ce implică aplicarea patch-ului ?
R. Acest patch este pus la dispoziție ca un pachet de Python care trebuie să fie instalat prin editarea unui fișier de configurare buildout și rularea de buildout. Aplicarea patch-ului este în general ușor și rapid de realizat, totuși ar trebui să aveți grijă să testați site-ul dupa aceea.
Î. Cum a fost găsită această vulnerabilitate ?
R. Majoritatea problemelor s-au constatat, ca parte a auditurilor efectuate de echipa de securitate Plone. Un subset a fost raportat de către utilizatori.
Î. Este site-ul meu Plone în primejdie legat de această vulnerabilitate ?
Î. Cum știu dacă site-ul meu a fost exploatat ?
R. Nu există nici un exploit cunoscut în ceea ce privește problemele CSRF care a primit patch-ul.
Î. Cum pot să confirm că patch-ul a fost instalat corect și site-ul meu este protejat ?
R. Asigură-te că pachetul plone4.csrffixes este instalat pe site-ul tău. Puteți vedea că este activ dacă atunci când sunteți conectat veți vedea că link-urile de editare inlcud valori _authenticator în adresa URL
Î. Cum pot raporta alte posibile vulnerabilități de securitate ?
R. Trimiteți mail la echipa de securitate Plone la adresa security@plone.org mai degrabă decât să discutați în mod public problemele potențiale de securitate.
Î. Cum pot aplica patch-ul fără să afectez utilizatorii ?
R. Puteți rula buildout fără afectarea utilizatorilor. Aveți posibilitatea să reporniți o instalare multi-client Plone fără a afecta utilizatorii; vezi http://docs.plone.org/manage/deploying/processes.html
Î. Cum pot obține ajutor pentru a efectua patch-ul pe site ?
R. Furnizorii de servicii Plone sunt listați aici plone.com/providers și aici plone.org/support/network. Există, de asemenea, suport gratuit disponibil on-line, prin intermediul listelor de mail Plone si canalelor IRC Plone.
Î. Cine este în echipa de securitate Plone și cum este finanțată ?
R. Echipa de securitate Plone este formată din voluntari care sunt dezvoltatori familiarizați cu baza de cod Plone și cu exploatările de securitate. Echipa de securitate Plone nu este finanțată; membrii și/sau angajatorii lor își oferă voluntar timpul lor în interesul comunității Plone.
Întrebări generale cu privire la acest anunț, proceduri de aplicare a patch-ului și disponibilitatea de sprijin pot fi adresate pe forumurile de sprijin Plone. Cu toate acestea, dacă aveți întrebări specifice cu privire la această vulnerabilitate evitați să le discutați public: în schimb, contactați echipa Plone de securitate la security@plone.org
Pentru a raporta probleme potențiale legate de securitate, trimiteți un e-mail echipei de securitate la security@plone.org - suntem întotdeauna fericiți să dăm credit persoanelor fizice și companiilor care fac prezentări de informații responsabile.
Informații pentru Vulnerability Database Maintainers
Vom aplica pentru numere CVE pentru aceste probleme. Informații suplimentare cu privire la vulnerabilitățile individuale (inclusiv scoruri CVSS, identificatori CWE și rezumatele) vor fi disponibile în lista completă de vulnerabilități.