Редакторът на код и средата за разработка Visual Studio Code (VS Code) на Microsoft съдържа недостатък, който позволява на злонамерени разширения да извличат токени за удостоверяване, съхранявани в мениджъри на удостоверения за Windows, Linux и macOS.
Тези токени се използват за интегриране с различни услуги и API на трети страни, като Git, GitHub и други платформи за кодиране, така че кражбата им може да има значителни последици за сигурността на данните на компрометираната организация, като може да доведе до неоторизиран достъп до системата, нарушаване на сигурността на данните и др.
Недостатъкът е открит от изследователи на Cycode, които са го докладвали на Microsoft заедно с разработената от тях работеща концепция за доказване на съществуването (PoC). Въпреки това технологичният гигант реши да не отстранява проблема, тъй като не се очаква разширенията да бъдат изолирани от останалата част от средата.
Проблемът със сигурността, открит от Cycode, се дължи на липсата на изолация на удостоверителните знаци в „Secret Storage“ на VS Code – API, който позволява на разширенията да съхраняват удостоверителни знаци в операционната система.
Това се прави с помощта на Keytar, обвивката на VS Code за комуникация с мениджъра на удостоверенията на Windows (в Windows), ключодържателя (в macOS) или ключодържателя (за Linux).
Това означава, че всяко разширение, работещо във VS Code, дори злонамерено, може да получи достъп до тайното хранилище и да злоупотреби с Keytar, за да извлече всички съхранени токени.
Изследователят на Cycode Алекс Илгаев заяви, че освен вградената автентикация на GitHub и Microsoft, всички запазени удостоверения от използването на разширения на трети страни.
„Освен вградената автентикация на Github/Microsoft, всички запазени токени във VSCode идват от разширения“, каза Илгаев . „Те са дефинирани или от официални разширения (от Microsoft), като Git, Azure, Docker/Kubernetes и т.н., или от разширения на трети страни, като CircleCI, GitLab, AWS.“
След като откриват проблема, изследователите на Cycode започват да експериментират, като създават злонамерено разширение за кражба на токени за CircleCI – популярна платформа за кодиране с разширения VS Code. Те са направили това, като са модифицирали разширението на CircleCI, за да изпълни команда, която да разкрие защитения му токен и дори да го изпрати направо на сървъра на изследователя.
Постепенно те разработили по-универсален метод за атака, за да извлекат тези тайни, без да се намесват в кода на целевото разширение.
Ключът към този процес беше откриването на факта, че всяко разширение на VS Code е оторизирано за достъп до ключодържателя, тъй като се изпълнява от приложение, на което операционната система вече е предоставила достъп до ключодържателя.
„Разработихме доказателство за концепцията за злонамерено разширение, което успешно извличаше токени не само от други разширения, но и от вградената във VS Code функционалност за влизане и синхронизиране на акаунти в GitHub и Microsoft, представяйки атака „кражба на токени“.“ – заявиха от Cycode.
След това изтеглените токени трябваше да бъдат декриптирани и Cycode установи, че алгоритъмът, използван за криптиране на токените, е AES-256-GCM, който обикновено е безопасен. Въпреки това ключът, използван за криптиране на токените, е получен от пътя на текущия изпълним файл и идентификатора на машината, което улеснява пресъздаването на ключа.
Извлечените токени бяха декриптирани от персонализиран JS скрипт, стартиран в изпълнимия файл Electron на VS Code, който дешифрира и отпечатва всички пароли на локално инсталираните разширения.
Вторият недостатък, открит от изследователите на Cycode, се състои в това, че функцията „getFullKey“ извлича тайни по зададен „extensionId“, който се получава от името и издателя на разширението.
Този проблем позволява на всеки да модифицира тези полета и да измами VS Code да му предостави достъп до защитените токени на друго разширение.
Cycode тества това с помощта на PoC разширение, което отново имитира CircleCI; те обаче отбелязват, че възпроизвеждането на всяко друго разширение и получаването на достъп до тайните му би било тривиално.
От Cycode заявяват, че са разкрили проблема пред Microsoft преди два месеца, като дори са демонстрирали своето PoC разширение и способността му да краде съхранени токени за разширения.
Независимо от това инженерите на Microsoft не са сметнали това за проблем на сигурността и са решили да запазят съществуващия дизайн на рамката за управление на съхранението на тайните на VS Code.
Инфографики и базова информация: Cycode
АБОНИРАЙТЕ СЕ ЗА НАШИЯ Е-БЮЛЕТИН И ПОЛУЧАВАЙТЕ НОВИНИ И СЪВЕТИ НА ТЕМА КИБЕРСИГУРНОСТ.
© 2022 Фондация “Киберсигурност за Всеки” с ЕИК 206932045. Всички права запазени. Политики за поверителност.
ж.к. Гео Милев бл. 117, вх.А
София 1113, България
support[@]e-security.bg
Фондация “Киберсигурност за Всеки” с ЕИК 206932045 е ЮЛНЦ в обществена полза, регистрирано в ЕС, работещо в съответствие с мисията и целите си.
Моля, имайте предвид, че всички споменати продукти и/или имена на компании са търговски марки ™ или ® на съответните им притежатели. Уебсайтът/фондацията няма никаква свързаност и/или одобрение за/от тях – тези търговски марки се използват само за образователни цели като примери. Настоящият уебсайт е онлайн информационна платформа, управлявана от доброволна фондация в обществена полза. Благодарим ви, че сте тук и за всякакви допълнителни въпроси, не се колебайте да се свържете с нас.
Мисията на Фондация “Киберсигурност за Всеки” е да допринесе за подобряване на киберсигурността, информационна сигурност и защита на системите и да повиши културата на обществото и организациите по тези и свързани с тях теми. Ние насърчаване безопасността и поверителността на потребителите, като повишаваме осведомеността, информираме за най-добрите и нови практики и помагаме на хора и организации да преодолеят съвременните предизвикателства за сигурността на мрежата и опазването на техните дигиталните активи.
На посоченият от Вас e-mail е изпратено съобщение за потвърждаване на абонамента.
Моля, проверете електронната си поща за да потвърдите.