Как да стартирате тестове за сигурност OWASP ZAP Част от тръбопровод CI / CD на Azure DevOps

Тестът за сигурност е съществена част от тестването, всяка организация иска да направи поне основни тестове за сигурност преди да премине към производство. Тестът за сигурност е океан, може да е трудно да се извърши цялостно тестване за сигурност без помощта на обучени специалисти, но някои от инструментите с отворен код осигуряват автоматизирано основно сканиране на уебсайта. След като го добавим към тръбопроводи като всеки друг тест като Smoke, Regression, тестовете за сигурност също могат да се изпълняват като част от проблеми с внедряването и отчитането.

Преглед

ZAP е инструмент с отворен код за тестване на сигурността. Той ни помага да намерим различни видове уязвимости, като SQL инжектиране, скриптове на различни сайтове и др. Красотата на този инструмент е, че осигурява както интерфейс, така и интерфейс на командния ред да изпълняват тестовете. В тази статия дадох стъпка по стъпка процедура за конфигуриране на тестване на сигурността на ZAP OWASP в тръбопровода за освобождаване на DevOps и публикуване на HTML резултати. Като опция можете също да публикувате резултати на артефактите на Azure DevOps. Край на урока, който ще можете да постигнете

  1. Конфигурирайте OWASP ZAP тест към тръбопровод за освобождаване на Azure
  2. Публикуване на HTML резултати чрез използване на задача за публикуване на резултати чрез преобразуване на XAP тестови резултати XML в поддържащ формат NUnit
  3. Публикувайте HTML резултати от ZAP в артефакти на Azure DevOps чрез създаване на емисии и пакети
  4. Изтеглете резултатите от HTML с помощта на Azure CLI Tool, споделете го между заинтересованите страни

Предварителни условия:

Създайте хранилище, което ще има един файл

  1. OWASPToNUnit3.xslt: Това е необходимо за публикуване на резултати, като се използва задача за публикуване на резултати.

Предварителна стъпка 1: Създаване на OWASPToNUnit3.xslt файл

Преминете към връзката по-долу, изтеглете файла и го наречете като OWASPToNUnit3.xslt, Изпратете го в хранилище

https://dev.azure.com/francislacroix/_git/CodeShare?path=%2FOWASPBlog%2FOWASPToNUnit3.xslt

Предварителна стъпка 2: Създайте емисия в артефактите на Azure DevOps

Решение:

Придвижете се до Azure DevOps> Артефакти> Създайте емисия

Забележка: Ще използваме име на емисия при конфигуриране на задачи. Трябва да изберете същото от падащото меню, така че да отбележите името на емисията

Предварителна стъпка 3: Създайте пробен пакет вътре в Feed, като използвате командния ред

За да стартирате команда отдолу, трябва да инсталирате Azure CLI,

Моля, използвайте линка по-долу, за да инсталирате Azure CLI

След като Azure CLI е инсталиран, създайте пакет, използвайки командата по-долу

az артефакти универсална публикация - организация https://dev.azure.com/ evidenceYour_Org_Name] - паспорт папка - име за сигурност_тестинг - версия 1.0.0 - описание "Вашето описание" - път.

След като създадете предварителна стъпка 2 и предварителна стъпка 3, ако отидете на Azure DevOps> Артефакти, трябва да видите създадените

Как да настроите OWASP ZAP тест в тръбопровод за освобождаване с помощта на Azure DevOps?

1. Навигирайте до Pipelines в Azure DevOps> Кликнете върху Releases

2. Изберете Нов тръбопровод

3. Изберете Празна задача, когато прозорецът Шаблон поиска

4. Име на етап като тестване за сигурност

5. Добавяне на артефакт в тръбопровод за освобождаване

а. Кликнете върху Добавяне на артефакт b. В прозорец на изскачане Изберете Azure Repository c. Изберете вашия проект d. Изберете от падащото меню, където сте създали .xslt файл в предварителна стъпка 1 e. Изберете клона по подразбиране като главен f. Щракнете върху Добавяне

6. Щракнете върху Задачи под Име на етап (Тестване на сигурността), както е показано на изображението по-долу

7. Имете задачи като тестване за сигурност или каквото ви харесва

9. Кликнете върху подробности за предоставяне на работа на агента

а. Показване Име: Агент Работа или всичко, което желаете b. Агентен пул: Изберете Azure Pipelines c. Спецификация на агента: Изберете всеки ubuntu агент от падащото меню

10. Започнете да добавяте задачи, като първа задача добавете инсталатора на Docker CLI

11. Конфигурирайте програмата за инсталиране на Docker CLI, както е показано по-долу на изображението

12. Добавете Bash скрипт задача

13. Добавете Inline скрипт, за да стартирате тест за сигурност ZAP

Сценарий:

chmod -R 777 ./
docker run --rm -v $ (pwd): / zap / wrk /: rw -t owasp / zap2docker-стабилен zap-full-scan.py -t [URL на вашата компания или Api url] -g gen.conf -x OWASP-ZAP-Report.xml -r scan-report.html
вярно

Забележка: [URL на вашата фирма или URL адрес на API]: Това може да бъде URL адрес на уебсайт или всеки изложен URL адрес на API.

14. Добавете Powershell Задача за конвертиране на ZAP XML отчет в Azure DevOps Nunit Формат на отчета публикуване на резултати

15. Конфигурирайте задачата Powershell

а. Показвано име: Всичко, което желаете b. Тип: Inline c. Сценарий:

$ XslPath = "$ ($ Env: SYSTEM_DEFAULTWORKINGDIRECTORY) / _ QualityAssurance / SecurityTest / OWASPToNUnit3.xslt" $ XmlInputPath = "$ ($ Env: SYSTEM_DEFAULTWORKINGDIRECTORY)" ) /Converted-OWASP-ZAP-Report.xml "$ XslTransform = Система за нов обект.Xml.Xsl.XslCompiledTransform $ XslTransform.Load ($ XslPath) $ XslTransform.Transform ($ XmlInputPath, $ XmlOutputPath)

16. Публикувайте тест за сигурност по подразбиране ZAP HTML Резултат на Azure Artifact

Добавете задача за универсален пакет

17. Конфигурирайте задачата за универсален пакет

показвано име: Всичко, което желаете b. Команда: Публикуване (Изберете от падащото меню) c. Път за публикуване: $ (System.DefaultWorkingDirectory) или можете да изберете от менюто за избор на панел (...) d.Feed Location: Тази организация колекция e.Destination Feed: SecurityTesting (Това е това, което сте създали в предварителна стъпка 2) f. Име на опаковката: securitytestingresults (Това е това, което сте създали в предварителна стъпка 3)

18. Добавете задача за публикуване на резултати

19. Конфигурирайте задачата за публикуване на резултатите

Супер! всички готови да задействат освобождаване сега,

Отворете Pipeline и кликнете върху Create Release, изчакайте до завършването му.

Преглед на резултатите от тестовете за сигурност на OWASP / ZAP

След като Release приключи, Навигирайте до изпълнените задачи, Щракнете върху задача за публикуване на резултатите от теста

Отваря се прозорецът с връзка към резултат

След като щракнете върху връзката, можете да видите резултатите.

Преглед на ZAP HTML файл с резултати.

Навигирайте до Azure DevOps> Artificats> Изберете емисия (създадена по предварителна заявка)> Изберете пакет (създаден по предварителна заявка)

Можете да получите отчета по-долу, като използвате Azure CLI за изтегляне на изкуствени артикули

Тестване на сигурността на Azure DevOps Често задавани въпроси (FAQ):

1. Как да конфигурирате тестване за сигурност OWASP ZAP в TFS или VSTS в тръбопровод за освобождаване?

TFS и VSTS (по-стара версия на Azure DevOps) споделя общ потребителски интерфейс, така че стъпките остават почти еднакви. Гореспоменатите стъпки могат да се използват както за TFS, така и за VSTS за тестване на OWASP ZAP сигурност.

2. Как да конфигурирате тестване за сигурност OWASP ZAP в изграждане на тръбопровод TFS / VSTS / Azure DevOps.

Всички задачи остават същите, както беше споменато по-горе, вместо да създадете Release pipeline създайте Build. Докато създавате компилация изберете правилно репо с малко количество настройка над статията, трябва да можете да създадете тръбопровод за изграждане в гореспоменатия подход.

Въпреки това не е необходимо да публикувате артефакт в изграждането на тръбопровода, създайте Drop Task, който може да съдържа вашите .html отчети и вие трябва да можете да изтеглите, след като изграждането успее.

3. Защо не мога да създам емисии или пакети в тръбопровода Azure DevOps Artefacts for Release?

Понякога няма да можете да постигнете това най-вече заради разрешението си, консултирайте се с администратора на инфраструктурата, за да осигурите правилен достъп