Атака на цепочку поставок: когда угроза исходит изнутри программного обеспечения

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

Что это такое

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

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

Как это работает

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

Типичная последовательность событий выглядит следующим образом:

  1. Выбор цели — злоумышленники определяют широко используемого программного поставщика или пакет с открытым исходным кодом, практики безопасности которого слабее, чем у его клиентов.
  2. Компрометация — злоумышленник проникает в систему сборки поставщика, репозиторий кода или сервер обновлений. Это может произойти через фишинг, похищенные учётные данные или эксплуатацию уязвимости в собственной инфраструктуре поставщика.
  3. Внедрение кода — вредоносный код незаметно встраивается в легитимное обновление программного обеспечения или версию библиотеки.
  4. Распространение — заражённое обновление подписывается действующими сертификатами и отправляется всем пользователям. Поскольку оно поступает из доверенного источника, средства защиты зачастую не помечают его как угрозу.
  5. Выполнение — вредоносное программное обеспечение работает в скрытом режиме на устройстве жертвы, потенциально похищая учётные данные, создавая бэкдоры или осуществляя утечку данных.

Наиболее известным примером является атака на SolarWinds в 2020 году. Хакеры внедрили вредоносное программное обеспечение в плановое обновление программного продукта, которое затем было распространено примерно среди 18 000 организаций, включая государственные ведомства США. Взлом оставался незамеченным на протяжении нескольких месяцев.

Другой широко известный случай был связан с экосистемой пакетов NPM: злоумышленники публиковали вредоносные пакеты с именами, почти идентичными названиям популярных библиотек, — этот метод называется тайпсквоттингом — в расчёте на то, что разработчики случайно установят их.

Почему это важно для пользователей VPN

Программное обеспечение VPN не застраховано от подобных угроз. Устанавливая VPN-клиент, вы доверяете тому, что само приложение — и каждая библиотека, от которой оно зависит, — является чистым. Атака на цепочку поставок, направленная против системы распространения программного обеспечения VPN-провайдера, теоретически может привести к доставке скомпрометированного клиента, который раскроет ваш реальный IP-адрес, отключит kill switch или будет вести журнал вашего трафика без вашего ведома.

Это делает крайне важным соблюдение следующих мер:

  • Загружайте программное обеспечение VPN только из официальных источников — никогда из сторонних магазинов приложений или зеркальных сайтов.
  • Выбирайте провайдеров, публикующих воспроизводимые сборки или проходящих регулярные сторонние аудиты, чтобы скомпилированное программное обеспечение можно было независимо верифицировать.
  • Проверяйте сертификаты подписи кода, подтверждающие, что программное обеспечение не было изменено с момента выпуска разработчиком.
  • Обновляйте программное обеспечение, но также следите за новостями в сфере безопасности — если поставщик сообщает об инциденте в цепочке поставок, действуйте незамедлительно.

Помимо программного обеспечения VPN, атаки на цепочку поставок затрагивают более широкий спектр инструментов, которые вы используете для обеспечения конфиденциальности: браузеры, браузерные расширения, менеджеры паролей и операционные системы. Скомпрометированное браузерное расширение, например, способно свести на нет всё, что VPN делает для защиты вашей конфиденциальности.

Общая картина

Атаки на цепочку поставок особенно опасны, поскольку эксплуатируют доверие. Традиционные советы по кибербезопасности гласят: «загружайте только из проверенных источников» — но атака на цепочку поставок превращает именно проверенные источники в угрозу. Именно поэтому такие концепции, как архитектура нулевого доверия (zero trust architecture), программный состав изделия (SBOM) и криптографическая верификация программных пакетов, приобретают всё большее значение в сообществе специалистов по безопасности.

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