Travis CI незаметно исправил ошибку, которая открывала секретные ключи • Регистр

    0
    60


    По крайней мере, с 3 по 10 сентября публичные репозитории с открытым исходным кодом, которые использовали Travis CI, подвергали свои конфиденциальные ключи, учетные данные и токены потенциальной краже.

    Travis CI – непрерывная интеграция CI – позволяет разработчикам автоматизировать процессы тестирования и создания программного обеспечения. Разработчики, использующие систему CI, часто имеют дело с паролями, токенами доступа и ключами API, которые не должны отображаться в общедоступных репозиториях исходного кода и поэтому обычно хранятся отдельно как переменные среды.

    Из-за недостатка в том, как Travis CI обрабатывал переменные окружения, публичный репозиторий, созданный из другого репозитория, мог подать запрос на вытягивание, который собирал бы секретные переменные окружения, установленные в исходном вышестоящем репозитории.

    И это серьезная проблема безопасности, особенно для такого широко используемого программного обеспечения. По состоянию на 2019 год Travis CI использовался более чем в 932 977 проектах с открытым исходным кодом и более чем 600 000 пользователей. [PDF]. Поиск на GitHub файла конфигурации travis.yml дает более 35 миллионов результатов.

    После того, как 7 сентября разработчик Ethereum Феликс Ланге обнаружил утечку секрета, и о проблеме было сообщено Travis CI, берлинская фирма исправила ошибку 10 сентября.

    По словам руководителя команды Ethereum Петера Силаджи, Travis CI пришлось подтолкнуть к устранению уязвимости, а затем он не смог адекватно объяснить ситуацию клиентам.

    «После 3 дней давления со стороны нескольких проектов, @travisci тихо исправил проблему 10-го числа», – сказал он. сказал через Twitter. «Ни анализа, ни отчета о безопасности, ни вскрытия, ни предупреждения никого из пользователей о том, что их секреты могли быть украдены».

    Наконец, в понедельник Travis CI разместил бюллетень по безопасности на своем форуме и в другом месте на своем веб-сайте, в котором разработчикам сообщалось, что «циклическое использование секретов – это то, что все пользователи должны делать на регулярной основе».

    Уязвимость отслеживается как CVE-2021-41077, но в уведомлении об этом не упоминается.

    В документации Travis CI упоминается риск раскрытия секрета во время процесса сборки и описывается, как конфиденциальные данные должны быть зашифрованы перед сохранением в файле конфигурации .travis.yml.

    «Запрос на извлечение, отправленный из ответвления вышестоящего репозитория (мы называем его« внешним запросом на извлечение »), может быть изменен для раскрытия переменных среды», – говорится в документации компании. «Сопровождающий вышестоящего репозитория не будет иметь защиты от этой атаки, так как запросы на вытягивание могут быть отправлены любым, кто разветвляет репозиторий на GitHub».

    Travis CI утверждает, что это объясняется тем, что зашифрованные переменные и данные доступны только для внутренних запросов на вытягивание – из того же репозитория. «Запросы на извлечение, отправленные из разветвленных репозиториев, не имеют доступа к зашифрованным переменным или данным, даже если они определены в исходном проекте вилки», – говорится в документации компании.

    В своем сообщении Travis CI преуменьшает серьезность ситуации, отмечая, что если создается запрос на вытягивание из разветвленного репо, «секреты по-прежнему зашифрованы в базе данных Travis CI».

    Силагьи, однако, сказал в электронном письме, что секреты все еще были доступны в результате этой уязвимости.

    “Секреты зашифрованы на диске в Трэвисе, но когда начинается сборка, они расшифровываются (Трэвисом) и вводятся в сборки в виде [environmental variables], – пояснил он. – Доступ к ним – это просто чтение содержимого ».

    В качестве примера он указал на одну из своих репо-атак, которая записывает секреты в кодировке base64 с помощью команды echo $SECRET | base64. «Первая часть печатает секрет, а вторая немного переворачивает его, чтобы Трэвис не подвергал его цензуре из журналов», – сказал он.

    В ужасе от того, как Трэвис Си справился с ситуацией, Силадьи посоветовал разработчикам рассмотреть альтернативного поставщика CI.

    Для тех, кто хочет узнать, есть ли у них какие-либо видимые секреты такого рода, Дэвид Браунман, старший инженер по платформе в Zapier, разработал сценарий Python для сканирования общедоступных репозиториев на предмет открытых ключей среды.

    Travis CI не ответил на запрос о комментарии. ®



    Предыдущая статьяXiaomi Pad 5 на обзоре
    Следующая статьяDark Souls 3: Anri Of Astora Questline Прохождение
    Виктор Попанов
    Эксперт тестовой лаборатории. Первый джойстик держал в руках в возрасте 3 лет. Первый компьютер, на котором „работал” был с процессором Intel i386DX-266. Тестирует оборудование для издания ITBusiness. Будь то анализ новейших гаджетов или устранение сложных неполадок, этот автор всегда готов к выполнению поставленной задачи. Его страсть к технологиям и приверженность качеству делают его бесценным помощником в любой команде.