Доступ к "скрытым" данным на GitHub: уязвимость Cross Fork Object Reference (CFOR)
GitHub - популярная платформа для хранения и управления кодом, но мало кто задумывается о том, как именно она хранит данные и какие последствия это имеет для безопасности. В этой статье мы рассмотрим уязвимость CFOR (Cross Fork Object Reference), которая позволяет получить доступ к данным, которые, казалось бы, должны быть удалены или скрыты.
CFOR - это возможность доступа к данным из одного форка репозитория через другой, даже если исходный форк был удален или является приватным. Аналогично уязвимости Insecure Direct Object Reference (IDOR), злоумышленник может использовать хэши коммитов для прямого доступа к информации.
Три сценария, демонстрирующие уязвимость CFOR:
Данные из удаленных форков: Даже после удаления форка, данные коммитов, сделанных в нем, остаются доступными через исходный репозиторий, если знать хэш коммита.
Данные из удаленных репозиториев: Если репозиторий был удален, но существуют его форки, данные, закоммиченные после создания форка, все равно доступны через этот форк.
Данные из приватных репозиториев: При публикации ранее приватного репозитория, данные, закоммиченные до момента публикации, могут остаться доступными через публичную версию, несмотря на существование приватного форка.
Как это возможно?
GitHub хранит данные в сети репозиториев. Удаление репозитория или форка не приводит к физическому удалению данных, а лишь к удалению ссылок на них в интерфейсе. Зная хэш коммита, можно получить доступ к этим данным напрямую.
Как найти хэши коммитов?
Хэши коммитов можно найти:
Брутфорсом: GitHub использует короткие SHA-1 хэши, что упрощает перебор.
Через API событий: GitHub предоставляет публичный API событий, который может содержать хэши коммитов, даже для удаленных репозиториев.
В архивах событий: Существуют сторонние сервисы, архивирующие события GitHub.
Последствия:
Данные, закоммиченные в публичный репозиторий, могут остаться доступными навсегда.
Единственный надежный способ защиты от утечки ключей - это их ротация.
Архитектура GitHub сложна для понимания, что делает пользователей уязвимыми.
Важно помнить:
Проблема CFOR актуальна не только для GitHub, но и для других систем контроля версий.
Необходимо тщательно проверять код перед коммитом в публичные репозитории.
Ротация ключей - критически важна для безопасности.
В заключение, уязвимость CFOR демонстрирует, что данные на GitHub могут быть доступны даже после их "удаления". Важно понимать принципы работы системы и принимать меры для защиты конфиденциальной информации.
Подпишись на мой телеграм-канал, там вы найдете полезные сервисы и приложения, которые упростят вам жизнь.


















