- PVSM.RU - https://www.pvsm.ru -

Нейтрализация последствий Heartbleed в Drupal 7

Наверняка все знают, что 8 апреля 2014 Сотрудники The OpenSSL Project выпустили бюллетень безопасности, в котором сообщается о критической уязвимости CVE-2014-0160 в популярной криптографической библиотеке OpenSSL.
Подробнее об этой уязвимости уже писали на хабре [1], а тут мы рассмотрим как обезопасить свой Drupal сайт.

Проверить подвержен ли ваш сайт уязвимости можно с помощью данного сервиса — http://filippo.io/Heartbleed/ [2] (либо по вкусу — http://possible.lv/tools/hb/ [3] или http://www.ssllabs.com/ssltest/ [4]).
Т.к. уязвимость касается SSL, то проверять необходимо только HTTPS хосты.

Если вам не повезло и уязвимость есть, то в первую очередь необходимо обновить [5] библиотеку OpenSSL, либо обратиться в поддержку в случае арендуемого хостинга [6].

Далее рассмотрим пункты, которые я бы рекомендовал выполнить всем, независимо от предыдущего теста, так как к моменту вашей проверки, уязвимость уже могла быть закрыта, а узнать была ли она эксплуатирована нельзя.

Сменить SSL сертификаты

Необходимо сменить SSL сертификаты на основе нового закрытого ключа и отозвать старые сертификаты.
Эти пункты довольно таки специфичные. И зависят от того, где вы покупали сертификаты.

Заменить значения приватных переменных

  • Обновление drupal_private_key
    с помощью hook_update()

    function your_module_update_X() {
      variable_set('drupal_private_key', drupal_random_key());
    }
    

    либо drush-командой

    drush eval “variable_set('drupal_private_key', drupal_random_key());”
    

  • Обновление drupal_hash_salt
    с помощью hook_update()

    function your_module_update_X() {
      variable_set('drupal_hash_salt', drupal_hash_base64(drupal_random_bytes(55)));
    }
    

    либо drush-командой

    drush eval “variable_set('drupal_hash_salt', drupal_hash_base64(drupal_random_bytes(55)));”
    

Заменить закрытый ключ SSО-аунтентификации

Если вы используете SSO-аунтентификацию, то вам необходимо заменить свой приватный ключ. Например в случаем с модулем Bakery [7], замену ключа можно произвести на странице настроек модуля.

Удалить активные сессии

Для этого есть три способа:

  • Модуль Session expire [8]
  • sql-запрос в терминале БД или phpmyadmin:
    TRUNCATE TABLE sessions
    
  • drush команда:
    drush sqlq 'TRUNCATE TABLE sessions'
    

Учтите, все пользователи сайта окажутся не авторизованными.

Сбросить пароли пользователям с широкими правами доступа (а лучше всем пользователям)

Тут можно посоветовать следующее:

  • уведомить пользователей о необходимости смены пароля, и надеяться на их сознательность
  • насильно сменить пароли пользователям, с соответствующим уведомлением по почте. Для этого может помочь модуль Mass Password Reset [9]
  • если предыдущий вариант по вашему мнению слишком испугает пользователей, можно воспользоваться модулем Password policy [10]. С его помощью можно сделать все пароли “просроченными”, а это значит при следующей авторизации пароль будет необходимо сменить. Вообще этот модуль рекомендую использовать всегда. Он входит в список модулей рекомендованных Аквоей для повышения безопасности сайта.

На этом вроде бы всё.

Автор: IRuslan

Источник [11]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/drupal/59194

Ссылки в тексте:

[1] хабре: http://habrahabr.ru/post/218609/

[2] http://filippo.io/Heartbleed/: http://filippo.io/Heartbleed/

[3] http://possible.lv/tools/hb/: http://possible.lv/tools/hb/

[4] http://www.ssllabs.com/ssltest/: http://www.ssllabs.com/ssltest/

[5] обновить: http://habrahabr.ru/post/218713/

[6] хостинга: https://www.reg.ru/?rlink=reflink-717

[7] Bakery: https://drupal.org/project/bakery

[8] Session expire: https://drupal.org/project/session_expire

[9] Mass Password Reset: https://drupal.org/project/mass_pwreset

[10] Password policy: https://drupal.org/project/password_policy

[11] Источник: http://habrahabr.ru/post/220013/