Интервью с Code Risk — бесплатный сервис анализа исходного кода для плагинов WordPress

Опубликовано: 2018-10-17

Хендрик Бухвальд Генеральный директор CodeRisk Уязвимости в плагинах WordPress стали причиной большего количества взломов сайтов, чем уязвимости в ядре WordPress. Одной из причин, почему это происходит, является нехватка ресурсов. Программное обеспечение всегда будет иметь уязвимости, хотя код ядра WordPress проверяется тысячами людей. Кроме того, у фонда есть ресурсы, выделенные для обеспечения максимальной безопасности кода.

С другой стороны, у многих разработчиков плагинов нет ресурсов для обеспечения безопасности кода их плагинов, особенно если это небольшой плагин. Хотя все изменится, как объясняет Хендрик Бухвальд в этом интервью. Хендрик — инженер-программист, исследователь безопасности и соучредитель RIPS Technologies.

Чем занимается RIPS Technologies?

RIPS Technologies — высокотехнологичная компания, базирующаяся в Бохуме, Германия. Мы предоставляем автоматизированный анализ безопасности для PHP-приложений в виде локальной установки программного обеспечения или высокомасштабируемого облачного сервиса. Наши инновационные алгоритмы анализа кода, специально предназначенные для языка PHP, могут выявлять сложные уязвимости безопасности в современных приложениях, как никакое другое решение. Наша миссия — предоставить разработчикам и специалистам по безопасности максимально точный и эффективный анализ безопасности.

Что бы вы назвали наиболее распространенной ошибкой разработчиков безопасности, и какие 3 основные уязвимости вы видите в плагинах WordPress?

Неудивительно, что наиболее распространенными проблемами являются уязвимости межсайтового скриптинга (XSS), которые возникают всякий раз, когда пользовательский ввод печатается без надлежащей очистки на странице ответа HTML. Во-первых, эти проблемы возникают часто, потому что вывод данных является наиболее распространенной операцией PHP-приложений и, следовательно, более подвержен нарушениям безопасности, чем другие операции. И, во-вторых, учитывая разнообразие контекстов HTML и его подводные камни при очистке, эти проблемы легко возникают. Уязвимости межсайтового скриптинга (XSS) довольно серьезны в WordPress, потому что их можно использовать, например, для внедрения PHP-кода через редактор шаблонов. К счастью, они требуют взаимодействия с администратором.

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

Насколько хорошо или плохо, по вашему мнению, общее состояние безопасности 1000 самых популярных/загружаемых плагинов?

На этот вопрос сложно ответить, потому что я подробно не рассматривал 1000 самых популярных плагинов. На выполнение таких операций уйдет много месяцев, и к тому времени, когда мы будем готовы, нам нужно будет начать заново, потому что некоторые плагины обновляются очень часто.

Поэтому важно использовать автоматизированную службу безопасности, такую ​​как Code Risk. Хотя из оценки CodeRisk, которая генерируется в результате автоматизированного и непроверенного сканирования исходного кода, которое мы выполняем в репозитории, я могу сказать, что код большинства из них неплох, хотя есть и плагины с плохой оценкой. Большинство из этих плагинов очень большие и имеют много функций. Это автоматически увеличивает вероятность того, что где-то есть ошибка. Из наших ручных тестов мы также можем сказать, что большие плагины часто имеют логические уязвимости.

Не могли бы вы немного рассказать нам о том, что вы предлагаете разработчикам плагинов WordPress?

Наш последний проект CodeRisk помогает разработчикам и пользователям бесплатно оценить риск безопасности кода их плагина. На данный момент это ограничено плагинами WordPress, размещенными в официальном репозитории WordPress.

Мы автоматически получаем новые плагины из репозитория WordPress и сканируем их с помощью нашего сканера безопасности PHP RIPS. Подробные результаты RIPS объединены в простое для понимания значение риска. Значение учитывает серьезность успешной эксплуатации, количество обнаруженных проблем по отношению к размеру кода и вероятность того, что проблема может быть использована третьей стороной.

Разработчики плагинов могут запросить полные подробные результаты для своих плагинов через автоматизированную систему. Они могут использовать эту информацию, чтобы исправить возможные уязвимости и укрепить свой код, тем самым сделав экосистему WordPress более безопасной. Идея CodeRisk заключается в том, чтобы дать разработчикам плагинов возможность самостоятельно находить проблемы в своем коде, даже если они не разбираются в безопасности. Хотя мы проводим много исследований в области безопасности WordPress и сообщаем разработчикам о многих уязвимостях, существует слишком много плагинов, чтобы анализировать их все вручную.

Много ли разработчиков плагинов подписываются и пользуются вашим бесплатным сервисом анализа исходного кода? Какова реакция сообщества WordPress?

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

Автоматические сканеры, как правило, сообщают о ложных срабатываниях и крайних случаях, которые нельзя использовать. Учитывая, что многие разработчики не разбираются в безопасности, что вы делаете, чтобы помочь им и избежать ложных тревог?

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

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

Как вы видите этот бесплатный проект WordPress? У вас есть планы на это? Может быть, предложить премиальную услугу, чтобы помочь разработчикам понять результаты и извлечь из них максимум?

В следующем выпуске CodeRisk будет добавлена ​​поддержка тем WordPress, поскольку они являются неотъемлемой частью большинства блогов и часто также содержат уязвимости. В какой-то момент мы хотели бы расширить CodeRisk на другие системы управления контентом. В настоящее время нет планов по премиальному сервису, но если на него будет достаточный спрос, это может измениться.

Можете ли вы дать разработчикам WordPress два или три передовых метода безопасной разработки, чтобы они могли писать более безопасный код?

Если вы хотите написать более безопасный код, никогда не доверяйте слепо существующему коду. Всегда предполагайте, что функции могут возвращать пользовательский ввод и обрабатывать их соответствующим образом. Для получения общей информации о том, как писать безопасный код PHP, ознакомьтесь с Руководством по созданию безопасного программного обеспечения PHP за 2018 год.

Посетите веб-сайт CodeRisk для получения дополнительной информации об услуге. А если вы являетесь разработчиком плагинов WordPress и ваш плагин находится в репозитории плагинов WordPress, зарегистрируйте бесплатную учетную запись, чтобы увидеть, какие уязвимости могут быть в вашем плагине.