Сравнение безопасности кастомного и коммерческого программного обеспечения
Современные приложения разработаны для обработки, использования и хранения больших объемов конфиденциальных данных. Поскольку злоумышленники пытаются проникнуть в эти приложения, ИТ-специалисты и службы безопасности должны обеспечить максимально возможную защиту программного обеспечения, которое они используют. Первым шагом к внедрению надежной защиты приложений является понимание типа приложений, которые вам нужно защитить.
Два типа приложений, с которыми должны быть знакомы команды безопасности, — это программное обеспечение, разработанное по заказу, и коммерческое программное обеспечение (commercial off-the-shelf, COTS). Предлагаем рассмотреть различия между приложениями, разработанными на заказ, и COTS-приложениями, а также способы защиты каждого типа приложений.
Что такое кастомное программное обеспечение?
Ключевое различие между этими двумя типами приложений заключается в том, кому принадлежит исходный код ─ набор компьютерных инструкций, который выполняет определенную задачу. Каждое приложение построено на основе исходного кода, и этот код создается разработчиками программного обеспечения. Современные языки программирования, которые вы, скорее всего, встретите в исходном коде, включают Java, Python, .NET, Node.js и Go.
Кастомное программное обеспечение состоит из собственного исходного кода, который обычно принадлежит разработчику или компании, которая его создала. Если вы взаимодействуете с проприетарным исходным кодом, то вы управляете программным обеспечением, разработанным на заказ – программным обеспечением, которое встроено для выполнения конкретных бизнес-требований. Компании либо продают разработанные на заказ программы, либо используют их для внутренних бизнес-потребностей.
Вот пример. Предположим, вы работаете в отделе безопасности компании под названием «Math Tutors». Разработчики компании создали код Python, показанный ниже.
Клиенты приобрели версию 1.0.0 вашего программного обеспечения, и вы несете ответственность за то, что код пользовательской разработки безопасен.
Однажды вы осознаете, что ваша функция «сумма» осуществляет утечку конфиденциальных данных, когда пользователь вводит нецелое число. Ваши разработчики добавляют обработку ошибок в функцию суммы, чтобы обеспечить ее безопасность. Ниже показан обновленный исходный код.
После обеспечения безопасности вашего кастомного программного обеспечения, вы выпускаете версию 1.1.0 вашего продукта. Когда клиенты покупают ваше программное обеспечение, они несут ответственность за обновление до последней версии, что означает, что теперь они должны использовать версию 1.1.0, чтобы убедиться, что они используют наиболее безопасную версию вашего программного обеспечения.
Как обеспечивается защита кастомных разработок?
Обеспечение защиты кастомного программного обеспечения начинается еще до написания первой строки кода. После определения функциональных требований архитекторы разрабатывают начальный дизайн. Затем архитектура должна пройти через модель угроз, где анализируются вероятные векторы атак. После завершения начальной модели угроз и внедрения изменений в дизайн, начинается разработка программного обеспечения.
Большинство современных команд программистов используют одну из форм Agile для разработки программного обеспечения. С технологией разработки Agile программное обеспечение постепенно улучшается с течением времени, а обновления происходят регулярно. Объем работы разбивается на спринты, которые обычно включают небольшие реализации функций (создание новых возможностей) или исправление ошибок (исправление проблем в существующем коде). Спринты, над которыми не работают активно, размещаются в бэклоге. Когда команде безопасности нужно, чтобы разработчики исправили проблему безопасности, они создают спринт, который остается в бэклоге до тех пор, пока команда разработчиков не сможет решить проблему.
С shift left подходом к безопасности, обнаружение уязвимого кода начинается во время разработки через анализ композиции программного обеспечения (SCA), статическое тестирование безопасности программ (SAST) и динамическое тестирование безопасности программ (DAST). Эти инструменты эффективны для изоляции уникальных случаев уязвимого кода.
Наиболее сложным аспектом обеспечения безопасности кастомного программного обеспечения является нахождение слабых мест, которые скрываются в производстве. Обычные проблемы, которые беспокоят безопасность приложений, включают:
- Неаутентифицированные API;
- Неизвестные чувствительные данные или потоки данных;
- Микросервисы, ориентированные на Интернет;
- Коммуникация с третьими сторонами.
То, что делает этот набор проблем особенно сложным, это то, что они часто отклоняются от первоначального дизайна. Именно поэтому важно иметь представление о том, что развернуто в производстве. Когда истинная архитектура неизвестна, известна не полностью или устарела, трудно выявить и приоритизировать слабые места в безопасности. Это может заставить команды полагаться исключительно на инструменты сканирования безопасности, которые обычно предоставляют список уязвимостей.
Самым эффективным решением этой проблемы является управление безопасностью приложений (ASPM). ASPM предоставляет конкретные рекомендации по исправлению на основе реального состояния архитектуры вашего программного обеспечения. Вы получаете не только конкретный перечень самых приоритетных слабых мест безопасности, но также можете четко говорить с инженерными командами о бизнес-влиянии уязвимостей.
Рисунок 1. Благодаря мощным возможностям ASPM, CrowdStrike Falcon® Cloud Security показывает список всех микросервисов, работающих в Интернете, которые получают доступ к персональным данным и содержат критические уязвимости.
CrowdStrike Falcon Cloud Security предоставляет мощные возможности ASPM как часть единой облачной платформы защиты приложений (CNAPP) для полной защиты ваших приложений. Чтобы узнать больше о возможностях защиты кастомных разработок, заполняйте форму обратной связи на нашем сайте.
Что такое коммерческое программное обеспечение?
Программное обеспечение COTS разработано для коммерческого использования и доступно для приобретения. Если вы платите за доступ к программе, но не можете увидеть исходный код, вы работаете с коммерческим программным обеспечением.
Когда программа оплачивается на повторяющейся основе, вы покупаете программное обеспечение как услугу (SaaS). SaaS – это модель дохода, но термины COTS и SaaS часто используются как синонимы.
Теперь вернемся к примеру с Math Tutors, но на этот раз представьте, что вы работаете в сфере безопасности в другой компании под названием Math Learners и используете программное обеспечение, разработанное Math Tutors. С вашей точки зрения, приложение является COTS-приложением. Вместо того, чтобы видеть исходный код, вы будете видеть приложение, как показано на экране ниже.
Когда выпускается версия 1.1.0 приложения, ваша команда в Math Learners несет ответственность за обновление ваших систем, чтобы обеспечить исправление уязвимости и использование безопасной версии. Даже если вы не замечаете видимых изменений, обновление версии добавляет исправления безопасности в программное обеспечение.
Распространенными примерами COTS-приложений, которые покупают организации, являются Google Workspace, Microsoft Outlook и многие другие. Каждая из этих программ считается «разработанной на заказ» организациями, которые их продают.
Как обеспечивается безопасность программ COTS?
Приобретение программного обеспечения COTS накладывает определенные обязанности по безопасности. Ниже приведены шаги для начальной настройки и постоянного мониторинга:
- Провести обзор безопасности поставщика и приложения COTS.
- Предоставить доступ необходимым членам вашей организации.
- Постоянно мониторить:
- Интерфейс программирования приложений (API) между внутренними кастомными разработками и приложением COTS.
- Индивидуальные разрешения доступа и конфигурацию.
- Данные, передаваемые в (и от) программы COTS.
С точки зрения безопасности, первый шаг к введению нового программного обеспечения COTS в организацию — это понимание рисков. Поставщики обычно не делятся исходным кодом, поэтому клиенты должны полагаться на ограниченный объем информации. Вы можете рассмотреть возможность запроса:
- Недавний тест на проникновение
- Перечень материалов для программного обеспечения (SBOM)
- Документация о жизненном цикле разработки программного обеспечения поставщика (SDLC)
- Сертификаты, такие как SOC 2 или ISO
- Отзывы клиентов
- Права доступа к данным в условиях и положениях.
Каждый из этих пунктов может дать более глубокое понимание состояния безопасности программного обеспечения COTS, но всегда будет существовать неотъемлемый риск при использовании программного обеспечения другой компании.
Как только программное обеспечение утверждено, следующим шагом является предоставление доступа соответствующим пользователям. Это может быть сделано через контроль доступа на основе ролей, если целые отделы будут использовать программное обеспечение, или дискреционный контроль доступа, если только определенные пользователи нуждаются в программе.
С предоставленным доступом, важно постоянно мониторить приложения COTS. Первая область управления — это межпрограммный доступ. Такой тип доступа происходит через API, которые создают разработчики программного обеспечения.
Успешное внедрение управления API включает в себя инвентаризацию всех API-вызовов к приложениям COTS. Описание API должно быть обновлено, когда разработчики программного обеспечения создают и удаляют API, и отмечать все API, передающие чувствительные данные. Инструменты ASPM автоматически генерируют полный список API-вызовов к сторонним приложениям.
Рисунок 2. Графическое представление COTS API в Falcon Cloud Security
Второй областью для управления является распределение пользователей. Команды безопасности должны регулярно проверять и обновлять доступ пользователей к приложениям COTS. Кроме того, команды безопасности несут ответственность за управление конфигурацией приложений COTS. Управление доступом к идентификации (IAM) и управление позицией безопасности программного обеспечения как услуги (SSPM) помогают обеспечить правильные конфигурации COTS.
Третьей областью для управления является передача чувствительных данных. Выявление и предотвращение несанкционированной утечки данных требует решения для защиты данных. Решение для защиты данных должно сочетать контент с контекстом, чтобы обеспечить глубокое реальное отслеживание того, что происходит с вашими чувствительными данными, включая артефакты данных, когда они перемещаются от источника к месту назначения, которое может быть приложениями COTS.
Рассмотрим, например, следующий сценарий:
- Загружается конфиденциальный файл.
- Содержимое копируется в электронную таблицу.
- Меньшие фрагменты данных копируются на другой лист и переносятся на личный диск Google.
Решения для защиты данных предоставляют полный поток вместе с тем, кто выполнял действия и куда эти данные попали.
Как CrowdStrike помогает обеспечить безопасность пользовательских и программных COTS?
Как кастомные программы, так и программы COTS сталкиваются с уникальными вызовами, но в обоих случаях важна прозрачность. С CrowdStrike Falcon вы можете отслеживать использование вашей организацией программного обеспечения COTS и предотвратить потерю данных.
Платформа CrowdStrike Falcon предоставляет информацию как о ваших пользовательских разработанных приложениях, так и об использовании стороннего программного обеспечения. Чтобы узнать больше, отправляйте запрос на демонстрацию.
iIT Distribution – официальный дистрибьютор решений компании CrowdStrike. Наши партнеры, клиенты и организации любого масштаба могут получить доступ к высокоэффективным продуктам CrowdStrike, запросив пробную версию на нашем сайте. Оставайтесь в безопасности!