Здравствуйте и добро пожаловать в мой пост Devsecops. Здесь, в Германии, это зима прямо сейчас, а леса тихие. Снег замедляет все, и прекрасное время двигаться, чтобы двигаться, чтобы двигаться без укоренения в лесу.
Здесь вы можете преследовать свои мысли, и мне пришлось думать о предмете, что клиенты или участники на конференциях спрашивают меня неоднократно.
Вопрос почти всегда:
Каковы быстрые выигрыши или низкие висячие фрукты, если вы хотите больше иметь дело с темой безопасности в разработке программного обеспечения?
И я хочу ответить на этот вопрос правильно сейчас!
Для ленивых, вы можете увидеть его как видео на YouTube
Давайте начнем с определения фразы, которая часто используется в бизнес-мире.
Сделать или купить
Даже как разработчик программного обеспечения, вы часто слышите эту фразу во время встреч с управлением и частью управления компанией.
Фраза называется; « сделать или купить ». Как правило, мы должны решить, хотите ли мы сделать что-то себе или тратить деньги на покупку запрошенной функциональности. Это может быть меньше или больше функциональности или отличается, чтобы мы должны были настроить себя, чтобы использовать его в нашем контексте.
Но как разработчик программного обеспечения, мы должны иметь дело с тем же вопросом каждый день. Я говорю о зависимости. Должны ли мы написать исходный код самим собой или просто добавлять следующие зависимости? Кто будет нести ответственность за удаление ошибок, и какова общая стоимость этого решения? Но сначала давайте посмотрим на ассоциацию Make или Buy внутри полного технологического стека.
Развлекаться между Make/Buy на всех слоях.
Если мы смотрим на все слои облачного стека, чтобы сравнить значение «Make», чтобы «купить» мы увидим, что компонент «Купить» на всех слоях, тем больше. Но первые вещи в первую очередь.
Первый шаг — это разработка самого приложения.
Предполагая, что мы работаем с Java и используем Maven в качестве менеджера зависимостей, мы, скорее всего, добавляем больше строк кода косвенно, когда зависимость по сравнению с количеством линий, которые мы пишем на самих. Зависимости являются более заметной частью, а третьи лица развивают их. Мы должны быть тщательно, и хорошее советы проверить эти внешние двоины для известных уязвимостей.
Мы должны иметь такое же поведение в отношении использования соответствия и лицензии. Следующий слой будет операционной системой в нашем случае Linux.
И снова мы добавляем некоторые файлы конфигурации, а остальные являются существующими двоичными файлами.
Результатом является приложение, работающее внутри операционной системы, которая представляет собой композицию внешних двоичных файлов нашей конфигурации.
Две следующие слои, Докер и Кубераты, ведущие нас к тому же результату. До сих пор мы не смотрим на стек инструмента для самой производственной линии.
Все программы и утилиты, которые напрямую или косвенно используются под капотом под названием Devesecops, являются некоторые зависимости.
Зависимости всех слоев являются наиболее значимой частью.
Проверка этих двоичных файлов против известных уязвимостей является первым логическим шагом.
Один раз и повторяющиеся усилия по соблюдению/уязвимостям
Сравнивая усилия сканирования от известных уязвимостей и для вопросов соответствия, мы видим несколько различий.
Давайте начнем с вопросов соответствия.
Соответствие вопросам:
Первый шаг будет определен, какие лицензии разрешены в какой части производственной линии. Это определение разрешенной лицензии включает в себя зависимости во время кодирования и использование инструментов и среды выполнения. Определение некритических типов лицензий должно быть проверено специализированным адвокатом. С помощью этого списка белых маркированных типов лицензий мы можем начать использовать машину для сканирования на регулярной основе полный стек инструмента. После того, как машина нашла нарушение, мы должны удалить этот элемент, и он должен быть заменен другим, который лицензируется под бело-меченным.
Уязвимости:
Рецидивирующие усилия на этом сайте низки по сравнению с объемом работы, которые уязвимости производятся. Для обработки найденных уязвимостей необходима немного другой рабочий процесс. Без более значительных препаратов машина может также сделать работу на регулярной основе. Идентификация уязвимости запускает рабочий процесс, который включает в себя человеческое взаимодействие. Уязвимость должна быть классифицирована внутри, которая приводит к решениям, что будет следующее действие.
Проблемы соответствия: просто единственные точки в вашем полном стеке
Существует другое различие между проблемами и уязвимостями соответствия. Если есть проблема соответствия, это единственная точка внутри общей среды. Просто эта единственная часть является дефектом и не влияет на другие элементы окружающей среды.
Уязвимости: могут быть объединены в различные векторы атаки.
Уязвимости немного отличаются. Они не только существуют в том месте, где они расположены. Кроме того, они могут быть объединены с другими существующими уязвимостями в любом дополнительном слое окружающей среды. Уязвимости могут быть объединены в различные векторы атаки. Каждая возможная вещь атаки самого вектора должно быть замечено и оценено. Набор незначительных уязвимостей в разных слоях приложения может быть объединен в крайний критический риск.
Уязвимости: Сроки обнаружены до активности в производстве
Я хочу иметь глаз, насколько дальше — это график от уязвимости найден до тех пор, пока исправление не будет в производстве. После того, как уязвимость существует в двоичном двоике, у нас почти нет контроля за время, пока это не найдено. Это зависит от самого человека, если уязвимость сообщается о создателю двоичной, коммерческой службы безопасности, правительством или его будет продано на рынке Darknet. Но, предполагая, что информация сообщается на сам двоичный создатель, он займет некоторое время, пока данные не будут доступны. У нас нет контроля над продолжительностью, от поиска уязвимости до времени, когда информация публично доступна. Следующий период основан на коммерческом аспекте этого вопроса.
Как потребитель, мы можем получить информацию только как можно скорее, это тратить деньги. Это положение дел не приятно, но в основном правда.
Тем не менее, в какой-то момент информации расходуется для нас. Если вы используете Jfrog xray Например, из свободного уровня вы получите информацию очень быстро. Jfrog потребляет различные информационные ресурсы безопасности и объединяет всю информацию в базу данных одной уязвимости. После того, как эта база данных кормит новой информацией, все Jfrog xray экземпляры обновлены. После того, как этот этап достигнут, вы можете действовать.
Испытание — это ваш защитный ремень; попробуйте мутация тестирования.
До сих пор единственное, что вы можете сделать, чтобы ускорить информационный поток, тратят деньги на профессиональную агрегатор информации о безопасности. Но как только информация расходуется для вас, таймер работает. Это зависит от вашей среды, насколько быстрым эта безопасность исправится и работает в производстве. Чтобы минимизировать количество времени, полный автоматизированный трубопровод CI имеет один из критических факторов.
Но еще более критически важно отличное и надежное испытательное покрытие.
Хорошее тестовое покрытие позволит вам немедленно переключать версии зависимостей и толкать это изменение после того, как зеленый тест работает в производство. Я рекомендую использовать более существенный тестовый охват как чистые линии покрытий. Техника под названием «Мутационное тестовое покрытие» является мощным.
Мутационное тестовое покрытие Если вы хотите узнать больше об этом, проверьте мой> канал YouTube. У меня есть видео, которое объясняет теоретическую часть и> Practive One для Java и Kotlin.
Необходимость в одной точке, которая понимает все типы репо, чтобы получить снимок полного воздействия на основе всех известных уязвимостей, решается понять все менеджеры пакетов, включенные в зависимости. Сосредоточившись только на одном слое в технологическом стеке, намного недостаточно.
JFROG Artifactory предоставляет информацию, включая метаданные, специфичные для поставщиков, которые являются частью менеджеров пакетов.
Jfrog RSHRAY может потреблять все эти знания и может просканировать все двоичные файлы, которые проводится внутри репозиториев, которыми управляются артефактором.
Уязвимости — плагин IDE
Сдвиг влево означает, что уязвимости должны быть устранены как можно раньше внутри производственного трубопровода. Один ранний этап после концептуальной фазы является сама кодирование. На данный момент вы начнете добавлять зависимости в ваш проект, вы, возможно, добавляете уязвимости также.
Самый быстрый способ получить обратную связь относительно ваших зависимостей является Плагин Jfrog IDE Отказ Этот плагин подключит ваш IDE к вашему экземпляру JFROG XRay. Свободный уровень даст вам доступ к сканированию уязвимости. Плагин является Opensource и доступен для Intellij, VS-Code, Eclipse, … Если вам нужны дополнительные функции, сделайте запрос на функцию на GitHub или Fork, хранилище добавьте изменения и создают запрос слияния.
Попробуйте самостоятельно — Jfrog Free Tier.
Как использовать плагин IDE?
Если вы добавите зависимость в ваш проект, плагин IDE может понять эту информацию на основе используемого менеджера пакета. Плагин IDE подключен к вашему экземпляру JFROG XRay и будет запрошен, если есть изменение в определении зависимости вашего проекта. Информация, предоставленная XRAY, включает известные уязвимости добавленной зависимости. Если есть фиксированная версия доступной зависимости, будет показан новый номер версии.
Если вы хотите увидеть плагин IDE в действии без> регистрации для свободного уровня, посмотрите на мое видео YouTube.
Заключение
С JFROG Free Tier у вас есть инструменты в ваших руках, чтобы практиковать сдвиг влево и нажать в свою IDE.
Создавайте репозитории для всех включенных технологий, используйте артефакторию в качестве прокси для своих двоичных файлов и позволяют рентгенографию сканировать полный стек.
С этим у вас есть полный эффект воздействия на основе вашего полного стека и предметов информации о известных уязвимых уязвимых, как можно раньше в вашей производственной линии.
Вам не нужно ждать, пока ваш трубопровод CI не начнет жаловаться. Это сэкономит много времени.
YouTube
Если вам понравилось этот пост блога, я был бы признателен за то, чтобы у вас был мой новый подписчик на YouTube.
У меня есть два канала, один в Английский и один в Немецкий Отказ
На моем канале вы найдете видео о темах Core Java, Kotlin и Devesecops.
Пожалуйста, дайте мне большие пальцы и увидимся на моем канале.
Оригинал: «https://dev.to/svenruppert/the-quick-wins-of-devsecops-548a»