Блог CodeScoring

Supply Chain Attack в разработке программного обеспечения

Атака на цепочку поставок, или в оригинале Supply Chain Attack — один из самых актуальных и популярных в последнее время у взломщиков и других «русских хакеров» способов получения доступа на сервера своих жертв.

Нашумевший взлом SolarWinds, затронувший сотни тысяч клиентов по всему миру, включая крупные корпорации и правительственные агентства США — тоже был реализован через Supply Chain Attack. Очень громкими были случаи внедрения в цепочку поставок хардварных криптовалютных кошельков несколько лет назад. По факту попытки взломов таким путём происходят каждый день и, судя по всему, их будет только больше.

Уточним, Supply Chain Attack — это и внедрения в цепи поставки софта, и вполне себе физические внедрения, когда при транспортировке железки с конвейера до потребителя с ней могут сделать что-то нехорошее.

Попробуем на пальцах объяснить, как это работает.

Supply Chain Attack — это когда доступ к целевой системе атакующий получает не напрямую, а через внедрение в какой-либо используемый организацией продукт или компонент, которому она доверяет. При этом поставщик продукта может и не знать о проблеме, распространяя зловредный софт своим клиентам.

Допустим, ваша компания очень заботится о безопасности своей сети и серверов. Но с огромной вероятностью она использует какой-нибудь существующий внешний программный продукт, для простоты возьмём CRM. Такие продукты требуют регулярных обновлений, но что интереснее — они зависят от других компонентов. Например, какой-нибудь open source библиотеки, либо ещё какого-то коммерческого продукта. В этом случае злоумышленнику может быть проще внедриться в ту самую библиотеку или менее защищенный коммерческий продукт и подождать, когда цепочка поставок сама сделает своё дело.

Частным случаем таких атак являются Dependency Confusion Breach и Typosquatting Attack. Когда атакующий публикует в популярные индексы зараженные библиотеки, рассчитывая, что программист опечатается при установке компонента, либо система сборки возьмёт библиотеку из индекса вместо локального пакета.

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

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

Для искушенных советуем изучить относительно свежие рекомендации от Cybersecurity and Infrastructure Security Agency при поддержке NIST: https://www.cisa.gov/sites/default/files/publications/defending_against_software_supply_chain_attacks_508_1.pdf.