В недавнем сообщении в блоге Linux Foundation под названием «Предотвращение атак на цепочки поставок, таких как SolarWinds», директор фонда по безопасности цепочки поставок с открытым исходным кодом Дэвид А. Уиллер категорически настаивал на том, чтобы разработчики программного обеспечения принять рекомендации LF по безопасности, чтобы предотвратить еще более серьезные посягательства на безопасность государственных и корпоративных данных в связи с безудержной утечкой данных.
Сообщение Уиллера своевременное и наполнено информацией, которая усложняет хакерам использование будущих систем, от которых мы все зависим. Он включает 11 рекомендаций Linux Foundation, в том числе о том, как организации могут защитить свои среды сборки от злоумышленников, о необходимости начать переход к реализации, а затем требовать проверенных воспроизводимых сборок, а также о практике изменения инструментов и интерфейсов, чтобы снизить вероятность непреднамеренных уязвимостей.
По словам Уиллера, SolarWinds выполнила некоторые защитные меры фонда. По его словам, ни один из них не предотвратил успешную атаку SolarWinds. Требуется дополнительное усиление защиты программного обеспечения.
Программный продукт SolarWinds Orion является частной собственностью. Так как же методы кодирования с открытым исходным кодом могут помочь повысить безопасность?
SolarWinds следовала некоторым плохим методам, таким как использование небезопасного протокола FTP и публичное раскрытие паролей, что, возможно, сделало эти атаки особенно легкими, — предложил Уилер в своей работе. Блог Linux Foundation
«Взлом SolarWinds не предоставил ИТ-специалистам каких-либо новых технических знаний, но он предоставил новую актуальность для противодействия такого рода атакам», — сказал он LinuxInsider.
Кибератаки обычно используют непреднамеренные уязвимости в коде. Большинство других атак, по крайней мере, в отношении программного обеспечения с открытым исходным кодом, связаны с тактикой, называемой typosquatting. Он пояснил, что этот подход создает вредоносный код с намеренно похожим именем на реальную программу.
Взлом SolarWinds сделал нечто иное. Он отметил, что это разрушило среду сборки, что до сих пор было менее распространенным видом атак.
«Все меньше профессионалов в области безопасности уделяют внимание противодействию такого рода атакам. Это может измениться в будущем, тем более что почти все типичные меры безопасности не противодействуют такому виду атак», — сказал он.
Удар в атаке SolarWinds
Многочисленные правительственные учреждения США и многие частные организации, использующие программное обеспечение SolarWinds Orion, были серьезно скомпрометированы. По мнению Linux Foundation, это был очень опасный набор компромиссов в цепочке поставок, из которых сообщество информационных технологий и сообщество разработчиков открытого исходного кода должны извлечь уроки и предпринять соответствующие меры.
Федеральное агентство по кибербезопасности и безопасности инфраструктуры (CISA) издало чрезвычайную директиву 21-01, в которой говорится, что Orion эксплуатируется, имеет высокий потенциал компрометации и оказывает серьезное влияние на целые организации в случае компрометации. Чем больше люди смотрят, тем хуже они находят. Уиллер считает, что вторая и третья вредоносная программа была обнаружена в Orion.
Платформа Orion — это масштабируемая платформа для мониторинга и управления инфраструктурой. Он помогает ИТ-отделам упростить администрирование локальных, гибридных сред и сред «программное обеспечение как услуга» (SaaS).
Исследователи обнаружили вредоносное ПО под названием Sunspot, которое следило за сервером сборки в поисках команд сборки. Обнаружив такие команды, вредоносная программа незаметно заменила файлы исходного кода в приложении Orion файлами, которые загружали вредоносную программу Sunburst.
Компрометация SolarWinds Orion Sunspot — не первый пример такого рода атак. Тем не менее, это продемонстрировало, насколько опасными они могут быть, когда компрометируют широко используемое программное обеспечение, — отметил Уиллер.
Углубленный анализ
Учитывая масштабы взлома SolarWinds, LinuxInsider попросил Уиллера глубже понять, как стандарты безопасности цепочки поставок могут выиграть от последних рекомендаций Linux Foundation.
LinuxInsider: Был бы прорыв SolarWinds менее вероятным, если бы программное обеспечение было с открытым исходным кодом?
Дэвид А. Уиллер: Природа закрытого кода, вероятно, сделала Взлом сложнее обнаружить, но все программное обеспечение уязвимо для такого рода атак. Разработчики программного обеспечения изменяют исходный код для поддержки программного обеспечения. Пользователи программного обеспечения обычно устанавливают программные пакеты, созданные из исходного кода. Преобразование исходного кода в исполняемый пакет называется "сборкой", и сборка выполняется в некоторой "среде сборки".
В этом случае злоумышленник нарушил среду сборки, поэтому исходный код, увиденный разработчиками, был в порядке, но последний установленный программный пакет был изменен по незнанию.
OSS намного проще повторно запустить сборку, которая может обнаруживать подрывные версии. Близкий исходный код добавил технических и юридических проблем для их обнаружения. У OSS есть потенциальное преимущество, но разработчики должны действовать, чтобы воспользоваться этим потенциалом.
Что могло предотвратить вторжение?
Уиллер: Лучший способ — это то, что называется проверенной воспроизводимой сборкой или детерминированной сборкой. Это процесс, который дает точно такие же результаты из одинаковых входных данных, даже если он выполняется разными организациями. Это подтверждено независимыми организациями. Это значительно усложняет подрыв кода, потому что злоумышленник затем должен разрушить несколько независимых организаций, и даже если это произойдет, последующее обнаружение намного проще. Другие методы намного слабее.
Похоже, у этих нападающих были хорошие ресурсы. Опасно полагаться на то, что злоумышленник никогда не добьется успеха. Изучение собранных пакетов теоретически может найти проблемы, но масштаб реальных программ делает такой анализ дорогим, и проблемы часто будут упускаться. В конечном итоге проблема была обнаружена путем мониторинга, но в этом случае она вызвала значительный ущерб до обнаружения.
Проверенная воспроизводимая сборка похожа на финансовый аудит, когда финансовый аудитор определяет, верен ли результат. Существенная проблема SolarWinds заключалась в том, что ни один независимый процесс не подтвердил правильность результата сборки.
Насколько практично для индустрии программного обеспечения принять эту рекомендацию LF?
Уиллер: Некоторые проекты уже имеют воспроизводимые сборки, поэтому можно сделать . Проект воспроизводимых сборок создал модифицированную версию Debian GNU / Linux (в частности, «яблочко»), в которой более 90 процентов пакетов являются воспроизводимыми. Однако на практике это займет время для многих проектов OSS и даже больше для многих проектов с закрытым исходным кодом.
Исторически никто не проверял воспроизводимость сборок, поэтому в проектах накопилось много конструкций, делающих сборки невоспроизводимыми. Никаких фундаментальных технических препятствий не существует; просто нужно найти и изменить большое количество мелочей. Сочетание всех этих небольших изменений требует значительных усилий в более крупных проектах.
Программное обеспечение с закрытым исходным кодом связано с дополнительными проблемами, как техническими, так и юридическими. В отличие от OSS, программное обеспечение с закрытым исходным кодом обычно не предназначено для перестройки другими лицами. Разработчики программного обеспечения с закрытым исходным кодом должны будут приложить значительные усилия, чтобы другие могли его перестроить. Кроме того, их бизнес-модели обычно зависят от юридических ограничений в отношении того, кто имеет доступ к исходному коду.
Что может потребоваться, так это специальные договорные соглашения о совместном использовании кода, которые ранее не заключались. Но несмотря на то, что это сложнее сделать с помощью программного обеспечения с закрытым исходным кодом, эти проблемы преодолимы.
Что потребует его принятия?
Уиллер: Потребительский спрос! До тех пор, пока заказчики с готовностью принимают «черные ящики» и продукты без проверенных воспроизводимых сборок, у разработчиков нет причин для изменений.
Идет медленный отход от настоящих черных ящиков. Клиенты часто говорят, что им не нужно знать, как что-то работает, но настоящие черные ящики означают, что клиенты берут на себя неизвестный риск. Многие поставщики программного обеспечения с закрытым исходным кодом (например, Microsoft) теперь имеют механизмы, обеспечивающие хотя бы некоторую видимость исходного кода, чтобы помочь клиентам лучше управлять своими рисками. Программное обеспечение с открытым исходным кодом, конечно, позволяет любому увидеть код.
Мы находимся в интересной точке для воспроизводимых сборок. Пока что над ней работали некоторые проекты, даже без явного спроса со стороны заказчиков. Добавьте к этому спрос, и его доступность резко возрастет.
Насколько сильно повлияла практика повторного использования кода с открытым исходным кодом?
Уилер: Общественности не ясно, как именно среда сборки SolarWinds был нарушен. Мы знаем, что это была система Windows. В широком смысле это не имеет значения. Защита может быть очень хорошей, но неразумно предполагать, что систему невозможно взломать. Хорошая безопасность предполагает не только хорошее предотвращение, но также обнаружение и восстановление.
Будущие среды сборки также будут нарушены. Мы должны попытаться защитить среду сборки от атак, но мы также должны разработать механизмы обнаружения и восстановления, чтобы любое нарушение не привело к ущербу, причиненному этим нарушением.
Насколько жизнеспособным является введение спецификации программного обеспечения (SBOM) для предотвращения типосквоттинга, как предлагал LF?
Уилер: SBOM могут помочь противостоять типосквоттингу. Разработчикам легко взглянуть на имя и прочитать то, что они ожидают от него, а не то, что на самом деле написано. SBOM позволяют другим, в том числе клиентам, видеть, что содержится в компоненте, точно так же, как списки пищевых ингредиентов объясняют, что находится в нашей пище. С помощью списка другие могут искать подозрительные компоненты, включая имена, похожие на ожидаемые, но не идентичные им.
Как сказал помощник судьи Верховного суда Луи Брандейс: «Публичность заслуженно приветствуется как средство от социальных и производственных болезней. Солнечный свет считается лучшим из дезинфицирующих средств …»
]