Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Sicurezza & WordPress: una check-list per principianti.

466 views

Published on

Come mettere in sicurezza WordPress? WordPress è il CMS più utilizzato al mondo. Il 70% dei siti che utilizzano CMS è fatto con WordPress. Il 30% di tutti i siti della rete sono fatti con WordPress. In rete ci sono circa 75 milioni di siti targati WordPress. Questa diffusione lo rende uno dei bersagli più frequenti. Se non abbiamo un budget per poterci rivolgere ad un professionista (scelta che rimane sempre quella consigliata), attraverso questa check-list per principianti, dotati di un po' di pazienza, tempo e voglia di sperimentare, ci si può proteggere da buona parte degli attacchi più comuni. Per approfondimenti: https://www.giulianogrowler.it/tutorial/wordpress/sicurezza-wordpress-una-check-list-per-principianti/

Published in: Internet
  • Login to see the comments

Sicurezza & WordPress: una check-list per principianti.

  1. 1. WordPress Meetup Brindisi !1 Sicurezza & WordPress Una check-list per principianti per aumentare il livello di sicurezza di un blog/sito in WordPress.
  2. 2. WordPress Meetup Brindisi !2 Chi sono Giuliano Turturici (Growler) @TweetGiuliano www.giulianogrowler.it
  3. 3. WordPress Meetup Brindisi !3 sucuri.net
  4. 4. WordPress Meetup Brindisi !4 WordPress Statistics (marzo 2018) 75 milioni di siti 30% della totalità dei siti 70% dei siti con CMS
  5. 5. WordPress Meetup Brindisi !5 Quando un sito è sicuro?
  6. 6. WordPress Meetup Brindisi !6 MAI!
  7. 7. WordPress Meetup Brindisi !7 Esistono livelli di sicurezza 1 2 3 4 5
  8. 8. WordPress Meetup Brindisi !8 Qual è il migliore?
  9. 9. WordPress Meetup Brindisi !9 Sicurezza: Costo,Tempo,Studio.Costo-Tempo-Studio Livello di sicurezza 1 2 3 4 5
  10. 10. WordPress Meetup Brindisi !10 Esistono livelli attacchi 1 2 3 4 5
  11. 11. WordPress Meetup Brindisi !11 1. numero di utenti iscritti al sito 2. numero di pagine complessive del sito 3. numero di visite del sito 4. posizionamento nelle SERP 5. celebrità/notorietà del sito/proprietario Cosa rende appetibile un sito?
  12. 12. WordPress Meetup Brindisi !12 Sicurezza Vs UsabilitàUsabilitàdelsito Livello di sicurezza 1 2 3 4 5
  13. 13. WordPress Meetup Brindisi !13 Sicurezza Vs Usabilità esempio back-end: Autenticazione a due fattori (SMS)
  14. 14. WordPress Meetup Brindisi !14 Sicurezza Vs Usabilità esempio front-end: Captcha
  15. 15. WordPress Meetup Brindisi !15 Prima di WordPress…
  16. 16. WordPress Meetup Brindisi !16 Prima di WordPress… Sicurezza del nostro dispositivo
  17. 17. WordPress Meetup Brindisi !17 Prima di WordPress… Sicurezza del nostro dispositivo Sicurezza del server
  18. 18. WordPress Meetup Brindisi !18 Prima di WordPress… Sicurezza del nostro dispositivo Sicurezza del server Sicurezza della connessione dispositivo/server
  19. 19. WordPress Meetup Brindisi !19 Prima di WordPress… Sicurezza del nostro dispositivo Sicurezza del server Sicurezza della connessione dispositivo/server Ingegneria sociale
  20. 20. WordPress Meetup Brindisi !20 Vale la legge di Pareto Esiste un 20% di fattori che ci permette di ottenere l’ 80% del risultato
  21. 21. WordPress Meetup Brindisi !21 Vale la legge di Pareto Esiste un 20% di fattori che ci permette di ottenere l’ 80% del risultato 1. SCELTE
  22. 22. WordPress Meetup Brindisi !22 Vale la legge di Pareto Esiste un 20% di fattori che ci permette di ottenere l’ 80% del risultato 1. SCELTE 2. BUONE ABITUDINI
  23. 23. WordPress Meetup Brindisi !23 Vale la legge di Pareto Esiste un 20% di fattori che ci permette di ottenere l’ 80% del risultato 1. SCELTE 2. BUONE ABITUDINI 3. ROBA PER SMANETTONI
  24. 24. WordPress Meetup Brindisi !24 LE SCELTE
  25. 25. WordPress Meetup Brindisi !25 LE SCELTE La scelta dell’Hosting
  26. 26. WordPress Meetup Brindisi !26 LE SCELTE La scelta dell’Hosting La scelta del Tema
  27. 27. WordPress Meetup Brindisi !27 LE SCELTE La scelta dell’Hosting La scelta del Tema La scelta dei Plugin
  28. 28. WordPress Meetup Brindisi !28 Check-list
  29. 29. WordPress Meetup Brindisi !29 #1 Backup Manuale - Plugin - Hosting
  30. 30. WordPress Meetup Brindisi !30 #2 Aggiornamenti
  31. 31. WordPress Meetup Brindisi !31 #2 WordPress SEMPRE aggiornato Mai toccare il core!
  32. 32. WordPress Meetup Brindisi !32 #2 Tema SEMPRE aggiornato Creare sempre un child theme!
  33. 33. WordPress Meetup Brindisi !33 #2 Plugin SEMPRE aggiornati Mai modificare il core dei plugin!
  34. 34. WordPress Meetup Brindisi !34 #3 Eliminare SEMPRE i temi non utilizzati Eliminare SEMPRE i plugin non utilizzati
  35. 35. WordPress Meetup Brindisi !35 #4 Non testare temi e plugin sul sito in produzione!
  36. 36. WordPress Meetup Brindisi !36 #5 Utilizzare un certificato SSL https://… (Let’s Encrypt è gratuito…!)
  37. 37. WordPress Meetup Brindisi !37 #6 Forzare la connessione ssl nel file .htaccess da cPanel da Plugin
  38. 38. WordPress Meetup Brindisi !38 #6 Forzare la connessione ssl http://www.miosito.it http://miosito.it https://miosito.it https://www.miosito.it
  39. 39. WordPress Meetup Brindisi !39 #6 RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.miosito.it/$1 [R=301,L]
  40. 40. WordPress Meetup Brindisi !40 #7 Utilizzare una connessione sftp/SSH
  41. 41. WordPress Meetup Brindisi !41 #8 Security Key • define( 'AUTH_KEY', 't`DK%X:>xy|e-Z(BXb/f(Ur`8#~UzUQG-^_Cs_GHs5U-&Wb?pgn^p8(2@}IcnCa|' ); • define( 'SECURE_AUTH_KEY', 'D&ovlU#|CvJ##uNq}bel+^MFtT&.b9{UvR]g%ixsXhGlRJ7q!h}XWdEC[BOKXssj' ); • define( 'LOGGED_IN_KEY', 'MGKi8Br(&{H*~&0s;{k0<S(O:+f#WM+q|npJ-+P;RDKT:~jrmgj#/-,[hOBk!ry^' ); • define( 'NONCE_KEY', 'FIsAsXJKL5ZlQo)iD-pt??eUbdc{_Cn<4!d~yqz))&B D?AwK%)+)F2aNwI|siOe' ); • define( 'AUTH_SALT', '7T-!^i!0,w)L#JK@pc2{8XE[DenYI^BVf{L:jvF,hf}zBf883td6D;Vcy8,S)-&G' ); • define( 'SECURE_AUTH_SALT', 'I6`V|mDZq21-J|ihb u^q0F }F_NUcy`l,=obGtq*p#Ybe4a31R,r=|n#=]@]c #' ); • define( 'LOGGED_IN_SALT', 'w<$4c$Hmd%/*]`Oom>(hdXW|0M=X={we6;Mpvtg+V.o<$|#_}qG(GaVDEsn,~*4i' ); • define( 'NONCE_SALT', 'a|#h{c5|P &xWs4IZ20c2&%4!c(/uG}W:mAvy<I44`jAbup]t=]V<`}.py(wTP%%' );
  42. 42. WordPress Meetup Brindisi !42 #9 Personalizzare il prefisso delle tabelle del database wp_ wp45635_
  43. 43. WordPress Meetup Brindisi !43 #10 PASSWORD Password di almeno 10/12 caratteri casuali!
  44. 44. WordPress Meetup Brindisi !44 #10 PASSWORD OTTIME DTI5Wg8%CzUZ hLPh3Z$4FaiR UkzYx478x&Kg 12 caratteri casuali PASSWORD BUONE I5Wg8%CzUZ Ph3Z$4FaiR zYx478x&Kg 10 caratteri casuali
  45. 45. WordPress Meetup Brindisi !45 #10 NON SONO PASSWORD! Gloria77 delpiero2010 password 123456 iloveyou admin starwars batman formula1 lupin3 ginevra2013 giovanni1982 matrix90 abcdefg Non usare MAI!
  46. 46. WordPress Meetup Brindisi !46 #10 Ingegneria sociale Passioni-Lavoro-Abitudini-Interessi-Libri-Viaggi- Sport-Fede sportiva-Posti frequentati-Figli- Preferenze-Animali domestici-Politica-Religione- Gruppi-Associazioni
  47. 47. WordPress Meetup Brindisi !47 #11 Creare subito un altro utente come AMMINISTRATORE, fare il login con il nuovo account ed eliminare il primo con ID=1 (oppure assegnargli un ruolo base)
  48. 48. WordPress Meetup Brindisi !48 #12 Creare subito un altro utente come AUTORE ed utilizzare questo come autore degli articoli (L’amministratore NON deve avere articoli pubblicati!)
  49. 49. WordPress Meetup Brindisi !49 #13 Completare i campi dei profili utente Autore e Amministratore con il Nome, Cognome e Nickname e scegliere come nome da visualizzare qualsiasi cosa diversa dal nome utente!
  50. 50. WordPress Meetup Brindisi !50
  51. 51. WordPress Meetup Brindisi !51 #14 Eliminare dal database il nome utente dai permalink sia dell’ AMMINISTRATORE che dell’AUTORE generati in automatico da WordPress.
  52. 52. WordPress Meetup Brindisi !52
  53. 53. WordPress Meetup Brindisi !53 #15 Se si tratta di un blog mono-autore disabilitare l’archivio autore ed il link nella sezione entry-header (meglio anche per la SEO)
  54. 54. WordPress Meetup Brindisi !54 #16 Disabilitare l’enumerazione degli ID autore nel file .htaccess
  55. 55. WordPress Meetup Brindisi !55 #16 www.miosito.it/?author=1 + invio
  56. 56. WordPress Meetup Brindisi !56 #16 www.miosito.it/author/nomeutente
  57. 57. WordPress Meetup Brindisi !57 #16 <IfModule mod_rewrite.c> RewriteCond %{QUERY_STRING} ^author=([0-9]*) RewriteRule .* https://www.miosito.it/? [L,R=301] </IfModule>
  58. 58. WordPress Meetup Brindisi !58 #17 Utilizzare una pw per la directory /wp-admin/
  59. 59. WordPress Meetup Brindisi !59
  60. 60. WordPress Meetup Brindisi !60 #18 Spostare/nascondere la pagina /wp-login.php (Plugin gratuiti sul repository di WordPress)
  61. 61. WordPress Meetup Brindisi !61 #19 Limitare il numero di tentativi di accesso (Plugin gratuiti sul repository di WordPress)
  62. 62. WordPress Meetup Brindisi !62 #20 Abilitare solo 1 indirizzo IP per /wp-login.php <Files wp-login.php> order deny, allow Deny from all Allow from XX.XXX.XXX.XXX </Files>
  63. 63. WordPress Meetup Brindisi !63 #21 Spostare il file /wp-config.php
  64. 64. WordPress Meetup Brindisi !64 #22 Rinominare la directory /wp-content/ define ('WP_CONTENT_FOLDERNAME', 'content'); define ('WP_CONTENT_DIR', ABSPATH . WP_CONTENT_FOLDERNAME); define ('WP_SITEURL', ‘http://miosito.it/'); define ('WP_CONTENT_URL', WP_SITEURL . WP_CONTENT_FOLDERNAME);
  65. 65. WordPress Meetup Brindisi !65 #23 Rinominare la directory /uploads/ define( ’UPLOADS’, ’wp-content/paperino’ );
  66. 66. WordPress Meetup Brindisi !66 #24 Abilitare solo i formati necessari in /uploads/ Order Allow, Deny Deny from all <file “.(jpg|jpeg|pdf|png|gif)$”> Allow from all <Files>
  67. 67. WordPress Meetup Brindisi !67 #25 Spostare la directory dei /plugins/ define( ’WP_PLUGIN_DIR’, dirname(__FILE__).’/blog/wp-content/plugins’ ); define( ’WP_PLUGIN_URL’, ’http://example/blog/wp-content/plugins’ );
  68. 68. WordPress Meetup Brindisi !68 #26 Impedire l’accesso ad alcuni file readme.html license.txt wp-config-sample.php wp-config.php xmlrpc.php
  69. 69. WordPress Meetup Brindisi !69 #26 Impedire l’accesso ad alcuni file <files xmlrpc.html> Order Allow, Deny Deny from all <files>
  70. 70. WordPress Meetup Brindisi !70 GRAZIE!

×