3 800 хранилища на GitHub откраднати след атака с злонамерено разширение за VS Code

Компрометиран инструмент за разработчици доведе до едно от най-забележителните пробиви на хранилища в скорошната памет. GitHub в момента разследва инцидент по сигурността, при който злонамерено разширение за Visual Studio Code зарази устройството на служител, което в крайна сметка доведе до ексфилтрация на приблизително 3 800 вътрешни хранилища. Откраднатият код впоследствие беше предложен за продажба в киберпрестъпнически форум от група заплашители, наричаща себе си TeamPCP. За екипите по сигурността и разработчиците, които разчитат на вътрешни хранилища, инцидентът е остро напомняне, че сигурността на устройствата на разработчиците и рискът от пробив в хранилищата на код са неделими проблеми.

Как злонамерено разширение за VS Code компрометира служител на GitHub

Visual Studio Code се превърна в доминиращия редактор в професионалната разработка на софтуер, а неговият пазар за разширения е огромен. Повечето разработчици се отнасят към разширенията по същия начин, по който се отнасят към мобилните приложения: инсталирай, довери се и продължи нататък. Именно това допускане е това, което нападателите експлоатират.

При този инцидент служител на GitHub е инсталирал изглежда троянизирано разширение за VS Code. Веднъж инсталирано, злонамереното разширение е имало достъп до същата среда като разработчика: файловата им система, идентификационните данни, кеширани в IDE, активните токени за удостоверяване и потенциално всички мрежови връзки, поддържани от устройството. От тази единствена точка на влизане нападателят е успял да достигне до вътрешните хранилища на GitHub и да извлече значителен обем от собствен код.

Това не е теоретичен вектор на атака. Злонамерените пакети и разширения представляват нарастващ проблем в екосистемите за разработчици — от npm и PyPI до магазините за разширения на браузъри. Пазарът за разширения на VS Code, макар и голям и широко използван, исторически разчита на автоматизирано сканиране, което усъвършенствани заплашители могат да заобиколят чрез забавено доставяне на полезен товар или обфускация.

Какво беше откраднато и какво разкрива обявата за продажба на TeamPCP

Според наличната информация, приблизително 3 800 вътрешни хранилища на GitHub са ексфилтрирани по време на инцидента. TeamPCP, групата, поемаща отговорност, впоследствие е публикувала този материал в киберпрестъпнически форум, което предполага, че мотивацията е финансова, а не шпионска.

Мащабът на обявата е забележителен. Вътрешните хранилища на компания като GitHub могат да съдържат собствени инструменти, вътрешен инфраструктурен код, логика по сигурността и интеграции с други услуги на Microsoft. Дори ако никакви клиентски данни не са пряко включени, вътрешният код може да разкрие архитектурни предположения, потоци на удостоверяване и системни граници, които усъвършенствани нападатели могат да използват за планиране на последващи прониквания.

Самата обява за продажба сигнализира и нещо важно: пробивът не е бил незабавно ограничен, преди нападателят да е имал достатъчно време да ексфилтрира, организира и предложи откраднатия материал за продажба. Тази последователност предполага, че първоначалният компромис е имал значително време на присъствие, или поне, че ексфилтрацията е протекла достатъчно бързо, за да приключи преди засичане и ограничаване.

Защо крайните точки на разработчиците са най-слабото звено в сигурността на хранилищата

Корпоративните организации обикновено инвестират значително в периметърна сигурност, мрежов мониторинг и контроли за достъп около производствените системи. Това, което нерядко получава по-малко внимание, е самата крайна точка на разработчика — лаптопът или работната станция, която инженерът по софтуер използва всеки ден за писане, тестване и изпращане на код.

Устройствата на разработчиците са ценни цели именно заради достъпа, който носят. Една единствена удостоверена сесия на разработчик може да достигне до вътрешни хранилища, CI/CD конвейери, системи за управление на тайни и конзоли на облачна инфраструктура. Компрометирането на това едно устройство на практика дава на нападателя предварително удостоверен пропуск през много нива на корпоративна сигурност.

Атаките чрез верига за доставки, базирани на разширения и пакети, са особено опасни в този контекст, защото се сливат с нормалното поведение на разработчиците. Инсталирането на нов инструмент е рутинно. Разработчиците не са обучени да третират всяко разширение за IDE като потенциален вектор на заплаха по начина, по който екипите по сигурността третират непознати изпълними файлове. Тази празнина в нагласата е нещо, което групи заплашители като TeamPCP активно експлоатират.

Този инцидент отеква по-широк модел: нападателите вече не се опитват да пробият директно защитните стени. Те компрометират доверените човешки крайни точки, които вече имат легитимен достъп.

Многопластова защита: VPN мрежи, нулево доверие и MFA за защита на достъпа до вътрешен код

Нито един единствен контрол не предотвратява тази категория атаки, но многопластовата защита може значително да намали радиуса на поражение при компрометиране на устройство.

Мрежовият достъп с нулево доверие е най-подходящата архитектурна промяна тук. При модела с нулево доверие доверието към устройството се оценява непрекъснато, а не се приема за даденост. Дори ако нападателят разполага с валиден сесиен токен, аномалното поведение (като масово клониране на хранилища в необичайни часове) може да задейства повторно удостоверяване или автоматично прекратяване на сесията. Съчетаването на нулево доверие с надеждно засичане на крайни точки дава на екипите по сигурността видимост върху това кои процеси извършват мрежови извиквания, включително неоторизирани разширения.

Многофакторното удостоверяване с хардуерно обвързани ключове добавя допълнителна бариера. MFA, устойчиво на фишинг (FIDO2/passkeys), гарантира, че дори напълно компрометирано устройство не може да се удостовери безшумно за нови сесии без физическо взаимодействие от страна на потребителя.

VPN мрежите играят специфична и нерядко подценявана роля в този стек. Когато разработчиците получават отдалечен достъп до вътрешни системи, насочването на този трафик през VPN с проверен поверителен режим и строги практики без регистрация намалява риска от прихващане на сесии и ограничава видимостта на мрежово ниво, достъпна за нападател, частично компрометирал устройство или мрежов път. За инженерни екипи, оценяващи опциите, Mullvad заслужава внимание: не изисква имейл адрес при регистрация, използва анонимни номера на акаунти, а твърдението му за липса на регистрации е потвърдено при реални условия, когато шведската полиция е извършила обиск и не е намерила нищо за иззема. Приложенията му са напълно с отворен код, което е съществено свойство за екипи, ориентирани към разработчиците, които искат да одитират това, което изпълняват.

За екипи, приоритизиращи независимо одитирана инфраструктура, Private Internet Access е доказал твърденията си за липса на регистрации в федерални съдебни производства и поддържа напълно приложения с отворен код, подкрепени от одити на трети страни.

Освен VPN мрежите, организациите трябва също да прилагат списъци с разрешени разширения за инструменти за разработчици, да изискват подписване на код или организационно одобрение преди инсталиране на разширения за IDE на корпоративни устройства и да поддържат подробни одиторски журнали на моделите за достъп до хранилища, за да засичат масова ексфилтрация навреме.

Какво означава това за вас

Ако сте разработчик или член на инженерен екип, осъществяващ отдалечен достъп до вътрешни хранилища, този инцидент е пряк сигнал да прегледате позицията на крайната си точка.

Практически изводи:

  • Одитирайте всяко разширение за VS Code, инсталирано в момента на работната ви машина. Премахнете всичко, което не сте инсталирали умишлено или вече не използвате активно.
  • Третирайте разширенията за IDE със същия скептицизъм, който бихте приложили при инсталиране на непознати изпълними файлове. Проверявайте верификацията на издателя и броя на рецензиите преди инсталиране.
  • Застъпвайте се вашата организация да внедри списъци с разрешени разширения на управляваните устройства на разработчиците.
  • Уверете се, че достъпът ви до вътрешни хранилища е покрит от MFA, устойчиво на фишинг, а не само от парола плюс SMS.
  • Ако екипът ви осъществява достъп до вътрешни системи през обществени или неконтролирани мрежи, добавете VPN с проверен поверителен режим като един слой от стек за отдалечен достъп с нулево доверие.
  • Работете с екипа си по сигурността за установяване на базови сигнали за масов достъп до хранилища или необичайно поведение при клониране.

Инцидентът с GitHub все още е под разследване и пълният обхват на достъпеното може да не стане публично известен за известно време. Това, което вече е ясно, е, че крайните точки на разработчиците представляват високоценна, слабо защитена повърхност в повечето организации. Преодоляването на тази празнина не изисква пълна инфраструктурна реорганизация. Започва с третирането на работната станция на разработчика като самостоятелен периметър по сигурността.