безопасность веб приложений сегодня. дмитрий евтеев....

Post on 16-Nov-2014

1.238 views 1 download

description

 

Transcript of безопасность веб приложений сегодня. дмитрий евтеев....

Безопасность веб-приложений сегодня

Дмитрий Евтеев (Позитив Текнолоджиз)

По данным компании Positive Technologies

– более 80% сайтов содержат критические уязвимости

– вероятность автоматизированного заражения страниц

уязвимого веб-приложения вредоносным кодом

составляет сегодня приблизительно 15-20%

http://ptsecurity.ru/analytics.asp

Распределение веб-уязвимостей по данным VERACODE

http://info.veracode.com/rs/veracode/images/soss-v3.pdf

Что такое уязвимость типа «Внедрение операторов SQL»

Web-сервер СУБДhttp://web/?id=6329&print=Y

….SELECT * from news where id = 6329….

Что такое уязвимость типа «Внедрение операторов SQL»

Web-сервер СУБДhttp://web/?id=6329+union+select+id,pwd,0+from...

….SELECT * from news where id = 6329 union select id,pwd,0 from…….

Что такое уязвимость типа «Межсайтовое выполнение сценариев»

Web-серверhttp://web/?search=secureweb

…print "<b>secureweb</b>";…

Что такое уязвимость типа «Межсайтовое выполнение сценариев»

Web-сервер

1. fuzzing, поиск уязвимости

2. Передача «заряженной» ссылки:http://web/?search=secureweb"><script>...</script>

3. Переход по ссылке

4. Выполнение исполняемогокода в браузере пользователя

5. Например, передача Web-сессии (cookies)

6. Работа с Web-приложением от имени атакованного пользователя

По данным всех авторитетных источников, наиболее распространено использование следующих уязвимостей:

– Внедрение операторов SQL

– Межсайтовое выполнение сценариев

– Выход за каталог веб-сервера (и Local/Remote File Including)

– Подбор

– Выполнение команд на сервере

Распределение использования веб-уязвимостей по данным подразделения IBM X-Force

http://public.dhe.ibm.com/common/ssi/ecm/en/wgl03007usen/WGL03007USEN.PDF

Использование уязвимости SQL Injection

http://public.dhe.ibm.com/common/ssi/ecm/en/wgl03007usen/WGL03007USEN.PDF

Как «рождаются» уязвимости

http://info.veracode.com/rs/veracode/images/soss-v3.pdf

Как «рождаются» уязвимости (2)

• Более 40% паролей можно взломать из-за простоты• Статистика по паролям низкой стойкости у администраторов:

Данные основываются на анализе более 185 тысяч паролей пользователей (http://www.ptsecurity.ru/download/PT-Metrics-Passwords-2009.pdf).

Как «рождаются» уязвимости (3)

Распределение уязвимостей согласно классам WASC WSTCv2 (обобщенные результаты по данным Positive Technologies за 2009 год) http://ptsecurity.ru/analytics.asp

Какие цели преследует злоумышленник взламывая ваш сайт?

– Black SEO

– Распространение вредоносного кода

– Кража и подмена информации

– Проведение атаки типа DoS

– Использование сайта в качестве плацдарма для проведения атак на внутренние ресурсы компании

– Ради шутки

Пути компрометации данных держателей карт по данным VERIZON

http://www.verizonbusiness.com/resources/reports/rp_data-breach-investigations-report-2011_en_xg.pdf

Взломы ради шуток…

Статистика дефейсов zone-h.org (http://zone-h.org/stats/ymd)

Какие методы использует злоумышленник при взломе вашего сайта?

– Уязвимости «нулевого» дня

– Тестирование функций (fuzzing)

– Поиск уязвимостей на основе анализа исходного кода, используемого приложения на вашем сайте (включая его компоненты)

– Взлом вашего сайта путем проведения атаки на другие сайты, расположенные на shared-хостинге

Подходы по снижению угроз

Директивный подход (Directive)

• Software Development Life Cycle (SDLC), «бумажная безопасность», выстраивание высокоуровневых процессов

Детективный подход (Detective)

• Тестирование функций (black/white-box), фаззинг (fuzzing), статический/динамический/ручной анализ исходного кода

Профилактический подход (Preventive)

• Intrusion Detection/Prevention Systems (IDS/IPS), Web Application Firewall (WAF)

Корректирующий подход (Corrective)

• Ведение журналов событий, обработка инцидентов

Подход к восстановлению (Recovery)

• Резервное копирование, стратегия обеспечения непрерывности бизнес-процессов (BS25999)

Современный (детективный) подход обнаружения уязвимостей в веб-приложениях

А может WAF?

Что такое Web Application Firewall (WAF)

http://server/?id=6329&print=Y

АТАКА

WAF Webserverhttp://server/?id=5351

http://server/?id=8234

http://server/?id="><script>...

http://server/?id=1+union+select...

http://server/?id=/../../../etc/passwd

Нормализация данныхDecode HTML entities (e.g. &#99;, &quot;, &#xAA;)Escaped characters (e.g. \t, \001, \xAA, \uAABB)Null byte string termination...

Поиск сигнатуры /(sel)(ect.+fr)(om)/is/(uni)(on.+sel)(ect)/is...

«Ложка дегтя в бочке меда»

• За универсальность фильтров приходится расплачиваться ошибками первого и второго рода

• Не все фильтры одинаково полезны

• Ряд уязвимостей в веб-приложениях нельзя выявить сигнатурным путем

• Появление уязвимостей 0day!

Уязвимость уязвимости рознь

Неполный список администраторов такого приложения:

**admin, user**, r**t , …

Трудности обнаружения наиболее распространенных уязвимостей

• Внедрение операторов SQL

Огромное разнообразие СУБД (гибкость языка SQL)

• Межсайтовое выполнение сценариев

Помимо постоянного развития браузеров – Dom-based XSS

• Выход за каталог («выше»)

Local File Including, PHP wrappers, замена null-byte

Remote File Including, когда требуется «полный» URL

PHPIDS??!

Мое приложение сможет работать?

REGEXP:(?:%c0%ae\/)|(?:(?:\/|\\)(home|conf|usr|etc|proc|opt|s?bin|local|dev|tmp|kern|[br]oot|sys|system|windows|winnt|program|%[a-z_-]{3,}%)(?:\/|\\))|(?:(?:\/|\\)inetpub|localstart\.asp|boot\.ini)

ModSecurity??!• Универсальный способ проведения SQL-инъекций с обходом фильтров по

умолчанию

/*!sql-code*/ и /*!12345sql-code*/

• XSS over SQLi

/?id=-1/*!+union+select+'%3Cscri'+'pt%3Eal'+'ert(1)%3C/script%3E',2,3*/

• Выполнение команд на сервере over unserialize(), пример:

O:8:"Database":1:{s:8:"shutdown";a:2:{i:0;s:6:"system";i:1;s:2:"ls";}}cookie[sessid]=Tzo4OiJEYXRhYmFzZSI6MTp7czo4OiJzaHV0ZG93biI7YToyOntpOjA7czo2OiJzeXN0ZW0iO2

k6MTtzOjI6ImxzIjt9fQ0KDQo=

• HTTP Parameter Pollution, HTTP Parameter Fragmentation, замена null-byte, etc

Защита веб-приложений должна быть комплексной

•Требования к ИБ

•Архитектура

•Разработка (SDLC)

•Внедрение (CIS, etc)

•Поддержка

•Оценка защищенности

•Превентивный контроль

Эффективное использование WAF (Virtual Patching)

Эффективное использование WAF (Virtual Patching)

Система контроля защищенности (eq MaxPatrol)

Обнаружение уязвимости, решение по устранению, правила фильтрации для Web Application Firewall

Пример:

<Location /injectblind.asp>

SecRule ARGS:id "!^\d{1,8}$" "deny,log,status:403,msg:'just-in-time patching #1'"

</Location>

WAF (eq ModSecurity), закрытие вектора атаки до момента устранения

Что нас ждет впереди?

– Перерождение известных уязвимостей (фрагментированные SQL-инъекции, HTML5)

– Развитие комплексных и более сложных атак (одновременное использование уязвимостей кода и среды функционирования)

– Развитие направления уязвимостей типа «Race Condition»

– Массовые атаки на веб-приложения станут повседневной нормой

Спасибо за внимание!

devteev@ptsecurity.ruhttp://devteev.blogspot.com