Анализ программного кода
Узнать большеВ отрасли разработки программных продуктов существует такое понятие, как Supply Chain — цепочка поставок. Под ней подразумеваются все этапы, начиная с создания ПО, заканчивая доставкой конечному потребителю. Звенья этой цепи — используемые инструменты и технологии, заимствованные фрагменты кода, лица, причастные к созданию ПО. В случае слабой защиты процессов и отсутствия контроля безопасности приложений любое из этих звеньев может стать целью атак злоумышленников. Для оценки потенциальных Supply Chain-рисков применяется эффективная методика — Supply Chain Security, позволяющая проанализировать все компоненты цепи поставок. Рассказываем, как ее реализовать, чем она полезна.
Что такое Supply Chain Security
Под Supply Chain Security понимают контроль безопасности цепочки поставок, анализ вероятных рисков, поиск существующих проблем. Как можно закрыть эти цели:
- Регулярно тестировать программное обеспечение на безопасность с применением различных методик анализа.
- Прогнозировать уязвимости, которые могут возникнуть в будущем, даже если сейчас с цепочкой поставок и ПО в целом все в порядке.
- Мониторить актуальные в цифровой среде угрозы, новые методы Supply Chain атак.
Если пренебрегать обеспечением безопасности цепочки поставок, готовое ПО получается заведомо уязвимым. Слабые места ПО могут проявиться позже, уже в процессе эксплуатации приложений. В таком случае велики риски, что уязвимости станут входными точками для злоумышленников, которые охотятся за конфиденциальными данными компаний или ставят перед собой цель вмешаться в бизнес-процессы, уронить репутацию. Ниже перечислены метрики, с помощью которых можно оценить риски для каждой зависимости в проекте, после чего уже либо принять их, либо полностью отказаться от ее использования.
- Популярность библиотеки
- Авторский состав библиотеки
- Активность сообщества
- Заинтересованность в безопасности
- Выполнение требований к изменению кода
Supply Chain атаки: понятие и примеры вредоносной активности
Supply Chain атаки — киберинциденты, подразумевающие внедрение вредоносного кода в программное обеспечение или аппаратные компоненты, поставляемые разработчикам ПО. Часто такие нападения связаны с использованием открытого кода (или фрагментов кода) — Open Source, который заимствуется из сторонних библиотек.
Виды Supply Chain атак:
- Программные — хакерские нападения, нацеленные на внедрение вредоносного кода в доверенные приложения. Например, злоумышленники могут заменить легитимные библиотеки, откуда разработчики заимствуют компоненты кода, на собственные. Чтобы содержимое таких библиотек выглядело законным, преступники часто используют для заверения украденные цифровые сертификаты.
- Аппаратные — нападения, нацеленные на устройства, участвующие в цепочке поставок. Пример атаки — внедрение бэкдоров.
- Микропрограммные — атаки на микропрограммное обеспечение. Пример — внедрение вредоносных компонентов в загрузочный код ПК.
Основные методы Supply Chain атак, которые используются злоумышленниками для компрометации цепочки поставок: шпионское ПО, социальная инженерия, SQL-инъекция, эксплуатация уязвимостей конфигурации и программного обеспечения. Для успешных нападений киберпреступники часто комбинируют несколько схем.
Конкретный пример атаки на цепочку поставок — внедрение вируса в обновление программного обеспечения Orion SolarWinds. Преступники смогли получить доступ к базам данных организаций и государственных учреждений США, Европы, Африки и ближнего Востока. Поскольку цепочки поставок не были включены в стратегию управления киберрисками и не защищались должным образом, произошел сбой в работе ПО и массовые крупные утечки.
Методы предотвращения атак, анализ Supply Chain Security
Чтобы прекратить атаку на цепочку поставок и предотвратить серьезный ущерб, необходимо предпринять следующие меры:
- Использовать средства защиты локальных сетей и конечных точек.
- Мониторить локальные сети с целью своевременного обнаружения вредоносной активности.
- Предусмотреть резервное копирование данных на случай уничтожения или шифрования.
- Внедрить политику безопасности, содержащую регламенты работы с приложениями.
- Регулярно обновлять программное обеспечение.
Чтобы минимизировать риски атак, целесообразно запустить цикл безопасной разработки ПО, в котором должен присутствовать анализ Supply Chain Security (SCS). Такая проверка охватывает каждое звено цепочки поставок: компоненты кода и их зависимости, используемые инструменты и технологии, действия авторов приложений и других причастных лиц.
Анализ Supply Chain Security (SCS) реализуется с помощью анализатора, который автоматически выставляет каждому звену цепочки поставок оценки доверия. На основании этих оценок можно предположить потенциальные риски для ПО.
Если разработчики использовали для написания кода заимствованные компоненты, в дополнение к SCS стоит проводить анализ Software Composition Analysis (SCA), который тоже выполняется с помощью автоматического анализатора. Он позволяет обнаружить все открытые фрагменты кода и проверить их на наличие уязвимостей, проблем с лицензированием. Также с помощью SCA-анализа можно выявить устаревшие компоненты, использование которых ставит под угрозу безопасность программного обеспечения.
Сильные стороны использования комплексного анализатора Solar appScreener для реализации Supply Chain Security и других видов анализа программного кода
Solar appScreener — российский сертифицированный анализатор, предоставляющий эффективные инструменты для комплексного контроля безопасности ПО. Он позволяет проводить такие виды тестирований, как SAST (статический анализ программного кода), DAST (динамический анализ поведения ПО), SCS и SCA. Последние два вида тестирования объединены в общий модуль — OSA.
Supply Chain Security, реализованный с помощью Solar appScreener, позволяет проанализировать компоненты безопасности на каждом этапе — от момента создания приложения до введения в эксплуатацию. Анализатор выставляет оценки доверия на основе 8 метрик:
- Распространенности используемых компонентов.
- Даты выпуска компонентов.
- Версии первого релиза компонентов.
- Оценки состава авторов программного обеспечения.
- Количества проектов, созданных разработчиками исследуемого ПО.
- Оценки заинтересованности авторов приложений в безопасности создаваемых продуктов.
- Процента код-ревью каждого пул реквеста.
- Оценки реакции сообщества программистов на проблемы безопасности компонентов.
По результатам проверки Solar appScreener формирует подробный отчет с анализом Supply Chain-рисков. Можно создавать отдельные отчеты для разработчиков и офицеров службы ИБ с рекомендациями по аспектам безопасности, которые подконтрольны специалистам из подразделений ИТ и ИБ.