Upload
rit2011
View
1.239
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
Безопасность веб-приложений сегодня
Дмитрий Евтеев (Позитив Текнолоджиз)
По данным компании 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. c, ", ª)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»
– Массовые атаки на веб-приложения станут повседневной нормой
Спасибо за внимание!
[email protected]://devteev.blogspot.com