Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Как обезопасить PBN от
взлома? Практические
рекомендации
Дмитрий Сандомирский
Есть ли проблема?! Для кого
актуально ?
● Если у вас больше 5 PBN
● Если у вас конкурентная тематика
● Если у PBN есть хорошие позиции
● Если у вас нет времени постоянно
проверять ваши PBN
Кому будет интересна инфа?
● Кто имеет небольшие сетки до 300 сайтов
● Кто планирует делать PBN для себя
● Кто имеет свой сайт
Не подойдет для компаний которые делают PBN на потоке!
Они и так все знают ;)
Проблеми безопасности WP ?
● Темы
● Плагины
● Wordpress
● Веб мастер
Основные методы взлома
● XML RPC - возможность передавать данные, с HTTP
выступающим в качестве транспорта и XML – для
кодирования
● Брутфорс - подбор имени и пароля методом перебора
● Небезопасные темы и плагины
● Известные уязвимости в устаревшем ПО
● Уязвимости в ПО хостинга
● бэкдоры, фишинг, xss-атаки, sql-инъекции и тд
Отключаем XML RPC
● Wp-config.php
add_filter('xmlrpc_enabled', '__return_false');
● .htaccess
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
Брутфорс - азы!
● Логин
Плохой: admin, название сайта, тематика, имя, имя
автора
Хороший: слова без ассоциаций вместе с цифрами и
символами
Пример хорошого: bnB#BH324hJkj
● Пароль
Плохой: password, название сайта, тематика, имя,
просто текст или цифры, короткий
Пример хорошого: bh*YF^VIV&^YVIY7v8uyv&Fv
● Не ставить один логин и пароль на разные сайты!
Программные методы
● Меняем урл админки
● Ставим капчу
● Двойная авторизация через .htpass
● Ограничение количество попиток входа плагином,
например Login LockDown
● Подключаем cloudflare
● Убрать подсказку о неверном введение пароля
function no_wordpress_errors(){ return 'Может хватит ломать админку?' ;}
add_filter( 'login_errors' , 'no_wordpress_errors' );
Небезопасные темы и плагины
● Nulled themes
● Nulled plugins
Риски
1. Бекдори
2. Явные линки и закодированные в Base64
Заключение: только проверенные источники!
Известные уязвимости в
устаревшем ПО
● Wordpress версии
● Плагини и теми
И как же с этим бороться?
Wordpress уязвимость в ее версии!
1. Версия указана в метатеге generator и в тегах <link>
remove_action( 'wp_head', 'wp_generator' );
remove_action( 'wp_head', 'wlwmanifest_link' );
2. в файле readme.html
Удаляем или запрещаем доступ с помощью .htaccess
3. в файле ru_RU.po по адресу /wp-content/languages/
Запрещаем доступ с помощью .htaccess
Всегда обновляемся до последней версии!
Старые версии плагинов и тем
1. Обновляем все!
2. Удаляем то что не используем Скрываем файлы тем и
плагинов от индексации inurl:/wp-content/- раскроет данние о ваших
плагинах и темах
User-Agent: *
Disallow: /cgi-bin
Disallow: /wp-login.php
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/
Disallow: /wp-content/
plugins/
Disallow: /wp-content/
themes/
Disallow: /?author=*
Allow: /
в файле robots.txt не рекомендуется размещать ссылки на директории,
которые были созданы специально для хранения чувствительной
информации
.htaccess - полезные функции
1. RewriteCond %{QUERY_STRING} base64_encode[^(]*([^)]*) [OR] - заблокирует ссылки,
содержащие кодировку Base64
2. RewriteCond %{QUERY_STRING} (&lt;|%3C)([^s]*s)+cript.*(&gt;|%3E) [NC,OR] - Избавиться от
ссылок, содержащих тег <script>
3. RewriteCond %{QUERY_STRING} GLOBALS (=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST (=|[|%[0-9A-Z]{0,2}) - противодействует скриптам,
пытающимся установить глобальные переменные или изменить переменную _REQUEST
через URL
4. RewriteCond %{query_string} concat.*( [NC,OR]
RewriteCond %{query_string} union.*select.*( [NC,OR]
RewriteCond %{query_string} union.*all.*select [NC]
RewriteRule ^(.*)$ index.php [F,L] - Для противодействия SQL-инъекциям блокируем
запросы к URL, содержащие определенные ключевые слова
.htaccess - полезные функции
5. SetEnvIf user-agent «Indy Library» stayout=1
SetEnvIf user-agent «libwww-perl» stayout=1
SetEnvIf user-agent «Wget» stayout=1
deny from env=stayout - блокирует определенные user-agent популярных хакерских
програм
6. Options -Indexes - закрывает список файлов и папок
7. <files .htaccess>
order allow,deny
deny from all
</files> - закрываем доступ к файлу htaccess. Таким же методом закрываем доступ к
уязвимы файлам
wp-config.php, содержит имя БД, имя пользователя, пароль и префикс таблиц;
readme.html и ru_RU.po, которые содержат версию WordPress;
install.php.
Разрешаем доступ для конкретных ip
создаем файл .htaccess в папке wp-admin
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Access Control"
AuthType Basic
order deny,allow
deny from all
allow from 178.178.178.178 # IP 1
allow from 248.248.248.248 # IP 2
Перенос сайта на html
Подходит не всем, но достаточно эффективный метод защиты
+ Минимум кода, нечего ломать
+ Бистрие сайти
+ Меньше весят
+ Стабильная работа
- Сложно следить
- Сложно заливать новий контент
- Много манипуляций для простановки простой ссылки, если
переделываем WP сайты
Общие рекомендации
1. Не сохраняйте пароли в браузере
2. Не используйте гугл докс для паролей
3. Используйте хороший хостинг (в идеале хороший сервер +
проксирование)
4. Если плохой хостинг, частично поможет cloudflare
(осторожно футпринт)
Спасибо за внимание!
Дмитрий Сандомирский
facebook.com/dmytro.sandomirskyi

More Related Content

Как обезопасить PBN от взлома? Практические рекомендации

  • 1. Как обезопасить PBN от взлома? Практические рекомендации Дмитрий Сандомирский
  • 2. Есть ли проблема?! Для кого актуально ? ● Если у вас больше 5 PBN ● Если у вас конкурентная тематика ● Если у PBN есть хорошие позиции ● Если у вас нет времени постоянно проверять ваши PBN
  • 3. Кому будет интересна инфа? ● Кто имеет небольшие сетки до 300 сайтов ● Кто планирует делать PBN для себя ● Кто имеет свой сайт Не подойдет для компаний которые делают PBN на потоке! Они и так все знают ;)
  • 4. Проблеми безопасности WP ? ● Темы ● Плагины ● Wordpress ● Веб мастер
  • 5. Основные методы взлома ● XML RPC - возможность передавать данные, с HTTP выступающим в качестве транспорта и XML – для кодирования ● Брутфорс - подбор имени и пароля методом перебора ● Небезопасные темы и плагины ● Известные уязвимости в устаревшем ПО ● Уязвимости в ПО хостинга ● бэкдоры, фишинг, xss-атаки, sql-инъекции и тд
  • 6. Отключаем XML RPC ● Wp-config.php add_filter('xmlrpc_enabled', '__return_false'); ● .htaccess <Files xmlrpc.php> Order Allow,Deny Deny from all </Files>
  • 7. Брутфорс - азы! ● Логин Плохой: admin, название сайта, тематика, имя, имя автора Хороший: слова без ассоциаций вместе с цифрами и символами Пример хорошого: bnB#BH324hJkj ● Пароль Плохой: password, название сайта, тематика, имя, просто текст или цифры, короткий Пример хорошого: bh*YF^VIV&^YVIY7v8uyv&Fv ● Не ставить один логин и пароль на разные сайты!
  • 8. Программные методы ● Меняем урл админки ● Ставим капчу ● Двойная авторизация через .htpass ● Ограничение количество попиток входа плагином, например Login LockDown ● Подключаем cloudflare ● Убрать подсказку о неверном введение пароля function no_wordpress_errors(){ return 'Может хватит ломать админку?' ;} add_filter( 'login_errors' , 'no_wordpress_errors' );
  • 9. Небезопасные темы и плагины ● Nulled themes ● Nulled plugins Риски 1. Бекдори 2. Явные линки и закодированные в Base64 Заключение: только проверенные источники!
  • 10. Известные уязвимости в устаревшем ПО ● Wordpress версии ● Плагини и теми И как же с этим бороться?
  • 11. Wordpress уязвимость в ее версии! 1. Версия указана в метатеге generator и в тегах <link> remove_action( 'wp_head', 'wp_generator' ); remove_action( 'wp_head', 'wlwmanifest_link' ); 2. в файле readme.html Удаляем или запрещаем доступ с помощью .htaccess 3. в файле ru_RU.po по адресу /wp-content/languages/ Запрещаем доступ с помощью .htaccess Всегда обновляемся до последней версии!
  • 12. Старые версии плагинов и тем 1. Обновляем все! 2. Удаляем то что не используем Скрываем файлы тем и плагинов от индексации inurl:/wp-content/- раскроет данние о ваших плагинах и темах User-Agent: * Disallow: /cgi-bin Disallow: /wp-login.php Disallow: /wp-admin/ Disallow: /wp-includes/ Disallow: /wp-content/ Disallow: /wp-content/ plugins/ Disallow: /wp-content/ themes/ Disallow: /?author=* Allow: / в файле robots.txt не рекомендуется размещать ссылки на директории, которые были созданы специально для хранения чувствительной информации
  • 13. .htaccess - полезные функции 1. RewriteCond %{QUERY_STRING} base64_encode[^(]*([^)]*) [OR] - заблокирует ссылки, содержащие кодировку Base64 2. RewriteCond %{QUERY_STRING} (&lt;|%3C)([^s]*s)+cript.*(&gt;|%3E) [NC,OR] - Избавиться от ссылок, содержащих тег <script> 3. RewriteCond %{QUERY_STRING} GLOBALS (=|[|%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST (=|[|%[0-9A-Z]{0,2}) - противодействует скриптам, пытающимся установить глобальные переменные или изменить переменную _REQUEST через URL 4. RewriteCond %{query_string} concat.*( [NC,OR] RewriteCond %{query_string} union.*select.*( [NC,OR] RewriteCond %{query_string} union.*all.*select [NC] RewriteRule ^(.*)$ index.php [F,L] - Для противодействия SQL-инъекциям блокируем запросы к URL, содержащие определенные ключевые слова
  • 14. .htaccess - полезные функции 5. SetEnvIf user-agent «Indy Library» stayout=1 SetEnvIf user-agent «libwww-perl» stayout=1 SetEnvIf user-agent «Wget» stayout=1 deny from env=stayout - блокирует определенные user-agent популярных хакерских програм 6. Options -Indexes - закрывает список файлов и папок 7. <files .htaccess> order allow,deny deny from all </files> - закрываем доступ к файлу htaccess. Таким же методом закрываем доступ к уязвимы файлам wp-config.php, содержит имя БД, имя пользователя, пароль и префикс таблиц; readme.html и ru_RU.po, которые содержат версию WordPress; install.php.
  • 15. Разрешаем доступ для конкретных ip создаем файл .htaccess в папке wp-admin AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "Access Control" AuthType Basic order deny,allow deny from all allow from 178.178.178.178 # IP 1 allow from 248.248.248.248 # IP 2
  • 16. Перенос сайта на html Подходит не всем, но достаточно эффективный метод защиты + Минимум кода, нечего ломать + Бистрие сайти + Меньше весят + Стабильная работа - Сложно следить - Сложно заливать новий контент - Много манипуляций для простановки простой ссылки, если переделываем WP сайты
  • 17. Общие рекомендации 1. Не сохраняйте пароли в браузере 2. Не используйте гугл докс для паролей 3. Используйте хороший хостинг (в идеале хороший сервер + проксирование) 4. Если плохой хостинг, частично поможет cloudflare (осторожно футпринт)
  • 18. Спасибо за внимание! Дмитрий Сандомирский facebook.com/dmytro.sandomirskyi