Zero-day ранливост во VS Code им овозможува на хакери да крадат GitHub токени со еден клик

Безбедносен истражувач објави експлоит-код за zero-day ранливост во Visual Studio Code (VS Code) која им овозможува на напаѓачите да украдат GitHub токени за автентикација со тоа што ќе ги измамат корисниците да кликнат на злонамерен линк.

Microsoft класифицира одреден софтверски пропуст како zero-day кога тој е јавно објавен и/или активно се злоупотребува, а сè уште не постои официјална безбедносна закрпа (patch).

Како што објасни истражувачот Амар Аскар во блог-објава објавена во вторникот, оваа ранливост во VS Code им овозможува на напаѓачите да инсталираат злонамерни екстензии кои крадат GitHub OAuth токени кога тие се пренесуваат до github.dev — веб-базираната верзија на VS Code што се користи за работа со GitHub репозиториуми.

Нападот ја злоупотребува sandbox-средината на VS Code и неговиот механизам за размена на пораки (message-passing system) помеѓу веб-компонентите и главниот едитор.

Како функционира нападот?

Истражувачот објави и proof-of-concept (PoC) експлоит кој користи злонамерен JavaScript код извршен во webview-компонента.

Со помош на овој код напаѓачот може:

  • Да симулира притискање на копчиња во главниот VS Code едитор.
  • Да инсталира злонамерна екстензија без знаење на корисникот.
  • Да го извлече GitHub OAuth токенот што се испраќа до github.dev.
  • Да ја користи GitHub API за да ги идентификува сите приватни репозиториуми до кои жртвата има пристап.

„Оваа функционалност се постигнува така што github.com испраќа OAuth токен до github.dev, кој му овозможува да комуницира со GitHub во име на корисникот“, објасни Аскар.

„Токенот не е ограничен само на конкретниот репозиториум со кој корисникот работел, што значи дека има целосен пристап до сите други репозиториуми до кои корисникот има пристап.“

Зошто е ова опасно?

Доколку напаѓачот успее да го украде OAuth токенот, тој потенцијално може:

  • Да пристапи до приватни GitHub репозиториуми.
  • Да прегледува или презема изворен код.
  • Да собира чувствителни информации складирани во проектите.
  • Да компромитира развојни и корпоративни околини.
  • Да извршува активности во име на жртвата преку GitHub API.

Моментална состојба

Во моментот:

  • Ранливоста сè уште не е закрпена.
  • Не ѝ е доделен CVE идентификатор.
  • Јавно е објавен proof-of-concept експлоит.

Како да се заштитат корисниците?

Додека не биде објавена официјална закрпа, корисниците на VS Code можат да го намалат ризикот со бришење на колачињата (cookies) и локалните податоци за github.dev во нивниот веб-прелистувач.

Постапката е следна:

  1. Отворете github.dev.
  2. Кликнете на иконата Settings (Поставки) во лентата за адреса.
  3. Изберете Cookies and site data.
  4. Отворете Manage on-device site data.
  5. Избришете ги податоците поврзани со github.dev.

Со ова, при обид за злоупотреба на ранливоста, корисникот ќе добие предупредување:

„The extension ‘GitHub Repositories’ wants to sign in using GitHub.“

Ова предупредување може да помогне навремено да се препознае и блокира потенцијален напад.


Почетен дијалог за најавување на github.dev

Аскар изјави дека го известил GitHub само еден час пред јавно да ја објави ранливоста. Тој нагласи дека се одлучил за целосно јавно објавување поради претходно негативно искуство со процесот за безбедносни пријави на Microsoft, каде што претходно пријавена ранливост во VS Code била тивко поправена без да му се додели признание или да се признае нејзиното безбедносно влијание.

„Тоа беше главно од љубезност кон GitHub, бидејќи намерата беше целосно јавно објавување. Во моето претходно искуство со пријавување на ранливости во github.dev, ми кажуваа дека проблемот не е во нивен домен и дека треба да го пријавам до MSRC. Како што објаснив во текстот, навистина не сакам повторно да се занимавам со MSRC кога станува збор за VS Code ранливости“, изјави тој.

„Накратко, последниот пат кога комуницирав со MSRC околу пријавување на VS Code ранливост беше многу лошо искуство. Тие тивко го поправија проблемот на кој укажав без никакво признание или заслуга. Дополнително, го означија како проблем без безбедноско влијание.“

„Како што спомнав и тогаш, отсега ќе ги објавувам јавно сите безбедносни пропусти што ќе ги пронајдам во VS Code.“

Нов бран на zero-day ранливости во производите на Microsoft

Овој случај доаѓа по серијата zero-day ранливости во различни производи на Microsoft кои беа објавени од анонимен безбедносен истражувач познат под псевдонимот Nightmare Eclipse. И тој јавно изрази незадоволство од начинот на кој Microsoft Security Response Center (MSRC) управува со процесот на пријавување и откривање на ранливости.

Во изминатите неколку месеци, Nightmare Eclipse ги објави следните zero-day пропусти:

  • BlueHammer – ранливост за ескалација на привилегии.
  • RedSun – ранливост за ескалација на привилегии.
  • GreenPlasma – ранливост за ескалација на привилегии.
  • MiniPlasma – ранливост за ескалација на привилегии.
  • YellowKey – zero-day ранливост во Windows BitLocker која овозможува пристап до заштитени дискови.
  • UnDefend – ранливост што може да се искористи за блокирање на ажурирањата на дефинициите за Microsoft Defender.

Според извештаите, BlueHammer и RedSun веќе се злоупотребуваат во реални напади.

Реакцијата на Microsoft

Првично, Microsoft реагираше на објавувањето на zero-day ранливостите од Nightmare Eclipse со предупредувања за можни правни мерки.

Подоцна компанијата објави порака на социјалните мрежи во која наведува дека:

„Ќе соработуваме со органите за спроведување на законот кога тоа е соодветно, доколку поединец го прекрши законот и се впушти во злонамерни активности што предизвикуваат реална штета за нашите корисници.“

Во меѓувреме, BleepingComputer побара официјален коментар од Microsoft во врска со новообјавената VS Code zero-day ранливост од страна на Аскар, но одговор не беше веднаш достапен.

Извори:

  • Bleeping Computer – VS Code zero-day lets hackers steal GitHub tokens in one click Bleeping Computer