Найти в Дзене
Topsite Web

Как выполнить аудит безопасности Drupal?

Оглавление

Аудит безопасности — это процесс выявления угроз безопасности, которые могут привести к несанкционированному доступу к контенту, утечкам данных, обходу безопасности и другим опасностям. В первой части серии о проведении аудита безопасности мы сосредоточимся на обзоре версий модуля Drupal, которые мы используем в Topsite Web для этой цели, а также на библиотеках PHP и JavaScript.

Аудит безопасности Drupal

В Topsite Web мы делаем все возможное, чтобы предлагаемые нами решения были максимально безопасными. Мы используем инструменты, предоставляемые сообществом Drupal, такие как модуль Security Review, для оптимизации процесса обнаружения наиболее популярных ошибок безопасности. Мы также используем Security Kit, чтобы сделать проект, над которым мы работаем, более устойчивым к атакам. Вы можете узнать больше о функциональности этих модулей в связанных сообщениях, а информация об их работе будет полезна в следующих частях, в которых мы поговорим об обзоре конфигурации Drupal и анализе кода.

Проверка версий установленных модулей Drupal

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

Чтобы проверить, обновлены ли модули, перейдите в /admin/reports/updates.

-2

На скриншоте выше видно, что ядро нуждается в обновлении. Конечно, в таких случаях мы всегда рекомендуем обновить всё. Если какой-либо из модулей содержит исправление безопасности, обновление необходимо для обеспечения высокого уровня безопасности для приложения.

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

Обзор патчей

При обновлении модулей Drupal вы также должны проверить, был ли применен патч к данному модулю. Если это так, мы действуем следующим образом:

  1. Мы проверяем, был ли патч создан сообществом и касается ли он конкретной проблемы на drupal.org. Если это так, мы ищем проблему, от которой исходит патч. Возможно, патч был применен к одной из более новых версий модуля. В таком случае мы рекомендуем обновить модуль и удалить патч с информацией о том, что код, который исправляет ошибку или добавляет заданную функциональность, был применен к официальной, более новой версии модуля. Если патч еще не был применен к более новой версии модуля, мы все же рекомендуем обновить и протестировать, соответствует ли последняя версия патча своей цели.
  2. Если патч не был создан сообществом Drupal, но является результатом работы над проектом, мы все же рекомендуем обновить модуль. В этом случае, однако, обеспечение правильной работы патча лежит на лицах, ответственных за пользовательский код проекта. После обновления следует проверить, работает ли патч должным образом. Если нет, мы рекомендуем внести в патч соответствующие исправления, которые обеспечат его корректную работу в последней версии модуля.

Обзор библиотек PHP

Следующим шагом будет обзор используемых библиотек PHP. Чтобы перечислить их, мы можем использовать команду composer show или пакет local-php-security-checker. Мы рекомендуем последнее решение, поскольку оно значительно ускоряет процесс.

Результат команды composer show.
Результат команды composer show.

Если вы решили установить пакет local-php-security-checker, следуйте инструкциям в файле README.md.

Также существует малоизвестный модуль Composer Security Checker Drupal, который использует пакет проверки безопасности. В настоящее время этот модуль не выполняет свою задачу, а сам пакет security-checker активно не разрабатывается (с января 2021 года), поэтому мы сосредоточимся на самом пакете local-php-security-checker. Если вы обнаружите угрозу безопасности, мы, конечно же, порекомендуем обновить библиотеку – как в любом случае. Аудит библиотек PHP должен проводиться регулярно, так же, как и в случае модулей Drupal.

Обзор библиотек JavaScript

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

В случае с каталогом библиотеки вам необходимо проверить версию вручную. В случае package.json мы используем команду npm audit.

Результат команды npm audit
Результат команды npm audit

Команда npm audit выведет список всех известных уязвимостей, определит уровень угрозы, пакет, зависимости, путь к пакету и покажет ссылку с информацией об уязвимости.

-5

Если вы обнаружите уязвимость, как всегда, мы рекомендуем обновление. Сканирование библиотеки JS должно выполняться регулярно, чаще, чем полный аудит безопасности.

Повышение безопасности Drupal - дальнейшие шаги

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

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