Всем привет!
В статье описывается принципы работы одной из software supply chain attack – Repo Jacking. Эта атака может привести к значительным последствиям.
При этом реализуется она относительно просто:
🍭 Допустим, что в коде есть зависимость на
https://github.com/username/project
🍭 Представим, что username был изменен владельцем. Пока что все нормально🍭 Но! Освободившийся username можно зарегистрировать «еще раз» и создать такой же «project», но уже с нужным вам содержанием.
В этом случае зависимость, указанная в коде, будет ссылаться не на исходный проект, а на созданный потенциальным злоумышленником.
Помимо описания самой атаки в статье можно найти информацию об условиях, когда она может быть реализована, а также результаты анализа GitHub Repo, потенциально уязвимых к Repo Jacking.
Кстати, подход к идентификации уязвимых Repo доступно описан в статье и весьма интересен -от сбора данных, до поиска unregistered user names!
Что делать и как быть? Все это можно найти внутри 😊 (не использовать прямые ссылки, делать version pinning и использовать lock files, скачивать зависимости и использовать их локально (vendoring)).
P.S. Сама статья от 2020 года. Если интересно что изменилось с тех пор – можно обратиться к этому материалу от 2023.