Атака, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ GitHub Copilot для извлСчСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Legit Security Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ Π°Ρ‚Π°ΠΊΠΈ Π½Π° GitHub Copilot, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ содСрТимоС ΠΈΠ· ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² ΠΏΡ€ΠΈ использовании Ρ‡Π°Ρ‚Π±ΠΎΡ‚Π° для Π°Π½Π°Π»ΠΈΠ·Π° присылаСмых pull-запросов. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° продСмонстрирована Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ опрСдСлСния Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ для доступа ΠΊ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΌΡƒ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡŽ AWS.

Атака основываСтся Π½Π° способности GitHub Copilot Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ внСшниС изобраТСния Π² зависимости ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ содСрТимого ΠΈ возмоТности ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² pull-запросы скрытыС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π²ΠΈΠ΄Π½Ρ‹ Π² интСрфСйсС GitHub, Π½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ Ρ‡Π°Ρ‚Π±ΠΎΡ‚ΠΎΠΌ. Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ Π½Π° своём сСрвСрС создаёт Π½Π°Π±ΠΎΡ€ ΠΎΠ΄Π½ΠΎΠΏΠΈΠΊΡΠ΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ спСцсимволу, Ρ†ΠΈΡ„Ρ€Π΅ ΠΈΠ»ΠΈ Π±ΡƒΠΊΠ²Π΅ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°. Π”Π°Π»Π΅Π΅ ΠΆΠ΅Ρ€Ρ‚Π²Π΅ отправляСтся pull-запрос, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ измСнСния указываСтся скрытый ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ с инструкциСй для Ρ‡Π°Ρ‚Π±ΠΎΡ‚Π°, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΉ Π² Π±Π»ΠΎΠΊΠ΅ Β«<!β€” ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ β€”>Β», Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ тСкста Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Markdown.

Π’ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π±ΠΎΡ‚Ρƒ прСдлагаСтся Π½Π°ΠΉΡ‚ΠΈ Π²ΠΎ всСх рСпозиториях ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅, строки с ΠΊΠΎΠ΄ΠΎΠΌ, содСрТащим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«AWS_KEYΒ». НайдСнныС строки прСдписываСтся вывСсти Π½Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ тСкстом, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π° основС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ β€” ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ ΠΈΠ· тСкста слСдуСт ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ. Π’Π°Π±Π»ΠΈΡ†Π° для сопоставлСния символов ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ приводится Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ задания Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ рассуТдСния ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ.

 Атака, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ GitHub Copilot для извлСчСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²

ΠŸΡ€ΠΈ использовании мэйнтСйнСром GitHub Copilot для Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ pull-запроса, Ρ‡Π°Ρ‚Π±ΠΎΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ скрытоС Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Π΅ мэйнтСйнСр Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ, Π° Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ смоТСт Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ содСрТимоС Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… строк с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ AWS ΠΏΡƒΡ‚Ρ‘ΠΌ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ Π² Π»ΠΎΠ³Π΅ web-сСрвСра.

Для ΠΎΠ±Ρ…ΠΎΠ΄Π° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ CSP (Content Security Policy), Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π΅ΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π² GitHub Copilot ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с сСрвСров GitHub, Π² качСствС прокси задСйствован сСрвис GitHub Camo. Π”Π°Π½Π½Ρ‹ΠΉ прокси ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² GitHub ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ Π·Π²Π΅Π½ΠΎ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, встраиваСмых Π½Π° страницу README. Для задСйствования Camo Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ сопоставлСния символов ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ прямыС ссылки, Π° ссылки Π½Π° сам прокси, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ Β«https://camo.githubusercontent.com/Ρ…ΡΡˆ_ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈΒ». Π”ΠΎ этого Ρ‡Π΅Ρ€Π΅Π· GitHub REST API Π² Camo Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈ Π·Π°Π²Π΅Ρ€ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡƒΡ‚ΠΈ для пСрСнаправлСния Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Компания GitHub ΡƒΠΆΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π»Π° описанный ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°Ρ‚Π°ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡ€Π΅Ρ‚ отрисовки ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Ρ‡Π°Ρ‚Π΅ с Copilot.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ