Инструменты тестирования на проникновение [закрыты]

StackOverflow https://stackoverflow.com/questions/72166

  •  09-06-2019
  •  | 
  •  

Вопрос

У нас есть сотни веб-сайтов, разработанных на asp, .net и java, и мы платим большие деньги внешнему агентству за проведение тестирования на проникновение для наших сайтов на предмет наличия лазеек в системе безопасности.Существует ли какое-либо (хорошее) программное обеспечение (платное или бесплатное) для этого?

или..есть ли какие-либо технические статьи, которые могут помочь мне разработать этот инструмент?

Это было полезно?

Решение

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

Во-первых, существуют следующие коммерческие веб-сканеры, из которых HP WebInspect и Rational AppScan являются двумя наиболее популярными.Это инструменты "все-в-одном", "запускающие и забывающие", которые вы загружаете и устанавливаете на внутренний рабочий стол Windows, а затем предоставляете URL-адрес для запуска вашего сайта, сканируете на наличие хорошо известных уязвимостей (т. Е. тех, которые попали в Bugtraq) и проверяете на наличие межсайтовых сценариев и уязвимостей SQL-инъекций.

Во-вторых, существуют следующие инструменты сканирования исходного кода, из которых Coverity и Fortify, вероятно, являются двумя наиболее известными.Это инструменты, которые вы устанавливаете на рабочий стол разработчика для обработки исходного кода Java или C # и поиска хорошо известных паттернов небезопасного кода, таких как плохая проверка входных данных.

Наконец, есть следующие инструменты для тестирования на проникновение.Безусловно, самым популярным инструментом тестирования веб-приложений на проникновение среди специалистов по безопасности является Burp Suite, который вы можете найти по адресу http://www.portswigger.net/proxy.Другие включают Spike Proxy и OWASP WebScarab.Опять же, вы установите это на внутренний рабочий стол Windows.Он будет работать как HTTP-прокси, и вы укажете на него своему браузеру.Вы будете использовать свои приложения как обычный пользователь, в то время как они будут записывать ваши действия.Затем вы можете вернуться к каждой отдельной странице или HTTP-действию и проверить их на наличие проблем с безопасностью.

В сложной обстановке, и особенно если вы планируете что-то сделать своими руками, Я настоятельно рекомендую инструменты тестирования на проникновение.И вот почему:

Коммерческие веб-сканеры обеспечивают большую "широту охвата" наряду с отличной отчетностью.Однако:

  • Они, как правило, упускают что-то из виду, потому что каждое приложение отличается от других.

  • Они дорогие (WebInspect начинается с 10 тысяч).

  • Вы платите за то, что вам не нужно (например, за базы данных известных плохих CGIS 90-х годов).

  • Их трудно настроить.

  • Они могут привести к шумным результатам.

Сканеры исходного кода работают более тщательно, чем веб-сканеры.Однако:

  • Они даже дороже веб-сканеров.

  • Для их работы требуется исходный код.

  • Чтобы быть эффективными, они часто требуют, чтобы вы комментировали свой исходный код (например, чтобы выбрать пути ввода).

  • Они имеют тенденцию давать ложноположительные результаты.

Как коммерческие сканеры, так и сканеры исходного кода имеют дурную привычку откладываться в долгий ящик.Хуже того, даже если они работают, их стоимость сопоставима с проверкой 1 или 2 целых приложений консалтинговой компанией;если вы доверяете своим консультантам, вы гарантированно получите от них лучшие результаты, чем от инструментов.

У инструментов тестирования на проникновение тоже есть недостатки:

  • Ими гораздо сложнее пользоваться, чем обычными коммерческими сканерами.

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

  • Они практически не представляют официальной отчетности.

С другой стороны:

  • Они намного, намного дешевле - лучший из них, Burp Suite, стоит всего 99 евро и имеет бесплатную версию.

  • Их легко настроить и добавить в рабочий процесс тестирования.

  • Они гораздо лучше помогают вам "познакомиться" с вашими приложениями изнутри.

Вот что можно сделать с помощью инструмента для проверки пера для базового веб-приложения:

  1. Войдите в приложение через прокси

  2. Создайте "список посещений" основных функциональных областей приложения и выполните упражнение в каждой из них по одному разу.

  3. Используйте инструмент "паук" в вашем приложении для тестирования пера, чтобы найти все страницы, действия и обработчики в приложении.

  4. Для каждой динамической страницы и каждой HTML-формы, обнаруживаемой spider, используйте инструмент "фаззер" (Burp называет его "злоумышленник"), чтобы использовать каждый параметр с недопустимыми входными данными.Большинство фаззеров поставляются с базовыми тестовыми строками, которые включают:

    • Метасимволы SQL

    • Экранирование HTML / Javascript и метасимволы

    • Интернационализированные варианты этих функций для обхода входных фильтров

    • Хорошо известные имена и значения полей формы по умолчанию

    • Хорошо известные имена каталогов, файлов и глаголы-обработчики

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

Это трудоемкий подход, основанный на "голом металле".Но когда ваша компания владеет реальными приложениями, подход "голого металла" окупается, потому что вы можете использовать его для создания наборов регрессионных тестов, которые будут работать как часы на каждом цикле разработки для каждого приложения.Это победа по целому ряду причин:

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

  • Ваша команда получит максимально точные и тщательные результаты, поскольку ваше тестирование будет настроено под ваши приложения.

  • Это будет стоить дешевле, чем коммерческие сканеры, и дешевле, чем консультанты.

Конечно, если вы пойдете по этому пути, вы фактически превратите себя в консультанта по безопасности для своей компании.Я не думаю, что это плохо;если вам не нужен этот опыт, WebInspect или Fortify вам в любом случае мало чем помогут.

Другие советы

Я знаю, что вы спрашивали конкретно об инструментах пентестирования, но поскольку на них были даны исчерпывающие ответы (обычно я использую сочетание AppScan и обученного pentester), я думаю, важно отметить, что пентестирование - не единственный способ "проверить наличие лазеек в системе безопасности", и часто не самый эффективный.

Инструменты проверки исходного кода могут предоставить вам гораздо лучшую видимость вашей кодовой базы и обнаружить множество недостатков, которых не обнаружит пентестинг.

К ним относятся Fortify и OunceLabs (дорогие и для многих языков), VisualStudio.СЕТЕВОЙ анализ кода (для .NET и C ++, бесплатно с VSTS, приличный, но не отличный), OWASP's LAPSE для Java (бесплатный, приличный, но не отличный), CheckMarx (недешевый, фантастический инструмент для .NET и Java, но с большими накладными расходами) и многое другое.

Важный момент, на который вы должны обратить внимание - (большинство) автоматизированных инструментов не находят всех уязвимостей, даже близко.Вы можете ожидать, что автоматизированные инструменты обнаружат примерно 35-40% secbugs, которые были бы обнаружены профессиональным пентестером;то же самое касается автоматизированного управления .проверка исходного кода вручную.

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

McAfee Secure - это не решение проблемы.Услуга, которую они предоставляют, - это шутка.

Смотрите ниже:

http://blogs.zdnet.com/security/?p=1092&tag=rbxccnbzd1
http://blogs.zdnet.com/security/?p=1068&tag=rbxccnbzd1
http://blogs.zdnet.com/security/?p=1114&tag=rbxccnbzd1

Я слышал много хорошего о SpiDynamics WebInspect в том, что касается платных решений, а также Nikto (для бесплатного решения) и других инструментах с открытым исходным кодом.Nessus - отличный инструмент для инфраструктуры на случай, если вам нужно проверить и этот уровень.Вы можете приобрести live cd с несколькими инструментами на нем под названием Nubuntu (Auditor, Helix или любой другой дистрибутив, основанный на безопасности, тоже работает), а затем найти в Google несколько руководств по конкретному инструменту.Всегда, однако, обязательно выполняйте сканирование из локальной сети.Вы рискуете быть заблокированным центром обработки данных, если будете сканировать ящик из глобальной сети без авторизации.Урок усвоен на собственном горьком опыте.;)

Морская рыба, w3af, арахни, ratproxy, ZAP, WebScarab :все бесплатно и очень хорошо, IMO

http://www.nessus.org/nessus/ -- Nessus поможет предложить способы улучшить ваши серверы.На самом деле он не может тестировать пользовательские приложения сам по себе, хотя я думаю, что плагины относительно легко создать самостоятельно.

Взгляните на Рациональное сканирование приложений (раньше назывался Watchfire).Он не бесплатный, но имеет приятный пользовательский интерфейс, невероятно мощный, генерирует отчеты (на заказ и в соответствии со стандартными фреймворками соответствия, такими как Basel2), и я полагаю, что вы можете использовать его в своей сборке CI.

Как насчет никто ?

Для такого типа тестирования вам действительно стоит обратить внимание на какой-нибудь тестер нечеткости. Прокси - сервер SPIKE является одним из нескольких fuzz-тестеров для веб-приложений.Он имеет открытый исходный код и написан на Python.Я полагаю, что где-то есть пара видеороликов от BlackHat или DefCON об использовании SPIKE, но я испытываю трудности с их поиском.

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

Если вы действительно планируете самостоятельно пройти тестирование пера, я настоятельно рекомендую вам ознакомиться с большей частью Документация по проекту OWASP.В частности, руководства по проверке и тестированию / разработке безопасности приложений OWASP.Мышление, необходимое для тщательного тестирования вашего приложения, немного отличается от вашего обычного мышления при разработке (не то чтобы оно ДОЛЖНО отличаться, но обычно так оно и есть).

о чем крысиный прокси - сервер?

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

Обнаруживает и определяет приоритеты для широких классов проблем безопасности, таких как динамические соображения модели межсайтового доверия, проблемы с включением скриптов, проблемы с контентом обслуживанием, недостаточная защита XSRF и XSS и многое другое

В настоящее время считается, что Ratproxy поддерживает среды Linux, FreeBSD, macOS X и Windows (Cygwin).

Я знаю, что вы спрашивали конкретно об инструментах пентестирования, но поскольку на них были даны исчерпывающие ответы (обычно я использую сочетание AppScan и обученного pentester), я думаю, важно отметить, что пентестирование - не единственный способ "проверить наличие лазеек в безопасности" и часто не самый эффективный.

Инструменты проверки исходного кода могут предоставить вам гораздо лучшую видимость вашей кодовой базы и обнаружить множество недостатков, которых не обнаружит пентестинг.

К ним относятся Fortify и OunceLabs (дорогие и для многих языков), VisualStudio.СЕТЕВОЙ анализ кода (для .NET и C ++, бесплатно с VSTS, приличный, но не отличный), OWASP's LAPSE для Java (бесплатный, приличный, но не отличный), CheckMarx (недешевый, фантастический инструмент для .NET и Java, но с большими накладными расходами) и многое другое.

Важный момент, на который вы должны обратить внимание - (большинство) автоматизированных инструментов не находят всех уязвимостей, даже близко.Вы можете ожидать, что автоматизированные инструменты обнаружат примерно 35-40% secbugs, которые были бы обнаружены профессиональным пентестером;то же самое касается автоматизированного управления .проверка исходного кода вручную.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top