Тестирование веб-безопасности
-
19-09-2019 - |
Вопрос
По вашему опыту, какие уязвимости сайтов вы обнаружили, над чем работали или с чем столкнулись?И какие действия вы предприняли для решения этих проблем?
Это может включать XSS (межсайтовый скриптинг), атаки SQL-инъекций, старые добрые DDOS или попытки фишинга клиентов вашего сайта.Только вчера я наткнулся на целый раздел инструментов Firefox для аудита сайтов и их потенциала на различные уязвимости.
Я хочу расширить свои знания в этой области для получения должности, поэтому всегда полезно прочитать или изучить больше информации - надежные ссылки тоже приветствуются!А военные истории о худшем, что вы нашли, или о самой страшной дыре, которую вы видели - иногда лучший способ - учиться на собственном опыте!
Решение
Я проводил проверку безопасности, как «белого, так и черного ящика», для десятков (сотен?) приложений и сайтов.
XSS и SQL-инъекции привлекают много внимания в прессе, но знаете, какой я считаю наиболее распространенным недостатком безопасности?Оставление функций отладки и тестирования в рабочем коде.Либо подделывая параметры POST (isDebug=True), либо просматривая сайт и находя оставшиеся страницы, это худшие ошибки, которые я вижу в отношении безопасности.Если вы включаете код тестирования/отладки, поместите его в отдельную ветку кода или, по крайней мере, подготовьте контрольный список для удаления перед запуском.
Следующая наиболее распространенная уязвимость, которую я видел, — это просто возможность обойти механизмы безопасности путем получения URL-адреса из источника страницы.Техническое название — «Принудительная навигация» или «Принудительный просмотр». Это может сделать любой, кто умеет читать HTML, но я удивлен разнообразием уязвимых приложений.Вчера, просматривая сайт покупки билетов, я смог купить билеты на аншлаговые шоу, используя этот метод.На предыдущих сайтах мне удавалось вообще не платить (многие сайты Paypal передают URL-адрес «покупка завершена» в PayPal через параметры POST — фу!).Вам нужна какая-то внутренняя проверка состояния или проверка, чтобы гарантировать завершение, оплату, доступность, точность и т. д.
Честно говоря, я обычно позволяю таким инструментам, как AppScan, BURP proxy, WebScarab, Fortify, FindBugs или YASCA (в зависимости от бюджета и доступности исходного кода), находить за меня атаки XSS и SQL-инъекции.Я попробую простые вещи самостоятельно, поищу явные дыры, но известных комбинаций слишком много, чтобы пробовать самому.Я храню небольшую коллекцию скриптов и тестовых примеров для более сложных или недавно обнаруженных недостатков.
Я остановлюсь на 3, потому что я действительно могу продолжать весь день, я теряю концентрацию от вашего вопроса, и никто не хочет читать стену текста.
Некоторые ресурсы для новых и опытных гуру веб-безопасности:(АРГХ.Я пока не могу официально размещать ссылки.Копировать вставить.Извини)
Открытый проект безопасности веб-приложений (OWASP)
Поваренная книга по тестированию веб-безопасности
Эта книга написана для аудиторов, тестировщиков и в меньшей степени для разработчиков.Что довольно необычно для книги О'Рейли.
websecuritytesting.com
Классификация уязвимостей по Fortify
www.fortify.com/vulncat/
Перечень общих слабостей (предупреждение:обширный)
nvd.nist.gov/cwe.cfm
Перечисление и классификация распространенных шаблонов атак (предупреждение:еще обширнее)
capec.mitre.org/
Учебники Google по веб-безопасности
(довольно слабый)
code.google.com/edu/security/index.html
Другие советы
Я присоединился к проекту веб-приложения, включающему библиотеку документов.То, как он ссылался на документы, было что-то вроде http://example.com/getdocument?file=somefile.pdf.Конечно, мне просто нужно было попробовать file=/etc/passwd, и, конечно же, это сработало.
Решение:Выполните очистку пользовательского ввода и/или используйте некоторый уровень абстракции между ресурсами, запрошенными в URL-адресе, и фактическими ресурсами файловой системы.
Это аналог атак с использованием SQL-инъекций.Изучите любой разрешенный запрос, который подозрительно выглядит так, будто он дает клиенту слишком много контроля.