Безопасное программирование в DD Planet построено на нескольких принципах. Первый из них — это надежность. Работоспособность продукта должна быть предсказуема, корректна и безотказна. Даже в случае, если исходные данные введены некорректно (случайно или намеренно в рамках атаки на продукт).
Второй — безопасность. Возможность защиты от внешних угроз, атак и сохранение работоспособности после их отражения и устранения.
Третий — конфиденциальность. Обеспечение безопасной и корректной работы с персональными данными. Это критически важно при разработке корпоративных и пользовательских приложений.
Например, сервис Вместе.ру, разработкой и поддержкой которого занимается DD Planet, представляет собой приватную социальную сеть для соседей и содержит множество персональных данных. Профиль пользователя подтверждается с помощью Госуслуг, а принадлежность к определенному адресу (соседство) — выпиской ЕГРН из Росреестра. Это накладывает на разработчика серьезные обязательства, связанные с защитой личной информации.
Хранение и обработка пользовательских данных
Все персональные данные мы храним в ИСПДн (Информационной системе персональных данных). Они содержатся в изолированной виртуальной сети с защищенной ИТ-инфраструктурой. В виртуальную сеть интегрированы средства обнаружения вторжений, сервер анализа защищенности и поиска уязвимостей, а также сервер резервного копирования.
Для выявления уязвимостей применяем “ручной подход” и опираемся на экспертный анализ. Данный принцип не подразумевает использование каких-либо автоматизированных средств: исследование проводит опытный специалист, а при выявлении уязвимостей он ориентируется на собственные знания. Понятно, что данный прием влечет большие временные затраты и предполагает наличие в компании специалистов высокой квалификации. Однако он считается самым эффективным с точки зрения точности и полноты охвата данных при проверке.
Severity в борьбе за идеальный продукт
В клиентской разработке важно делать релизы вовремя, при этом приложение должно быть без багов и гарантировать пользователям безопасность. Следуя этому принципу, во время тестирования продуктов мы используем принцип оценивания задач по приоритету — Severity. То есть ранжируем все задачи по устранению багов в зависимости от степени негативного влияния на продукт дефекта.
Приоритетность в устранении багов в DD Planet следующая:
Такая последовательность помогает нам быстро избавляться от багов, концентрируясь на ключевых для пользователя аспектах.
Релиз продукта происходит в несколько этапов. Сперва он публикуется на тестовом окружении для выявления багов. Затем идёт багфиксинг приоритетов c уровнем Severity 1 и 2. После этого мы делаем релиз на продакшн. В течении некоторого времени после релиза часть команды занимается устранением багов с приоритетностью 3 и 4. Через несколько дней происходит еще одно обновление в prod после устранения оставшихся проблем.
Чтобы обеспечить максимальную безопасность продукта:
Не доверяйте пользовательскому вводу: любые данные от клиента (пользователя) должны проверяться на сервере. Это позволит предотвратить прохождение скриптов или злонамеренных шестнадцатеричных кодов. Пользовательские данные часто передаются в качестве параметров для вызова другого кода на сервере и, если их не проверить, могут серьезно нарушить безопасность системы. Вот почему так важно строго проверять все входные данные на корректность.