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

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

Однако, как все мы знаем, невозможно достичь идеальной безопасности по всем этим направлениям.

Более практичным подходом было бы создание модели угроз, в которой перечислены все потенциальные уязвимости и все вероятные атаки на продукт. Затем на основе этой модели угроз можно создать план безопасности. Однако в быстрорастущем SaaS-стартапе создание задачи, не говоря уже о ее обновлении, зачастую занимает слишком много времени. Возникает вопрос: есть ли более простое решение, которое предоставило бы список лучших практик вместо того, чтобы заставлять нас каждый раз изобретать велосипед?

Мы в Sqreen задумали создать этот контрольный список и проанализировали сотни продуктов SaaS и их потребности в безопасности. Результатом этого упражнения является список, в котором собраны передовые методы обеспечения безопасности по всей матрице.

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

Оперативный - Люди и процессы

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

1. Защитите своих сотрудников

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

  • Тренинг по безопасности для сотрудников: обучите своих инженеров операционной безопасности и созданию безопасных продуктов. Проведите тренинг по безопасности, особенно для не инженеров, используя такую ​​услугу, как https://sudo.pagerduty.com/.
  • Создавайте уникальные учетные записи для всех и рассказывайте им об опасностях совместного использования учетных записей. Разработайте политики, запрещающие сотрудникам делиться учетными записями пользователей.
  • Обеспечьте применение двухфакторной аутентификации для всех учетных записей: расскажите своим сотрудникам о типичных фишинговых и вишинговых (фишинговых телефонных звонках) атаках и убедитесь, что у них есть все необходимое для борьбы с ними, когда они случаются.
  • Используйте менеджеры паролей: менеджеры паролей помогают управлять несколькими учетными данными и безопасным обменом.

2. Создайте культуру безопасности.

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

  • Создавайте чемпионов по безопасности. Защитники безопасности - это люди, которые поощряют и обеспечивают безопасность во всей организации. Они станут помощниками остальной части организации при решении вопросов безопасности.
  • Дайте сотрудникам некоторое время сосредоточиться на вопросах безопасности. Сообщите, что это приоритет.
  • Покажите своим клиентам, что безопасность важна для вас. Ваши клиенты заботятся о безопасности используемых ими инструментов SaaS. Отличный способ сообщить, что вы осознаете это и серьезно относитесь к безопасности, - это создать веб-страницу, рекламирующую ваши методы обеспечения безопасности. Если вам нужен шаблон, мы создали страницу безопасности с открытым кодом.
  • Примите безупречное отношение. Если кто-то совершает ошибку, вы хотите узнать об этом как можно скорее, чтобы люди не скрывали ее из страха перед обвинением или наказанием.

И последний по порядку но не по значимости,

3. Нанять специализированный или частично специализированный ресурс по безопасности.

Одна из самых больших ошибок SaaS-компаний - это слишком долгое ожидание, чтобы нанять инженера по безопасности. Это вызывает накопление долгов по безопасности, и, как мы все знаем, чем позже вы откладываете что-то, чтобы что-то исправить, тем дороже это становится.

Также важно четко определить задачи ваших первых инженеров по безопасности. В Sqreen мы создали контрольный список на первые 100 дней жизни нового инженера по безопасности. Проверьте это на https://www.sqreen.com/checklists/security-engineer-checklist.

4. Защитите своих клиентов

В идеале ваши клиенты и их сотрудники также должны пройти такое же обучение, как описано выше. Однако еще несколько вещей имеют решающее значение для защиты ваших клиентов. Одним из них является захват учетной записи (ATO), когда преступник может выдать себя за вашего клиента и взять под контроль его учетную запись. Есть много способов захватить аккаунт. Самый распространенный - получение идентификаторов электронной почты и паролей, связанных с этой учетной записью. Для борьбы с АТО:

  • Информируйте клиентов о безопасности и мошенничестве с захватом учетной записи. В частности, убедитесь, что они используют достаточно надежный пароль.
  • Настаивайте на использовании 2FA и менеджеров паролей для своей платформы.
  • Логины и пароли пользователей являются обычным явлением в мире киберпреступности, и их легко получить. Попросите своих клиентов проверить такие сайты, как https://haveibeenpwned.com/, чтобы узнать, не были ли они скомпрометированы, и, если да, принять меры по исправлению положения.

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

Меры защиты от ATO должны быть встроены в продукт. Это можно сделать, используя в коде методы ограничения скорости и предотвращения перебора. Более простой подход - использовать решения для предотвращения ATO, такие как Sqreen. В Sqreen мы анализируем поведение пользователей и помечаем взломанные учетные записи в режиме реального времени. Подробнее о том, как мы это делаем, мы писали здесь: https://blog.sqreen.com/detecting-human-hackers-app-sqreen/

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

Технологии - безопасность приложений

Безопасность приложений связана с защитой приложения от хорошо известных атак и потенциальных взломов нулевого дня.

Ваше приложение SaaS является основным хранителем данных ваших клиентов. Существуют тысячи известных уязвимостей и атак в разных системах, языках и платформах. От всех них невозможно защититься. К счастью, есть несколько атак, которые предпринимаются гораздо чаще, чем другие, и разумно защитить себя от них, а не пытаться исправить все возможные потенциальные уязвимости в вашем коде. Шаги с пятого по седьмой объясняют передовой опыт в этом отношении.

5. Защищайте самое важное

Одна из основных причин, по которой люди атакуют продукты SaaS, - это доступ к конфиденциальным данным. Поэтому важно защитить основное приложение и базу данных от известных атак в этом пространстве.

  • Защита от наиболее распространенных атак, таких как Топ-10 OWASP.
  • Отслеживайте подозрительные события безопасности, чтобы действовать быстро в случае атаки.
  • Защитите свои API от атак с использованием инъекций.

6. Не используйте пакеты с известными уязвимостями.

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

Обновите все свои зависимости с помощью последних исправлений безопасности. Это легко исправить, и Github может помочь вам оставаться в курсе. В Sqreen мы анализируем пакеты на предмет известных уязвимостей и помогаем вам избежать наиболее уязвимых.

7. Проверьте свой код на наличие ошибок безопасности.

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

  • Обеспечьте соблюдение правил безопасного кодирования как часть SDLC, особенно во время проверки кода. Рецензенты должны уделять особое внимание недостаткам безопасности каждый раз, когда затрагивается чувствительная часть кода (например, аутентификация, оплата или рендеринг).
  • Используйте хороший инструмент SAST (статическое тестирование безопасности приложений), например Brakeman для Ruby или FindBugs для Java. Но имейте в виду, что эти инструменты генерируют множество ложных срабатываний.

Технологии - безопасность инфраструктуры

Наконец, давайте взглянем на безопасность инфраструктуры / сети, которая часто считается основой методов обеспечения безопасности. Он направлен на усиление защиты ОС, защиту периметров, безопасность транспорта и IAM (управление идентификацией и доступом).

8. Защитите свою инфраструктуру.

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

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

Вкратце, основные соображения таковы:

  • Обеспечьте соблюдение надлежащих ролей управления идентификацией и доступом для всего персонала, имеющего доступ к облаку. Применяйте двухфакторную аутентификацию и надежную политику паролей.
  • Включите брандмауэры и группы безопасности.
  • Настраивайте и выполняйте резервное копирование часто и систематически. Это может быть полезно для обеспечения непрерывности бизнеса в случае атак типа «отказ в обслуживании» и атак программ-вымогателей.
  • Включите все журналы и следите за ними на предмет подозрительных действий.
  • Создавайте границы сети, изолируя активы вашей инфраструктуры.

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

Если вы хотите узнать больше о том, как реализовать мониторинг безопасности и защиту в реальном времени за считанные минуты, установите демонстрацию Sqreen. Мы будем рады показать вам, что мы создали.

Первоначально опубликовано на https://blog.sqreen.com 13 марта 2019 г.