SlideShare a Scribd company logo
Securitatea site-urilor
pe Drupal
Despre mineDespre mine
Nume: Vladimir Melnic
Virsta: 28 ani
Drupal: https://drupal.org/user/1580452, ~2.7 ani
Email: vladimir@wrappy.ws
Interese: PHP, Bash, BD, IT etc.
Sint siteurile pe Drupal securizate?
Drupal. Factori de securitate
●
Drupal core.
●
Module Drupal / cod custom.
●
Server.
●
Utilizator.
OWASP
Open Web Application Security Project
●
A1-Injection
●
A2-Broken Authentication and Session Management
●
A3-Cross-Site Scripting (XSS)
●
A4-Insecure Direct Object References
●
A5-Security Misconfiguration
●
A6-Sensitive Data Exposure
●
A7-Missing Function Level Access Control
●
A8-Cross-Site Request Forgery (CSRF)
●
A9-Using Components with Known Vulnerabilities
●
A10-Unvalidated Redirects and Forwards
https://www.owasp.org
Top 10 2013 cele mai
periculoase vulnerabilitati WEB
A1-Injection (SQL)
Injectarea unei comenzi sau interogari.
db_query('SELECT lid, source FROM {locales_source} WHERE 
lid = ' . $_GET['id'])...
$_GET['id'] = 'DROP TABLE {user}';
db_query('SELECT lid, source FROM {locales_source} WHERE 
lid = :lid', array(':lid' => $_GET['id']))...
A2-Broken Authentication
and Session Management
Drupal implicit este securizat!
●
Conturile utilizatorilori sunt gestionate de Drupal core.
●
Cookie de autorizare nu pot fi schimbate pe partea client.
●
Cookie de autorizare nu contin login sau parola, doar id-ul
sesiunii.
●
Sesiunile si cookie se distrug si se creeaza automat la login,
logout.
●
Cookie au nume unic pentru fiecare site si sunt accesibile in
cadrul domenului.
●
Parolele nu se stocheaza/transmit pe email in format text.
A3-Cross-Site Scripting (XSS)
Nu permieti stocarea codului 'periculos'
●
Validati datele introduse
●
Protejati datele de SQL Injection
●
Definiti tipurile de date
●
Filtrati inserarea datele dupa tip
A4-Insecure Direct Object References
A7-Missing Function Level Access Control
Drupal are un sistem de verificare a accesului la pagini si chiar
la elementele paginii.
● 'access_callback' in hook_menu()
● user_access('administer nodes', $account);
● node_access('edit', $node, $account);
● $select­>add_tag('node_access');
● $form['field_name']['#access'] = TRUE;
A5-Security Misconfiguration
●
Setati parole 'complicate' pentru administrator.
●
Verificati permisiunile 'administer …'.
●
Setati corect filtrele/formatele de introducere a textului.
●
Nu utilizati formatul PHP.
●
Verificat tipul si marimea fisierelor care pot fi incarcate de
utilizatori.
●
Nu folositi FTP pentru incarcarea modulelor.
●
Deconectati afisarea erorilor.
●
Deconectati devel si modulele care nu se folosesc.
●
Utilizati Captcha.
A6-Sensitive Data Exposure
●
Verificati drepturile de inscriere citire a fisierelor.
●
Restrictionati accesul pentru phpMyAdmin.
●
Restrictionati accesul backup-urile bazelor de date.
●
Nu utilizati FTP, utilizati SFTP sau SSH
●
Nu folositi drepturi root pentru MySQL
●
Verificati ca Apache, MySQL si PHP sa fie actualizate la ultima
versiune.
A8-Cross-Site Request Forgery (CSRF)
●
De folosit Form API.
●
Pentru link-uri si AJAX fara Form API de folosit token:
'query' => array('token' => 
drupal_get_token('email_verify_' . $uid));
...
if (empty($_GET['token']) || 
!drupal_valid_token ($_GET['token'], 'email_verify_' . 
$user_id))
A9-Using Components with Known
Vulnerabilities
Verificati codul:
●
Hacked!
●
Coder
●
Secure Code Review
●
Security Review
A10-Unvalidated Redirects
and Forwards
Pentru redirect intern folositi:
drupal_goto() sau $form['#redirect'] 
Deci...
Sint oare siteurile pe Drupal securizate?
Multumesc pentru atentie!
Resurse
● https://www.owasp.org/index.php/About_OWASP
● https://drupal.org/security/secure-configuration
● https://drupal.org/coding-standards
● http://www.slideshare.net/eugef/security-of-drupal-sites
● http://www.slideshare.net/ErwinAMGeirnaert/owasp-top-10-vs
-drupal-owasp-benelux-2012
● http://crackingdrupal.com/blog
● https://drupal.org/project/security_review
● https://drupal.org/project/hacked
● https://drupal.org/project/secure_code_review
● http://drupalscout.com/knowledge-base

More Related Content

Similar to Securitatea sete urilor pe drupal

Sabin Buraga – Vulnerabilitatile aplicatiilor Web
Sabin Buraga – Vulnerabilitatile aplicatiilor WebSabin Buraga – Vulnerabilitatile aplicatiilor Web
Sabin Buraga – Vulnerabilitatile aplicatiilor Web
Sabin Buraga
 
Prezentare USO - Web Application Integration
Prezentare USO - Web Application IntegrationPrezentare USO - Web Application Integration
Prezentare USO - Web Application Integration
mihneasim
 
05 db server_deployment_ro
05 db server_deployment_ro05 db server_deployment_ro
05 db server_deployment_ro
mcroitor
 
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2Diana Tataran
 
Analiza si evolutia vulnerabilitatilor web
Analiza si evolutia vulnerabilitatilor webAnaliza si evolutia vulnerabilitatilor web
Analiza si evolutia vulnerabilitatilor webDefCamp
 
Programare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiProgramare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatii
Sabin Buraga
 
"Open Source and The Technology Learning Curve" by Andrei Pascal @ eLiberatic...
"Open Source and The Technology Learning Curve" by Andrei Pascal @ eLiberatic..."Open Source and The Technology Learning Curve" by Andrei Pascal @ eLiberatic...
"Open Source and The Technology Learning Curve" by Andrei Pascal @ eLiberatic...
eLiberatica
 
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Codecamp Romania
 

Similar to Securitatea sete urilor pe drupal (10)

Sabin Buraga – Vulnerabilitatile aplicatiilor Web
Sabin Buraga – Vulnerabilitatile aplicatiilor WebSabin Buraga – Vulnerabilitatile aplicatiilor Web
Sabin Buraga – Vulnerabilitatile aplicatiilor Web
 
Prezentare USO - Web Application Integration
Prezentare USO - Web Application IntegrationPrezentare USO - Web Application Integration
Prezentare USO - Web Application Integration
 
05 db server_deployment_ro
05 db server_deployment_ro05 db server_deployment_ro
05 db server_deployment_ro
 
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
 
Analiza si evolutia vulnerabilitatilor web
Analiza si evolutia vulnerabilitatilor webAnaliza si evolutia vulnerabilitatilor web
Analiza si evolutia vulnerabilitatilor web
 
Programare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiProgramare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatii
 
Hotel booking Programare Web
Hotel booking Programare WebHotel booking Programare Web
Hotel booking Programare Web
 
"Open Source and The Technology Learning Curve" by Andrei Pascal @ eLiberatic...
"Open Source and The Technology Learning Curve" by Andrei Pascal @ eLiberatic..."Open Source and The Technology Learning Curve" by Andrei Pascal @ eLiberatic...
"Open Source and The Technology Learning Curve" by Andrei Pascal @ eLiberatic...
 
Catalog online
Catalog onlineCatalog online
Catalog online
 
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
 

More from Vladimir Melnic

Linux Containers (LXC)
Linux Containers (LXC)Linux Containers (LXC)
Linux Containers (LXC)
Vladimir Melnic
 
Drupal Global Trainig Day Moldova 2018
Drupal Global Trainig Day Moldova 2018Drupal Global Trainig Day Moldova 2018
Drupal Global Trainig Day Moldova 2018
Vladimir Melnic
 
PGP - confidențialitate in mediul online
PGP - confidențialitate in mediul onlinePGP - confidențialitate in mediul online
PGP - confidențialitate in mediul online
Vladimir Melnic
 
Drupal Winter Day 2017 Workshop
Drupal Winter Day 2017 WorkshopDrupal Winter Day 2017 Workshop
Drupal Winter Day 2017 Workshop
Vladimir Melnic
 
Drupal Winter Day 2017 Workshop - Personal Blog
Drupal Winter Day 2017 Workshop - Personal BlogDrupal Winter Day 2017 Workshop - Personal Blog
Drupal Winter Day 2017 Workshop - Personal Blog
Vladimir Melnic
 
Xdebug as a Drupal debugging tool
Xdebug as a Drupal debugging toolXdebug as a Drupal debugging tool
Xdebug as a Drupal debugging tool
Vladimir Melnic
 

More from Vladimir Melnic (6)

Linux Containers (LXC)
Linux Containers (LXC)Linux Containers (LXC)
Linux Containers (LXC)
 
Drupal Global Trainig Day Moldova 2018
Drupal Global Trainig Day Moldova 2018Drupal Global Trainig Day Moldova 2018
Drupal Global Trainig Day Moldova 2018
 
PGP - confidențialitate in mediul online
PGP - confidențialitate in mediul onlinePGP - confidențialitate in mediul online
PGP - confidențialitate in mediul online
 
Drupal Winter Day 2017 Workshop
Drupal Winter Day 2017 WorkshopDrupal Winter Day 2017 Workshop
Drupal Winter Day 2017 Workshop
 
Drupal Winter Day 2017 Workshop - Personal Blog
Drupal Winter Day 2017 Workshop - Personal BlogDrupal Winter Day 2017 Workshop - Personal Blog
Drupal Winter Day 2017 Workshop - Personal Blog
 
Xdebug as a Drupal debugging tool
Xdebug as a Drupal debugging toolXdebug as a Drupal debugging tool
Xdebug as a Drupal debugging tool
 

Securitatea sete urilor pe drupal

  • 2. Despre mineDespre mine Nume: Vladimir Melnic Virsta: 28 ani Drupal: https://drupal.org/user/1580452, ~2.7 ani Email: vladimir@wrappy.ws Interese: PHP, Bash, BD, IT etc.
  • 3. Sint siteurile pe Drupal securizate?
  • 4. Drupal. Factori de securitate ● Drupal core. ● Module Drupal / cod custom. ● Server. ● Utilizator.
  • 5. OWASP Open Web Application Security Project ● A1-Injection ● A2-Broken Authentication and Session Management ● A3-Cross-Site Scripting (XSS) ● A4-Insecure Direct Object References ● A5-Security Misconfiguration ● A6-Sensitive Data Exposure ● A7-Missing Function Level Access Control ● A8-Cross-Site Request Forgery (CSRF) ● A9-Using Components with Known Vulnerabilities ● A10-Unvalidated Redirects and Forwards https://www.owasp.org
  • 6. Top 10 2013 cele mai periculoase vulnerabilitati WEB
  • 7. A1-Injection (SQL) Injectarea unei comenzi sau interogari. db_query('SELECT lid, source FROM {locales_source} WHERE  lid = ' . $_GET['id'])... $_GET['id'] = 'DROP TABLE {user}'; db_query('SELECT lid, source FROM {locales_source} WHERE  lid = :lid', array(':lid' => $_GET['id']))...
  • 8. A2-Broken Authentication and Session Management Drupal implicit este securizat! ● Conturile utilizatorilori sunt gestionate de Drupal core. ● Cookie de autorizare nu pot fi schimbate pe partea client. ● Cookie de autorizare nu contin login sau parola, doar id-ul sesiunii. ● Sesiunile si cookie se distrug si se creeaza automat la login, logout. ● Cookie au nume unic pentru fiecare site si sunt accesibile in cadrul domenului. ● Parolele nu se stocheaza/transmit pe email in format text.
  • 9. A3-Cross-Site Scripting (XSS) Nu permieti stocarea codului 'periculos' ● Validati datele introduse ● Protejati datele de SQL Injection ● Definiti tipurile de date ● Filtrati inserarea datele dupa tip
  • 10. A4-Insecure Direct Object References A7-Missing Function Level Access Control Drupal are un sistem de verificare a accesului la pagini si chiar la elementele paginii. ● 'access_callback' in hook_menu() ● user_access('administer nodes', $account); ● node_access('edit', $node, $account); ● $select­>add_tag('node_access'); ● $form['field_name']['#access'] = TRUE;
  • 11. A5-Security Misconfiguration ● Setati parole 'complicate' pentru administrator. ● Verificati permisiunile 'administer …'. ● Setati corect filtrele/formatele de introducere a textului. ● Nu utilizati formatul PHP. ● Verificat tipul si marimea fisierelor care pot fi incarcate de utilizatori. ● Nu folositi FTP pentru incarcarea modulelor. ● Deconectati afisarea erorilor. ● Deconectati devel si modulele care nu se folosesc. ● Utilizati Captcha.
  • 12. A6-Sensitive Data Exposure ● Verificati drepturile de inscriere citire a fisierelor. ● Restrictionati accesul pentru phpMyAdmin. ● Restrictionati accesul backup-urile bazelor de date. ● Nu utilizati FTP, utilizati SFTP sau SSH ● Nu folositi drepturi root pentru MySQL ● Verificati ca Apache, MySQL si PHP sa fie actualizate la ultima versiune.
  • 13. A8-Cross-Site Request Forgery (CSRF) ● De folosit Form API. ● Pentru link-uri si AJAX fara Form API de folosit token: 'query' => array('token' =>  drupal_get_token('email_verify_' . $uid)); ... if (empty($_GET['token']) ||  !drupal_valid_token ($_GET['token'], 'email_verify_' .  $user_id))
  • 14. A9-Using Components with Known Vulnerabilities Verificati codul: ● Hacked! ● Coder ● Secure Code Review ● Security Review
  • 15. A10-Unvalidated Redirects and Forwards Pentru redirect intern folositi: drupal_goto() sau $form['#redirect'] 
  • 16. Deci... Sint oare siteurile pe Drupal securizate?
  • 18. Resurse ● https://www.owasp.org/index.php/About_OWASP ● https://drupal.org/security/secure-configuration ● https://drupal.org/coding-standards ● http://www.slideshare.net/eugef/security-of-drupal-sites ● http://www.slideshare.net/ErwinAMGeirnaert/owasp-top-10-vs -drupal-owasp-benelux-2012 ● http://crackingdrupal.com/blog ● https://drupal.org/project/security_review ● https://drupal.org/project/hacked ● https://drupal.org/project/secure_code_review ● http://drupalscout.com/knowledge-base

Editor's Notes

  1. Defecte de injectare, cum ar fi SQL, sistem de operare, precum și injectarea LDAP apar atunci când sunt trimis date compromitaroare la un interpretor ca parte a unei comenzi sau interogare. Datele ostile ale atacatorului pot pacali interpretorul în executare comenzi nedorite sau accesarea de date fără autorizație.
  2. Functii legate de autentificare și de gestionare a sesiunii sunt adesea puse în aplicare în mod incorect, astfe permit atacatorilor să compromită parole, chei, sau token-uri de sesiune, sau de a exploata alte defecte care pot asuma identitatea altor utilizatori.
  3. Defecte XSS apar ori de câte ori o aplicație care contine date compromitatoare le transmite la un browser web, fără validare lor corespunzătoare. XSS permite atacatorilor să execute script-uri în browser-ul victimei, care pot sa deturneze sesiuni de utilizator, șterge site-uri web, sau de a reorienta utilizatorul la site-urile malitioase.
  4. A4 - Un obiect de referință directă se produce atunci când un dezvoltator expune o referință la un obiect de implementare intern, cum ar fi un fișier, director, sau cheie de baze de date. Fără o verificare de control al accesului sau alta protecție, atacatorii pot manipula aceste referințe pentru a accesa date neautorizate. A7 – Verificarea dreuprurilor de access lanivel de functie. În cazul în care cererile de access sau permisiunile nu sunt verificate, atacatorii vor fi capabili sa acceseze funcționalitatea fără autorizație.
  5. Prevede configurațiile securizate definite și implementate pentru: server de aplicatii, server web, server de baze de date, și platformă. Setările sigure ar trebui să fie definite, implementate și menținute, adesea setarile implicite sunt nesigure. În plus, software-ul ar trebui să fie actualizat.
  6. Presupune protejearea în mod corespunzător a datelor sensibile, cum ar fi cardurile de credit, ID-uri de taxe, și chile de autentificare. Atacatorii pot fura sau modifica aceste date slab protejate pentru a efectua fraude de credit card, furt de identitate, sau alte infracțiuni. Datele sensibile merită o protecție suplimentară, cum ar fi criptarea la repaus sau în tranzit, precum și precauții speciale atunci când schimbate cu browser-ul.
  7. Un atac CSRF forțează browserul victimei logate de a trimite o cerere HTTP falsificata, inclusiv cookie de sesiune ale victimei și orice alte informațiile de autentificare incluse în mod automat, pentru o aplicație web vulnerabilă. Aceste lucruri permite atacatorului să forțeze browser-ul victimei de a genera cereri de aplicare vulnerabile care sunt tratate ca cereri legitime din partea victimei.
  8. Componente, cum ar fi librariile și module software, ruleaza aproape întotdeauna cu drepturi depline. Dacă o componentă vulnerabila este exploatata, un astfel de atac poate facilita pierderi de date grave sau preluare de server. Aplicațiile care folosesc componente cu vulnerabilitățile cunoscute ar putea submina apararea aplicatie și permit o serie de posibile atacuri asupra ei.
  9. Presupun validatea redirectionarilor de la o pagina la alta sau la surse externe. Fără validare corespunzătoare, atacatorii pot redirecționa victima la site-uri malware, phishing sau de a folosi pentru a accesa pagini neautorizate.