Исследователь взломал системы 35 крупных IT-компаний путем атаки на цепочку зависимостей

    Исследователю Алексу Бирсану удалось взломать внутренние системы более 35 крупных компаний, включая Microsoft, Apple, PayPal, Shopify, Netflix, Yelp, Tesla и Uber, в ходе атаки на цепочку поставок программного обеспечения. Атака заключалась в загрузке вредоносного ПО в репозитории с открытым исходным кодом, включая PyPI, npm и RubyGems, которое попадало во внутренние приложения компании. При этом от целевой системы не требовалось никаких действий.

    При атаке использовался конструктивный недостаток экосистем с открытым исходным кодом или путаница зависимостей.

    Бирсан уже получил за эксплойт более $130 тысяч в качестве вознаграждений.

    Исследователю предоставили файлы манифеста package.json из пакета npm, используемого внутри системы PayPal. Бирсан заметил, что некоторые из пакетов не присутствовали в общедоступном репозитории npm, а были частными пакетами npm, созданными PayPal. Тогда он решил выяснить, есть ли пакеты с такими же именами в общедоступном репозитории npm.

    Бирсан начал поиск имен внутренних пакетов в файлах манифестов в репозиториях GitHub или в CDN известных компаний. Затем он начал создавать поддельные пакеты с использованием тех же имен в репозиториях с открытым исходным кодом, таких как npm, PyPI и RubyGems. Каждый выходил под реальной учетной записью исследователя с пояснением: «Этот пакет предназначен для целей исследования безопасности и не содержит никакого полезного кода».

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

    Используя эту технику, Бирсан провел успешную атаку цепочки поставок против Microsoft, Apple, PayPal, Shopify, Netflix, Tesla, Yelp и Uber, просто опубликовав общедоступные пакеты с тем же именем, что и у внутренних пакетов компаний. Они включали сценарии предварительной установки, которые автоматически запускали извлечение идентифицирующей информации с ПК.

    Зная, что его сценарии будут устанавливать соединения из корпоративных сетей, Бирсан решил использовать DNS для эксфильтрации данных, чтобы обойти обнаружение.

    После проверки того, что поддельный компонент успешно проник в корпоративную сеть, Бирсан сообщал о своих выводах соответствующей компании и получал вознаграждение за обнаружение ошибок.

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

    Microsoft выплатила Бирсану самое высокое вознаграждение в размере $40 тысяч и выпустила официальный документ по этой проблеме безопасности. Компания идентифицировала ее как CVE-2021-24105 для продукта Azure Artifactory. Однако компания отметила, что проблема должна быть исправлена ​​путем перенастройки инструментов установки и рабочих процессов, а не путем исправлений внутри самих репозиториев пакетов.

    PayPal также публично обнародовала отчет Бирсана, в котором упоминается сумма вознаграждения в размере $30 тысяч.

    Однако директор Python Software Foundation Дастин Инграм заявил, что даже публичное исследование не является достаточным поводом для того, чтобы размещать сторонние пакеты на PyPI. Он подчеркнул, что загрузка незаконных пакетов в PyPI ложится чрезмерным бременем на тех, кто поддерживает его работу.

    Сам Бирсан отмечает, что по-прежнему существует возможность таких атак, особенно на платформах с открытым исходным кодом.

    Sonatype выпустила на GitHub скрипт, который пользователи Nexus Repository Manager могут запустить, чтобы сравнить частные пакеты с именами присутствующих в общедоступных репозиториях npm, RubyGems и PyPI.

    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

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

      +3
      Как удачно упущена главная суть
      на цепочку поставок программного обеспечения.
      Воображение сразу начинает рисовать возможности поставлять модифицированные на низком уровне сервера и сетевое оборудование для взломов инфраструктуры.
        0
        Видимо, сам термин «цепочка поставок» неудачен, так как в русском языке термин «поставка» ассоциируется исключительно с материальными предметами. Удачнее было бы назвать это «цепочкой зависимостей»
          0
          Исследователь подчеркивает, что каждая организация, на которую было направлено это исследование, предоставила разрешение на проверку своей безопасности либо в публичной программе вознаграждений, либо путем частного соглашения.

          А на тех, на кого исследование было не направлено, разве исследование не повлияло?

          Вообще, на протяжении многих лет, видел кучу новостей «исследователь получил столько $» за обнаруженные проблемы в ПО. И это прекрасно. Но я всёже хочу спросить, тут вообще есть хоть один человек, которому было выплачено вознаграждение? за обнаруженные им критические проблемы.

          На моём примере, писал о проблеме в сетевом устройстве, которое используется в высоко нагруженных серверах, для обработки криптографии. (у компании нет bug bounty). Проблема приводит к отказу в обслуживании, вызывается удалённо, проходит все средства защит. ( проблема в формировании сетевых пакетов и их обработке, поэтому и проходит все средства защит )
          После уведомления компании разработчика, меня похвалили.
          Три самых важных буквы из их ответа это — thx
            0
            thx не пнх, радуйся )
              0
              Лично получал около 100 долларов за то что сообщил об ошибке в Dash Core -клиенте. (крипте).

              Можно было обрушить клиент через простую rpc команду.
                0

                Да, я — тут есть.


                За прошедший год я дважды получал существенные выплаты участвуя в багбаунти Яндекса. Даже в «Зале Славы» найти можно — https://yandex.ru/bugbounty/hall-of-fame/all/#devanchi


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


                Из нескольких сотен уведомлений, я могу по пальцам пересчитать тех кто поблагодарил, хотя бы. И наизусть назвать пофамильно тех, кто ответил материальным вознаграждением. К слову, суммарный объём вознаграждений здесь составил менее 10.000₽.


                Вайтхат, это — чистой воды для волонтёров развлечение.

                  0
                  Спасибо за развернутый ответ.
                  Уточню только, «существенные выплаты» от яндекса, входят в те 10к рублей? (чтоб не осталось недосказанности)

                  И ещё задам дополнительный вопрос. Нынче, от этих уведомлений был какой-то толк?
                  Мол если в своём резюме указать: «находил проблемы, там-то там-то» то это котируется?
                  Любо для работодателей (либо клиентов), в Вашем резюме будет смотреться гораздо солидней «набор различных аббревиатур и непонятных названий» (новомодных технологий)
                    0

                    Существенные выплаты от Яндекса — от Яндекса и существенные.


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


                    Те 10к рублей — те, что суммарно собрались с результатов волонтёрской работы. Эта сумма не связана с Яндексом.


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


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


                    В инфобезе хорошо работает история с адресными благодарочками, например. Или по старинке пишите интересный (1) контент (2) в медиа, это универсальный рецепт усиления своей ценности в глазах внешнего наблюдателя.

                      0
                      Спасибо за ответ.
                      Ознакомился с Вашими статьями.

                      Пойду дальше, выращивать своё банановое дерево :)
                  0

                  Коллега от fb получил 40к$.

                    0
                    Так бывает, когда Вы приняли фичу за баг.
                    +1
                    Сдается мне что эта уязвимость была найдена заинтересованными лицами практически сразу как появились эти репозитории…
                      +3
                      просто опубликовав общедоступные пакеты с тем же именем, что и у внутренних пакетов компаний.

                      Забавно, что я предполагал такую уязвимость ещё в 2018-м:


                      … может случиться беда, и сверхсекретное название пакета случайно утечёт в интернетики в одном из моих случайных скриншотов. Злоумышленник, налюбовавшись на скриншот, заливает на pypi.org mysecretproject-99999.999.999, в итоге мой pip ставит пакет не с локалхоста, а из pypi.org — и всё, моя система скомпрометирована!
                        0

                        Странно это все очень. Установщики пакетов при наличии локфайлов сверяют хэшсуммы пакета. Неужели их не используют в столь продвинутых компаниях?

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

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