Как секретный ключ Huawei попал в прошивки маршрутизаторов Cisco



    Разработчики сканера IoT Inspector периодически проводят рутинную проверку прошивок разных производителей. Иногда находят уязвимости в устройствах Интернета вещей. Но последняя находка особенно удивительна. В прошивке маршрутизатора Cisco SG250 сканер нашёл несколько сертификатов и соответствующий секретный ключ сотрудника Futurewei Technologies, американской дочерней компании Huawei Technologies, по имени Гарри Ву (Garry Wu) с электронным адресом gary.wu1@huawei.com.

    Но как они попали в прошивку маршрутизатора Cisco?

    Странно было ещё расположение файлов, о которых идёт речь (/root/.ssh/). Эта директория обычно предназначена для SSH-ключей, а не сертификатов.



    Разработчики вручную проверили результаты автоматического сканера. Они были надёжны, ручной анализ подтвердил автоматизированные результаты.



    Учитывая политические споры вокруг Huawei, сотрудники не хотели спекулировать на этой теме и сразу передали информацию Cisco. Там отдел безопасности подтвердил результаты и начал внутреннее расследование. Им потребовалось всего несколько дней, чтобы выяснить причины и поделиться подробностями.

    Как оказалось, сертификаты и закрытый ключ, о которых идёт речь, были частью свободного пакета OpenDaylight GitHub, который используется в некоторых продуктах Cisco. Проблема затронула все маршрутизаторы Cisco серий 250/350/350X/550X. Разработчики использовали сертификаты для тестирования функции Cisco FindIT для проактивного управления сетью маршрутизаторов с автоматическим нахождением всех устройств в сети, конфигурации через единый интерфейс и т. д. Сертификаты оказались в прошивках продуктов из-за простого недосмотра.

    Cisco сразу выпустила прошивку без этих сертификатов, а 3 июля опубликовала рекомендации по безопасности. Кроме того, Cisco исправила и другие проблемы, обнаруженные сканером: пустые хэши паролей, ненужные зависимости и различные уязвимости в зависимостях.

    Никакой угрозы безопасности тут не оказалось. О мифических «бэкдорах Huawei» речи не идёт. Согласно Cisco, никакие векторы атаки не были определены, поскольку сертификаты фактически не используются в финальных версиях прошивок.

    Но всё равно здесь просматривается две проблемы.

    Во-первых, разработчики часто для удобства или по недосмотру помещают секретную информацию в программный код, который потом выкладывается в открытый доступ. Например, в марте 2019 года исследователи из Университета Северной Каролины просканировали GitHub и установили, что свыше 100 тыс. репозиториев содержат API-ключи, токены и криптографические ключи. Кроме того, каждый день на GitHub попадают тысячи новых, уникальных «секретов». Общая статистика по найденным секретным объектам показывает, что чаще всего в открытый доступ попадают ключи Google API. Также нередко встречаются приватные ключи RSA и идентификаторы Google OAuth.



    Исследование показало, что злоумышленник даже с минимальными ресурсами может скомпрометировать многих пользователей GitHub и найти массу секретных ключей. Чтобы бороться с этой проблемой, на GitHub разработали функцию сканирования токенов Token Scanning, которая сканирует репозитории, ищет токены и уведомляет поставщиков услуг об утечке информации.

    Вторая проблема в том, что программы всё чаще подключают в качестве внешних зависимостей Open Source проекты на том же GitHub, не проверяя их соответствующим образом. Получается, что разработчики слепо доверяют чужому коду, за которым может никто не следить. Проблема описана, например, в статье Расса Кокса «Наша проблема c зависимостями», перевод которой есть на Хабре.



    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Вы встречали криптографические ключи в проектах open source?

    • +23
    • 31,9k
    • 8
    GlobalSign
    154,02
    Компания
    Поделиться публикацией

    Комментарии 8

      +6
      Черт, хранить пароли в коде оказалось не так безопасно, а говорят, что твой код никому не интересен
        +3
        код — неинтересен, а вот пароли, ключи и сертификаты — наоборот.
        +2

        После того, как я выложил исходники (видео наблюдение на малине), ко мне на VPS было с несколько десятков попыток постучаться с разных IP на сервис с паролем/портом по умолчанию из кода GitHub.


        Причем это не случайно. По тому, что хост по умолчанию был не актуальный. Явно специально нашли правильное имя хоста и пробовали.


        Большинство IP китайские, кстати.


        Получается, реальные ключи/пароле на GitHub — это актуально. Кулхацкеры мониторят GitHub.

          +1

          А чего бы не актуально-то? Помнится, давным давно ещё был на самой заре твиттера бот, который находил на pastebin логины/мыльники/приватные данные и постил ссылки.

          –1
          Вторая проблема в том, что программы всё чаще подключают в качестве внешних зависимостей Open Source проекты на том же GitHub, не проверяя их соответствующим образом.

          Дятел за нашей цивилизацией уже вылетел.
            0
            Давно. Про бездумное использование чужих библиотек еще во времена Fortran-a уже писали.
              0

              Ну не знаю. Скачивал библиотеку для Open Weather. Да, там был зашит токен, но чисто для примера, он был не рабочий, о чём сообщалось в комментариях.

                0
                Ну обычно так и есть. В открытых репах какие-нибудь ключи обычно зашиты либо примеры, либо рабочие для локальной/тестовой среды которые и так в открытом доступе.

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое