Или так:
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.*'"
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.*'"
По методологии Code Review понравились вот эти товарищи:
https://github.com/absoluteappsec/handouts
Они много выступают, можно поискать их видео:
https://www.youtube.com/watch?v=f6UOBCJ9pjw
https://www.youtube.com/watch?v=Nb4pNXmBO0I
https://github.com/absoluteappsec/handouts
Они много выступают, можно поискать их видео:
https://www.youtube.com/watch?v=f6UOBCJ9pjw
https://www.youtube.com/watch?v=Nb4pNXmBO0I
GitHub
GitHub - absoluteappsec/handouts: materials we hand out
materials we hand out. Contribute to absoluteappsec/handouts development by creating an account on GitHub.
Ребята из 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.
Код сканеров можно найти здесь: 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
analyzers · GitLab
Analyzers are in-house scanners or wrappers around external tools for SAST, Dependency Scanning and Container Scanning, following a common architecture.
Стоит отметить, что основную ценность GitLab сканеров представляют правила для Semgrep, которые пишутся и поддерживаются GitLab ом. Они меньше фолсят и в целом рассчитаны на использование в CI.
Сами правила находятся тут, но проще их запускать в semgrep контейнере способом, описанным выше.
https://gitlab.com/gitlab-org/security-products/sast-rules
Сами правила находятся тут, но проще их запускать в semgrep контейнере способом, описанным выше.
https://gitlab.com/gitlab-org/security-products/sast-rules
GitLab
GitLab.org / security-products / sast-rules · GitLab
Rule Repository for GitLab SAST
В процессе подготовки к OSWE нашел полезный ресурс для практики поиска уязвимостей в коде ака Code Review.
https://pentesterlab.com/
Часть заданий бесплатно, часть почти бесплатно (20 баксов в месяц)
https://pentesterlab.com/
Часть заданий бесплатно, часть почти бесплатно (20 баксов в месяц)
Pentesterlab
Master Web Hacking and Security Code Review!
Master advanced penetration testing and deep security code review through real-world CVEs, detailed vulnerability analysis, and expert-led code reviews. Ideal for professionals seeking expert-level understanding beyond basic exploits.
Как сканировать 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/
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/
GraphQL и SOAP также поддерживаются, передаются в значении параметра -f
https://www.zaproxy.org/docs/docker/api-scan/
https://www.zaproxy.org/docs/docker/api-scan/
www.zaproxy.org
ZAP – ZAP - API Scan
The world’s most widely used web app scanner. Free and open source. ZAP is a community project actively maintained by a dedicated international team, and a GitHub Top 1000 project.
Если есть желание сканировать код с PT AI, но нет возможности его купить, можно поставить бесплатное расширение для VS Code:
https://marketplace.visualstudio.com/items?itemName=POSIdev-community.application-inspector
Сравнивали с полной версией - результаты сканирований идентичны. Из минусов - очень требователен к ресурсам, для больших проектов имеет смысл ставить на отдельную машину.
https://marketplace.visualstudio.com/items?itemName=POSIdev-community.application-inspector
Сравнивали с полной версией - результаты сканирований идентичны. Из минусов - очень требователен к ресурсам, для больших проектов имеет смысл ставить на отдельную машину.
Visualstudio
PT Application Inspector - Visual Studio Marketplace
Extension for Visual Studio Code - Security Analysis
Сравнение-PT_AI-ScanSuite.xlsx
13.7 KB
Кстати, в начале года сравнивали полную версию PT AI с набором open source аналогов (Semgrep, Bandit, FindSecBugs, Security Code Scan и т.д.) под общим названием ScanSuite.
Сравнение субъективное, на полноту не претендует, результат тогда был в пользу open source.
Сравнение субъективное, на полноту не претендует, результат тогда был в пользу open source.
На днях прошел SafeCode Meetup №2. Понравился доклад по безопасной настройке GitLab:
https://www.youtube.com/live/Hg5X5LIZP6E
https://www.youtube.com/live/Hg5X5LIZP6E
YouTube
SafeCode Meetup №2
Ближайшая конференция: SafeCode 2024 Autumn, 30 октября (online)
Подробности: https://jrg.su/K2HN5V
— —
Бесплатный онлайн-митап от конференции SafeCode. В программе — выступления про гигиену CI/CD и UX в безопасности.
После каждого доклада у вас будет возможность…
Подробности: https://jrg.su/K2HN5V
— —
Бесплатный онлайн-митап от конференции SafeCode. В программе — выступления про гигиену CI/CD и UX в безопасности.
После каждого доклада у вас будет возможность…
Отличный курс по безопасности приложений и окружения:
https://www.youtube.com/playlist?list=PLQC2_0cDcSKD_JHWtEJGIFQUVh7Z5JM8E
https://www.youtube.com/playlist?list=PLQC2_0cDcSKD_JHWtEJGIFQUVh7Z5JM8E
Как просканировать сайт на CMS Bitrix на уязвимости?
Качаем шаблоны для Nuclei:
Сканируем:
вместо
В качестве бонуса, репа с эксплоитами: https://github.com/JackPot777/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
GitHub
GitHub - JackPot777/bitrix
Contribute to JackPot777/bitrix development by creating an account on GitHub.
Сканируем python код на уязвимости сканером Bandit. Из папки с исходниками запускаем:
Есть ещё Semgrep, можно любой код сканировать, сам определяет языки и применяет правила:
docker run --rm -v "${PWD}:/src" ghcr.io/pycqa/bandit/bandit -r /src -f json -o /src/bandit.jsonЕсть ещё Semgrep, можно любой код сканировать, сам определяет языки и применяет правила:
docker run --rm -v "${PWD}:/src" returntocorp/semgrep semgrep --json -o semgrep.jsonВопрос что делать с json. Можно выгружать в Defect Dojo, ставится легко:
После установки получаем админский пароль:
Логинимся в веб консоль, создаем новый Product, в нем новый Engagement и далее выгружаем json, указав соответствующий тип теста.
git clone https://github.com/DefectDojo/django-DefectDojo
cd django-DefectDojo && ./dc-up-d.sh postgres-redisПосле установки получаем админский пароль:
docker compose logs initializer | grep "Admin password:"Логинимся в веб консоль, создаем новый Product, в нем новый Engagement и далее выгружаем json, указав соответствующий тип теста.
Modsecurity WAF можно поднять быстро и бесплатно с неплохим набором правил, поддерживаемых owasp (https://owasp.org/www-project-modsecurity-core-rule-set/)
Например, есть уязвимый фронт на докере с именем flask, который слушает на порту 5000. Перед ним поднимаем modsecurity-crs:
Само собой можно настроить TLS с правильными сертификатами и другими плюшками.
Например, есть уязвимый фронт на докере с именем flask, который слушает на порту 5000. Перед ним поднимаем modsecurity-crs:
docker run -dti --name modsecurity -p 80:80 -e PARANOIA=1 -e PROXY=1 -e BACKEND=https://flask:5000 owasp/modsecurity-crs:3.3.4-nginx-alpine-202304160904Само собой можно настроить TLS с правильными сертификатами и другими плюшками.
owasp.org
OWASP CRS | OWASP Foundation
The OWASP CRS is a set of generic attack detection rules for use with ModSecurity or compatible web application firewalls. The CRS aims to protect web applications from a wide range of attacks, including the OWASP Top Ten, with a minimum of false alerts.
Проверяем удаленный Linux сервер на соответствие лучшим практикам харденинга:
Предполагается, что id_rsa ключ лежит в ~/.ssh и уже добавлен в разрешенные на удаленном сервере.
docker run --rm -v ~/.ssh:/root/.ssh -v $(pwd):/share hysnsec/inspec exec https://github.com/dev-sec/linux-baseline.git -t ssh://имя_sudo_юзера@удаленный_сервер -i ~/.ssh/id_rsa --chef-license accept --reporter json:/share/inspec-output.jsonПредполагается, что id_rsa ключ лежит в ~/.ssh и уже добавлен в разрешенные на удаленном сервере.
WebApp-Checklist-0.4.xlsx
34.6 KB
Хороший чеклист для пентестов веб приложений.
Не самый полный, но помогает не забыть обязательные проверки.
Не самый полный, но помогает не забыть обязательные проверки.
🔥1
Обучение тестирование web.docx
26.6 KB
Ссылки на учебные видео по вебу, если есть пробелы в понимании чек листа.
Позитивы выкатили свою версию методологии внедрения безопасной разработки AppSec Table Top. Документ объемный, включает многие аспекты DevSecOps, подробно описаны подходы и ключевые этапы.
Это далеко не первая попытка систематизировать процесс внедрения безопасной разработки, AppSec велосипеды изобретают в OWASP с их SAMM и BSIMM, есть хорошие их адаптации к российским реалиям в виде ГОСТа 56939 или фреймворка DAF от Джета.
В целом материала для внедрения достаточно, осталось выделить приоритетные направления и вкладываться в безопасность.
Это далеко не первая попытка систематизировать процесс внедрения безопасной разработки, AppSec велосипеды изобретают в OWASP с их SAMM и BSIMM, есть хорошие их адаптации к российским реалиям в виде ГОСТа 56939 или фреймворка DAF от Джета.
В целом материала для внедрения достаточно, осталось выделить приоритетные направления и вкладываться в безопасность.
ptsecurity.com
AppSec Table Top: методология безопасной разработки от Positive Technologies
Static_Analysis.pdf
172.7 KB
Слайды с моей недавней презентации по способам проведения статического анализа кода, зависимостей и конфигураций.
Рассказал про типы анализа, какие тулы использовать и что делать с результатами. Поговорили и про кастомизацию сканеров и написание своих Semgrep / Nuclei правил.
Рассказал про типы анализа, какие тулы использовать и что делать с результатами. Поговорили и про кастомизацию сканеров и написание своих Semgrep / Nuclei правил.