Hartujemy WordPressa. Kilka kroków do bezpieczniejszej instalacji.
-
Upload
marcin-chwedziak -
Category
Internet
-
view
84 -
download
2
Transcript of 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
@*raeth
WORDUP WROCŁAW #2 — 27.06.2013
właściwie to Marcin Chwedziak
twiGer.com/Lraethgithub.com/Lraeth
chwedziak.pl software development
użytkownik › moderator › przyjaciel
11 czerwca 2013
securitytracker.com
WordPress Bug in 'class-‐phpass.php' Lets Remote Users Deny Service
15 kwietnia 2013
webmonkey.com
WordPress Hackers Exploit Username "Admin"
14 kwietnia 2013
phys.org
Admin Password Spells Trouble In Recent WordPress AGacks
12 kwietnia 2013
krebsonsecurity.com
Brute Force AGacks Build WordPress Botnet
11 kwietnia 2013
blog.hostgator.com
Global WordPress Brute Force Flood
Tylko 60% wszystkich witryn WordPressa jest zaktualizowana do najnowszej wersji.
dane własne w oparciu o pingoma<c.com
Aż 40% instalacji WordPressa korzysta z potencjalnie niebezpiecznych starszych wersji.
Jednocześnie…
dane własne w oparciu o pingoma<c.com
W internecie jest około 670 milionów stron.
June 2013 Web Server Survey, NetcraG Ltd.
Ponad 67 milionów (10%) korzysta z WordPressa!
wordpress.com/stats
Każdej minuty atakowanych jest setki tysięcy adresów IP.
W tym także ten, który kieruje do twojego serwera.
Jak sobie radzić?
KONTROLA PLAN DZIAŁANIAOGRANICZANIE
KONTROLA
Ilość potencjalnych punktów wejścia do systemu powinna być zredukowana.
Dostęp do systemu plików.
Dostęp do systemu plików.
Używaj SFTP lub FTPS zamiast FTP.
SFTP (SSH File Transfer Protocol) pozwala zamiast hasła użyć klucza autentykacji.
Google: SSH z kluczem publicznym
FTPS przesyła nasze hasło w postaci zaszyfrowanej, niejawnej.
Zwykłe połączenie FTP pozwala podejrzeć nasze hasło!
Dostęp do systemu plików.
Mądrze zarządzaj uprawnieniami do plików.
Katalog główny: tylko ty.htaccess jest wyjątkiem, ale…
/wp-‐admin/: tylko ty
/wp-‐includes/: tylko ty
/wp-‐content/: ty oraz Apache
/wp-‐content/themes/: tyPowinniśmy wyłączyć możliwość edycji plików z poziomu WP:
define('DISALLOW_FILE_EDIT', true);
/wp-‐content/plugins/: ty
Dostęp do systemu plików.
Przenieś wp-‐config.php jeden katalog wyżej…
<Files wp-config.php> Order allow,deny Deny from All </Files>
… albo zablokuj go z użyciem .htaccess
Dostęp do systemu plików.
Zablokuj bezpośredni dostęp do plików PHP.
# 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!
Dostęp do bazy danych.
Dostęp do bazy danych.
Odseparuj bazę danych WordPressa.
Dostęp do bazy danych.
Zmień prefiks tabeli z domyślnego wp_ na np. kraken_.
Zmodyfikuj stałą w pliku wp-‐config.php.
Nie zapomnij zmienić tabel w MySQL!
Dostęp do panelu administracyjnego.
Dostęp do panelu administracyjnego.
Jeśli używasz konta admin – zmień jego nazwę!
Dostęp do panelu administracyjnego.
Dodaj BasicAuth do /wp-‐admin/.
Użyj .htaccess oraz .htpasswd…
<Files admin-ajax.php> Order allow,deny Allow from All Satisfy any </Files>
…i nie zapomnij udostępnić admin-‐ajax.php!
Dostęp do panelu administracyjnego.
Użyj dodatkowych wtyczek blokujących nieudane logowania.
OGRANICZANIE
Konfiguracja systemu powinna minimalizować liczbę groźnych operacji po uzyskaniu dostępu.
Zawsze miej aktualną wersję WordPressa.
To samo dotyczy wtyczek! A jeśli jakichś nie używasz – po prostu je usuń.
Wyłącz możliwość edycji plików z poziomu panelu WordPressa.
Niech użytkownik MySQL ma dostęp tylko do bazy z tabelami WordPressa.
define('DISALLOW_UNFILTERED_HTML', true);
PLAN DZIAŁANIA
Powinniśmy być zawsze gotowi na podjęcie akcji po wystąpieniu zagrożenia.
Zawsze bądź gotów na odtworzenie instalacji.
Dokonuj regularnych kopii bezpieczeństwa.
Zarówno bazy danych, jak i plików WordPressa.
Im częściej publikujesz, tym częściej rób kopie.
Wyłącz wyświetlanie błędów PHP.
define('WP_DEBUG', false); define('WP_DEBUG_LOG', false); define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors', 0);
Ale zadbaj o ich zbieranie w celach analizy.
heps://github.com/ryanbagwell/wordpress-‐sentry
Przeglądaj dziennik zdarzeń.
ModSecurity OSSEC
Monitoring plików
Monitoring logów
Działania prewencyjne są bezsprzecznie kluczowe.
WORDUP WROCŁAW #2 — 27.06.2013
Ale stałe monitorowanie witryny pozwoli spać spokojnie.
WORDUP WROCŁAW #2 — 27.06.2013
Pytania?
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