1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-arachni

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Уведомление

Arachni приближается к устареванию, попробуйте его преемника следующего поколения — Ecsypno [Кодовое имя SCNR]!

Arachni — фреймворк для сканирования безопасности веб-приложений

Версия 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)
Twitter @ArachniScanner
Copyright 2010-2022 Ecsypno
Лицензия Arachni Public Source License v1.0 - (см. файл LICENSE)

Обзор

Arachni — это многофункциональный, модульный и высокопроизводительный фреймворк на Ruby, предназначенный для помощи тестировщикам на проникновение и администраторам в оценке безопасности веб-приложений.

Он умный, он обучается сам, отслеживая и изучая поведение веб-приложения во время процесса сканирования, и способен выполнять метаанализ с использованием ряда факторов, чтобы правильно оценить достоверность результатов и разумно идентифицировать (или избегать) ложные срабатывания.

В отличие от других сканеров, он учитывает динамическую природу веб-приложений, может обнаруживать изменения, вызванные перемещением по путям цикломатической сложности веб-приложения, и может соответствующим образом адаптироваться. Таким образом, векторы атак/ввода, которые иначе были бы не обнаружены людьми, могут обрабатываться без проблем.

Более того, благодаря интегрированной среде браузера он также может проверять и анализировать клиентский код, а также поддерживать сложные веб-приложения, интенсивно использующие такие технологии, как JavaScript, HTML5, манипуляции с DOM и AJAX.

Наконец, он достаточно универсален, чтобы охватить широкий спектр случаев использования, начиная от простой утилиты сканера командной строки, заканчивая глобальной высокопроизводительной сетью сканеров, библиотекой Ruby, позволяющей проводить аудиты по сценариям, и многопользовательской платформой для совместной работы над несколькими сканированиями.

Примечание: несмотря на то, что Arachni в основном предназначен для обеспечения безопасности веб-приложений, его можно легко использовать для общего назначения, такого как парсинг и интеллектуальный анализ данных, с добавлением пользовательских компонентов.

Arachni предлагает:

Стабильную, эффективную и высокопроизводительную среду

Разработчикам проверок, отчётов и плагинов разрешено легко и быстро создавать и развёртывать свои компоненты с минимальным количеством ограничений, при этом им предоставляется необходимая инфраструктура для достижения своих целей.

Кроме того, им рекомендуется в полной мере использовать язык Ruby в рамках единой среды, которая повысит их производительность, не подавляя их и не усложняя задачи.

Более того, эту же среду можно использовать как любую другую библиотеку Ruby и создать новые сканеры или помочь вам создать настраиваемые сценарии сканирования и/или сценарии сканирования.

Простоту Хотя некоторые части фреймворка довольно сложны, вам никогда не придётся иметь с ними дело напрямую.

С точки зрения пользователя или разработчика компонентов всё выглядит просто и понятно, обеспечивая при этом мощность, производительность и гибкость.

От простой утилиты сканера командной строки до интуитивно понятного и удобного веб-интерфейса и платформы для совместной работы — Arachni следует принципу наименьшего удивления и предоставляет вам множество обратной связи и рекомендаций.

Проще говоря

Arachni предназначен для автоматического обнаружения проблем безопасности в веб-приложениях. Всё, что ему нужно, это URL целевого веб-сайта, и через некоторое время он представит вам свои выводы.

Функции

Общие

  • Поддержка Cookie-jar/cookie-string.
  • Поддержка пользовательских заголовков.
  • SSL-поддержка с детализированными опциями.
  • Спуфинг пользовательского агента.
  • Прокси-поддержка для SOCKS4, SOCKS4A, SOCKS5, HTTP/1.1 и HTTP/1.0.
  • Аутентификация прокси.
  • Сайт аутентификации (на основе SSL, на основе форм, Cookie-Jar, Basic-Digest, NTLMv1, Kerberos и другие).
  • Автоматическое обнаружение выхода из системы и повторный вход во время сканирования (когда первоначальный вход был выполнен через плагины autologin, login_script или proxy).
  • Пользовательское определение страницы 404.
  • Абстракция пользовательского интерфейса:
  • Функциональность паузы/возобновления.
  • Поддержка гибернации — приостановка и восстановление с диска.
  • Высокопроизводительные асинхронные HTTP-запросы.
    • С регулируемой параллельностью.
    • Со способностью автоматически обнаруживать работоспособность сервера и автоматически регулировать свою параллельность.
  • Поддержка настраиваемых значений по умолчанию, использующих пары шаблонов (для сопоставления с именами входных данных) и значений, которые будут использоваться для заполнения соответствующих входов.

Интегрированная среда браузера

Arachni включает интегрированную реальную среду браузера, чтобы обеспечить достаточное покрытие современных веб-приложений, которые используют такие технологии, как HTML5, JavaScript, манипуляции с DOM, AJAX и т. д.

В дополнение к мониторингу ванильной среды DOM и JavaScript браузеры Arachni также подключаются к популярным фреймворкам, чтобы сделать регистрируемые данные более удобоваримыми:

По сути, это превращает Arachni в отладчик DOM и JavaScript, позволяя ему отслеживать события DOM и потоки данных и выполнения JavaScript. В результате система может не только запускать и идентифицировать проблемы, связанные с DOM, но и сопровождать их большим количеством информации о состоянии страницы в то время.

Соответствующая информация включает:

  • Страница DOM в виде HTML-кода.
    • Со списком переходов DOM, необходимых для восстановления состояния страницы до того, которое было зарегистрировано.
  • Исходный DOM (то есть до действия, вызвавшего регистрацию страницы), в виде HTML-кода.
    • Со списком переходов DOM.
  • Приёмники потока данных — каждый приёмник представляет собой метод JS, который получил заражённый аргумент.
    • Родительский объект метода (например, DOMWindow).
    • Подпись метода (например, decodeURIComponent()).
    • Список аргументов.
      • С идентифицированным заражением, расположенным рекурсивно в включённых объектах.
    • Исходный код метода.
    • Трассировка стека JS.
  • Приёмники потока выполнения — каждый приёмник является успешно выполненной полезной нагрузкой JS, внедрённой проверками безопасности.
    • Включает трассировку стека JS.
  • Трассировки стека JavaScript включают:
    • Имена методов.
    • Расположение методов.
    • Исходные коды методов.
    • Аргументные списки.

По существу, у вас есть доступ примерно к той же информации, которую предоставил бы ваш любимый отладчик (например, FireBug), если бы вы установили точку останова в нужное время для выявления проблемы.

Кластер браузеров

Кластер браузеров координирует анализ ресурсов браузером и позволяет системе выполнять операции, которые обычно занимают много времени, с высокой производительностью.

Параметры конфигурации включают:

  • Регулируемый размер пула, то есть количество... Фильтры исключения URL с использованием регулярных выражений
  • Фильтры исключения страниц на основе содержания, использующие регулярные выражения.
  • Фильтры включения URL с использованием регулярных выражений.
  • Можно настроить так, чтобы следовали только путям HTTPS и не понижали версию до HTTP.
  • Могут дополнительно следовать субдоменам.
  • Регулируемый лимит количества страниц.
  • Регулируемый предел перенаправления.
  • Регулируемый предел глубины каталога.
  • Регулируемый предел глубины DOM.
  • Регулировка с помощью правил перезаписи URL.
  • Может читать пути из нескольких файлов, предоставленных пользователем (как для ограничения, так и для расширения области).

Аудит

  • Может проводить аудит:

    • форм (может автоматически обновлять одноразовые токены, может отправлять их через интегрированную среду браузера);
    • пользовательского интерфейса форм (входные и кнопочные группы, которые не принадлежат элементу HTML <form>, но связаны вместо этого через JS-код);
    • пользовательских интерфейсных входов (осиротевшие элементы <input> с соответствующими событиями DOM);
    • ссылок (может загружать их через интегрированную среду браузера);
    • linkTemplates (может загружать их через интегрированную среду браузера);
    • файлов cookie (может загружать их через интегрированную среду браузера);
    • заголовков;
    • общих клиентских элементов DOM;
    • данных запроса JSON;
    • данных XML-запроса.
  • Может игнорировать двоичные/нетекстовые страницы.

  • Может проверять элементы, используя методы HTTP GET и POST.

  • Может внедрять как необработанные, так и HTTP-закодированные полезные данные.

  • Может отправлять все ссылки и формы страницы вместе с перестановками файлов cookie для обеспечения обширного покрытия аудита файлов cookie.

  • Может исключать определённые векторы ввода по имени.

  • Может включать определённые векторы ввода по имени.

Компоненты

Arachni — это высокомодульная система, использующая несколько компонентов различных типов для выполнения своих функций.

Помимо включения или отключения встроенных компонентов для настройки поведения и функций системы по мере необходимости, функциональность можно расширить путём добавления пользовательских компонентов практически для любых нужд.

Сканеры отпечатков платформы

Чтобы эффективно использовать доступную пропускную способность, Arachni выполняет базовый сбор отпечатков платформы и адаптирует процесс аудита к серверным технологиям, используя только применимые полезные нагрузки.

В настоящее время можно идентифицировать следующие платформы:

  • операционные системы:
    • BSD;
    • Linux;
    • Unix;
    • Windows;
    • Solaris;
  • веб-серверы:
    • Apache;
    • IIS;
    • Nginx;
    • Tomcat;
    • Jetty;
    • Gunicorn;
  • языки программирования:
    • PHP;
    • ASP;
    • ASPX;
    • Java;
    • Python;
    • Ruby;
  • фреймворки:
    • Rack;
    • CakePHP;
    • Rails;
    • Django;
    • ASP.NET MVC;
    • JSF;
    • CherryPy;
    • Nette;
    • Symfony.

Пользователь также имеет возможность указать дополнительные платформы (например, сервер БД), чтобы помочь системе быть максимально эффективной. В качестве альтернативы сбор отпечатков можно полностью отключить.

Наконец, Arachni всегда будет действовать с осторожностью и отправлять все доступные полезные нагрузки, когда ему не удаётся идентифицировать конкретные платформы.

Проверки

Проверки — это системные компоненты, которые выполняют проверки безопасности и регистрируют проблемы.

Активные

Активные проверки задействуют веб-приложение через его входы.

  • SQL-инъекция (sql_injection) — обнаружение ошибок.
  • Слепая SQL-инъекция с использованием дифференциального анализа (sql_injection_differential).
  • Слепая SQL-инжекция с использованием атак по времени (sql_injection_timing).
  • NoSQL-инъекция (no_sql_injection) — обнаружение уязвимостей на основе ошибок.
  • Слепая NoSQL-инъекция с использованием дифференциального анализа (no_sql_injection_differential).
  • Обнаружение CSRF (csrf).
  • Инъекция кода (code_injection).
  • Слепая инъекция кода с использованием атак по времени (code_injection_timing).
  • LDAP-инъекция. Атаки и уязвимости программного обеспечения
  • Внедрение LDAP (ldap_injection).
  • Обход пути (path_traversal):
    • *nix,
    • Windows,
    • Java.
  • Включение файла (file_inclusion):
    • *nix,
    • Windows,
    • Java,
    • PHP,
    • Perl.
  • Разделение ответа (response_splitting).
  • Инъекция команды ОС (os_cmd_injection):
    • *nix,
    • *BSD,
    • IBM AIX,
    • Windows.
  • Слепая инъекция команды ОС с использованием временных атак (os_cmd_injection_timing):
    • Linux,
    • *BSD,
    • Solaris,
    • Windows.
  • Удалённое включение файла (rfi).
  • Непроверенные перенаправления (unvalidated_redirect).
  • Непроверенное перенаправление DOM (unvalidated_redirect_dom).
  • Внедрение XPath (xpath_injection):
    • Generic,
    • PHP,
    • Java,
    • dotNET,
    • libXML2.
  • Межсайтовый скриптинг (XSS) (xss).
  • XSS пути (xss_path).
  • XSS в атрибутах событий HTML-элементов (xss_event).
  • XSS в HTML-тегах (xss_tag).
  • XSS в контексте скрипта (xss_script_context).
  • DOM XSS (xss_dom).
  • DOM XSS в контексте скрипта (xss_dom_script_content).
  • Раскрытие исходного кода (source_code_disclosure).
  • Внешняя сущность XML (xxe):
    • Linux,
    • *BSD,
    • Solaris,
    • Windows.

Пассивные проверки

Пассивные проверки ищут наличие файлов, папок и сигнатур.

  • Разрешённые методы HTTP (allowed_methods).
  • Файлы резервных копий (backup_files).
  • Каталоги резервных копий (backup_directories).
  • Общие интерфейсы администрирования (common_admin_interfaces).
  • Обычные каталоги (common_directories).
  • Обычные файлы (common_files).
  • HTTP PUT (http_put).
  • Недостаточная защита транспортного уровня для форм паролей (unencrypted_password_form).
  • Обнаружение WebDAV (webdav).
  • Обнаружение HTTP TRACE (xst).
  • Огласка номера кредитной карты (credit_card).
  • Огласка пользователей CVS/SVN (cvs_svn_users).
  • Огласка частного IP-адреса (private_ip).
  • Распространённые бэкдоры (backdoors).
  • НЕПРАВИЛЬНАЯ конфигурация htaccess_limit (htaccess_limit).
  • Интересные ответы (interesting_responses).
  • Поиск объектов HTML (html_objects).
  • Огласка адреса электронной почты (emails).
  • Огласка социального номера США (ssn).
  • Принудительный список каталогов (directory_listing).
  • Смешанный ресурс/сценарии (mixed_resource).
  • Ненадёжные файлы cookie (insecure_cookies).
  • Только HTTP-файлы cookie (http_only_cookies).
  • Автозаполнение полей формы пароля (password_autocomplete).
  • Устранение ограничений доступа к подделке источника (origin_spoof_access_restriction_bypass).
  • Загрузка на основе формы (form_upload).
  • localstart.asp (localstart_asp).
  • Установка файлов cookie для родительского домена (cookie_set_for_parent_domain).
  • Отсутствие заголовков Strict-Transport-Security для сайтов HTTPS (hsts).
  • Отсутствие заголовков X-Frame-Options (x_frame_options).
  • Ненадёжная политика CORS (insecure_cors_policy).
  • Ненадёжная междоменная политика (allow-access-from) (insecure_cross_domain_policy_access).
  • Ненадёжная междоменная политика (allow-http-request-headers-from) (insecure_cross_domain_policy_headers).
  • Ненадёжная клиентская политика доступа (insecure_client_access_policy).

Отчёты

Плагины

Плагины добавляют дополнительные функции в систему модульным способом, благодаря чему ядро остаётся компактным и позволяет любому легко добавить произвольную функциональность.

  • Пассивный прокси (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 и получайте поддержку через Портал поддержки.

Вклад в проект

(Прежде чем начать работу, пожалуйста, ознакомьтесь с инструкциями по работе с исходным кодом.)

Мы рады принять помощь от коллег-программистов, и вот шаги, которые необходимо выполнить, чтобы внести свой вклад в код:

  • Создайте форк проекта.
  • Начните ветку функции на основе ветки experimental.
  • Добавьте спецификации для вашего кода.
  • Запустите набор спецификаций, чтобы убедиться, что вы ничего не сломали (rake spec:core для основных библиотек или rake spec для всего).
  • Внесите и отправьте свои изменения.
  • Отправьте запрос на включение и дождитесь проверки кода.

Лицензия

Arachni Public Source License v1.0 — дополнительную информацию см. в файле LICENSE.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-arachni.git
git@api.gitlife.ru:oschina-mirror/mirrors-arachni.git
oschina-mirror
mirrors-arachni
mirrors-arachni
master