Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемЗахар Лев
1 От ошибки до уязвимости… Алексей Синцов Digital Security twitter.com/asintsov
2 Программа…
3 Программа
4 Ошибка
5 Эксплуатация Уязвимость Ошибка
6 Кто ищет уязвимости ?
7 Такие разные… Переполнение буфера Межсайтовый скриптинг Инъекция SQL кода Отсутствие авторизации Ошибки логики Обход аутентификации И многое другое…..
8 Примеры. Идейные ошибки - 1 PepsiCo Coca-Cola Johnson & Johnson Lockheed Martin McDonnell-Douglas Sony Danon Mercedes-Benz Ford Motor Mazda Motor Corporation Heineken
9 Аутентификация
10 Атака
11 Эксплойт XOR EAX, EAX
12 Где ошибка? Производить аутентификацию на стороне клиента - НЕправильно!
13 Примеры. Идейные ошибки - 2 Условия для атаки: Домен Учетная запись имеет права Локального Администратора Kaspersky Administration Kit
14 Сканирование и атака
15 Что делать? Надо было предусмотреть возможностьSMBRelay! Надо было лучше документировать. Надо было предусмотреть возможностьSMBRelay! Надо было лучше документировать.
16 Примеры. Ошибки в коде - 1 Отечественная система Банк-Клиент ActiveX компонент для работы с ЭЦП:
17 Примеры. BoF Отечественная система Банк-Клиент char* vuln(char *bufferOut, char *fileName){ char *errorText="Ошибка при создании файла с именем %1."; while(!*errorText) { if(errorText=='%' && (errorText+1)
18 Примеры. BoF
19 Что делать? Проводить обзор кода. Использовать современный VS. Использовать флаги Защиты: /GS /SafeSEH Проводить обзор кода. Использовать современный VS. Использовать флаги Защиты: /GS /SafeSEH
20 Примеры. Ошибки в коде - 2 Lotus Domino Controller
21 Примеры. Ошибки в коде - 2 Аутентификация Пользователь -> {Login, Password, cookiefilename} -> Lotus Domino Controller Имя файла на сервере Lotus с базой учетных записей и с хэшами паролей © Patrik Karlsson and ZDI
22 Примеры. Ошибки в коде - 2 Аутентификация File file = new File(cookieFilename);... inputstreamreader = new InputStreamReader(new FileInputStream(file), "UTF8");... inputstreamreader.read(ac, 0, i);... String s7 = new String(ac);...
23 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);
24 Примеры. Ошибки в коде - 2 Обход аутентификации echo ^ > n:\domino2\zdi0day_.txt
25 Что делать? Проводить обзор кода.
26 Примеры. Исправление. Аутентификация File file = new File(./+cookieFilename);... inputstreamreader = new InputStreamReader(new FileInputStream(file), "UTF8");... inputstreamreader.read(ac, 0, i);... String s7 = new String(ac);...
27 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(..)
28 Новая атака Valid cookie2.xml.trash: There is a good and blah-blah-blah cookie.xml
29 Новая атака Valid cookie2.xml.trash:
30 Новая атака Valid cookie2.xml.trash:
31 Новая атака Valid cookie2.xml.trash:
32 Демонстрация 0day
33 Что делать? Проводить обзор кода. Автоматизированных средств не достаточно Проводить обзор кода. Автоматизированных средств не достаточно
34 PS.
35 WEB Не XSS, не SQLi… что-то новое хотим!
36 Google docs
37 Как это выглядит? Пользователь.
38 Как это выглядит? Создатель.
39 Как атаковать? Это же Exсel Засунем =A1+B1
40 Как атаковать? Засунем %08=A1+B1 Yaaahooo!!
41 Уязвимость?
43 Где ошибка? Проводить Фаззинг. Анализировать бизнес функции. Проводить Фаззинг. Анализировать бизнес функции.
44 Как делать это правильно ? Анализировать логику и функционал с точки зрения угроз UnitTests Анализировать код Автоматически В ручную, дополнительно, делать ревью кода Использовать технологии снижения рисков: C/C++ /GS /SafeSEH /DinamicBase WEB HTTPOnly Secure X-Frame-options Анализ типовых угроз и best practices. Анализ ролевой модели Анализ схем СУБД
45 Как ищут? Статический анализ Source code review regexp формальные методы руками… Reverse Engineering формальные методы сигнатуры руками… Динамический анализ Fuzzing (bin/web) + Типичные уязвимости для данного типа + Reverse Engineering Руками… Обзор архитектуры (логические ошибки) Ошибки в 3 rd party- в базе CVE
46 Автоматизация SQLMap Peach RATS Flawfinder Fuzzers Source Code Analyzers COMRaider Sulley Yasca
47 Разработка (с) OWASP
48 Спасибо за внимание
49 Пожалуйста, поставьте оценку моему докладу. Ваше мнение очень важно. Спасибо!
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.