Подтвердить что ты не робот

Инструменты для тестирования проницаемости

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Им нужен исходный код.

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

  • У них есть тенденция создавать ложные срабатывания.

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

Инструменты тестирования проникновения также имеют недостатки:

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

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

  • Они не производят незначительную или вообще не формальную отчетность.

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

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

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

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

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

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

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

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

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

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

    • Выражения и метасимволы HTML/Javascript

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

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

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

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

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

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

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

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

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

Ответ 2

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

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

К ним относятся Fortify и OunceLabs (дорогостоящие и для многих языков), VisualStudio.NET CodeAnalysis (для .NET и С++, бесплатно с VSTS, приличный, но не большой), OWASP LAPSE для Java (бесплатный, порядочный, не большой), CheckMarx (не дешевый, инструмент fanTASTic для .NET и Java, но высокий накладные расходы) и многие другие.

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

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

Ответ 3

Вы можете рассмотреть chorizo

Ответ 5

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

Ответ 6

Skipfish, w3af, arachni, ratproxy, ZAP, WebScarab: все свободные и очень хорошие IMO

Ответ 7

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

Ответ 8

Посмотрите Rational App Scan (обычно называемый Watchfire). Он не бесплатный, но имеет приятный пользовательский интерфейс, является мощным, генерирует отчеты (на заказ и против стандартных систем соответствия, таких как Basel2), и я считаю, что вы можете script его в сборку CI.

Ответ 9

Как насчет nikto?

Ответ 10

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

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

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

Ответ 11

как насчет прокси-сервер крысы?

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

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

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

Ответ 12

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

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

К ним относятся Fortify и OunceLabs (дорогостоящие и для многих языков), VisualStudio.NET CodeAnalysis (для .NET и С++, бесплатно с VSTS, приличный, но не большой), OWASP LAPSE для Java (бесплатный, порядочный, не большой), CheckMarx (не дешевый, инструмент fanTASTic для .NET и Java, но высокий накладные расходы) и многие другие.

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

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