От: | Sheridan | ||
Дата: | 21.12.18 16:33 | ||
Оценка: | -12 |
В интерфейсе GitHub выявлена интересная особенность, позволяющая представить любое стороннее изменение как изменение, уже включённое в основной проект. Например, сегодня в социальных сетях стала распространяться ссылка на изменение в официальном зеркале основного репозитория ядра Linux, свидетельствующая о подстановке бэкдора в драйвер hid-samsung.
Разбор ситуации показал, что GitHub в целях оптимизации хранения и минимизации дублирования данных хранит вместе все объекты из основного репозитория и связанных с ним форков, логически разделяя принадлежность коммитов. Подобное хранение позволяет просмотреть в любом из связанных репозиторие любой коммит из любого форка, явно указав его хэш в URL.
Например, в случае с демонстрацией бэкдора, один из пользователей создал в интерфейсе GitHub форк основного репозитория ядра Linux, далее добавил в свой форк коммит с кодом, похожим на бэкдор. После чего он сформировал ссылку, в которой SHA1-идентификатор внешего изменения был подставлен в URL основного репозитория. При открытии подобной ссылки посторонний коммит показывается в интерфейсе GitHub в контексте основного репозитория, несмотря на то, что совершён в форке и не имеет к основному репозиторию никакого отношения и в нём подобный коммит отсутствует.