В GitHub устранена уязвимость, допускающая внедрение кода в любой репозиторий

Проект GitHub уведомил пользователей инциденте, в результате которого произошло неавторизированное внедрение кода в репозитории нескольких проектов, в том числе Ruby On Rails. В настоящее время приведшая к возможности взлома уязвимость уже устранена и начато расследование возможных последствий атаки. В настоящее время все факты свидетельствуют о том, что атака была лишь демонстрацией новой уязвимости, проведённой в открытую одним из исследователей безопасности.

Проблема была выявлена и продемонстрирована Егором Хомяковым из Санкт-Петербурга. Уязвимость вызвана особенностью обработки массового присваивания данных форм в популярном web-фреймворке Ruby on Rails и может наблюдаться в различных приложениях, не ограничиваясь GitHub. Использовав брешь в Rails стало возможным внесение изменений и отправка данных в репозиторий любого проекта GitHub, без наличия явных полномочий на выполнение данных операций. За два дня до инцидента Егор оставил уведомление о найденной им уязвимости для разработчиков проекта Ruby on Rails, но это уведомление было закрыто с комментарием, что ошибка находится в зоне ответственности конечных разработчиков приложений на Ruby on Rails. Тогда Егор решил продемонстрировать эту уязвимость в действии и внёс изменения в первичный репозиторий проекта Ruby on Rails, размещённый на GitHub.

Для привлечения внимания разработчиков Егор сначала создал уведомление о проблеме, установив дату создания, смещенную на 1001 лет в будущее. После чего он добавил свой публичный ключ в список коммитеров проекта Ruby on Rails и выполнил коммит в мастер-репозиторий этого проекта. После того как GitHub устранил уязвимость Егор Хомяков опубликовал в своём блоге подробный рассказ с описанием метода атаки.

Представители GitHub сообщили, что проект инициировал проведение полного аудита используемого кода. В своем сообщении они признали, что Хомяков сообщил им об этой уязвимости двумя днями ранее, но потом без предупреждения осуществил внедрение своего публичного ключа и демонстрационную атаку. «После проведенного анализа действий Хомякова, никакой зловредной активности с его стороны не обнаружено» – сообщил GitHub. По сообщению GitHub, заблокированный после инцидента аккаунт Хомякова теперь восстановлен (Хомяков уже подтвердил это).

Проблема, известная как уязвимость массового присвоения появилась в Rails с тех пор, как была добавлена возможность устанавливать сразу несколько атрибутов в рамках одного вызова. Эта проблема детально описана в официальном руководстве Rails Security Guide, в том числе, там описано и как с ней бороться, но, к сожалению, функциональность необходимая для этого, по-умолчанию отключена в стандартной инсталляции Ruby on Rails. И хотя в данном конкретном случае эта проблема в GitHub уже устранена, множество Rails-приложений по всему миру по-прежнему подвержены этой уязвимости.

Коварность ситуации в том, что эта уязвимость не только хорошо известна, но и в том, что бороться с ней часто нет никакой технической возможности при неправильной выполненной установке. Хорошая новость заключается в том, что после столь демонстративного взлома, разработчики Rails внесли коммит, активирующий белый список атрибутов в стандартной установке Ruby on Rails по-умолчанию, что даёт возможность бороться с этой уязвимостью. Всем текущим пользователем Ruby on Rails разработчики рекомендуют незамедлительно провести аудит их кода, чтобы убедиться в том, что их система не была скомпрометирована сторонними лицами.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.