«ИТ-архитектор и ИБ-специалист должны идти рука об руку». На вопросы BIS Journal отвечает Евгений Тодышев

BIS Journal №4(59)2025

23 декабря, 2025

«ИТ-архитектор и ИБ-специалист должны идти рука об руку». На вопросы BIS Journal отвечает Евгений Тодышев

— Что вы можете сказать о базовых принципах безопасного проектирования программного обеспечения на разных его этапах? Что поменялось в подходах к безопасности разработки ПО в последние годы? 

 — Подходы к проектированию ПО заметно эволюционировали и продолжают изменяться в лучшую сторону. Если ещё лет десять назад вообще не особо задумывались о том, что решение должно быть безопасным, то сейчас это стало императивом на протяжении всего жизненного цикла разработки, начиная с проектирования. В частности, security by design представляет собой такой подход к проектированию ПО, при котором требования безопасности учитываются на самых ранних стадиях разработки, когда только закладывается бизнес-функционал.

Но есть и другая сторона медали. Разработка сейчас активно идёт в сторону использования микросервисного софта. Для того чтобы им успешно централизованно управлять, необходимо использовать специальные средства автоматизации, такие как контейнеры и системы оркестрации. И это сильно расширяет поверхность атаки, усложняя задачу проектирования.

— Как моделирование угроз применяется при разработке ПО?  

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

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

На завершающем этапе необходимо приоритизировать устранение угроз по степени риска: уже на этапе проектирования мы закладываем средства защиты против самых критичных из них. Моделирование угроз позволяет нам проиграть сценарий атаки на бумаге, выявив и заложив устранение рисков. И это будет намного дешевле, нежели исправлять эти угрозы в продакшене, а ещё хуже — если уязвимость будет проэксплуатирована и компания понесёт определённые финансовые потери. 

— Насколько выбор конкретного стека технологий, языка программирования влияет на безопасность итогового продукта?

— Прямого ответа на этот вопрос не существует. Безопасность — это всё-таки свойство применения технологии и во многом зависит от того, кто или как эту технологию применяет. С этой точки зрения нельзя выделить какой-то язык программирования с исключительным правом использования.

Например, для высокоуровневых приложений можно отдавать предпочтение языкам, которые управляют памятью автоматически, что в ряде случаев исключает целый класс критических уязвимостей, таких как переполнение буфера и утечки памяти. Эти проблемы часто встречаются в программном обеспечении, которое написано на C, C++.

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

— Какие архитектурные решения сегодня считаются более предпочтительными (например, микросервисы против монолитов)?

— В монолитной архитектуре риски сконцентрированы. Если злоумышленник находит уязвимость, которая позволяет сломать периметр защиты, он сразу получает доступ ко всей системе и всем данным сразу. Преимущество в том, что единый периметр можно усиленно контролировать и защищать, чему службы ИБ уже давно научились.

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

Именно поэтому микросервисы требуют принципиально другого подхода к безопасности. Основные требования, которые необходимо закладывать в архитектуру, — это строгая сетевая сегментация, использование servicemesh, индивидуальной аутентификации и, конечно же, принципа наименьших привилегий для каждого сервиса. Главное архитектурное преимущество микросервисов с точки зрения ИБ — это возможность изолировать атаку и ограничить ущерб за счёт создания безопасной среды исполнения на стадии проектирования.

— Какими принципами необходимо руководствоваться при проектировании АПИ?

— Есть несколько основных паттернов, которые необходимо использовать при проектировании API. В соответствии с принципом минимальных привилегий на уровне API каждый пользователь получает лишь необходимый и достаточный набор прав. Не надо создавать универсальный эндпоинт. Также необходимо строго валидировать API-схему и парсинг данных.

Следующий паттерн — это идемпотентность и безопасность используемых методов. Это предполагает следование стандартам HTTP. GET-запросы не должны изменять состояние системы. Применение методов POST или PUT позволяет выстроить дополнительную защиту от случайных повторов и ряда команд. Для предотвращения сбоя в доступности следует установить лимиты. API без лимитов запросов — это потенциальное появление DOS-атак и различных видов злоупотребления.

Ещё один важный принцип — это безопасность по умолчанию. Необходимо закладывать версионирование API с самого начала, что позволит нам вносить критические изменения в безопасность в новой версии без ущерба для старых клиентов. Важно проектировать политику устаревания для прежних, менее безопасных версий. Конечно, за версиями API необходимо строго следить, чтобы не получилось так, что из-за человеческого фактора (например, разработчик забыл отключить старый эндпоинт при выпуске нового) не появлялись возможности проэксплуатировать какие-то уязвимости.

— Как привить культуру безопасности в команде разработки? 

— Тут можно идти несколькими путями: либо сверху вниз, либо снизу вверх. Что я под этим подразумеваю? В первом варианте мы обсуждаем внедрение практик культуры на уровне руководства. И в целом в любом случае наступают моменты, когда приходится это делать. Речь может идти о разъяснении значимости этих практик и необходимого времени для их внедрения. После обоснования перед руководством практики спускаются вниз и так далее.

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

— Какие рекомендации можно дать при проектировании системы аутентификации и авторизации?

— Не создавайте собственные системы, а используйте проверенные отраслевые практики (OAuth 2.0, OIDC). Многофакторная аутентификация должна быть стандартом, и не стоит использовать только SMS, лучше переходить на Push. Также MFA может быть адаптивной и применяться только в рискованных операциях.

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

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

 

Вопросы задавал Усам Оздемиров

 

Реклама. ООО «УЦСБ», ИНН: 6672235068, Erid: 2VfnxwCqd8m

Стать автором BIS Journal

Смотрите также

Подписаться на новости BIS Journal / Медиа группы Авангард

Подписаться
Введите ваш E-mail

Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных

06.02.2026
ФБР надеется усилить кибербезопасность, выставив «Зимний щит»
06.02.2026
Мессенджер imo занял место заблокированного «Вайбера»
06.02.2026
Банк России сопроводит спорные операции подробностями
06.02.2026
Внедряя ИИ, CISO отстают от «победных реляций»
05.02.2026
Приложение Visit Russia пополнится новым функционалом
05.02.2026
В «Вышке» появился ИБ-департамент
05.02.2026
Присутствие эмодзи в коде PureRAT выявило роль ИИ в создании зловреда
05.02.2026
Газетчики не готовы давать ИИ-вендорам бесплатный «корм» для LLM
05.02.2026
Servicepipe внедрила расширенный фингерпринтинг в Cybert
04.02.2026
CISA подготовило список решений в области постквантовой криптографии

Стать автором BIS Journal

Поля, обозначенные звездочкой, обязательные для заполнения!

Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных