Логотип компании Goodbit
Степан

Степан

Руководитель Отдела по работе с Партнерами

Безопасная разработка программного обеспечения

Действия, Навыки, Стоимость

Что такое безопасная разработка программного обеспечения: суть

Безопасная разработка программного обеспечения включает в себя обеспечение безопасности программного обеспечения (планирование требований безопасности, проектирование архитектуры программного обеспечения с точки зрения безопасности, добавление функций безопасности и т. д.) и поддержание безопасности программного обеспечения и базовой инфраструктуры (проверка исходного кода, тестирование на проникновение). Внедрение методов обеспечения безопасности, естественно, увеличит время и усилия, необходимые для каждого этапа SDLC. Например, строгие проверки кода приводят к увеличению времени написания кода на 20-30% по сравнению с обычным проектом разработки программного обеспечения. В то же время это помогает сэкономить миллионы в будущем: по сообщениям, средняя стоимость утечки данных в 2020 году достигла 3,86 миллиона долларов.Показать полностью

Примечание:

Goodbit фокусируется как на применении безопасности в жизненных циклах разработки программного обеспечения, так и на обеспечении безопасности всей инфраструктуры разработки, политик хранения информации, управления человеческими ресурсами и поставщиками, используемых активов, каналов связи, физического местоположения, бизнес-операций и многого другого.

Этапы разработки безопасного программного обеспечения

Количество и «глубина» мер безопасности будут различаться в зависимости от уровня безопасности, которого вы хотите достичь. Ниже вы можете найти обзор аспектов безопасности и методов, которые обычно использует Goodbit.

1

Сбор требований, приоритизация и анализ: сопоставление требований безопасности

Основной результат: приоритетные требования к безопасности и конфиденциальности программного обеспечения.

На этапе сбора требований наши специалисты по безопасности составляют профиль риска приложения . В документе описываются возможные точки входа для злоумышленников и классифицируются риски безопасности по уровню серьезности, включая их влияние и вероятность. Опираясь на профиль риска, а также политики и стандарты безопасности и конфиденциальности организации, нормативные требования (например, HIPAA, PCI DSS и т. д .), бизнес-аналитики выявляют и документируют требования безопасности и отказоустойчивости для будущего программного обеспечения, включая:

  • Требования к идентификации
  • Требования аутентификации
  • Требования авторизации
  • Требования целостности
  • Требования к неотказуемости
  • Требования конфиденциальности
  • Требования к живучести
Показать полностью

Передовая практика: Goodbit концентрируется на описании только наиболее вероятных или серьезных рисков, чтобы оптимизировать усилия и время планирования и реализации.

2

Разработка программного обеспечения: моделирование угроз, безопасная архитектура, планирование функций безопасности.

Основные результаты: классифицированные и ранжированные угрозы безопасности, план снижения рисков безопасности и задокументированная архитектура безопасного программного обеспечения.

После того как команда Goodbit спроектировала высокоуровневую программную архитектуру и установила основные потоки данных и точки ввода данных в будущем приложении, они приступили к моделированию угроз . Наша команда выполняет следующие работы:

  • Декомпозиция планируемой архитектуры приложения на функциональные компоненты, определение угроз для каждого из компонентов.
  • Классификация угроз и их приоритетность.
  • Планирование и определение приоритетов средств контроля и контрмер для возможных атак.

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

  • Безопасная программная архитектура (например, использование разделения приложений, подход на основе контейнеров).
  • Функции безопасности (криптография (DES, 3DES, AES, RSA, blowfish), аудит/журнал, идентификация пользователя, проверка и авторизация (на основе пароля, многофакторная, на основе сертификата, на основе токена, биометрия).
  • Тест-кейсы для выполнения на этапах тестирования и сопровождения.

Моделирование угроз в Goodbit обычно является итеративным и охватывает весь цикл SDLC, от высокоуровневой архитектуры (взаимодействие между программными модулями) до детального проектирования и реализации архитектуры (конкретные функции и методы кода).

Показать полностью

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

3

Разработка программного обеспечения: методы безопасного кодирования, статический анализ и регулярная экспертная оценка

Основные результаты: разработанные функции безопасности, задокументированный безопасный код, описание уязвимостей в результате автоматизированной проверки кода безопасности и модульного тестирования.

На данном этапе разработчики Goodbit:

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

Примечание.В Goodbit мы руководствуемся Стандартным проектом проверки безопасности приложений OWASP (одной из самых авторитетных организаций в области безопасности программного обеспечения), который предоставляет полный список методов безопасного кодирования и модульных тестов для разработчиков.

Передовой опыт: Goodbit выбирает автоматический сбор информации о целевом программном обеспечении. Например, мы часто добавляем статическое тестирование безопасности приложений (SAST) и динамическое тестирование безопасности приложений (DAST) в конвейеры CI/CD, чтобы сканировать каждую сборку по одному и тому же сценарию и обнаруживать, где может быть осуществлена атака на приложение.

4

Развертывание и поддержка программного обеспечения: тестирование на проникновение, окончательная проверка безопасности и план реагирования на инциденты

Основные результаты: отчет о результатах тестирования безопасности с описанием обнаруженных проблем безопасности, их уровня риска, влияния и способов их устранения; мониторинг безопасности и план реагирования на инциденты.

На этом этапе команда Goodbit продолжает:

  • Проведение тестирования программного обеспечения и его инфраструктуры; исправление выявленных проблем безопасности и проведение регрессионного тестирования. Примечание. Когда мы итеративно разрабатываем программное обеспечение, эти действия выполняются в каждой сборке.
  • Окончательная проверка безопасности (FSR), проводимая профильными экспертами по безопасности для проверки того, что риски безопасности, выявленные в ходе предыдущих действий по обеспечению безопасности, были должным образом устранены (устранены или имеется план их устранения).
  • Создание процедуры реагирования на инцидент.
  • Настройка мониторинга безопасности приложений, выполнение ручного и автоматизированного регрессионного тестирования безопасности.
  • (если применимо) Подача заявки на внешнюю проверку для официального подтверждения соответствия отраслевым нормам.
  • Создание процесса обратной связи и инструментов для пользователей, белых хакеров и т. д., чтобы сообщать о выявленных уязвимостях.
Показать полностью

Услуги по безопасной разработке программного обеспечения от Goodbit

Консультации по разработке безопасного программного обеспечения

  • Помощь в формировании концепции программного обеспечения, выявление и структурирование требований к программному обеспечению, включая требования безопасности.
  • Проектирование архитектуры безопасного программного обеспечения, помощь в выборе технологического стека.
  • Разработка бизнес-кейса.
  • Доставка PoC.
  • Предоставление подробной дорожной карты развития.
  • Планирование стратегии DevSecOps.
Получить консультацию

Безопасная разработка программного обеспечения

  • Разработка требований к программному обеспечению, включая требования безопасности.
  • Безопасный дизайн программного обеспечения.
  • Разработка с использованием лучших практик безопасного кодирования.
  • Регулярные проверки кода экспертами по безопасности.
  • Тестирование на проникновение после коммита (автоматизированное/ручное).
  • Создание безопасных конвейеров CI/CD.
Получить консультацию

Популярные модели сорсинга для безопасной разработки программного обеспечения

Весь процесс разработки безопасного программного обеспечения осуществляется внутри компании

Плюсы:

  • Полный контроль над процессом разработки, инфраструктурой и мерами безопасности.

Минусы:

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

Частичный аутсорсинг проекта разработки безопасного программного обеспечения

Плюсы:

  • Экспертиза безопасности квалифицированных сторонних ресурсов помогает реализовать безопасность на каждом этапе SDLC.

Минусы:

  • С вашей стороны требуется частичная или полная координация команды проекта, контроль качества и управление рисками.
  • Необходим комплексный аудит безопасности поставщика.
  • Необходим аудит всех цифровых точек между вами и вендором.

Полный аутсорсинг процесса разработки безопасного программного обеспечения

Плюсы:

  • Поставщик берет на себя полную ответственность за безопасность всей инфраструктуры разработки, формирование и управление командой, а также качество результатов проекта.
  • Установлены безопасные методы и методологии разработки программного обеспечения для каждого этапа SDLC.

Минусы:

  • Высокие риски поставщика.
  • Необходим комплексный аудит безопасности поставщика.

Ключевые роли в наших командах разработчиков безопасного программного обеспечения

Руководитель проекта

  • Планирует время и бюджет для обеспечения тщательного выполнения требований безопасности и отказоустойчивости на протяжении всего жизненного цикла разработки программного обеспечения.

Программист

  • Разрабатывает безопасный бэкенд и внешний интерфейс, используя методы безопасного кодирования.

Бизнес-аналитик (BA)

  • Собирает и документирует функциональные и нефункциональные требования (включая безопасность и отказоустойчивость) от всех заинтересованных сторон программного обеспечения.
  • Помогает в выявлении и оценке угроз и мер противодействия благодаря глубокому пониманию конкретных бизнес-процессов и данных.
  • Определяет ценность данных, которые должны быть собраны, сохранены и переданы планируемым программным обеспечением.
Показать полностью

Инженер по безопасности

  • Выявляет недостатки безопасности программного обеспечения на всех этапах SDLC.
  • Подготавливает профиль риска приложения.
  • Выполняет статический и динамический анализ программного обеспечения; автоматизирует эти типы анализа, помогает интегрировать инструменты безопасности в конвейеры CI/CD.
  • Настраивает и внедряет средства компьютерной безопасности и диагностики и мониторинга сети.
Показать полностью

Затраты на разработку безопасного программного обеспечения

Затраты

Внедрение методов безопасной разработки программного обеспечения требует дополнительных навыков и усилий (обычно 20-80% дополнительных усилий), что делает такие проекты более дорогостоящими, чем проекты, ориентированные на разработку «обычного» программного обеспечения. Стоимость разработки безопасного программного обеспечения зависит от:

  • Дополнительные навыки и роли, которые должны быть включены в проектную команду.
  • Изменение размера исходного кода из-за добавления защиты безопасности.
  • Предполагаемая сложность (от очень низкой до очень высокой) программного проекта до и после добавления безопасности.
  • Объем документации по программному обеспечению, необходимый до и после введения мер безопасности.
  • Знакомство проектной группы с инструментами, необходимыми для повышения безопасности программного проекта.
  • Изменение необходимого времени разработки.
  • Уровень требуемой надежности ПО (от очень низкого до очень высокого).
Показать полностью

Преимущества

Клиенты Goodbit, которые выбирают безопасную разработку программного обеспечения и вкладывают средства в устранение уязвимостей как можно раньше в SDLC:

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

В целом отдача от создания безопасной среды разработки программного обеспечения составляет около 20%.

  • Избегайте огромных санкций и штрафов за утечку данных.
Показать полностью