Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

66
HARTUJEMY WORDPRESSA Kilka kroków do bezpieczniejszej instalacji. marcin at chwedziak.pl WORDUP WROCŁAW #2 — 27.06.2013 Aktualizacja: 28.01.2015

Transcript of Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Page 1: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

HARTUJEMY  WORDPRESSA

Kilka  kroków  do  bezpieczniejszej  instalacji.

marcin  at  chwedziak.pl

WORDUP  WROCŁAW  #2  —  27.06.2013

Aktualizacja:  28.01.2015

Page 2: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

@*raeth

WORDUP  WROCŁAW  #2  —  27.06.2013

właściwie  to  Marcin  Chwedziak

twiGer.com/Lraethgithub.com/Lraeth

Page 3: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

chwedziak.pl software development

Page 4: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.
Page 5: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

użytkownik  ›  moderator  ›  przyjaciel

Page 6: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

11  czerwca  2013

securitytracker.com

WordPress  Bug  in  'class-­‐phpass.php'  Lets  Remote  Users  Deny  Service

Page 7: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

15  kwietnia  2013

webmonkey.com

WordPress  Hackers  Exploit  Username  "Admin"

Page 8: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

14  kwietnia  2013

phys.org

Admin  Password  Spells  Trouble  In  Recent  WordPress  AGacks

Page 9: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

12  kwietnia  2013

krebsonsecurity.com

Brute  Force  AGacks  Build  WordPress  Botnet

Page 10: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

11  kwietnia  2013

blog.hostgator.com

Global  WordPress  Brute  Force  Flood

Page 11: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Tylko  60%  wszystkich  witryn  WordPressa  jest  zaktualizowana  do  najnowszej  wersji.

dane  własne  w  oparciu  o  pingoma<c.com

Page 12: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Aż  40%  instalacji  WordPressa  korzysta  z  potencjalnie  niebezpiecznych  starszych  wersji.

Jednocześnie…

dane  własne  w  oparciu  o  pingoma<c.com

Page 13: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

W  internecie  jest  około  670  milionów  stron.

June  2013  Web  Server  Survey,  NetcraG  Ltd.

Page 14: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Ponad  67  milionów  (10%)  korzysta  z  WordPressa!

wordpress.com/stats

Page 15: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Każdej  minuty  atakowanych  jest  setki  tysięcy  adresów  IP.

Page 16: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

W  tym  także  ten,  który  kieruje  do  twojego  serwera.

Page 17: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Jak  sobie  radzić?

Page 18: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

KONTROLA PLAN  DZIAŁANIAOGRANICZANIE

Page 19: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

KONTROLA

Ilość  potencjalnych  punktów  wejścia  do  systemu  powinna  być  zredukowana.

Page 20: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Dostęp  do  systemu  plików.

Page 21: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Dostęp  do  systemu  plików.

Używaj  SFTP  lub  FTPS  zamiast  FTP.

Page 22: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

SFTP  (SSH  File  Transfer  Protocol)  pozwala  zamiast  hasła  użyć  klucza  autentykacji.

Google:  SSH  z  kluczem  publicznym

Page 23: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

FTPS  przesyła  nasze  hasło  w  postaci  zaszyfrowanej,  niejawnej.

Zwykłe  połączenie  FTP  pozwala  podejrzeć  nasze  hasło!

Page 24: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Dostęp  do  systemu  plików.

Mądrze  zarządzaj  uprawnieniami  do  plików.

Page 25: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Katalog  główny:  tylko  ty.htaccess  jest  wyjątkiem,  ale…

Page 26: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

/wp-­‐admin/:  tylko  ty

Page 27: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

/wp-­‐includes/:  tylko  ty

Page 28: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

/wp-­‐content/:  ty  oraz  Apache

Page 29: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

/wp-­‐content/themes/:  tyPowinniśmy  wyłączyć  możliwość  edycji  plików  z  poziomu  WP:

define('DISALLOW_FILE_EDIT', true);

Page 30: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

/wp-­‐content/plugins/:  ty

Page 31: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Dostęp  do  systemu  plików.

Przenieś  wp-­‐config.php  jeden  katalog  wyżej…

Page 32: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

<Files wp-config.php> Order allow,deny Deny from All </Files>

…  albo  zablokuj  go  z  użyciem  .htaccess

Page 33: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Dostęp  do  systemu  plików.

Zablokuj  bezpośredni  dostęp  do  plików  PHP.

Page 34: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

# Block the include-only files. RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L]

# BEGIN WordPress

Nie  działa  z  Mul<site!

Page 35: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Dostęp  do  bazy  danych.

Page 36: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Dostęp  do  bazy  danych.

Odseparuj  bazę  danych  WordPressa.

Page 37: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Dostęp  do  bazy  danych.

Zmień  prefiks  tabeli  z  domyślnego  wp_  na  np.  kraken_.

Page 38: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Zmodyfikuj  stałą  w  pliku  wp-­‐config.php.

Nie  zapomnij  zmienić  tabel  w  MySQL!

Page 39: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Dostęp  do  panelu  administracyjnego.

Page 40: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Dostęp  do  panelu  administracyjnego.

Jeśli  używasz  konta  admin  –  zmień  jego  nazwę!

Page 41: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Dostęp  do  panelu  administracyjnego.

Dodaj  BasicAuth  do  /wp-­‐admin/.

Page 42: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Użyj  .htaccess  oraz  .htpasswd…

Page 43: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

<Files admin-ajax.php> Order allow,deny Allow from All Satisfy any </Files>

…i  nie  zapomnij  udostępnić  admin-­‐ajax.php!

Page 44: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Dostęp  do  panelu  administracyjnego.

Użyj  dodatkowych  wtyczek  blokujących  nieudane  logowania.

Page 45: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

OGRANICZANIE

Konfiguracja  systemu  powinna  minimalizować  liczbę  groźnych  operacji  po  uzyskaniu  dostępu.

Page 46: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Zawsze  miej  aktualną  wersję  WordPressa.

Page 47: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

To  samo  dotyczy  wtyczek!  A  jeśli  jakichś  nie  używasz  –  po  prostu  je  usuń.

Page 48: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Wyłącz  możliwość  edycji  plików  z  poziomu  panelu  WordPressa.

Page 49: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Niech  użytkownik  MySQL  ma  dostęp  tylko  do  bazy  z  tabelami  WordPressa.

Page 50: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

define('DISALLOW_UNFILTERED_HTML', true);

Page 51: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

PLAN  DZIAŁANIA

Powinniśmy  być  zawsze  gotowi  na  podjęcie  akcji  po  wystąpieniu  zagrożenia.

Page 52: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Zawsze  bądź  gotów  na  odtworzenie  instalacji.

Page 53: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Dokonuj  regularnych  kopii  bezpieczeństwa.

Page 54: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Zarówno  bazy  danych,  jak  i  plików  WordPressa.

Page 55: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Im  częściej  publikujesz,  tym  częściej  rób  kopie.

Page 56: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Wyłącz  wyświetlanie  błędów  PHP.

Page 57: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

define('WP_DEBUG', false); define('WP_DEBUG_LOG', false); define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors', 0);

Page 58: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Ale  zadbaj  o  ich  zbieranie  w  celach  analizy.

Page 59: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.
Page 60: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

heps://github.com/ryanbagwell/wordpress-­‐sentry

Page 61: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Przeglądaj  dziennik  zdarzeń.

Page 62: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

ModSecurity OSSEC

Monitoring  plików

Monitoring  logów

Page 63: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Działania  prewencyjne  są  bezsprzecznie  kluczowe.

WORDUP  WROCŁAW  #2  —  27.06.2013

Page 64: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Ale  stałe  monitorowanie  witryny  pozwoli  spać  spokojnie.

WORDUP  WROCŁAW  #2  —  27.06.2013

Page 65: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

Pytania?

Page 66: Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.

DZIĘKUJĘ  ZA  UWAGĘ

Hartujemy  WordPressa.  Kilka  kroków  do  bezpieczniejszej  instalacji.

marcin  at  chwedziak.pl

WORDUP  WROCŁAW  #2  —  27.06.2013

Aktualizacja:  28.01.2015