🖧 Сканирование веб-приложений с помощью Nuclei |

🖧 Сканирование веб-приложений с помощью Nuclei

Мануал

Сначала создайте форк https://github.com/glimow/dvpwa.

Затем клонируйте только что форкнутый репозиторий и переключитесь на нужную ветку:

git clone -b tutorial-part-2 git@github.com:<your-username>/dvpwa.git

Интеграционное тестирование безопасности

Анализ кода не может найти все недостатки безопасности: некоторые связаны с окружением, конфигурацией.

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

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

Этот процесс называется динамическим тестированием безопасности приложений (Dynamic Application Security Testing, DAST).

Как и инструменты анализа безопасности кода, инструменты DAST были сложны в использовании, или дороги, или и то, и другое.

Но недавно мое внимание привлек новый бесплатный проект с открытым исходным кодом: nuclei.

Или на Java.

Nuclei – это простой в использовании инструмент тестирования безопасности приложений, написанный на языке go.

Он использует возможности сообщества для создания новых автоматизированных тестов с помощью простых файлов шаблонов YAML.

Nuclei сканирует ваше веб-приложение на основе тысяч написанных сообществом шаблонов YAML

В простой командной строке nuclei может запустить почти 2500 тестов безопасности на ваши приложения на скорости golang.

Что очень быстро. 🚀

Запуск Nuclei на веб-приложении

Сначала давайте установим Nuclei.

Для пользователей macOS это довольно просто:

brew install nuclei

Для пользователей Linux, к сожалению, nuclei не предоставляет менеджера пакетов для установки, поэтому вам придется либо использовать go, либо загрузить бинарник.

Для краткости в этом руководстве мы будем использовать второй вариант.

wget https://github.com/projectdiscovery/nuclei/releases/download/v2.5.5/nuclei_2.5.5_linux_amd64.zip
unzip nuclei
sudo mv ./nuclei /usr/bin
nuclei

Конечно, результатов нет, так как мы не указали URL!

Давайте запустим dvpwa, чтобы мы могли проверить его по-настоящему.

Откройте другой терминал, войдите в репозиторий dvpwa, который вы использовали для этого руководства, и запустите:

docker-compose up

Ваше уязвимое веб-приложение python запущено и работает на порту 8080.

Давайте просканируем его.

В первой консоли выполните:

nuclei -u http://localhost:8080

Всего за 5 минут мы обнаружили, что нашему python-приложению не хватает многих функций безопасности.

Если используемая вами машина имеет несколько открытых портов, nuclei может даже обнаружить их и выдать еще несколько предупреждений о безопасности!

Интеграция Nuclei в CI/CD

К счастью, разработчики nuclei уже создали GitHub Action для простой интеграции в любой CI/CD конвейер.

“Но подождите, если мы тестируем живое приложение, это значит, что нам придется запускать полное приложение внутри GitHub Actions?”.

Да. Именно так. Но не волнуйтесь, это очень просто: docker-compose работает из коробки!

Просто добавьте следующее в ваш .github/workflows/main.yaml :

dynamic_security_testing:
    runs-on: ubuntu-latest
    name: Scan live web app for security flaws
    steps:
      - uses: actions/checkout@v2

      - name: Start containers
        run: docker-compose -f "docker-compose.yml" up -d --build

      - name: Dynamic Security Testing
        uses: projectdiscovery/nuclei-action@main
        with:
          target: http://localhost:8080

      - name: Stop containers
        if: always()
        run: docker-compose -f "docker-compose.yml" down

Затем, в консоли:

git add .github/workflows
git commit -m "Add dynamic security testing"
git push origin master

Обратите внимание, что наше динамическое сканирование не даст сбоя, если nuclei обнаружит только уязвимости с менее критичностью чем low.

Заключение

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

На этот раз мы просканировали наше работающее приложение, используя HTTP-запросы, отправленные nuclei, сканером безопасности веб-приложений, разработанным сообществом.

¯\_(ツ)_/¯ Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.

см. также:

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий