К основному содержимому
к выпуску
Конспект выпуска2024Fellow

Secure by Design в Google: безопасность по умолчанию

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

Research Insights Made Simple3 минуты

Конспект сокращён относительно исходного материала; примеры и оценки передают опыт и позиции участников.

Основная линия материала
01

Безопасность начинается с устройства системы

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

Для формулирования требований обсуждаются инварианты — условия, которые должны сохраняться при работе системы. Пример касается SQL: части запроса должны происходить из доверенного источника либо передаваться как параметры. Множество таких требований трудно постоянно держать в голове. Библиотеки и фреймворки могут закреплять их в доступных разработчику интерфейсах, уменьшая вероятность повторения известных ошибок при обычном использовании.

02

Ранние проверки полезны, если им доверяют

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

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

03

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

В разговоре поддерживается переход к языкам с безопасным управлением памятью и к выпуску изменений без ручных правок рабочих систем. Подход Zero Touch Prod предполагает управление приложением и инфраструктурой через код. Это уменьшает потребность в привилегированном ручном доступе, но требует контроля самих артефактов и процесса их поставки. Для моделей собеседники отдельно упоминают реестр, версии и контроль весов.

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

Выводы

Что стоит унести с собой

  1. 01Закрепляйте повторяющиеся требования безопасности в библиотеках и платформенных средствах.
  2. 02Ложные замечания и удобство исправления влияют на доверие к ранним проверкам.
  3. 03Безопасные настройки, управляемая поставка и контроль артефактов требуют постоянной поддержки.

Источники