Проблемът с акредитивите за 39 милиона
Докладът на GitHub от октомври 2024 г. документира 39 милиона тайни, изтекли на GitHub през годината — 25% годишно увеличение от 2023 г. Тези тайни включват API ключове, низове за връзка с базата данни, токени за удостоверяване, частни сертификати и идентификационни данни на доставчик на облак.
Източникът на тези течове е добре документиран: разработчиците ангажират код, който съдържа тайни - или случайно (конфигурация за отстраняване на грешки, оставена в ангажимент) или чрез неадекватно управление на тайните (твърдо кодирани идентификационни данни вместо променливи на средата). Мащабът от 39 милиона отразява както растежа на GitHub като платформа за разработка, така и устойчивостта на несигурни практики за разработка в мащаб.
Това, което данните от Octoverse не улавят напълно, е свързан и нарастващ вектор на изтичане: Взаимодействия на асистента за кодиране на AI. Когато разработчиците поставят код в Claude, ChatGPT или други инструменти за кодиране на AI за отстраняване на грешки, преглед или помощ при оптимизиране, кодът, който поставят, често съдържа същите идентификационни данни, които се озовават в тайни течове на GitHub — низове за свързване към базата данни, API ключове, URL адреси на вътрешни услуги и токени за удостоверяване.
Как използването на AI от разработчиците създава излагане на идентификационни данни
Проучване на GitGuardian от 2025 г. установи, че 67% от разработчиците случайно са разкрили тайни в кода. Моделите на поведение, които създават тайни течове на GitHub, са същите модели на поведение, които създават излагане на идентификационни данни на AI инструмента — но векторът на AI инструмента е по-малко видим и по-труден за откриване след факта.
Разработчик, който отстранява грешки при проблем с производствената връзка, поставя проследяване на стека, което включва низа за връзка с базата данни, използван в съобщението за грешка. AI моделът обработва низа за свързване, потенциално го съхранява в историята на разговорите и го предава на сървърите на доставчика на AI. Идентификационните данни вече са извън контрола на разработчика.
Разработчик, който иска помощ за оптимизиране на тръбопровод за данни, поставя кода на тръбопровода, включително името на контейнера S3, ключа за достъп AWS и секретния ключ, използван за удостоверяване. AI моделът получава тези идентификационни данни като част от законна помощ при кодиране.
Разработчик, който иска преглед на кода, поставя внедряване на API интеграция, което включва партньорския API ключ. Заявката за преглед съдържа идентификационни данни за активна продукция.
Във всеки случай намерението на разработчика е легитимно — те се нуждаят от помощ при технически проблем. Излагането на идентификационни данни е случайна последица от включването на контекст за отстраняване на грешки. Моделът отразява точно как тайните попадат в GitHub: не злонамерено разкриване, а случайно включване.
Тенденцията за изтичане на тръбопроводи за CI/CD
Идентификационната информация на разработчиците и тайните течове в CI/CD тръбопроводи са се увеличили с 34% през 2024 г., според данни от проследяване. Източникът е подобен: скриптовете за изграждане, конфигурациите за внедряване и файловете за инфраструктура като код все повече се преглеждат с инструменти за изкуствен интелект. Тези файлове рутинно съдържат препратки към променливи на средата, идентификационни данни на доставчик на облак и токени на акаунт за услуга.
С нарастването на приемането на AI инструмента в работните потоци за разработка — разработчиците използват AI за преглед на код, документиране, отстраняване на грешки и оптимизиране през целия жизнен цикъл на разработка — площта за случайно излагане на идентификационни данни нараства пропорционално.
Архитектурното решение на MCP
За екипи за разработка, използващи Claude Desktop или Cursor IDE като техни основни инструменти за кодиране на AI, архитектурата на моделния контекстен протокол (MCP) осигурява прозрачен слой за прихващане на идентификационни данни.
MCP сървърът се намира между AI клиента на разработчика и API на AI модела. Целият текст, предаван през протокола MCP — включително поставен код, проследяване на стека, конфигурационни файлове и контекст за отстраняване на грешки — преминава през машина за анонимизиране, преди да достигне до AI модела.
Механизмът за анонимизиране открива модели, подобни на идентификационни данни: формати на API ключове, структури на низове за свързване към база данни, формати на OAuth токени, заглавки на частни ключове и персонализирани собствени формати на идентификационни данни, конфигурирани от екипа по сигурността. Тези модели се заменят със структурирани токени преди предаване.
За разработчика, който отстранява грешки при производствен проблем с връзката: проследяването на стека, съдържащо низа за връзка с базата данни, пристига на MCP сървъра. Низът за връзка се заменя с токен ([DB_CONNECTION_1]). AI моделът получава проследяването на стека със сменените идентификационни данни. Помощта за отстраняване на грешки се предоставя въз основа на анонимизираната версия. Разработчикът получава отговор, който използва същия токен — достатъчен, за да разбере техническия проблем. Действителните идентификационни данни никога не са напускали корпоративната мрежа.
39-те милиона секретни течове на GitHub отразяват последствията от неадекватни контроли върху известен вектор на течове. Излагането на идентификационни данни на асистента за кодиране на AI е същият вектор на изтичане в по-слабо наблюдаван канал. Техническият контрол, който обхваща и двете, е прихващане на идентификационни данни преди предаване.
Източници:
- [GitHub Октомври 2024 г.: изтекли 39 милиона тайни, 25% увеличение на годишна база] (https://github.blog/news-insights/octoverse/octoverse-2024/)
- [GitGuardian State of Secrets Sprawl 2025] (https://www.gitguardian.com/state-of-secrets-sprawl-report-2025)
- [Протокол за контекст на модела: архитектура за сигурност на AI за разработчици] (https://modelcontextprotocol.io)