В сеть утекли исходные коды GitHub и GitHub Enterprise

4 ноября 2020 года в репозитории github/dmca, где публикуются сообщения о нарушениях авторских прав, были размещены исходные коды GitHub.com и GitHub Enterprise. Исходники были выложены с сообщением: «felt cute, might put gh source code on dmca repo now idk» пользователем под ником nat, который пересекается с учётной записью Нэта Фридмана, гендиректора GitHub. Добавленные изменения уже удалены, но остались в архиве, сообщает OpenNet.

Оставить комментарий

Вероятно, код был присоединён к официальному репозиторию github/dmca при помощи техники, позволяющей представить любое стороннее изменение как уже включённое в другой проект. GitHub в целях оптимизации и исключения дубликатов хранит вместе все объекты из основного репозитория и форков, логически разделяя принадлежность коммитов. Это позволяет просмотреть в основном репозитории любой коммит из любого форка, указав его хэш в URL. Например, можно создать форк github/dmca и добавить в него любой код, и этот код станет доступен по прямой хэш-ссылке в репозитории github/dmca.

Размещённый код является копией исходных текстов, извлечённых из образа виртуальной машины с GitHub Еnterprise, вариантом GitHub для предприятий, позволяющем развернуть окружение для совместной разработки внутри корпоративной сети.

Нэт Фридман подтвердил, что опубликованный код получен не в результате взлома, а извлечён из образа с GitHub Enterprise. По словам Фридмэна, несколько месяцев назад по ошибке некоторым клиентам был передан образ GitHub Enterprise, содержащий tar-архив с необфусцированными и неочищенными (с файлами конфигурации, docker-файлами и сборочными сценариями) исходными текстами GitHub Enterprise Server (код поставлялся и до этого, но в урезанном и нечитаемом виде). GitHub Enterprise имеет общую кодовую базу с github.com. Коммит от имени Фридман фиктивный и не был подписан: подписанные коммиты снабжаются меткой «verified», а через неподписанные любой может легко выдать себя за другого в своей локальной копии Git и затем загрузить новый репозиторий на GitHub.


Читать на dev.by