Обеспечение безопасности Drupal: хранение токенов API в Lockr

  1. Настройка сервиса
  2. зависимости
  3. конфигурация
  4. Результат
  5. Экспорт конфигурации MailChimp - раньше
  6. Экспорт конфигурации MailChimp - после
  7. Экспорт ключевого объекта
  8. Key Override Export
  9. Заключение

Как видно из недавнего взлома Uber, хранение таких секретов, как токены API, в вашем репозитории проекта может сделать вашу организацию уязвимой для взлома данных и вымогательства. В этом руководстве демонстрируется простой и эффективный способ уменьшения угрозы такого рода путем использования модуля Key для хранения токенов API в удаленном хранилище ключей.

Даже такие технологические гиганты, как Uber, укушены плохим секретным управлением в своих приложениях. Приведенный ниже фрагмент описывает, как хранение ключей AWS в их хранилище привело к утечке данных, затрагивающей 57 миллионов клиентов и драйверов.

Вот как взломались: два злоумышленника получили доступ к частному сайту кодирования GitHub, который использовался разработчиками программного обеспечения Uber, а затем использовали полученные там учетные данные для доступа к данным, хранящимся в учетной записи веб-служб Amazon, которая выполняла вычислительные задачи для компании. Оттуда хакеры обнаружили архив информации о гонщике и водителе. Позже они отправили Uber по электронной почте с просьбой о выплате денег, сообщает компания.

Uber мог бы избежать этого взлома, сохранив свои ключи API в секретной системе управления. В этом уроке я покажу вам, как сделать это с помощью модуля Key вместе со службой управления ключами Lockr.

В этом руководстве используется совершенно новая функция модуля Key (начиная с версии 8.x-1.5), которая позволяет переопределить любое значение конфигурации секретом. В этом случае мы настроим модуль MailChimp, используя возможность переопределения этой безопасной конфигурации.

Настройка сервиса

Прежде чем приступить к настройке Drupal, вам потребуется несколько учетных записей:

  • Mailchimp предложить план «навсегда бесплатно».
  • Lockr предложите свой первый ключ и 1500 запросов бесплатно.

Эти сторонние сервисы дают нам простой пример. Другие услуги доступны.

зависимости

Есть несколько модулей, которые вам нужно добавить в свою кодовую базу.

композитор требует \ "drupal / key: ^ 1.5" \ "drupal / lockr" \ "drupal / mailchimp"

конфигурация

  1. Перейдите в / admin / modules и включите модули MailChimp, Lockr и Key.
  2. Перейдите в / admin / config / system / lockr
  3. Используйте эту форму для создания сертификата TLS, который Lockr использует для аутентификации вашего сайта. Заполните форму и отправьте.

  4. Введите адрес электронной почты, который вы использовали для своей учетной записи Lockr, и нажмите « Зарегистрироваться» .
  5. Теперь вам нужно будет повторно войти в систему - введите адрес электронной почты и пароль для вашей учетной записи Lockr.
  6. В другой вкладке войдите в панель управления MailChimp
    1. Перейти на страницу настроек API - https://us1.admin.mailchimp.com/account/api/
    2. Нажмите Создать ключ
    3. Запишите этот ключ API, чтобы на следующем шаге мы могли настроить его в Drupal.

  7. На вкладке Drupal перейдите в / admin / config / system / keys и нажмите Add Key
  8. Создайте новую сущность Key для вашего токена MailChimp. Важными значениями здесь являются:
    1. Ключевой провайдер - убедитесь, что вы выбрали Lockr
    2. Значение - вставьте токен API, полученный с панели инструментов MailChimp.

  9. Теперь нам нужно настроить переопределения конфигурации. Перейдите в / admin / config / development / configuration / key-overrides и нажмите Add Override
  10. Заполните эту форму, важные значения здесь:
    1. Тип конфигурации : простая конфигурация
    2. Имя конфигурации : mailchimp.settings
    3. Элемент конфигурации : api_key
    4. Ключ : имя ключа, который вы создали на предыдущем шаге.

... и это так просто.

Результат

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

Экспорт конфигурации MailChimp - раньше

Если вы настроите MailChimp стандартным способом, вы увидите экспорт конфигурации, похожий на этот. Как видите, значение api_key находится в незашифрованном виде - любой, у кого есть доступ к вашей кодовой базе, будет иметь полный доступ к вашей учетной записи MailChimp.

api_key: 03ca2522dd6b117e92410745cd73e58c-us1 cron: false batch_limit: 100 api_classname: Mailchimp \ Mailchimp test_mode: false

Экспорт конфигурации MailChimp - после

При включенной функции переопределения ключей значение api_key в этом файле теперь равно нулю .

api_key: null cron: false batch_limit: 100 api_classname: Mailchimp \ Mailchimp test_mode: false

Есть несколько других соответствующих файлов экспорта конфигурации - давайте посмотрим на них.

Экспорт ключевого объекта

Этот экспорт отвечает за указание Drupal, где модуль Key хранит токен API. Если вы посмотрите на значения key_provider и key_provider_settings , вы увидите, что он указывает на значение, хранящееся в Lockr. По-прежнему не видно ни одного API-токена!

зависимости: модуль: - lockr - идентификатор mailchimp: mailchimp_token label: «токен MailChimp» описание: «токен API, используемый для аутентификации в почтовой маркетинговой платформе MailChimp». key_provider: lockr key_provider_settings: закодировано: aes-128-ctr-sha256 $ nHlAw2BcTCHVTGQ01kDe9psWgItkrZ55qY4xV36BbGo = $ + xgMdEzk6lsDy21h9j…. key_input: text_field

Key Override Export

Конечный экспорт конфигурации - это то, где сущность Key отображается для переопределения элемента конфигурации MailChimp.

status: true зависимости: config: - key.key.mailchimp_token - id mailchimp.settings: метка mailchimp_api_token: маркер «MailChimp API» config_type: system.simple имя_конфигурации: mailchimp.settings config_item: api_key key_id: mailchimp_token

Заключение

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

Внедрив это решение, злоумышленник не может получить контроль над вашей учетной записью MailChimp, просто получив доступ к вашему хранилищу или дампу базы данных. Также помните, что этот точный метод может быть применен к любому модулю, который использует API конфигурации для хранения токенов API.

Зачем? Вот несколько примеров того, как популярные модули Drupal могут нанести вред вашей организации, если их конфиги будут выставлены (расскажите о ваших собственных наихудших сценариях в комментариях!).

  • s3fs - злоумышленник может утечь или удалить все данные, хранящиеся в вашем хранилище. Они также могут увеличить ваш счет AWS, храня или передавая терабайты данных.
  • SMTP - злоумышленник может использовать ваш собственный SMTP-сервер против вас, чтобы отправлять клиентам фишинговые письма с законного адреса электронной почты. Они также могут пропускать любые электронные письма, к которым имеет доступ взломанный аккаунт

Какие другие модули Drupal можно сделать более защищенными таким образом? Опубликуйте свои идеи в комментариях!

Выйдите и создайте безопасные проекты Drupal!

Сообщение от Ник Сантамария
Разработчик системных операций

От 24 ноября 2017 г.

Комментарии

пагинация

Добавить новый комментарий

Зачем?