Доклад Федерального бюро Соединенных Штатов «Федеральное бюро расследования» (ФБР) указывает на то, что его центр жалоб в Интернете преступности (IC3) получил более 467 000 жалоб, связанных с киберпреступностью в 2019 году. Стоимость убытков, связанных с этим классом преступлений, оценивается около 3,5 млрд долларов ( Источник ). Анализ чисел из FBA показывает, что убытки удвоились с 2015 года, когда они составляли на 1,1 миллиарда долларов. Это указывает на то, что что-то нужно изменить, если безопасность компании и активов клиентов должны быть улучшены. Ситуация призывает к смещению мышления, прямо с ранних стадий процесса разработки программного обеспечения.
Для организаций, занимающихся кодом, пришло время гарантировать, что разработчики программного обеспечения имеют навыки кода дизайна, который будет на шаг впереди преступников. Это может быть легко сказать, но на практике это потребует обязательств изменить наш образ мышления. Нам придется уволить способ мышления, где тестирование безопасности кода что-то сделано правильно в конце — как какая-то последующая мысль. Силосы должны будут упасть, а безопасность нужно будет воспринимать всерьез разработчики.
В этой статье я хочу предложить, как организации могут изменить свой образ мышления, чтобы они могли защитить свои активы и теми своих клиентов. Я начну с посмотревшись на идею DEVOPS и традиционной практики безопасности. Мой фокус будет на том, как мы можем начать думать о безопасности в качестве кода и заставить разработчиков рассмотреть вопрос о безопасности и практикующих безопасности, чтобы думать, как разработчики.
Безопасность в эпоху дежопа
Чтобы понять смену в эпоху, где безопасность и код видны по новым способом, начинается с понимания идеи DevOps. Между практиками и академиками нет согласованного определения того, что представляет концепцию дежопа. Тем не менее, существует свободное соглашение о том, что он обозначает концепцию, где разработка программного обеспечения (представлена Dev. Часть), и IT-операциями (представленные части OPS) объединены.
Цель состоит в том, чтобы уменьшить время, необходимое для разработки систем при обеспечении того, чтобы доставку программного обеспечения постоянно и высокое качество. На практике идея может быть разделена на сегменты. К ним относятся доставка продуктов, текущее тестирование, тестирование качества и разработка функций и выбросов технического обслуживания. Цель состоит в том, чтобы убедиться, что выпущенное программное обеспечение не только надежно, но он также безопасен. Все это должно быть сделано за меньшее время, чем традиционные методы. Лучшие команды DEVOPS могут отправить высококачественное программное обеспечение несколько раз в день.
Принимая отношение DevOps, включает в себя ввод в эксплуатацию культурных изменений в организации. Организации, которые охватывают эту структуру, придется пересмотреть свои операции, роли своих разработчиков, операторов и тестеров во время разработки и доставки программного обеспечения. Эти группы должны будут обучены работать в сотрудничестве. Это связано с демонтаж силосов, которые в настоящее время являются особенностью во многих организациях.
Вкратце, я мог бы сказать, что идея DevOps видит безопасность как код. Это идея, которую я хочу посмотреть в этой статье. Я стремлюсь помочь организации, которая стремится перейти на этот образ мышления, чтобы определить некоторые из элементов, которые ему нужно будет обратиться.
Это не бизнес как обычно
Чтобы создать парадигме, сдвинувшись в DevOps Worth Mind, ваша организация должна начать с понимания преобладающих практик и что что-то нужно изменить. В большинстве компаний сегодня цикл разработки программного обеспечения начинается с команды разработки, получавших краткое описание того, что нужно сделать. Они идут делать то, что они знают лучше всего. Как только они сделают, команда безопасности должна просмотреть новый продукт, чтобы гарантировать, что у него нет проблем безопасности. Обычно это происходит за несколько недель до освобождения приложения.
Как и ожидалось, команда безопасности определит несколько проблем, которые необходимо будет рассмотрено в ходе этого процесса. Через несколько недель осталось перед выпуском, все попадают в паническое настроение, потому что становится ясно, что не будет выполнена сроки. На этом этапе компания может либо выпустить и выпустить приложение с глюками безопасности или отложить выпуск. Оба выбора будут стоить денег и оставить несколько человек несчастными.
Как видно из вышеперечисленного сценария, две команды в Организации (разработка и безопасность) обеспокоены разными вещами. Команда разработки хочет увидеть их продукт, идущий на рынок в сроках. С другой стороны, команды безопасности знают, что невозможно освободить программное обеспечение до решения проблем безопасности. Вот где приходит менталитет DevOps, чтобы помочь.
Разборка бункеров и размышления о безопасности как код
Чтобы решить ситуацию, когда команды, работающие над разработкой программного обеспечения, читают с разных страниц, нам нужно начать думать о безопасности в качестве кода. Но как мы это делаем? Нам нужно понять, что означает идею безопасности в качестве кода.
Мышление о безопасности в качестве кода представляет собой рамки, где мы начинаем создавать охранную часть рабочих процессов и инструментов DEVOPS. Это будет включать изменение систем, чтобы мы внесли изменения в инфраструктуру и код, чтобы обеспечить безопасность в различных этапах развития. Это означает, что команда безопасности не только увидит код, когда он закончен, но и в течение всего цикла разработки. Сотрудничество между командами гарантирует, что проблемы безопасности будут определены и разрешены рано.
Однако важно отметить, что мышление о безопасности в качестве кода не следует добавлять слои, которые сделают процесс более дорогими и потребляющимися трудоемкими. Как мы это убедим? Мы гарантируем это, изменив нашу политику безопасности. Результатом этих изменений должно быть включение испытаний в трубопровод и сам код.
Когда тесты безопасности вводятся в момент времени, когда код написан, будут сохранены как время, так и деньги. Если такой процесс управляется правильно, проблемы будут определены по мере их разработки и исправления. Это лучше, чем на то, чтобы они накапливали, чтобы все они должны были быть разрешены как раз перед выпуском приложения.
Когда безопасность рассматривается как код и определяется вправо в начале цикла разработки продукта, он становится кодифицированным, чтобы команды развития могли использовать его в будущем. Это создает решение самообслуживания для разработчиков, которые хотят убедиться, что они создают безопасный код. Это не только делает процесс более эффективным, но он также гарантирует, что процесс менее дороги. Не существует ненужных задержек в выпуске продукта.
Представляя безопасность в код
Теперь, когда ясно, что есть преимущества, чтобы думать о безопасности в качестве кода, где мы начинаем? Нам нужно убедиться, что все заинтересованные стороны понимают смещение мышления. Это будет достигнуто путем создания практики, которые последуют все команды. Наличие соответствующих политик на месте гарантирует, что все знают безопасную практику кодирования для последующей деятельности. Я посмотрю на некоторые практические меры, которые ваша организация может реализовать.
Будь проще
Одна из причин, по которым люди, как правило, имеют тенденцию игнорировать правила и руководящие принципы, состоит в том, что они имеют тенденцию к тому, чтобы они были сложными. Таким же образом, если вы делаете свои практики сложными, скорее всего, люди, которые должны следовать за ними, просто игнорируют их.
Часть процесса упрощения вещей состоит в том, чтобы иметь как можно меньше инструментов и процессов. Примеры того, как вы можете сделать это, включают в себя повторное использование этих компонентов, которые вы приходили доверять, и обеспечение того, чтобы подходы централизованы, делая их фундаментальными частями дизайна.
Также важно убедиться, что инструменты безопасности интегрированы в среду, к которым уже используются разработчики. Примеры включают системы отслеживания ошибок, их IDE, исходный репозиторий и среда сборки.
Сначала распределите требования безопасности
Чтобы все понять вопросы о проблемах безопасности, которые могут повлиять на конечный продукт, вам нужно будет определить эти требования раньше. Это будет включать определение проблем моделирования угроз.
Изложение требований безопасности будет включать не только определение требований к безопасности, но и кодифицировать их право на начало проекта. Храните их в репозитории исходного кода.
Чтобы обеспечить легкий доступ к требованиям, политики безопасности должны быть автоматизированы. Чтобы оценить политику безопасности приложений, пользователи нажимают кнопку на любой фазе разработки. Это фундаментальный шаг в размышлениях о безопасности в виде кода, поскольку он обеспечивает простоту повторного использования защиты для различных применений в рамках организации. Эта ситуация также гарантирует, что для каждого владельца или отдела заявки нет необходимости определять их отдельные политики; трудоемкий процесс.
Постоянное соответствие
Парадигма сдвигается в размышление о безопасности, поскольку код будет полагаться на непрерывное соответствие в качестве не подходящего предмета. Начните, убедившись, что ваша политика и правила ясны всем заинтересованным сторонам, убедившись, что все понимают, почему им нужно что-то сделать.
Например, меры соответствия могут включать в себя обеспечение того, чтобы коды проверялись против определенных стандартов, таких как известные угрозы моделирования. Другие действия могут включать в себя, что все коды, рассмотренные сверстниками, прежде чем совершить их на первичный репозиторий. Это примеры передней линии защиты, которую вы можете реализовать для оптимизации безопасности в процессе кодирования.
Для заинтересованных сторон будет легче соблюдать процессы, если они их знают, и они ясно, почему процессы должны соблюдаться.
Это не будет просто
Конечно, от того, как я добавил его в эту статью, это может выглядеть простым, чтобы создать изменение ума, где безопасность начинает рассматриваться как код. Однако изменение способа выполнения вещей не всегда будет легко.
Разработчики записи кода имеют большое давление. Есть несколько вещей, на которых им нужно будет сосредоточиться. Например, они должны реализовать функцию, код записи, который чистый, тестируемый и поддерживаемый, а также другие такие задачи. Несмотря на то, что они могут быть стремиться к охватам безопасных практик кодирования, у них может не было времени для этого. Все это проблемы, вам понадобится решить, как вы терпеливо принять свою команду на новый путь.
Время сместить влево
Как видно из этой статьи, если организации должны обеспечить свои активы и теми своих клиентов, им понадобится сдвиг парадигмы. Старые времена взгляда на безопасность как запоздавшие в конце процесса развития ушли. Нам нужно начать видеть безопасность как фундаментальный элемент в начале выпуска приложений. Это называется смещением влево. Он обозначает ситуацию, когда команды должны двигаться быстрее, а тестирование приходит ранее в процессе.
Организация, которая сдвигается оставлена, скорее всего, будет лучше для выявления проблем. Это уменьшит время, необходимое для решения этих вопросов, прежде чем приложение будет развернуто. Такая смена ума гарантирует, что команды DevOps имеют возможность аутентифицировать необходимость безопасности в более короткие периоды. Думая о безопасности в качестве кода может облегчить этот процесс. Он помогает обеспечить автоматизм безопасного развертывания, ситуацию, которая не только облегчает процесс, но и быстрее.
Пока я поддерживаю представление о безопасности в качестве кода, есть предостережение. По сути, есть много других вопросов, которые все еще необходимо учитывать. Хотя идея поможет в обеспечении безопасности кода, ни одна организация не должна допустить ошибку, думая, что это волшебная пуля, которая решит все свои проблемы с безопасностью.
Безопасность — это сложная задача, которая не будет зафиксирована одним элементом. Следовательно, важно осознавать, что, думая о безопасности, поскольку код является большим шагом в обеспечении выпущенных приложений, он формирует только одну из столпов. Реальный ответ заключается в создании культуры обмена информацией между командами, определяя четкую политику развертывания и сделать его простым для заинтересованных сторон. Он включает в себя автоматические процессы, чтобы пользователи имели доступ к протоколам безопасности любого приложения и ищет способы постоянного улучшения.
Оригинал: «https://dev.to/squash/intro-to-security-as-code-4hd0»