Уведомление
Arachni приближается к устареванию, попробуйте его преемника следующего поколения — Ecsypno [Кодовое имя SCNR]!
Версия | 1.6.1.3 |
---|---|
Домашняя страница | http://arachni-scanner.com |
Блог | http://arachni-scanner.com/blog |
Github | http://github.com/Arachni/arachni |
Документация | https://github.com/Arachni/arachni/wiki |
Код документации | http://rubydoc.info/github/Arachni/arachni |
Поддержка | http://support.arachni-scanner.com |
Автор | Tasos Laskos (@Zap0tek) |
@ArachniScanner | |
Copyright | 2010-2022 Ecsypno |
Лицензия | Arachni Public Source License v1.0 - (см. файл LICENSE) |
Arachni — это многофункциональный, модульный и высокопроизводительный фреймворк на Ruby, предназначенный для помощи тестировщикам на проникновение и администраторам в оценке безопасности веб-приложений.
Он умный, он обучается сам, отслеживая и изучая поведение веб-приложения во время процесса сканирования, и способен выполнять метаанализ с использованием ряда факторов, чтобы правильно оценить достоверность результатов и разумно идентифицировать (или избегать) ложные срабатывания.
В отличие от других сканеров, он учитывает динамическую природу веб-приложений, может обнаруживать изменения, вызванные перемещением по путям цикломатической сложности веб-приложения, и может соответствующим образом адаптироваться. Таким образом, векторы атак/ввода, которые иначе были бы не обнаружены людьми, могут обрабатываться без проблем.
Более того, благодаря интегрированной среде браузера он также может проверять и анализировать клиентский код, а также поддерживать сложные веб-приложения, интенсивно использующие такие технологии, как JavaScript, HTML5, манипуляции с DOM и AJAX.
Наконец, он достаточно универсален, чтобы охватить широкий спектр случаев использования, начиная от простой утилиты сканера командной строки, заканчивая глобальной высокопроизводительной сетью сканеров, библиотекой Ruby, позволяющей проводить аудиты по сценариям, и многопользовательской платформой для совместной работы над несколькими сканированиями.
Примечание: несмотря на то, что Arachni в основном предназначен для обеспечения безопасности веб-приложений, его можно легко использовать для общего назначения, такого как парсинг и интеллектуальный анализ данных, с добавлением пользовательских компонентов.
Разработчикам проверок, отчётов и плагинов разрешено легко и быстро создавать и развёртывать свои компоненты с минимальным количеством ограничений, при этом им предоставляется необходимая инфраструктура для достижения своих целей.
Кроме того, им рекомендуется в полной мере использовать язык Ruby в рамках единой среды, которая повысит их производительность, не подавляя их и не усложняя задачи.
Более того, эту же среду можно использовать как любую другую библиотеку Ruby и создать новые сканеры или помочь вам создать настраиваемые сценарии сканирования и/или сценарии сканирования.
С точки зрения пользователя или разработчика компонентов всё выглядит просто и понятно, обеспечивая при этом мощность, производительность и гибкость.
От простой утилиты сканера командной строки до интуитивно понятного и удобного веб-интерфейса и платформы для совместной работы — Arachni следует принципу наименьшего удивления и предоставляет вам множество обратной связи и рекомендаций.
Arachni предназначен для автоматического обнаружения проблем безопасности в веб-приложениях. Всё, что ему нужно, это URL целевого веб-сайта, и через некоторое время он представит вам свои выводы.
autologin
, login_script
или proxy
).Arachni включает интегрированную реальную среду браузера, чтобы обеспечить достаточное покрытие современных веб-приложений, которые используют такие технологии, как HTML5, JavaScript, манипуляции с DOM, AJAX и т. д.
В дополнение к мониторингу ванильной среды DOM и JavaScript браузеры Arachni также подключаются к популярным фреймворкам, чтобы сделать регистрируемые данные более удобоваримыми:
По сути, это превращает Arachni в отладчик DOM и JavaScript, позволяя ему отслеживать события DOM и потоки данных и выполнения JavaScript. В результате система может не только запускать и идентифицировать проблемы, связанные с DOM, но и сопровождать их большим количеством информации о состоянии страницы в то время.
Соответствующая информация включает:
DOMWindow
).decodeURIComponent()
).По существу, у вас есть доступ примерно к той же информации, которую предоставил бы ваш любимый отладчик (например, FireBug), если бы вы установили точку останова в нужное время для выявления проблемы.
Кластер браузеров координирует анализ ресурсов браузером и позволяет системе выполнять операции, которые обычно занимают много времени, с высокой производительностью.
Параметры конфигурации включают:
Аудит
Может проводить аудит:
<form>
, но связаны вместо этого через JS-код);<input>
с соответствующими событиями DOM);Может игнорировать двоичные/нетекстовые страницы.
Может проверять элементы, используя методы HTTP GET
и POST
.
Может внедрять как необработанные, так и HTTP-закодированные полезные данные.
Может отправлять все ссылки и формы страницы вместе с перестановками файлов cookie для обеспечения обширного покрытия аудита файлов cookie.
Может исключать определённые векторы ввода по имени.
Может включать определённые векторы ввода по имени.
Компоненты
Arachni — это высокомодульная система, использующая несколько компонентов различных типов для выполнения своих функций.
Помимо включения или отключения встроенных компонентов для настройки поведения и функций системы по мере необходимости, функциональность можно расширить путём добавления пользовательских компонентов практически для любых нужд.
Сканеры отпечатков платформы
Чтобы эффективно использовать доступную пропускную способность, Arachni выполняет базовый сбор отпечатков платформы и адаптирует процесс аудита к серверным технологиям, используя только применимые полезные нагрузки.
В настоящее время можно идентифицировать следующие платформы:
Пользователь также имеет возможность указать дополнительные платформы (например, сервер БД), чтобы помочь системе быть максимально эффективной. В качестве альтернативы сбор отпечатков можно полностью отключить.
Наконец, Arachni всегда будет действовать с осторожностью и отправлять все доступные полезные нагрузки, когда ему не удаётся идентифицировать конкретные платформы.
Проверки
Проверки — это системные компоненты, которые выполняют проверки безопасности и регистрируют проблемы.
Активные
Активные проверки задействуют веб-приложение через его входы.
sql_injection
) — обнаружение ошибок.sql_injection_differential
).sql_injection_timing
).no_sql_injection
) — обнаружение уязвимостей на основе ошибок.no_sql_injection_differential
).csrf
).code_injection
).code_injection_timing
).ldap_injection
).path_traversal
):
file_inclusion
):
response_splitting
).os_cmd_injection
):
os_cmd_injection_timing
):
rfi
).unvalidated_redirect
).unvalidated_redirect_dom
).xpath_injection
):
xss
).xss_path
).xss_event
).xss_tag
).xss_script_context
).xss_dom
).xss_dom_script_content
).source_code_disclosure
).xxe
):
Пассивные проверки
Пассивные проверки ищут наличие файлов, папок и сигнатур.
allowed_methods
).backup_files
).backup_directories
).common_admin_interfaces
).common_directories
).common_files
).http_put
).unencrypted_password_form
).webdav
).xst
).credit_card
).cvs_svn_users
).private_ip
).backdoors
).htaccess_limit
(htaccess_limit
).interesting_responses
).html_objects
).emails
).ssn
).directory_listing
).mixed_resource
).insecure_cookies
).http_only_cookies
).password_autocomplete
).origin_spoof_access_restriction_bypass
).form_upload
).localstart_asp
).cookie_set_for_parent_domain
).Strict-Transport-Security
для сайтов HTTPS (hsts
).X-Frame-Options
(x_frame_options
).insecure_cors_policy
).insecure_cross_domain_policy_access
).insecure_cross_domain_policy_headers
).insecure_client_access_policy
).Отчёты
html
).xml
).text
).json
).marshal
).yaml
).afr
) — формат отчёта Arachni Framework по умолчанию.Плагины
Плагины добавляют дополнительные функции в систему модульным способом, благодаря чему ядро остаётся компактным и позволяет любому легко добавить произвольную функциональность.
Пассивный прокси (proxy
) — анализирует запросы и ответы между веб-приложением и браузером, помогая в проверках AJAX, входе в систему и/или ограничивая область проверки.
Вход на основе форм (autologin
).
Вход через скрипт (login_script
).
Атака словарём для HTTP Auth (http_dicattack
). Для аутентификации на основе форм (form_dicattack
):
Сборщик файлов cookie (cookie_collector
) — отслеживает файлы cookie, устанавливая хронологию изменений.
Детектор WAF (брандмауэра веб-приложений) (waf_detector
) — устанавливает базовый уровень нормального поведения и использует анализ rDiff для определения, вызывают ли вредоносные входные данные какие-либо изменения в поведении.
Уведомление о звуковом сигнале (beep_notify
) — подаёт звуковой сигнал по завершении сканирования.
Email-уведомление (email_notify
) — отправляет уведомление (и, возможно, отчёт) через SMTP в конце сканирования.
Векторный фид (vector_feed
) — считывает векторные данные, из которых он создаёт элементы для аудита. Может использоваться для выполнения узкоспециализированных/узких аудитов для каждого вектора/элемента. Полезен для модульного тестирования или множества других задач.
Скрипт (script
) — загружает и запускает внешний скрипт Ruby в рамках плагина, используется для отладки и общего взлома.
Необычные заголовки (uncommon_headers
) — регистрирует необычные заголовки.
Типы содержимого (content_types
) — регистрирует типы содержимого ответов сервера, помогая идентифицировать интересные (возможно, просочившиеся) файлы.
Коллектор векторов (vector_collector
) — собирает информацию обо всех видимых входных векторах, которые находятся в области сканирования.
Коллекционер заголовков (headers_collector
) — собирает заголовки ответов на основе указанных критериев.
Exec (exec
) — вызывает внешние исполняемые файлы на разных этапах сканирования.
Метрики (metrics
) — фиксирует метрики о различных аспектах сканирования и веб-приложения.
Ограничение состояния DOM (restrict_to_dom_state
) — ограничивает аудит состоянием одной страницы DOM на основе фрагмента URL.
Webhook-уведомление (webhook_notify
) — отправляет полезную нагрузку webhook через HTTP в конце сканирования.
Ограничитель скорости (rate_limiter
) — ограничивает скорость HTTP-запросов.
Дамп страницы (page_dump
) — выгружает данные страницы на диск в формате YAML.
По умолчанию
Плагины по умолчанию будут запускаться при каждом сканировании и помещаются в папку /plugins/defaults/
.
Автоматическое регулирование (autothrottle
) — динамически регулирует пропускную способность HTTP во время сканирования для максимального использования полосы пропускания.
Карта здоровья (healthmap
) — генерирует карту сайта, показывающую состояние каждой просканированной/проверенной URL-страницы.
Мета
Плагины в папке /plugins/defaults/meta/
выполняют анализ результатов сканирования, чтобы определить надёжность или просто добавить контекстную информацию или общие выводы.
Атаки по времени (timing_attacks
) — выдаёт уведомление о проблемах, обнаруженных атаками по времени, когда затронутые проверенные страницы изначально возвращали необычно большие времена отклика. Также указывает на опасность DoS-атак против страниц, выполняющих интенсивную обработку.
Обнаружение (discovery
) — выполняет обнаружение аномалий по проблемам, зарегистрированным проверками обнаружения, и предупреждает о возможности ложных срабатываний, где это применимо.
Однородность (uniformity
) — сообщает о входных данных, которые одинаково уязвимы на нескольких страницах, что указывает на отсутствие центральной точки санитарной обработки ввода.
Подсистема тренера
Тренер — это то, что позволяет Arachni учиться на выполняемом им сканировании и включать эти знания «на лету» на протяжении всего аудита.
Проверки имеют возможность индивидуально заставлять фреймворк учиться на ответах HTTP, которые они собираются вызвать.
Однако обычно в этом нет необходимости, поскольку Arachni знает, какие запросы с большей вероятностью раскроют новые элементы или векторы атак, и будет адаптироваться соответствующим образом.
Тем не менее это может быть бесценным активом для проверок Fuzzer.
Вы можете запустить rake spec
, чтобы запустить все спецификации, или вы можете запускать их выборочно, используя следующее:
rake spec:core # для основных библиотек
rake spec:checks # для проверок
rake spec:plugins # для плагинов
rake spec:reports # для отчётов
rake spec:path_extractors # для экстракторов путей **Необходимость тестирования функций Grid/multi-Instance системы.**
Примечание: проверка спецификаций займёт много часов из-за тестов на timing-атаку.
Оставляйте отчёты об ошибках через GitHub Issues и получайте поддержку через Портал поддержки.
(Прежде чем начать работу, пожалуйста, ознакомьтесь с инструкциями по работе с исходным кодом.)
Мы рады принять помощь от коллег-программистов, и вот шаги, которые необходимо выполнить, чтобы внести свой вклад в код:
rake spec:core
для основных библиотек или rake spec
для всего).Arachni Public Source License v1.0 — дополнительную информацию см. в файле LICENSE.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )