Рубрики
Uncategorized

Использование вашего CI / CD-трубопровода, чтобы предотвратить получение вашего приложения Взломанный

Важно, чтобы вы выполняете все проверки безопасности, которые вы можете до вашего приложения в производстве для использования мира. Теги с Heroku, DevOps, Безопасность.

Ваше веб-приложение, скорее всего, уязвим к атаке прямо сейчас. На самом деле, Согласно этому недавнему опросу , 9 из 10 веб-приложений были уязвимы для атаки в 2019 году, а 45% производственных приложений имели «высокий риск» уязвимости. Это серьезное число. К счастью, ряд инструментов доступны для того, чтобы помочь вам выполнить проверки безопасности, и многие из них могут быть удобно автоматизированы через ваш CI/CD Run.

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

Как хакеры атакуют

Есть много векторов атаки, которые Haker может использовать для получения доступа к вашей системе. Фонд OWASP составил удобный список Топ 10 рисков безопасности Отказ Вот некоторые из атак, которые стоит узнать и охранять.

Инъекционные атаки

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

Вот пример атаки SQL впрыска.

https://somewebsite.com/customers?region=South’+OR+1=1—

Это может перевести на этот запрос SQL на основе того, как запрос установлен для обработки строки запроса.

Выберите * из продуктов, где или … ‘и

Сломанная аутентификация

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

Утечки конфиденциальных данных

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

XML внешние объекты

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

Сломанный контроль доступа

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

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

https://newapp.com/site/get-info
http://newapp.com/site/admin/get-info

Ошибка безопасности

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

Сценарии по пересечению сайта

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

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


Небезопасно десериализация

Сериализация (или, преобразование информации в формат, который можно хранить или передавать), обычно используется в приложениях для хранения данных в базах данных, токена аутентификации API и брокеров сообщений. Когда злоумышленник может отправлять сериализованные объекты через вашу систему, и ваша система определяет их, это означает, что вы уязвимы для чужого кода, который отправляется и выполнен в вашем приложении — серьезное недостаток. Убедитесь, что ваше приложение не принимает сериализованные объекты из ненадежных источников.

Использование пакетов с известными уязвимостями

Не игнорируйте эти сообщения в зависимости от Github. Когда вы используете пакеты с известными уязвимостями, ваша система широко открыта для хорошо документированной атаки. Обновите вашу пакет и версии библиотеки, когда выпущены патчи безопасности.

Недостаточно ведения журнала и мониторинга

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

Как предотвратить атаки, используя ваш CI/CD-трубопровод

Теперь, когда мы понимаем некоторые из наиболее распространенных векторов атаки, давайте посмотрим на один способ смягчить эти уязвимости: автоматизация проверки безопасности, используя ваши инструменты CI/CD. Для примеров мы будем проходить через то, как легко добавить пару самых популярных инструментов автоматизации безопасности для вашего трубопровода CI, используя Героку поток Отказ

Чтобы начать, давайте использовать это приложение React/Node для нашего примера: https://github.com/flaphiscoder/clear-budget-tracker.

Конфигурация выполняется внутри app.json файл.

{
    "buildpacks": [
        {
        "url": "heroku/nodejs"
        }
    ],
    "environments": {
      "test": {
        "scripts": {
            "test-setup": "npm install -g snyk retire",
            "test": "snyk auth $SNYK_TOKEN && snyk test && retire && npm test"
        }
      }
    }
  }

Этот файл — это то, где вы добавляете и измените тесты, которые работают в Heroku CI. Обычно это будет запускать NPM тест команда. В этом примере мы добавили пару проверку безопасности в процессе — Снак и уходят на пенсию.

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

Мы также бегаем Retire.js Отказ Retire.js проверяет ваш код для любых уязвимых пакетов и дает вам список пакетов, которые нуждаются в обновлении или замене.

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

Это работает лучше всего, когда у вас есть Heroku, чтобы автоматически запустить свой конвейер, когда вы нажимаете изменения в GitHub. Вы можете даже рассмотреть вопрос о действии GitHub в дополнение к Heroku CI, чтобы получить обратную связь немного раньше.

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

Строить

Owasp Tency-Check — Инструмент с открытым исходным кодом, который обнаруживает публично раскрытые уязвимости, содержащиеся в зависимости от проекта.

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

Контрольная работа

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

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

Доставка

SQLMAP — инструмент тестирования проникновения с открытым исходным кодом, который ищет недостатки впрыска SQL.

Шеф-повар Inspec — Проверяет, если ваш код соответствует соблюдению/правилам.

BURP — Проверяет запрос и перехваты от реагирования. Бесплатно для руководства; Оплаченное обновление для автоматизации.

Другие соображения

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

  • Оптимизируйте свое время сборки, чтобы сделать развертывание до производства быстро. Это означает сохранение небольшого размера сборки и только использовать необходимые инструменты.
  • Держите четность во всех ваших условиях. Это поможет с тестированием; Когда разработчики и Qa испытывают тестирование против постановки или других сред, это наиболее полезно, когда они настолько близки к добыче.
  • Не проверяйте секреты и учетные данные в контроль версии. Убедитесь, что все PRS проходят через какой-то обзор/тест, чтобы проверить это. Это сложнее выбросить, когда они были объединены.
  • Сделайте трубопровод единственным способом развертывания изменений в производстве, чтобы вы всегда знаете, когда выделяются изменения кода.

Вывод

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

Оригинал: «https://dev.to/flippedcoding/using-your-ci-cd-pipeline-to-prevent-your-app-from-getting-hacked-1pk7»