MyAppSec
61 subscribers
15 photos
7 files
23 links
Про AppSec & DevSecOps
Download Telegram
Channel created
Многие знают, что для регулярных DAST сканирований удобна docker версия ZAP с ее zap-baseline.py, zap-full-scan.py и т.п. Но немногие знают, что в нее можно передавать конфиги, такие как ограничения времени сканирования, исключения путей и т.п.

Для этого используется параметр -z "-config параметр=значение" или -z "-config параметр1=значение1 -config параметр2=значение2" и так далее.

Некоторые параметры описаны здесь: https://www.zaproxy.org/docs/desktop/addons/automation-framework/job-ascan/ другие надо искать/подбирать, так как документация конфигов достаточно скудная.

Например: docker run --rm -v $(pwd):/zap/wrk/:rw -m 4g -t zaproxy/zap-stable zap-baseline.py -t https://example.com -g gen.conf -z "-config scanner.maxScanDurationInMins=30" -x zap-report.xml
Или так:

docker run --rm -v $(pwd):/zap/wrk/:rw -m 4g -e ZAP_AUTH_HEADER=Cookie -e ZAP_AUTH_HEADER_VALUE="SESSIONID=12345" -t zaproxy/zap-stable zap-full-scan.py -t https://example.com -g gen.conf -z "-config scanner.maxScanDurationInMins=120 -config globalexcludeurl.url_list.url.regex='.*logout.*'"
Ребята из GitLab проделали большую работу и адаптировали множество сканеров уязвимостей для автозапуска в своих пайплайнах. Но запускать их можно и вне GitLab.

Код сканеров можно найти здесь: https://gitlab.com/gitlab-org/security-products/analyzers

Для каждого из них в реестре имеется контейнер с соответствующим именем. Например:

docker pull registry.gitlab.com/gitlab-org/security-products/analyzers/brakeman
docker pull registry.gitlab.com/gitlab-org/security-products/analyzers/semgrep

Все сканеры запускаются примерно так:
docker run --rm -m 4g --volume $(pwd):/src --volume $(pwd):/report имя_контейнера /analyzer r --target-dir /src --artifact-dir /report

Запускаем из текущей папки с исходным кодом и получаем отчет в папке report. Дальше парсим json или грузим в Defect Dojo.
Стоит отметить, что основную ценность GitLab сканеров представляют правила для Semgrep, которые пишутся и поддерживаются GitLab ом. Они меньше фолсят и в целом рассчитаны на использование в CI.

Сами правила находятся тут, но проще их запускать в semgrep контейнере способом, описанным выше.

https://gitlab.com/gitlab-org/security-products/sast-rules
В процессе подготовки к OSWE нашел полезный ресурс для практики поиска уязвимостей в коде ака Code Review.

https://pentesterlab.com/

Часть заданий бесплатно, часть почти бесплатно (20 баксов в месяц)
Как сканировать API с аутентификацией по JWT? При наличии OpenAPI спецификации на сайте можно так:

docker run --rm -v $(pwd):/zap/wrk/:rw -m 4g -e ZAP_AUTH_HEADER=Authorization -e ZAP_AUTH_HEADER_VALUE="Bearer jwt_токен" -t zaproxy/zap-stable zap-api-scan.py -t https://rest.vulnweb.com/files/openapi-swagger_jwt.yaml -f openapi -g gen.conf

Значение JWT для rest.vulnweb.com вместе с тестом других методов аутентификации можно найти тут:

https://rest.vulnweb.com/docs/
Если есть желание сканировать код с PT AI, но нет возможности его купить, можно поставить бесплатное расширение для VS Code:

https://marketplace.visualstudio.com/items?itemName=POSIdev-community.application-inspector

Сравнивали с полной версией - результаты сканирований идентичны. Из минусов - очень требователен к ресурсам, для больших проектов имеет смысл ставить на отдельную машину.
Сравнение-PT_AI-ScanSuite.xlsx
13.7 KB
Кстати, в начале года сравнивали полную версию PT AI с набором open source аналогов (Semgrep, Bandit, FindSecBugs, Security Code Scan и т.д.) под общим названием ScanSuite.

Сравнение субъективное, на полноту не претендует, результат тогда был в пользу open source.
Отличный курс по безопасности приложений и окружения:

https://www.youtube.com/playlist?list=PLQC2_0cDcSKD_JHWtEJGIFQUVh7Z5JM8E
Как просканировать сайт на CMS Bitrix на уязвимости?

Качаем шаблоны для Nuclei:

git clone https://github.com/jhonnybonny/nuclei-templates-bitrix.git

Сканируем:

docker run --rm -v $(pwd):/tmp -v $(pwd)/nuclei-templates-bitrix:/nuclei-templates projectdiscovery/nuclei -t /nuclei-templates -u https://example.com

вместо -u https://example.com можно указать файл с со списком сайтов через -l TARGETS.txt

В качестве бонуса, репа с эксплоитами: https://github.com/JackPot777/bitrix