Приложения, които използват стари имена на хранилища в GitHub като зависимости, всъщност може да водят потребителите към зловреден софтуер. Ето какво трябва да знаете.
Става все по-очевидно, че повторното поемане на GitHub представлява легитимен риск за разработчиците. Хакерите могат да се възползват от потребителите и компаниите, които променят имената си в GitHub, като отвлекат старото хранилище имена с надеждата, че злонамерените файлове, които добавят, могат да бъдат извлечени от приложения, които използват кода като a зависимост.
Следователно е важно да предприемете стъпки за защита на собствения си проект в GitHub, ако наскоро сте променили потребителското си име или сте посочили други хранилища като зависимости.
Какво е RepoJacking?
GitHub repojacking е вид експлойт, който може да се осъществи, след като собственик на хранилище промени потребителското си име. Старото потребителско име и комбинацията от име на хранилище стават достъпни и repojacker може да се възползва от своите зависимости, като поиска потребителското име и създаване на хранилище със същото име.
Repojacking може да представлява два различни вида риск:
- Repojacking може да направи едно иначе надеждно приложение ненадеждно. Ако използвате приложение, което използва хранилище на GitHub като зависимост и собственикът преименува хранилището, използването на приложението ще ви остави уязвими.
- Repojacking може да изложи на риск приложение, което разработвате. Ако посочите хранилище на GitHub като зависимост и не успеете да го забележите или актуализирате, когато хранилището е преименувано, вашето приложение ще бъде уязвимо за експлойтове за повторен достъп.
Repojacking не представлява огромен риск за потребителите, но има основателна причина да се смята, че може да послужи като механизъм за сериозна атака по веригата на доставки. Ако дадено приложение има зависимост, която препраща към repojacked хранилище, то ще извика и получи код от repojackers, който може да съдържа зловреден софтуер.
Ако разработвате на GitHub, знаейки как можете сведете до минимум риска от атаки по веригата на доставки и repojacking - както от гледна точка на отвлеченото хранилище, така и като трета страна със зависимости - е жизненоважно.
Как да сведете до минимум риска от RepoJacking
Repojacking атаките разчитат на изключително предсказуем механизъм: похитителите поемат контрола върху непотърсено хранилище и след това се възползват от всички приложения, които го споменават като зависимост. За щастие, това прави повторното прибиране лесно за борба.
Създайте частни клонинги на хранилища
Клониране на хранилище е отличен начин да сведете до минимум риска, свързан със зависимостите във вашия проект, защото ще имате абсолютен контрол върху личното си копие. Можете да създадете лично копие на публично хранилище чрез голо клониране и огледално натискане, както е документирано на GitHub.
Проследявайте внимателно зависимостите на вашия проект
Ако решите, че бихте предпочели да избегнете неприятностите и да се позовавате на публични хранилища, трябва да се уверите, че често проверявате зависимостите на проекта си. Проверката на състоянието на вашите зависимости няколко пъти в годината ще отнеме най-много по-малко от час — и ще ви спести много стрес.
Преразгледайте преименуването на вашия акаунт
В идеалния случай поддържането на вашето потребителско име актуално не би било причина за безпокойство. Като се има предвид рискът от повторно извличане обаче, трябва да помислите да запазите остарялото си име. Ако трябва да промените потребителското си име, трябва да поискате и запазите старото име, като регистрирате друг акаунт.
Използвайте разумно външните ресурси
Зависимостите представляват присъщ риск, защото създават точки за достъп на трети страни във вашето приложение. Въпреки че обикновено си заслужават времето, което спестяват, редовното одитиране на зависимостите на вашия проект е от решаващо значение. Трябва също да вземете други мерки за сигурност, като например използване на SSH удостоверяване, за да предотвратите експлойти.