Лабораторный практикум по основам анализа защищенности веб-прил. Практикум по основам анализа защищенности вебприложений
Скачать 1.08 Mb.
|
Вопросы и задания 1. Как автоматически идентифицировать уязвимости, связан- ные с загрузкой файлов на сервер? 2. Изучить рекомендации по реализации защищенной загрузки файлов на сервер. 3. Загрузить на сервер и использовать PHP шелл-код c99. Сканирование уязвимостей веб-приложений Цель работы Целью лабораторной работы является изучение основных методов и средств идентификации уязвимостей, реализованных в специализированных сканерах безопасности веб-приложений. Краткие теоретические сведения В настоящее время не существует технического решения, позволяющего полностью автоматизировать процесс анализа защищённости веб-приложений [19, 20]. Как показывает практика, средства анализа защищённости должны использоваться только на первом этапе тестирования таких приложений для предварительного поиска потенциальных уязвимостей. В целом сканеры безопасности могут помочь идентифицировать хорошо известные проблемы с безопасностью веб-приложений или, по крайней мере, облегчить работу по их поиску. Как правило, при анализе защищенности веб-приложений сканеры безопасности позволяют решить следующие задачи: поиск грубых недостатков, допущенных на этапах реализации или конфигурации; поиск хорошо известных уязвимостей; проверка соответствия требованиям стандартов безопасности; проверка отсутствия пропущенных уязвимостей в процессе ручного тестирования. 50 Рассмотрим методы и механизмы поиска уязвимостей веб- приложений на примере сканера безопасности общего назначения XSpider. В рамках анализа защищенности веб-приложений сканер безопасности XSpider имеет следующие основные возможности: автоматическое определение веб-приложений на произвольных портах; работа с протоколами семейства SSL/TLS; автоматическая индексация веб-сервера с поддержкой функции поиска скрытых директорий и резервных копий файлов; поддержка HTTP-аутентификации Basic и нестандартных схем аутентификации; автоматическое отслеживание сессий; поиск уязвимых и вредоносных сценариев по содержимому веб-документа; эвристический поиск основных уязвимостей веб-приложений. Если в ходе идентификации открытых портов и служб на сканируемом узле обнаружен веб-сервер, то сканер выполняет поиск уязвимостей, соответствующих его типу (например, Apache, IIS, Nginx и т.д.), а также установленным расширениям (ASP, FrontPage и т.п.). Следующим этапом является аутентификация, авторизация и проверка известных уязвимостей веб-приложений. В настоящее время сканирующее ядро XSpider поддерживает три механизма аутентификации: Basic; NTLM; собственные схемы аутентификации (например, аутентифика- ция через форму веб-приложения). В случае, если сервер использует собственные механизмы аутентификации, то возможно использование одного из двух вариантов. Первый из них – использование собственного стартового запроса. В этом случае сканеру необходимо задать HTTP-запрос, используемый при первом обращении к сайту. Второй способ подразумевает конфигурирование и использование HTTP- 51 заголовков с аутентификационными данными (заголовки Cookie, X-Auth-Token и т.д.), которые будут пересылаться в каждом HTTP- запросе. Получить содержимое запроса можно с помощью любого сетевого анализатора (например, Wireshark, Httpwatch) или прокси- сервера (например, Burp Suite). После этого включается механизм поиска скрытых директорий и индексации содержимого. В ходе сбора содержимого сканирующее ядро XSpider анализирует на предмет наличия гиперссылок веб-страницы, а также различные служебные и информационные файлы, содержащиеся на сервере (например, robots.txt или readme.txt). После построения карты сайта сканер переход в режим поиска уязвимостей, которые отображаются в консоли программы по мере обнаружения. Постановка задачи Выполнить сканирование уязвимостей веб-приложения с использованием сканера безопасности общего назначения XSpider. Последовательность действий Шаг 1. Развернуть тестовое небезопасное веб-приложение. Запустить сканер XSpider. Создать или открыть профиль сканирования « Web scan ». Список сканируемых портов ограничить значениями 80/tcp и 443/tcp . Отключить сканирование UDP-портов, включить идентификацию сервисов. Шаг 2. Включить все опции в разделе « HTTP ». В разделе «Анализатор контента» оставить включенными опции по использованию словарей, поиску старых файлов и поиску вредоносного кода. При необходимости добавить дополнительные ссылки. Шаг 3. В разделе « Типы уязвимостей » оставить только « SQL- инъекции », « Удаленное выполнение команд », « Просмотр произвольных файлов » и « Межсайтовый скриптинг (XSS) ». Отключить подбор учетных записей. Сохранить профиль. Запустить сканирование веб-приложения с использованием созданного профиля. Просмотреть результаты. Проанализировать 52 запросы, отправляемые сканером при выполнении проверок на наличие уязвимостей. Шаг 4. Аутентифицироваться в веб-приложении. С помощью анализатора запросов сохранить HTTP-запросы, содержащие аутентификационные данные (Cookie, заголовки и т.д.). Открыть профиль « Web scan », добавить аутентификационные данные в разделе «Дополнительные поля запроса». Сохранить профиль. Выполнить повторное сканирование. Сравнить результаты. Вопросы и задания 1. Выполнить ручные проверки наличия обнаруженных скане- ром уязвимостей в веб-приложении. 2. Выполнить сканирование того же приложения с помощью сканера W3AF, сравнить полученные результаты. 3. Реализовать веб-приложение, уязвимое к атаке XSS, которое инвертирует введенные пользователем данные и выводит их в HTML-документ. Выполнить сканирование данного приложения с помощью любого сканера веб-приложений. 53 ЛИТЕРАТУРА 1. Bugcrowd’s Bug Bounty List. URL: https://bugcrowd.com/list-of- bug-bounty-programs 2. HackerOne’s Bug Bounty Programs. URL: https://hackerone.com/programs 3. Adobe Cross Domain Policy File Specification. URL: http://www.adobe.com/devnet/articles/crossdomain_policy_file_sp ec.htm 4. Hacking Database. URL: http://www.exploit- db.com/google-dorks 5. Saumil Shah. An Introduction to HTTP fingerprinting. URL: http://www.net-square.com/httprint_paper.html 6. Qualys, Inc. TLS Renegotiation and Denial of Service Attacks. URL: https://community.qualys.com/blogs/securitylabs/2011/10/31/tls- renegotiation-and-denial-of-service-attacks 7. Qualys SSL Labs. SSL/TLS Deployment Best Practices. URL: https://www.ssllabs.com/downloads/SSL_TLS_Deployment_Best _Practices_1.3.pdf 8. ЗАО Позитив Текнолоджис. В. Кочетков. Как разработать защищенное веб-приложение и не сойти при этом с ума». URL: http://www.slideshare.net/kochetkov.vladimir/hdswasm- webinar 9. И. Новиков. Завалить в один запрос: уязвимости веб- приложение, приводящие к DoS. URL: http://www.slideshare.net/d0znpp/ss-27695334 10. Trustwave’s SpiderLabs. Mitigating Slow HTTP DoS Attacks. URL: http://blog.spiderlabs.com/2011/07/advanced-topic-of-the- week-mitigating-slow-http-dos-attacks.html 11. Mitigation of 'Slow Read" Denial of Service Attack. URL: http://blog.spiderlabs.com/2012/01/modsecurity-advanced-topic- of-the-week-mitigation-of-slow-read-denial-of-service-attack.html 12. Qualys Inc. Are you ready for slow reading? URL: https://community.qualys.com/blogs/securitylabs/2012/01/05/slow -read 54 13. Identifying Slow HTTP Attack Vulnerabilities. URL: https://community.qualys.com/blogs/securitylabs/2012/01/05/slow -read 14. CWE-352: Cross-Site Request Forgery (CSRF). URL: http://cwe.mitre.org/data/definitions/352.html 15. Barth A., Jackson C., and Mitchell J. Robust Defenses for Cross- Site Request Forgery // Proc. 15th ACM Conference on Computer and Communications Security. – ACM Press, 2008. pp. 75-87. 16. Javed A. On Breaking PHP-based Cross-Site Scripting Protection Mechanisms. URL: http://slides.com/mscasharjaved/on-breaking- php-based-cross-site-scripting-protections-in-the-wild 17. Д. Евтеев. SQL Injection от А до Я. URL: http://www.ptsecurity.ru/download/PT-devteev-Advanced-SQL- Injection.pdf 18. Acunetix. Why File Upload Forms are a Major Security Threat. URL: https://www.acunetix.com/websitesecurity/upload-forms- threat. 55 ПРИЛОЖЕНИЯ Рекомендуемые материалы по безопасности веб-приложений 1. OWASP Foundation. OWASP Testing Guide v4.0. URL: https://www.owasp.org/index.php/Web_Application_Penetration_T esting. 2. Heiderich M., Nava E., Heyes G., Lindsay D. Web Application Obfuscation. – ISBN-10: 1597496049. 3. McNab C. Network Security Assessment : Know Your Network, second edition. – ISBN-10:0-596-51030-6. 4. Ristic I. Bulletproof SSL and TLS: Understanding and deploying SSL/TLS and PKI to secure servers and web applications. – ISBN- 10: 1907117040. 5. Stuttard D., Pinto M. The Web Applicaion Hackers’s Handbook: Finding and Exploiting Security Flaws. – ISBN-10: 1118026470. 6. Zalewski M. The Tangled Web: A Guide to Securing Modern Web Applications. – ISBN-10: 1593273886. 7. HTML5 Security Cheatsheet. URL: https://html5sec.org/ 56 Перечень небезопасных веб-приложений 1. http://testphp.vulnweb.com 2. http://testaspnet.vulnweb.com 3. http://testasp.vulnweb.com 4. http://testhtml5.vulnweb.com 5. http://crackme.cenzic.com 6. http://demo.testfire.net 7. http://aspnet.testsparker.com 8. http://php.testsparker.com/ 9. http://www.webscantest.com/ 10. https://hack.me 11. http://pentesteracademylab.appspot.com 12. http://zero.webappsecurity.com 13. https://code.google.com/p/webgoat/ 14. https://owasp.codeplex.com 15. https://github.com/owasp/railsgoat 16. https://community.rapid7.com/docs/DOC-1875 17. https://www.pentesterlab.com/exercises 18. http://downloads.phdays.com/phdays_ibank_vm.zip 19. http://code.google.com/p/owaspbwa/wiki/ProjectSummary 20. http://www.mcafee.com/us/downloads/free-tools/hacme-bank.aspx 21. http://www.mcafee.com/us/downloads/free-tools/hacmebooks.aspx 22. http://www.mcafee.com/us/downloads/free-tools/hacmetravel.aspx 57 Перечень основных задач по поиску уязвимостей к атакам XSS 1. http://xss-game.appspot.com 2. http://www.domxss.com/domxss 3. http://escape.alf.nu 4. http://prompt.ml 5. http://xss.1llusion.info/ 6. http://xss-quiz.int21h.jp/ 7. http://xssplaygroundforfunandlearn.netai.net/allseries.html 8. https://hack.me/101575/bypass-blacklist-based-waf-challenge.html 9. https://hack.me/101705/rhainfosec-xss-challenge-2.html 58 Перечень рекомендуемого программного обеспечения 1. Burp Suite. URL: http://portswigger.net/burp/ 2. Zed Attack Proxy. URL: https://code.google.com/p/zaproxy/ 3. Fiddler. URL:// http://www.telerik.com/fiddler 4. Nmap. URL:// http://nmap.org/ 5. BeEF. URL:// http://beefproject.com/ 6. Metasploit Framework. URL: http://www.metasploit.com/ 7. Sqlmap. URL: http://sqlmap.org/ 8. Thc-ssl-dos. URL: https://www.thc.org/thc-ssl-dos/ 9. Сервис SSL Labs. URL: https://ssllab.com. 10. Httprint. URL: http://www.net-square.com/httprint.html 11. Slowhttptest. URL: https://code.google.com/p/slowhttptest/ 59 СОДЕРЖАНИЕ ПРЕДИСЛОВИЕ ............................................................................................ 3 ЛАБОРАТОРНЫЕ РАБОТЫ ПО АНАЛИЗУ ЗАЩИЩЕННОСТИ ВЕБ-ПРИЛОЖЕНИЙ .................................................................................... 4 Сбор информации о веб-приложении ........................................................ 5 Тестирование защищенности транспортного уровня .......................... 10 Тестирование защищенности механизма управления доступом ......... 19 Тестирование защищенности механизма управления сессиями ........... 24 Тестирование на устойчивость к атакам отказа в обслуживании .... 28 Поиск уязвимостей к атакам CSRF ........................................................ 31 Поиск уязвимостей к атакам XSS ........................................................... 35 Поиск уязвимостей к атакам SQL-injection ........................................... 40 Поиска уязвимостей к атакам RCE ........................................................ 45 Сканирование уязвимостей веб-приложений ....................................... 49 ЛИТЕРАТУРА .............................................................................................. 53 ПРИЛОЖЕНИЯ ........................................................................................... 55 Рекомендуемые материалы по безопасности веб-приложений ........ 55 Перечень небезопасных веб-приложений .............................................. 56 Перечень основных задач по поиску уязвимостей к атакам XSS ........ 57 Перечень рекомендуемого программного обеспечения ....................... 58 СОДЕРЖАНИЕ ............................................................................................ 59 Учебное издание Денис Николаевич Колегов ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО ОСНОВАМ АНАЛИЗА ЗАЩИЩЕННОСТИ ВЕБ-ПРИЛОЖЕНИЙ Учебное пособие Работа вышла в свет в авторской редакции Подписано к печати 17.09.2014 г. Формат 60×84 1 / 16 Бумага для офисной техники. Гарнитура Times. Усл. печ. л. 3,44. Тираж 15 экз. Заказ № 546. Отпечатано на оборудовании Издательского Дома Томского государственного университета 634050, г. Томск, пр. Ленина, 36 Тел. 8+(382-2)–53-15-28 |