От ошибки до уязвимости… Алексей Синцов Digital Security twitter.com/asintsov.

Презентация:



Advertisements
Похожие презентации
Название доклада Иван Иванов Иванов-софт twitter.com/ivanivanov.
Advertisements

Проблемы и уязвимости в системах ДБО © , Digital Security Digital Security.
Особенности проведения тестов на проникновение в организациях банковской сферы © , Digital Security Илья Медведовский, к.т.н. Директор Digital.
Клиент банка под атакой © 2009, Digital Security.
Защита баз данных. Повестка дня Реалии сегодняшнего дня … Источники атак Уязвимости СУБД Что делать ? Кто поможет ? DbProtect – новое предлагаемое решение.
Безопасность в ASP.NET приложениях ДокладчикMicrosoft.
Тестирование безопасности или Security and Access Control Testing.
SQL-injections for dummies. Что это? Способ несанкционированного доступа к данным, хранящимся в БД, основанный на внедрении в запрос произвольного SQL-
Тест на проникновение в соответствии с PCI DSS Илья Медведовский Digital Security Директор, к.т.н.
Open InfoSec Days Томск, 2011 Глава 1. Атаки на веб-приложения и методы защиты.
Open InfoSec Days Томск, 2011 Глава 1. Атаки на веб-приложения и методы защиты Занятие 6. Автоматизация процесса поиска уязвимостей и их последующей эксплуатации.
Проблемы обеспечения безопасности приложений Тема 20.
Проблемы обеспечения безопасности приложений Тема 20.
О безопасности сайта думают в последнюю очередь! индивидуальные разработчики думают о безопасности сайтов в самую последнюю очередь клиенты не готовы платить.
Безопасность интернет-проекта Основные угрозы Инструменты безопасности в платформе.
Тема 4 Организация доступа к ресурсам портала 1. Базовая аутентификация пользователей 2. Автоматическая регистрация и аутентификация пользователей 3. Аутентификация.
Рассматриваемые темы Подсистема безопасности сервера приложений Конфигурация безопасности в EJB Сервисы авторизации и аутентификации в Java 2-1.
Получение контроля над объектом атаки Местонахождение атакующего В разных сегментах с объектом атаки Используемые уязвимости Цель Ошибки реализации Степень.
Получение контроля над объектом атаки Местонахождение атакующего В разных сегментах с объектом атаки Используемые уязвимости Цель Ошибки реализации Степень.
Тамбовский государственный университет имени Г.Р. Державина Институт математики, физики и информатики Кафедра информатики и информационных технологий Иванова.
Транксрипт:

От ошибки до уязвимости… Алексей Синцов Digital Security twitter.com/asintsov

Программа…

Программа

Ошибка

Эксплуатация Уязвимость Ошибка

Кто ищет уязвимости ?

Такие разные… Переполнение буфера Межсайтовый скриптинг Инъекция SQL кода Отсутствие авторизации Ошибки логики Обход аутентификации И многое другое…..

Примеры. Идейные ошибки - 1 PepsiCo Coca-Cola Johnson & Johnson Lockheed Martin McDonnell-Douglas Sony Danon Mercedes-Benz Ford Motor Mazda Motor Corporation Heineken

Аутентификация

Атака

Эксплойт XOR EAX, EAX

Где ошибка? Производить аутентификацию на стороне клиента - НЕправильно!

Примеры. Идейные ошибки - 2 Условия для атаки: Домен Учетная запись имеет права Локального Администратора Kaspersky Administration Kit

Сканирование и атака

Что делать? Надо было предусмотреть возможностьSMBRelay! Надо было лучше документировать. Надо было предусмотреть возможностьSMBRelay! Надо было лучше документировать.

Примеры. Ошибки в коде - 1 Отечественная система Банк-Клиент ActiveX компонент для работы с ЭЦП:

Примеры. BoF Отечественная система Банк-Клиент char* vuln(char *bufferOut, char *fileName){ char *errorText="Ошибка при создании файла с именем %1."; while(!*errorText) { if(errorText=='%' && (errorText+1)

Примеры. BoF

Что делать? Проводить обзор кода. Использовать современный VS. Использовать флаги Защиты: /GS /SafeSEH Проводить обзор кода. Использовать современный VS. Использовать флаги Защиты: /GS /SafeSEH

Примеры. Ошибки в коде - 2 Lotus Domino Controller

Примеры. Ошибки в коде - 2 Аутентификация Пользователь -> {Login, Password, cookiefilename} -> Lotus Domino Controller Имя файла на сервере Lotus с базой учетных записей и с хэшами паролей © Patrik Karlsson and ZDI

Примеры. Ошибки в коде - 2 Аутентификация File file = new File(cookieFilename);... inputstreamreader = new InputStreamReader(new FileInputStream(file), "UTF8");... inputstreamreader.read(ac, 0, i);... String s7 = new String(ac);...

do { if((j = s7.indexOf("", j); if(k == -1) break; String s2 = getStringToken(s7, "user=\"", "\"", j, k);... String s3 = getStringToken(s7, "cookie=\"", "\"", j, k);... String s4 = getStringToken(s7, "address=\"", "\"", j, k);... if(usr.equalsIgnoreCase(s2) && pwd.equalsIgnoreCase(s3) &&\ appletUserAddress.equalsIgnoreCase(s4)) { flag = true; break; }... } while(true);

Примеры. Ошибки в коде - 2 Обход аутентификации echo ^ > n:\domino2\zdi0day_.txt

Что делать? Проводить обзор кода.

Примеры. Исправление. Аутентификация File file = new File(./+cookieFilename);... inputstreamreader = new InputStreamReader(new FileInputStream(file), "UTF8");... inputstreamreader.read(ac, 0, i);... String s7 = new String(ac);...

do { if((j = s7.indexOf("", j); if(k == -1) break; String s2 = getStringToken(s7, "user=\"", "\"", j, k);... String s3 = getStringToken(s7, "cookie=\"", "\"", j, k);... String s4 = getStringToken(s7, "address=\"", "\"", j, k);... if(usr.equalsIgnoreCase(s2) && pwd.equalsIgnoreCase(s3) &&\ appletUserAddress.equalsIgnoreCase(s4)) { flag = true; break; }... } while(true); s7.substring(..)

Новая атака Valid cookie2.xml.trash: There is a good and blah-blah-blah cookie.xml

Новая атака Valid cookie2.xml.trash:

Новая атака Valid cookie2.xml.trash:

Новая атака Valid cookie2.xml.trash:

Демонстрация 0day

Что делать? Проводить обзор кода. Автоматизированных средств не достаточно Проводить обзор кода. Автоматизированных средств не достаточно

PS.

WEB Не XSS, не SQLi… что-то новое хотим!

Google docs

Как это выглядит? Пользователь.

Как это выглядит? Создатель.

Как атаковать? Это же Exсel Засунем =A1+B1

Как атаковать? Засунем %08=A1+B1 Yaaahooo!!

Уязвимость?

Где ошибка? Проводить Фаззинг. Анализировать бизнес функции. Проводить Фаззинг. Анализировать бизнес функции.

Как делать это правильно ? Анализировать логику и функционал с точки зрения угроз UnitTests Анализировать код Автоматически В ручную, дополнительно, делать ревью кода Использовать технологии снижения рисков: C/C++ /GS /SafeSEH /DinamicBase WEB HTTPOnly Secure X-Frame-options Анализ типовых угроз и best practices. Анализ ролевой модели Анализ схем СУБД

Как ищут? Статический анализ Source code review regexp формальные методы руками… Reverse Engineering формальные методы сигнатуры руками… Динамический анализ Fuzzing (bin/web) + Типичные уязвимости для данного типа + Reverse Engineering Руками… Обзор архитектуры (логические ошибки) Ошибки в 3 rd party- в базе CVE

Автоматизация SQLMap Peach RATS Flawfinder Fuzzers Source Code Analyzers COMRaider Sulley Yasca

Разработка (с) OWASP

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

Пожалуйста, поставьте оценку моему докладу. Ваше мнение очень важно. Спасибо!