22
Анализ уязвимостей: Тестирование на проникновение Тимур Ханнанов Руководитель направления по информационной безопасности

Анализ уязвимостей: Тестирование на проникновение

  • Upload
    major

  • View
    77

  • Download
    2

Embed Size (px)

DESCRIPTION

Анализ уязвимостей: Тестирование на проникновение. Тимур Ханнанов Руководитель направления по информационной безопасности. In theory there is very little difference between theory and practice ; in practice there's a hell of a lot of difference. - PowerPoint PPT Presentation

Citation preview

Page 1: Анализ уязвимостей:  Тестирование на проникновение

Анализ уязвимостей: Тестирование на проникновение

Тимур ХаннановРуководитель направления по информационной безопасности

Page 2: Анализ уязвимостей:  Тестирование на проникновение

In theory there is very little difference between

theory and practice; in practice there's a hell of a

lot of difference

Page 3: Анализ уязвимостей:  Тестирование на проникновение

Softline. Сеть представительств по всему миру

23страны

65городов

По oценке CNews Analytics, компания Softline вошла в 4-ку крупнейших IT-компаний по направлению «Информационная безопасность» согласно финансовых итогов 2012 года.

Page 4: Анализ уязвимостей:  Тестирование на проникновение

О SolidLab

SolidLab – команда профессионалов, специализирующаяся

на аудите безопасности приложений, тестировании на

проникновение, а также предлагающая полный комплекс

услуг по аудиту безопасности

кода.

Основу команды составляет

группа выпускников ВМК МГУ

имени М.В. Ломоносова, а также

выпускники кафедры

информационной безопасности

МГТУ им. Н.Э. Баумана.

Page 5: Анализ уязвимостей:  Тестирование на проникновение

SolidLab входит в top 15 лучших команд в международных соревнованиях по ИБ (CTF events), например: 6th place at the final of ruCTF 2012; 8th place at the qualification of ruCTF 2012; 5th place at the PHD CTF 2011; 1st place at the qualification of Swiss Cyber

Storm Car Game Challenge 2011; 4th place at the final of ruCTF 2011; 1st place at the qualification of ruCTF 2011; 2nd place at the Deutsche Post Security Cup 2010; 3rd place at the RusCrypto CTF 2010; 4th place at the qualification ruCTF 2010.

Также специалисты компании принимают участие в основных конференциях по информационной безопасности: DefCon (USA), Confidence (Poland), OWASP AppSec (Europe), ZeroNights (Russia), Positive Hack Days (Russia). Опубликовано более 20 научных работ, большая часть из которых за последние три года.

О SolidLab

Page 6: Анализ уязвимостей:  Тестирование на проникновение

От чего защищаемся?

НенаправленныеНаправленные

Внутренние Внешние

Page 7: Анализ уязвимостей:  Тестирование на проникновение

Уровни защиты клиентов

Security Level клиента

Описание

Уровень 0. Незащищенный Незащищенный

Уровень 1. Защита от ненаправленных атак

Система защищена от простых ненаправленных атак. Угрозы, как правило, исходят от вирусов, червей и хакеров-любителей.

Уровень 2. Защита от направленных атак.

Система защищена от направленных атак. Угрозы, как правило, исходят от квалифицированных хакеров, которые имеют определенную мотивацию для атаки на конкретную систему.

Уровень 3. Защита от направленных атак + социальной инженерии.

Система защищена от направленных атак + социальной инженерии.

Page 8: Анализ уязвимостей:  Тестирование на проникновение

Наша модель сервисовСервис Security Level

клиентаОписание сервиса

SL SecurityBaseline

Уровень 0 Уровень 1

Цель: определить security baseline (базовый уровень ИБ). Сканирование с помощью инструментов, ручной анализ результатов.

SL SecurityAssessment

Уровни 2,3 Цель: найти как можно больше уязвимостей. Анализ исходного кода/анализ методом «черного ящика», комплексный технический аудит, эксплуатация уязвимостей и т.п.

SL Penetration testing

Уровни 2,3 Цель: достижение поставленной задачи.Проект заканчивается как только поставленная задача будет достигнута (например, получение административных прав или нарушение работоспособности сервиса).

SL Code Analysis

Для всех уровней

Цель: поиск уязвимостей в исходном коде.

SL Compliance

Для всех уровней

Цель: выполнение требований какого-либо стандарта (например, PCI DSS).

Page 9: Анализ уязвимостей:  Тестирование на проникновение

Области компетенций

Анализ защищенности:

ДБО, и других платежных приложений

корпоративных и веб-приложений

мобильных решений

беспроводных сетей

Тестирование на проникновение (в том числе в

соответствии с требованиями PCI DSS)

Комплексные услуги по деобфускации, декомпиляции

и анализу кода.

Page 10: Анализ уязвимостей:  Тестирование на проникновение

Наши преимущества

Используем наш уникальный подход к тестированию.

Используем обширную документированную методологию, основанную на структурированных процедурах, ручной проверке, проверке на новые уязвимости.

Используем большое сочетание коммерческих и собственно разработанных инструментов для оценки уровня безопасности.

Используем большую базу вариантов ручных тестов.

Используем разнообразные креативные тесты.

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

Page 11: Анализ уязвимостей:  Тестирование на проникновение

Методика тестирования

Формальных методов не существует!Но существуют рекомендации Обычно включает в себя 7 этапов

Определение границ тестирования Сбор информации Обнаружение уязвимостей Анализ найденного и планирование Проведение атак Анализ результатов и отчёты «Уборка»

ПОВТОР

Page 12: Анализ уязвимостей:  Тестирование на проникновение

Мифы и реальность

Автоматические сканеры безопасности помогут определить реальный уровень защищенности…

Пример - сканеры Web-приложений Общего назначения:

W3AF, Skipfish, Grendel-Scan, Arachni, Wapiti, Secubat

Специализированные: sqlMap, hexjector, SQLiX

Коммерческие: IBM AppScan, Acunetix, HP WebInspect

Page 13: Анализ уязвимостей:  Тестирование на проникновение

Реальность*

Лишь 29% уязвимостей XSS и 46% уязвимостей SQLi были обнаружены автоматическими сканерами

Из 615 обнаруженных уязвимостей контроля доступа (insufficient authorization) при автоматическом сканировании обнаружено всего 14, т.е. около 3%

* По статистике Web Application Security Consortium за 2008 год (самая последняя доступная редакция)

Page 14: Анализ уязвимостей:  Тестирование на проникновение

Уязвимости авторизации - пример

Система онлайн-обучения, студенты могут изучать различные курсы под руководством инструкторов

Роли: «администратор», «инструктор» или «студент»

Уязвимости: Студент может удалить любой курс,

который никому не назначен Инструктор может назначить курс

любому студенту, а не только своему Инструктор может аннулировать

назначение студента инструктору

Page 15: Анализ уязвимостей:  Тестирование на проникновение

Accorute – автоматическое обнаружение уязвимостей авторизации

Разработка команды SolidLab

На вход: роли и их привилегии

На выходе: перечень возможных неавторизованных действий между ролями

С помощью Accorute автоматически найдены ранее неизвестные уязвимости в WordPress, Easy JSP Forum, PyForum

Page 16: Анализ уязвимостей:  Тестирование на проникновение

Демо №1

Реальный пример: Есть «озабоченный клиент» Его сайт регулярно

попадает в чёрные списки поисковых систем за WEB Malware

Чистка и восстановление из резервных копий не помогает – вскоре сайт снова заражён

Автоматическое сканирование ничего не показывает

Как искать уязвимости, если автоматические сканеры не помогают?

Page 17: Анализ уязвимостей:  Тестирование на проникновение

Демо №1 1 У клиента видим сайт

на «самописной» CMS 2. Составляем карту

ролей и карту сайта использования для каждой роли

3. Получаем: Интерфейс

администратора sitename/ajax.php не виден в пользовательской части, но при обращении напрямую доступ разрешён

POST /ajax.php HTTP/1.1Host: sitename.ruContent-Length: 80Content-Type: application/x-www-form-urlencodedX-Requested-With: XMLHttpRequestfio=adm&login=adm1&psw=adm&ok_block=off&comment=&method=add_admin&modul=security

Пробуем:

Результат: кто угодно (любой пользователь) может создать себе Администратора

Page 18: Анализ уязвимостей:  Тестирование на проникновение

Демо №2

Не столь озабоченный клиент Экспресс-анализ системы ДБО Сайт тесно интегрирован с СКЗИ,

существенные действия подписываются ЭП

Браузер

Крипто-клиент

Крипто-

сервер

WEB -приложение

Шифрованный протокол

Простой HTTP

Page 19: Анализ уязвимостей:  Тестирование на проникновение

Демо №2

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

Результат – любой пользователь может поменять пароль любому другому и/или повысить себе привилегии, изменив роль на администратора

Но залогиниться нельзя, т.к. сервер проверяет ЭП

POST http://192.168.0.1/dbo/user_rights HTTP/1.1Host: 192.168.0.1User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0Keep-Alive: 115Proxy-Connection: keep-aliveContent-Length: 142 Content=Other&sess=AAAA0W6BBBBBBBB&Action=Save&UID=666&Pass=qwerty&ConfPass=qwerty&Role=1&Name=User1&Fname=User1&Last=12345

Page 20: Анализ уязвимостей:  Тестирование на проникновение

Демо №2 Шаг 2 – создаём диссектор шифрованного протокола, чтобы

видеть содержимое криптотуннеля Анализируем, какие элементы GET и POST запросов

подписываются ЭП Обнаруживаем, что если в одном TCP-соединении отправить

подряд два запроса, то подписывается только первый При этом на сервере успешно выполняется проверка ЭП первого

запроса, а второй проходит через крипто-сервер без изменений

Браузер

Крипто-клиент

Крипто-

сервер

WEB -приложение

Подписан только первый запрос в сессии

Проходят все, но проверка ЭП

только в первом

Page 21: Анализ уязвимостей:  Тестирование на проникновение

Тест-драйв тестирования на проникновение

Опросник Коммерческое предложение Договор

Этапы:Первый этап. SL Penetration testing или Baseline. Если мы достигнем цели, то переходим ко второму этапу.

Второй этап. SL Security Assessment.

Page 22: Анализ уязвимостей:  Тестирование на проникновение

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

Вопросы, пожалуйста ;)

Тимур ХаннановРуководитель направления по информационной безопасности[email protected]