Според репортаж на Cybernews, докладвана кампания, изградена около откраднати токени на GitHub и WFX stealer, застрашава приблизително 66 000 хранилища. Твърди се, че атакуващите са използвали откраднати токени за достъп, за да внедрят зловредни workflow файлове, превръщайки pipeline за разработка в начин за събиране на тайни. Наличната информация е кратка, затова тази публикация се придържа към това, което е било заявено, и се фокусира върху практични стъпки, които разработчиците могат да предприемат сега.

Как откраднатите токени позволиха атаката чрез GitHub workflow

Според доклада кампанията е използвала откраднати токени, за да добави workflow-и „WFX stealer“ към около 66 000 хранилища в GitHub. Токенът е идентификационни данни, които позволяват на човек или приложение да действа от името на акаунт, без да въвежда парола. Ако атакуващ притежава валиден токен с достатъчно права, GitHub третира действията му като легитимни.

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

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

Какво може да разкрие WFX stealer от акаунти на разработчици

Докладът описва workflow-ите като крадящи тайни, а предложеният ъгъл отбелязва, че CI/CD pipeline-ите могат да се превърнат в път към тайните и личните акаунти на разработчиците. На практика stealer, който се изпълнява в pipeline, може да бъде позициониран да достигне до всичко, до което този pipeline може да достигне. Типични примери за такъв материал включват:

  • API ключове и облачни идентификационни данни, съхранявани като тайни на хранилището
  • Токени за внедряване и идентификационни данни за регистър на пакети
  • Други GitHub токени, достъпни за workflow-а

Точните данни, които WFX stealer събира, не са потвърдени в информацията, с която разполагаме, затова третирайте списъка по-горе като категории риск, обичайни за тайните в pipeline-и, а не като проверени констатации за тази кампания. По-широката тревога е, че един откраднат токен може да доведе до още откраднати токени. Тайни, събрани от едно хранилище, могат да отключат други услуги и така компрометирането на едно хранилище може да се разпространи в лични и организационни акаунти.

Това се вписва в по-широка тема, която вече сме разглеждали: системи, на които хората трябва да се доверяват, биват обръщани срещу тях. Нашият преглед на това как уязвимост с нулево кликване в Pixel и атаки чрез ScreenConnect срещу MSP доставчици сподели същата тази неудобна нишка и показа колко често довереният инструмент е слабото място.

Как да проверите дали вашите хранилища са били засегнати

Не можем да ви кажем дали конкретно хранилище е в засегнатия списък, а наличният доклад не публикува такъв. Все пак можете сами да потърсите признаци на намеса:

  1. Прегледайте workflow файловете. Отворете папката .github/workflows във всяко хранилище и потърсете файлове, които не разпознавате, или редакции, които не сте правили.
  2. Проверете историята на commit-ите и pull request-ите. Потърсете скорошни commit-и или клонове, които засягат workflow-и, особено от непознати акаунти или в необичайни часове.
  3. Прегледайте логовете от изпълненията на Actions. Неочаквани изпълнения, нови тригери или стъпки, които правят изходящи мрежови заявки, заслужават по-внимателен поглед.
  4. Прегледайте security лога и оторизираните приложения. В настройките на GitHub проверете кои personal access token-и, OAuth приложения и GitHub Apps имат достъп и премахнете всичко, което не използвате.
  5. Приемайте компрометиране, ако откриете нещо. Третирайте всяка тайна, до която този workflow е могъл да има достъп, като компрометирана, и я подменете.

Затягане на сигурността на GitHub: токени, MFA и Actions от трети страни

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

Ротирайте и ограничавайте токените. Отменете старите personal access token-и и издайте нови с най-тесния обхват и най-краткия срок на валидност, които работят. Fine-grained токените, ограничени до конкретни хранилища, са по-безопасни от широкообхватните.

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

Ограничете правата на workflow-ите. Задайте токена на workflow-а по подразбиране като read-only и давайте write достъп само там, където дадена задача наистина се нуждае от него. Изисквайте преглед преди сливане на промени по workflow файлове, например чрез branch protection и code owners.

Проверявайте Actions от трети страни. Заковавайте Actions към конкретен commit вместо към подвижен tag и предпочитайте такива от поддържащи, на които се доверявате. Дръжте тайните далеч от задачи, които не се нуждаят от тях.

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

Ако поддържате дори малък проект в GitHub, вашите workflow файлове са част от вашата повърхност за атака. Откраднат токен може да позволи на някого да добави workflow, който тихо чете вашите тайни, а вие може никога да не видите предупреждение. Индивидуални разработчици, поддържащи на open source проекти и компании с автоматизирани внедрявания са в обхвата.

Добрата новина е, че защитите са под ваш контрол и отнемат малко време. Това също е част от повтарящ се модел, при който атакуващите се насочват към акаунтите и инструментите, на които хората вече се доверяват. Нашето отразяване на твърдението на Incransom за атака срещу TrRAC Inc. е различен тип инцидент, но подчертава колко бързо откраднатият достъп може да се превърне в реални щети.

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

  • Ротирайте GitHub токените си още днес и изтрийте всички, които вече не използвате.
  • Включете MFA на всеки акаунт с достъп до хранилища.
  • Одитирайте файловете си .github/workflows за промени, които не сте правили.
  • Задайте правата на workflow-ите като read-only по подразбиране и заковавайте Actions от трети страни.
  • Ако откриете нещо подозрително, подменете всяка тайна, до която този workflow е могъл да има достъп.

Докладите за откраднати токени на GitHub и WFX stealer все още се развиват и подробностите може да се променят. Не чакайте потвърждение, за да подредите собствената си конфигурация: ротирайте токените, включете MFA и одитирайте workflow-ите си още днес.