2008-09-16 6 views
43

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

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

ответ

64

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • HTML/Javascript сбегает и метасимволы

    • Многоязычных варианты этих уклониться входными фильтрами

    • Ну- известные названия полей по умолчанию и значения

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

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

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

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

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

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

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

+4

Отличный ответ. – xan

+0

Приятный и это то, чего я ожидал, спасибо –

1

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

0

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

0

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

4

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

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

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

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

И, конечно, собственно SDLC (Development Lifecycle Security), в том числе моделирование угроз, Design Review и т.д., поможет еще больше ...

2

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

+0

Эти статьи уже полтора года? они все еще действительны? –

0

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

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

Если вы планируете проходить с помощью теста на рулон самостоятельно, я настоятельно рекомендую вам прочитать большую часть OWASP Project's documentation. В частности, руководство по проверке безопасности и тестированию приложений OWASP. Умение, необходимое для тщательного тестирования вашего приложения, немного отличается от вашего нормального мышления (не должно быть иначе, но обычно оно).

0

что относительно rat proxy?

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

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

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

0

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

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

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

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

И, конечно, собственно SDLC (Development Lifecycle Security), в том числе моделирование угроз, Design Review и т.д., поможет еще больше ...

1

Skipfish, w3af, arachni, ratproxy, ZAP, WebScarab: все бесплатно и очень хорошо ИМО