«Безопасность — это ответственность каждого. «Если вы работали в корпоративной среде, я уверен, что вы слышали эту фразу раньше. Обычно это появляется в рамках ежегодного, необходимого обучения безопасности. Затем вы проводите следующие 15-30 минут, узнав об опасностях открытия файлов, прикрепленных к электронным письмам и о том, как избежать общих фишинговых мошенничества. Если вы разработчик программного обеспечения, скорее всего, вы прокажите эти годовые освежители с легким раздражением, как можно быстрее, так что вы можете вернуться к своей реальной работе.
Как продвинутые пользователи технологий, нам нравится верить, что мы достаточно умны, чтобы распознавать попытки фишинга, не слышав тех же старых предупреждений о том, чтобы не открывать файлы .exe от кого -то, кого вы не знаете. Но, хотя разработчики могут с меньшей вероятностью влюбиться в общие атаки социальной инженерии, такие как Phishing, это не значит, что мы все еще не можем совершать чрезвычайно дорогостоящие ошибки в безопасности. Благодаря постоянному стремлению к более быстрым и более быстрым циклам разработки, легко сосредоточиться на решении проблемы под рукой, что небольшие проблемы безопасности могут проскользнуть. Несмотря на то, что эта фраза стала чем -то вроде клише, она не делает ее менее правдой, «безопасность — это ответственность каждого». Итак, что вы можете сделать, чтобы помочь создать атмосферу развития безопасности в вашей организации?
Тенденция «лечить смену»
Парадигма «смены левой» за последние несколько лет пробиралась через сообщество Devops. Общая идея состоит в том, чтобы переместить безопасность слева на временной шкале SDLC, включив элементы управления безопасности ранее в процессе разработки. Эта концепция выросла в популярности с ростом практик CI/CD.
Лично я не большой поклонник этого термина по нескольким причинам. Во -первых, «Сдвиг» подразумевает перемещение чего -то из одного места в другое. Я думаю, что желание внедрить безопасность в начале процесса великолепно, но организации не должны воспринимать это, чтобы означать, что они могут заменить свои текущие тестирование безопасности некоторыми инструментами безопасности CI/CD и назвать это днем. Если вы выполняете тесты на обеспечение безопасности в конце цикла, это все еще должно произойти. Возможно, вам придется внести некоторые модификации в процессе, если этот тип тестирования вызывает узкое место, но не позволяйте этой идее «сдвиг слева» привести к тому, что вам нужно поверить, что вам нужно только проверки безопасности в одной точке в процессе разработки.
Вторая проблема, с которой я столкнулся с этой концепцией, — это то, как поставщики программного обеспечения зафиксировали ее, как и всегда, чтобы убедить вас в том, что все, что вам нужно для реализации парадигмы «сдвига» в вашей организации, — это интегрировать свой инструмент в свой рабочий процесс разработки Анкет Большинство из них являются некоторой формой инструментов анализа статического или динамического кода. Некоторые из них, вероятно, действительно хорошие инструменты, и добавление сканирования кода является важной частью философии «смены левого», но это не может быть единственным, что вы делаете.
Если вы действительно хотите сделать этот тип сдвига в своей организации, и вам абсолютно следует, это требует гораздо больше, чем инструмент сканирования кода. Это требует не только сдвига в контроле безопасности, но и в том, как ваша организация думает о безопасности в целом. Точно так же, как DevOps требовал сдвига в том, как мы думаем о пересечении разработки и операций, DevSecops требует понимания того, как безопасность вписывается в общий процесс разработки программного обеспечения. Это требует, чтобы вы убедили всю свою команду; Разработчики, менеджеры, владельцы продуктов, дизайнеры, тестировщики QA, это безопасность на самом деле это их ответственность.
Создание богатой безопасности атмосферы
Если вы хотите создать этот тип богатой безопасностью среды для вашей команды разработчиков, вам нужно будет получить участие в вашей организации. Для всех должно быть ясно, что они являются частью команды безопасности. Аналогичным образом, ваши инженеры по безопасности должны стать частью команды разработчиков. Это может показаться довольно большим сдвигом в ролях, но вот некоторые вещи, которые вы можете сделать, чтобы начать построить этот тип совместных отношений:
1. Обеспечить безопасное обучение кодирования для ваших разработчиков.
Вы должны убедиться, что ваши разработчики понимают безопасные методы кодирования. Это особенно важно, если вы нанимаете много младших разработчиков. Многие из этих разработчиков могут иметь очень мало знаний о безопасных практиках кодирования. Возможно, они никогда не слышали о инъекции SQL или атаке сценариев. Они могут видеть шаблоны, установленные вашим старшим разработчиком, например, параметризованные запросы, но они могут не понимать «почему» за этими моделями. Когда -то в будущем эти разработчики могут отклониться от установленных моделей, потому что они не понимают причин, по которым они были написаны таким образом в первую очередь. Важно, чтобы все ваши разработчики имели фундаментальное понимание безопасных практик кодирования.
2. Включите инженеров безопасности в свои гибкие команды.
Я работал в многочисленных клиентах, используя какую -то форму Agile. Адфейские команды обычно состоит из некоторой комбинации разработчиков, архитекторов, BAS, мастеров Scrum, владельцев продуктов, тестеров QA и графических дизайнеров, но мне еще предстоит работать в клиенте, где они включают инженера по безопасности в рамках Agile команда. Это кажется важной упущенной возможностью и может оказаться невероятно ценным для распространения безопасности во всей вашей организации. Будучи членом Agile Team, у вас есть кто -то, кто отвечает на вопросы безопасности во время планирования, и вызвать любые проблемы, которые они увидят до того, как работа в разработке даже начнет историю. Это может помочь предотвратить дефекты и избежать переделки. Это также помогает устранить воображаемую стену, которая часто отделяет команды разработчиков от команды безопасности в организации. Работа вместе на ежедневной основе позволяет этим командам делиться знаниями и придумывать решения, которые определяют приоритеты как бизнес -целей, так и безопасность организации.
3. Определите чемпионов безопасности в ваших командах разработчиков.
Если вы хотите распространять осведомленность о безопасности в своих командах, важно идентифицировать людей, которые уже проявляют страсть к безопасности в вашей нынешней команде. Эти люди могут быть лидерами в стремлении создать отношение к безопасности. Это особенно важно, если у вас нет возможности вставлять инженеров -безопасности в ваши гибкие команды. Обеспечить дополнительную подготовку этим разработчикам, и они смогут привлечь внимание к безопасности во время планирования. Они также могут помочь наставлять более младших разработчиков о безопасных методах кодирования.
4. Включите сценарии безопасности в ваше автоматическое тестирование.
Если вы проводите автоматическое тестирование QA, рассмотрите возможность включения сценариев безопасности в эти тесты. Тестовые поля ввода для инъекций SQL и убедитесь, что соответствующие ошибки возвращаются, например. Это может быть особенно полезно для тестирования общих уязвимостей безопасности в быстро развивающихся проектах непрерывного развертывания. Этот тип автоматического тестирования не должен занимать тщательное ручное тестирование или тесты на проникновение, но это может обеспечить хорошее решение для предотвращения регрессии в вашей базе кода. Если вы включили инженера по безопасности в вашу Agile Team, это прекрасное время для них, чтобы сотрудничать с вашей автоматизированной командой QA, чтобы выяснить, какие сценарии можно проверить таким образом.
5. Требовать проверки кода, специфичного для безопасности,
Это большой, и, вероятно, мой любимый совет по повышению сознания безопасности в команде разработчиков. Он вводит еще один шаг в рабочем процессе разработки, и он может немного замедлить ситуацию, но преимущества могут быть огромными. Идея состоит в том, что когда разработчик имеет изменения, которые готовы к развертыванию, их код проходит обычный процесс рассмотрения. Этот первоначальный обзор предназначен для качества кода; Обеспечение того, чтобы лучшие практики и установленные модели были соблюдены. Как только это будет утверждено, требуется второй обзор, этот обзор сосредоточен специально на проблемах безопасности, которые могут быть вызваны изменением. Этот рецензент меньше беспокоится о коде, а также о последствиях безопасности. Каков уровень риска внесенных изменений? Есть ли какой -нибудь PII, вовлеченный в изменения? Правильные изменения дисплея подходят, чтобы их увидели только авторизованные пользователи? Передаются ли какие-либо новые данные стороннему партнеру? Добавляются ли какие -либо новые зависимости в проект? Были ли написаны модульные тесты, которые тщательно охватывают любые интересы? Это может помочь определить основные вопросы, которые необходимо задать, и предоставить контрольный список для использования рецензентами. Самое замечательное в этом типе обзора заключается в том, что он не только помогает поймать ошибки безопасности до их выпуска в постановке, но также помогает сосредоточиться на ваших разработчиках, насколько серьезно вы относитесь команда. Ваши разработчики вынуждены рассмотреть безопасность во время разработки, рецензент должен продумать потенциальные последствия для безопасности каждого изменения, и когда указывается проблема, рецензенту предоставляется возможность поделиться знаниями с разработчиком.
6. Интегрируйте автоматизированные инструменты в рабочий процесс разработки.
Чтобы обеспечить наилучшую безопасность для ваших приложений, вам необходимо включить несколько автоматизированных инструментов в процесс разработки. Они могут включать такие вещи, как инструменты анализа статического кода, инструменты анализа динамического кода, сканирование зависимостей и т. Д. В каждой категории есть как коммерческие, так и инструменты с открытым исходным кодом, и какие инструменты вам необходимы, будут определены потребностями вашей собственной организации. Эти инструменты обеспечивают дополнительные уровни безопасности для вашего конвейера разработки, но на них не следует полагаться слишком сильно. Я включил этот совет последним по причине. Независимо от того, сколько автоматизированных инструментов вы бросаете в конвейер, они никогда не смогут конкурировать с преимуществами, полученными путем стимулирования по-настоящему ориентированной на безопасность атмосферы в вашей организации.
Перемещение команды разработчиков к отношению к безопасности-это немалая задача. Несомненно, будет оттенок, но, как разработчики, мы играем огромную роль в цифровом следе организации, и мы несем ответственность за то, чтобы мы сделали все возможное, чтобы ограничить риск, связанный с любыми изменениями, которые мы внесем. В то же время наша организация несет ответственность за обеспечение того, чтобы у их разработчиков были инструменты и обучение, необходимые для написания безопасного кода. Реализация приведенных выше советов является хорошей отправной точкой для перехода на действительно ориентированную на безопасность команду разработчиков.
Оригинал: «https://dev.to/leading-edje/cultivating-a-security-focused-development-team-4g1g»