
Инструмент для обнаружения внешней и внутренней поверхности сетевых атак
ASF предназначена для защиты организаций, выступая в роли наблюдателя за поверхностью атаки. Получив "Объект", который может быть: доменом, IP-адресом или CIDR (внутренним или внешним), ASF обнаружит активы/поддомены, перечислит их порты и службы, отследит изменения и будет служить непрерывной и гибкой средой для атак и оповещений, использующей дополнительный уровень защиты от уязвимостей нулевого дня с общедоступными PoC.
Отсутствие поддержки и гибкости для автоматизации обнаружения динамических активов и связанных с ними уязвимостей с помощью непрерывного сканирования или эксплуатации в едином окне было движущей силой создания ASF. Существующие решения ограничены технологией или программой, для которой они созданы. Мы хотели получить масштабируемое решение, которое также использует популярные инструменты безопасности с открытым исходным кодом для управления полным жизненным циклом уязвимостей.
ASF — это проект с открытым исходным кодом, использующий мощный арсенал инструментов, объединённых в единое окно поверх графического интерфейса. Архитектурная диаграмма ASF представлена ниже:

Последняя версия Kali Linux (протестировано на 64 бит) - https://kali.org/get-kali/
Не менее 16 ГБ ОЗУ
1 ТБ HDD - рекомендуется файловая система XFS
Выполните следующие шаги от пользователя root для установки и запуска Attack Surface Framework.
Клонирование репозитория
/opt/.git clone https://github.com/vmware-labs/attack-surface-framework.git /opt/asf
Перейдите в каталог /opt/asf/
Настройка файла окружения
Создайте файл .env.prod в каталоге проекта. Это критически важно для корректной работы setup.sh.
Примечание: Вы можете сгенерировать файл .env.prod или скопировать из backup.env.prod, внеся необходимые изменения для адаптации к вашему окружению.
Пример структуры .env.prod:
# Django settings, don't enable debug on production!
DEBUG=True
DJANGO_ADMIN_ENABLED=True
#LOGIN CONFIGURATIONS
LOGIN_FORM=True
SOCIAL_AUTH_GOOGLE_ENABLED=False
SOCIAL_AUTH_GITHUB_ENABLED=False
DJANGO_SAML2_ENABLED=False #Enable Social Authenticatio with Google.
SAML2_SSO_URL=https://saml2.local
SAML2_ASF_URL=https://atttacksurfaceframework.local
ALLOWED_HOSTS=*,localhost, config('SERVER', default='127.0.0.1')
MONGO_USER=admin
MONGO_PASSWORD=
MONGO_URL=
MONGO_PORT=27017
JIRA_ENABLED=False
JIRA_TOKEN=
JIRA_URL=
JIRA_USER=
JIRA_SEVERITY={"info":"Lowest","low":"Low","medium":"Medium","high":"High","critical":"Highest"}
JIRA_PROJECT=""
WPScan_Default_Severity=medium
Примечание: MongoDB необходима для функций оповещения или отчётов ASF.
docker run -dp 27017:27017 -v local-mongo:/data/db --name local-mongo --restart=always -e MONGO_INITDB_ROOT_USERNAME=<<>> -e MONGO_INITDB_ROOT_PASSWORD=<<>> mongo
.env.prod следующими данными:MONGO_USER=admin
MONGO_PASSWORD=
MONGO_URL=
MONGO_PORT=27017
Запустите ./setup.sh
Для локального окружения Kali Linux: Перейдите по адресу http://127.0.0.1:2021 в веб-браузере для доступа к ASF
ASF не предназначена для публичного доступа. Предполагая, что вы устанавливаете её у облачного провайдера или на локальном экземпляре, мы рекомендуем использовать перенаправление портов через SSH. Вот пример:
ssh -i "key.pem" -L 2021:127.0.0.1:2021 user@yourhost — для GUI ASF
Затем откройте браузер и перейдите по адресу:
http://127.0.0.1:2021 — для ASF, пользователь: youruser, пароль: yourpass (предоставлено при начальной настройке)
Совет по безопасности: Убедитесь, что каждый компонент, включая MongoDB, настроен безопасно, и что доступ к ASF осуществляется безопасно, даже внутри сети. Соблюдение лучших практик безопасности крайне важно при внедрении ASF в вашу стратегию безопасности.
Дополнительно вы можете настроить социальный вход, включив соответствующую функцию в .env.prod:
#LOGIN CONFIGURATIONS
LOGIN_FORM=True
SOCIAL_AUTH_GOOGLE_ENABLED=True (False)
SOCIAL_AUTH_GITHUB_ENABLED=True (False)
DJANGO_SAML2_ENABLED=True (False)
Перейдите в панель администратора http://127.0.0.1:2021/admin, чтобы добавить социальное приложение.
Обратите внимание, что если социальный вход включён и не настроен в панели администратора, ASF не отобразит страницу входа. Чтобы отменить это, просто отключите социальный вход в .env.prod
Для включения интеграции с Jira и создания тикетов ASF поддерживает установку следующих значений в файле .env.prod:
JIRA_ENABLED=True
JIRA_TOKEN=
JIRA_URL=
JIRA_USER=
JIRA_SEVERITY={"info":"Lowest","low":"Low","medium":"Medium","high":"High","critical":"Highest"}
JIRA_PROJECT=
Для использования Wordpress Scan в модулях Red Team вставьте API-токен WPScan в строку #7 файла redteam/wpscan/wpscan.sh
ASF имеет две области действия:
A) Внешняя: для ваших публично доступных активов.
B) Внутренняя: активы в вашей корпоративной сети.
Для внешней области поток проходит через четыре основных этапа:
A.1 Цели (Targets) — здесь вы вводите свои цели

A.2 Обнаружение (Discovery) — модуль, запускающий процесс Amass для обнаружения публично доступных активов. Не стесняйтесь создавать свой конфигурационный файл для настройки API-ключей https://github.com/OWASP/Amass/blob/master/examples/config.ini

A.3 Перечисление (Enumeration) — модуль, запускающий процесс NMAP для перечисления портов/служб и создания фильтров для модуля Red Team. По умолчанию настроен поиск --top-ports 200, но вы можете адаптировать его под свои нужды в /opt/asf/tools/nmap/*.sh

A.4 Redteam — модуль, запускающий подмодули, расположенные в "/opt/asf/redteam"

Примечание: Для внутренней области поток проходит через A.1 (Цели), A.3 (Перечисление) и A.4 (Redteam).
Команда проекта attack-surface-framework приветствует вклад сообщества. Прежде чем начать работу с attack-surface-framework, пожалуйста, прочитайте наш Сертификат происхождения разработчика. Все вклады в этот репозиторий должны быть подписаны, как описано на этой странице. Ваша подпись подтверждает, что вы написали патч или имеете право передать его как патч с открытым исходным кодом. Для получения более подробной информации обратитесь к CONTRIBUTING.md.
Attack Surface Framework Copyright 2021 VMware, Inc.
Лицензия BSD-2 ("Лицензия"), изложенная ниже, применяется ко всем частям проекта Attack Surface Framework. Вы не можете использовать этот файл иначе, как в соответствии с Лицензией.
Лицензия BSD-2