5 марта 2020 года в офисе OZON прошёл очередной митап Московского отделения сообщества OWASP. Кажется, что получилось здорово, а краткий отчёт с материалами встречи был недавно опубликован на Хабре. В этом же посте представлен доклад oxdef.
Продолжая серию экспресс-докладов про проекты OWASP, сегодня мы поговорим о OWASP SAMM — одном из важнейших проектов сообщества. В начале года вышла его вторая версия — и это хороший повод рассказать о фреймворке подробнее.
Аббревиатура SAMM расшифровывается как Software Assurance Maturity Model — и корректно перевести это на русский язык сложно (как и многие английские термины из мира IT). Это проект – модель обеспечения безопасности ПО, фреймворк базы знаний и документации, помогающий построить цикл разработки безопасных приложений. Именно то, чего так часто не хватает, когда приходишь в компанию или хочешь сделать в своем бизнесе все «по фэн-шую» с точки зрения S-SDLC — внедрить все «контроли», про которые слышал: SAST, DAST, заняться обучением и понять, с чего бы начать и куда дальше двигаться.
OWASP SAMM оценивает текущий уровень информационной безопасности в разработке ПО, и на основе этого позволяет выстроить полноценную программу, которую вы сможете внедрять понятными этапами в обозначенные сроки, у вас будет перечень активностей и практик для внедрения — это огромный плюс. Это можно сравнить с учебником, который можно открыть и следовать ему.
OWASP SAMM состоит из следующих модулей
Давайте подробнее остановимся на модели. В ней есть набор бизнес-функций: управление, дизайн, архитектура, разработка, верификация и операции. В предыдущей версии было четыре бизнес-функции, в новой — 5. К этим бизнес-функциям прилагается по 3 практики информационной безопасности, которые нужно внедрить, в каждой из этих практик есть еще две активности. Всего 30 активностей, которые вы можете по-разному планировать, чтобы прийти к цели, а заветная цель в данном случае — повышение уровня зрелости (maturity).
OWASP SAMM подразумевает три уровня зрелости. Комбинируя активности, внедряя и оценивая их, вы сможете понятными для себя и бизнеса итерациями идти к новому уровню. Это позволяет наметить цели и план на год, и поквартально по нему двигаться, чтобы через год вы смогли оценить эффективность проделанной работы.
Активностей, как вы заметили, много. Например, в разделе «Обучение» подробно описано, что вы можете сделать, чтобы повысить уровень знаний разработчиков, как это оценить и будет ли этого достаточно для перехода на следующий уровень. Есть отдельный раздел про управление дефектами. Всегда полезно иметь возможность оценить, насколько хорошо или плохо обстоят дела с уязвимостями сейчас и сравнить с тем, как было раньше, чтобы понимать, что происходит в вашем продукте с точки зрения информационной безопасности: все ли системно устранено и стоит ли дальше с этим что-то делать.
Обычно внедрение практик безопасной разработки начинается с того, что вы спрашиваете себя: «А не сделать ли мне продуктовую безопасность в компании? Внедрить S-SDLC!» и готовитесь к этому: общаетесь с бизнесом, разработкой, тимлидами, чтобы понять, нужно ли этом им.
Следующий этап — оценка текущего состояния. Опросник позволяет собрать информацию о безопасности в компании у большого количества людей. Чем их больше, тем лучше данные будут отражать реальность.
Вот у вас появилась оценка текущего состояния. Теперь вы понимаете, куда нужно двигаться и к какой цели идти. На этом уровне вы смотрите на цели и формируете план, а предлагаемый опросник поможет вам разложить его по этапам от месяца до года.
А дальше начинается самое интересное — непосредственно внедрение процедур контроля, например, того же SAST (не забываем сразу подумать про метрики эффективности). И в конце у вас появляется roll out — это некий постэкшн к вашим шагам. На этом этапе вы понимаете, что все вами придуманное и внедряемое, во-первых, работает, а, во-вторых, заметно, как минимум, для «бизнес-овнеров» и для вас в том числе.
В этот момент вы можете взять паузу, чтобы набраться сил и двигаться на следующий уровень. И весь цикл начинается заново — такими итерациями вы и построите S-SDLC.
Как я уже сказал в самом начале самый частый вопрос, когда вы собираетесь внедрять S-SDL или SDLC в компании: «С чего начать?». Здесь важно, что, когда бы вы ни собрались это сделать, у вас есть возможность не заморачиваться над тем, чтобы сначала внедрить SAST, собственноручно написать гайды или провести тренинг — достаточно взять формализованный фреймворк, и на его основе выстроить свою стратегию и построить в итоге программу обеспечения информационной безопасности разработки ваших приложений. С этим вам и поможет OWASP SAMM.
— Можешь рассказать про твой опыт по внедрению OWASP SAMM?
— Об OWASP SAMM я узнал всего пару лет назад. Все, что мы делали в предыдущих проектах было по наитию на основе опыта. В SAMM же все расписано, и главное — измеряемо. Наконец вы сможете понять, насколько эффективно внедряете изменения. В Ozon мы взяли раздел про обучение и культуру информационной безопасности и на его основе подготовили ряд процессов: организовали тренинги, начали проводить новых сотрудников через анкетирование и тестирование по информационной безопасности, проводить различные активности, повышая уровень информационной безопасности в головах. В будущем мы пройдемся и по другим модулям.
— Нужно ли проводить обучение для руководителей проектов, чтобы они понимали, для чего необходимо S-SDLC?
— В OWASP SAMM на разных уровнях зрелости предполагается развитие обучения. На первом уровне вы, например, делаете внутренний портал, где постите ссылки на полезные ресурсы. На следующем уровне — формируете специализированные тренинги и гайды. У нас во внутреннем портале есть отдельные гайды для целевых групп: разработчиков, менеджеров, QA. На третьем уровне возникает необходимость измерять качество и понимать, насколько хорошо все изучили материалы и прошли гайды — возможно, кого-то вообще нельзя пускать в особенно критичный проект без определенного уровня прохождения теста по информационной безопасности. Все эти уровни мы прошли и практически сразу перешли к третьему.
— То, что сотрудник прошел тренинг и решил тест еще не значит, что он использует свои знания на практике. Как доказать бизнесу, что обучение важно и для этого нужен, как минимум, бюджет?
— Я не могу сказать, что необходимость обучения доказать проще, чем эффективность SAST. Эффективность информационной безопасности — тема для отдельного большого доклада с цифрами, метриками, графиками. На первом уровне вполне может быть достаточно того, что у вас есть статистика, например, по среднему баллу для ваших разработчиков. Для особо критичных сервисов эту планку можно повысить. И доказывать, как мне кажется, будет проще, потому что руководству можно будет показать: знания разработчиков в сфере информационной безопасности растут, поскольку есть метрика количества правильных ответов. Во многих крупных компаниях есть практика проведения внутренних CTF — если вы видите, что в соревновании участвует много людей, все заинтересованы и из года в год растет количество участников, это означает, что повышается уровень знаний. Как и во всей информационной безопасности, здесь нет одной метрики — это всегда набор показателей, по которым можно ориентироваться, чтобы показывать динамику в определенных областях.
— Не слишком ли эта система сложная? Не разбегутся ли глаза у того, кто начнет с этим работать? Возможно, сначала стоит попытаться самому что-то придумать, а потом обратиться к OWASP?
— Самому будет ощутимо дольше. Как раз с помощью более формализованного (разобранного по полочкам) подхода OWASP SAMM можно освободить время для других задач и не выдумывать, что сделать сначала и какими цифрами потом доказывать себе и руководству, что работа эффективна. В данном случае мы берем OWASP SAMM и на его основе делаем свою программу. Он позволяет значительно ускориться, как минимум, на старте и не тратить время на получение опыта, собирание шишек и тому подобное.
Продолжая серию экспресс-докладов про проекты OWASP, сегодня мы поговорим о OWASP SAMM — одном из важнейших проектов сообщества. В начале года вышла его вторая версия — и это хороший повод рассказать о фреймворке подробнее.
Что это такое?
Аббревиатура SAMM расшифровывается как Software Assurance Maturity Model — и корректно перевести это на русский язык сложно (как и многие английские термины из мира IT). Это проект – модель обеспечения безопасности ПО, фреймворк базы знаний и документации, помогающий построить цикл разработки безопасных приложений. Именно то, чего так часто не хватает, когда приходишь в компанию или хочешь сделать в своем бизнесе все «по фэн-шую» с точки зрения S-SDLC — внедрить все «контроли», про которые слышал: SAST, DAST, заняться обучением и понять, с чего бы начать и куда дальше двигаться.
OWASP SAMM оценивает текущий уровень информационной безопасности в разработке ПО, и на основе этого позволяет выстроить полноценную программу, которую вы сможете внедрять понятными этапами в обозначенные сроки, у вас будет перечень активностей и практик для внедрения — это огромный плюс. Это можно сравнить с учебником, который можно открыть и следовать ему.
OWASP SAMM состоит из следующих модулей
- Описание самой модели, подхода к построению SDL;
- Опросник — большая анкета, отвечая на вопросы которой, вы поймете, на каком уровне сейчас находитесь. Это позволит сделать план, чтобы добраться до заветной цели.
- Шаблоны внедрения OWASP SAMM. В новой версии, помимо шаблонов, появились бенчмарки. Если у вас все хорошо, но у соседей намного лучше — это повод что-то улучшить и доработать, и с бенчмарками такие ориентиры появляются. Конечно, всю информацию команды предоставляют добровольно, и она дает всем возможность оценить и сравнить себя с другими.
Давайте подробнее остановимся на модели. В ней есть набор бизнес-функций: управление, дизайн, архитектура, разработка, верификация и операции. В предыдущей версии было четыре бизнес-функции, в новой — 5. К этим бизнес-функциям прилагается по 3 практики информационной безопасности, которые нужно внедрить, в каждой из этих практик есть еще две активности. Всего 30 активностей, которые вы можете по-разному планировать, чтобы прийти к цели, а заветная цель в данном случае — повышение уровня зрелости (maturity).
OWASP SAMM подразумевает три уровня зрелости. Комбинируя активности, внедряя и оценивая их, вы сможете понятными для себя и бизнеса итерациями идти к новому уровню. Это позволяет наметить цели и план на год, и поквартально по нему двигаться, чтобы через год вы смогли оценить эффективность проделанной работы.
Активностей, как вы заметили, много. Например, в разделе «Обучение» подробно описано, что вы можете сделать, чтобы повысить уровень знаний разработчиков, как это оценить и будет ли этого достаточно для перехода на следующий уровень. Есть отдельный раздел про управление дефектами. Всегда полезно иметь возможность оценить, насколько хорошо или плохо обстоят дела с уязвимостями сейчас и сравнить с тем, как было раньше, чтобы понимать, что происходит в вашем продукте с точки зрения информационной безопасности: все ли системно устранено и стоит ли дальше с этим что-то делать.
Работа с SAMM
Обычно внедрение практик безопасной разработки начинается с того, что вы спрашиваете себя: «А не сделать ли мне продуктовую безопасность в компании? Внедрить S-SDLC!» и готовитесь к этому: общаетесь с бизнесом, разработкой, тимлидами, чтобы понять, нужно ли этом им.
Следующий этап — оценка текущего состояния. Опросник позволяет собрать информацию о безопасности в компании у большого количества людей. Чем их больше, тем лучше данные будут отражать реальность.
Вот у вас появилась оценка текущего состояния. Теперь вы понимаете, куда нужно двигаться и к какой цели идти. На этом уровне вы смотрите на цели и формируете план, а предлагаемый опросник поможет вам разложить его по этапам от месяца до года.
А дальше начинается самое интересное — непосредственно внедрение процедур контроля, например, того же SAST (не забываем сразу подумать про метрики эффективности). И в конце у вас появляется roll out — это некий постэкшн к вашим шагам. На этом этапе вы понимаете, что все вами придуманное и внедряемое, во-первых, работает, а, во-вторых, заметно, как минимум, для «бизнес-овнеров» и для вас в том числе.
В этот момент вы можете взять паузу, чтобы набраться сил и двигаться на следующий уровень. И весь цикл начинается заново — такими итерациями вы и построите S-SDLC.
Как я уже сказал в самом начале самый частый вопрос, когда вы собираетесь внедрять S-SDL или SDLC в компании: «С чего начать?». Здесь важно, что, когда бы вы ни собрались это сделать, у вас есть возможность не заморачиваться над тем, чтобы сначала внедрить SAST, собственноручно написать гайды или провести тренинг — достаточно взять формализованный фреймворк, и на его основе выстроить свою стратегию и построить в итоге программу обеспечения информационной безопасности разработки ваших приложений. С этим вам и поможет OWASP SAMM.
Вопросы:
— Можешь рассказать про твой опыт по внедрению OWASP SAMM?
— Об OWASP SAMM я узнал всего пару лет назад. Все, что мы делали в предыдущих проектах было по наитию на основе опыта. В SAMM же все расписано, и главное — измеряемо. Наконец вы сможете понять, насколько эффективно внедряете изменения. В Ozon мы взяли раздел про обучение и культуру информационной безопасности и на его основе подготовили ряд процессов: организовали тренинги, начали проводить новых сотрудников через анкетирование и тестирование по информационной безопасности, проводить различные активности, повышая уровень информационной безопасности в головах. В будущем мы пройдемся и по другим модулям.
— Нужно ли проводить обучение для руководителей проектов, чтобы они понимали, для чего необходимо S-SDLC?
— В OWASP SAMM на разных уровнях зрелости предполагается развитие обучения. На первом уровне вы, например, делаете внутренний портал, где постите ссылки на полезные ресурсы. На следующем уровне — формируете специализированные тренинги и гайды. У нас во внутреннем портале есть отдельные гайды для целевых групп: разработчиков, менеджеров, QA. На третьем уровне возникает необходимость измерять качество и понимать, насколько хорошо все изучили материалы и прошли гайды — возможно, кого-то вообще нельзя пускать в особенно критичный проект без определенного уровня прохождения теста по информационной безопасности. Все эти уровни мы прошли и практически сразу перешли к третьему.
— То, что сотрудник прошел тренинг и решил тест еще не значит, что он использует свои знания на практике. Как доказать бизнесу, что обучение важно и для этого нужен, как минимум, бюджет?
— Я не могу сказать, что необходимость обучения доказать проще, чем эффективность SAST. Эффективность информационной безопасности — тема для отдельного большого доклада с цифрами, метриками, графиками. На первом уровне вполне может быть достаточно того, что у вас есть статистика, например, по среднему баллу для ваших разработчиков. Для особо критичных сервисов эту планку можно повысить. И доказывать, как мне кажется, будет проще, потому что руководству можно будет показать: знания разработчиков в сфере информационной безопасности растут, поскольку есть метрика количества правильных ответов. Во многих крупных компаниях есть практика проведения внутренних CTF — если вы видите, что в соревновании участвует много людей, все заинтересованы и из года в год растет количество участников, это означает, что повышается уровень знаний. Как и во всей информационной безопасности, здесь нет одной метрики — это всегда набор показателей, по которым можно ориентироваться, чтобы показывать динамику в определенных областях.
— Не слишком ли эта система сложная? Не разбегутся ли глаза у того, кто начнет с этим работать? Возможно, сначала стоит попытаться самому что-то придумать, а потом обратиться к OWASP?
— Самому будет ощутимо дольше. Как раз с помощью более формализованного (разобранного по полочкам) подхода OWASP SAMM можно освободить время для других задач и не выдумывать, что сделать сначала и какими цифрами потом доказывать себе и руководству, что работа эффективна. В данном случае мы берем OWASP SAMM и на его основе делаем свою программу. Он позволяет значительно ускориться, как минимум, на старте и не тратить время на получение опыта, собирание шишек и тому подобное.