Существует несколько различных направлений, которые вы можете использовать с инструментами автоматического тестирования для веб-приложений.
Во-первых, есть коммерческие веб-сканеры, из которых 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 и имеет бесплатную версию.
Их легко настроить и добавить в рабочий процесс тестирования.
Они намного лучше помогают вам «узнать» ваши приложения изнутри.
Вот то, что вы могли бы сделать с ручкой-тестером для основного веб-приложения:
Войдите в приложение через прокси
Создать «расстрельный список» из основных функциональных областей приложения, и упражнение каждый раз.
Используйте инструмент «spider» в своем приложении для проверки пера, чтобы найти все страницы и действия и обработчики в приложении.
Для каждой динамической страницы и каждой формы HTML, которую открывает паук, используйте инструмент «fuzzer» (Burp называет его «нарушителем»), чтобы использовать каждый параметр с недопустимыми входами. Большинство фузеров поставляются с основными строками испытаний, которые включают в себя:
SQL метасимволы
HTML/Javascript сбегает и метасимволы
Многоязычных варианты этих уклониться входными фильтрами
Ну- известные названия полей по умолчанию и значения
Известных имена каталогов, имена файлов и обработчики глаголы
Проведите несколько часов фильтрации результирующих ошибок (типичный пух прогон одной формы может генерировать 1000 из них) ищут подозрительные ответы.
Это трудоемкий подход «с голыми металлами». Но когда ваша компания владеет реальными приложениями, принцип «чистого металла» окупается, потому что вы можете использовать его для создания наборов регрессионных тестов, которые будут работать как часы в каждом графике dev для каждого приложения. Это победа кучу причин:
Ваше тестирование безопасности будет принимать предсказуемое количество времени и ресурсов для каждого приложения, что позволяет вам бюджет и сортировки.
Ваша команда получит максимально точные и полные результаты, так как ваше тестирование будет настроено на ваши приложения.
Это будет стоить меньше, чем коммерческие сканеры и меньше, чем консультанты.
Конечно, если вы идете по этому маршруту, вы в основном превращаетесь в консультанта по безопасности для своей компании. Я не думаю, что это плохо. если вы не хотите этого опыта, WebInspect или Fortify не помогут вам в любом случае.
Отличный ответ. – xan
Приятный и это то, чего я ожидал, спасибо –