Your SlideShare is downloading. ×
0
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Alexei Sintsov - "Between error and vulerability - one step"

490

Published on

Published in: Art & Photos
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
490
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. От ошибки до уязвимости… Алексей Синцов Digital Security twitter.com/asintsov
  2. Программа… http://www.flickr.com/photos/lofink/4501610335/
  3. Программа http://www.flickr.com/photos/lofink/4501610335/
  4. Ошибка http://www.flickr.com/photos/lofink/4501610335/
  5. Эксплуатация Уязвимость Ошибка http://www.flickr.com/photos/lofink/4501610335/
  6. Кто ищет уязвимости ? http://www.flickr.com/photos/rufo_83/3154516530/
  7. Такие разные…• Переполнение буфера• Межсайтовый скриптинг• Инъекция SQL кода• Отсутствие авторизации• Ошибки логики• Обход аутентификации• И многое другое…..
  8. Примеры. Идейные ошибки - 1• PepsiCo • Danon• Coca-Cola • Mercedes-Benz• Johnson & Johnson • Ford Motor• Lockheed Martin • Mazda Motor Corporation• McDonnell-Douglas • Heineken• Sony
  9. Аутентификация
  10. Атака
  11. ЭксплойтXOR EAX, EAX
  12. Где ошибка?Производить аутентификациюна сторонеклиента -НЕправильно!
  13. Примеры. Идейные ошибки - 2 Kaspersky Administration KitУсловия для атаки:• Домен• Учетная запись имеет права Локального Администратора
  14. Сканирование и атака
  15. Что делать?Надо былопредусмотретьвозможностьSMBRelay!Надо было лучшедокументировать.
  16. Примеры. Ошибки в коде - 1 Отечественная система Банк-КлиентActiveX компонент для работы с ЭЦП:
  17. Примеры. BoF Отечественная система Банк-Клиентchar* vuln(char *bufferOut, char *fileName){ char *errorText="Ошибка при создании файла с именем ‘%1’."; while(!*errorText) { if(errorText==% && (errorText+1)<9) // замена %1 { strcpy(bufferOut,fileName); //errorText rewrite! bufferOut+=strlen(fileName); //увеличиваем указатель *errorText++; } *bufferOut++=*errorText++; //Stack overflow (errorText<bufferOut) } return *bufferOut;}
  18. Примеры. BoF
  19. Что делать?Проводить обзор кода.Использоватьсовременный 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("<user ", j)) <= 0) break; int k = 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 ^ <user name=“admin" cookie=“dsecrg" address=“10.10.0.1"^> > n:domino2zdi0day_.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("<user ", j)) <= 0) break; int k = s7.indexOf(">", j); s7.substring(..) 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);
  28. Новая атака cookie.xml<?xml version="1.0" encoding="UTF-8"?><user name=“admin" cookie=“dsecrg" Validaddress=“10.10.0.1">cookie2.xml.trash:There is a good <user xml file!andname=“admin”willbefoundas cookie=“dsecrg” andaddress=“10.10.0.1”hooray!>and blah-blah-blah
  29. Новая атака cookie.xml<?xml version="1.0" encoding="UTF-8"?><user name=“admin" cookie=“dsecrg" Validaddress=“10.10.0.1">cookie2.xml.trash:There is a good <user xml file!andname=“admin”willbefoundas cookie=“dsecrg” andaddress=“10.10.0.1”hooray!>and blah-blah-blah
  30. Новая атака cookie.xml<?xml version="1.0" encoding="UTF-8"?><user name=“admin" cookie=“dsecrg" Validaddress=“10.10.0.1">cookie2.xml.trash:There is a good <user xml file!andname=“admin”willbefoundas cookie=“dsecrg” andaddress=“10.10.0.1”hooray!>and blah-blah-blah
  31. Новая атака cookie.xml<?xml version="1.0" encoding="UTF-8"?><user name=“admin" cookie=“dsecrg" Validaddress=“10.10.0.1">cookie2.xml.trash:There is a good <user xml file!andname=“admin”willbefoundas cookie=“dsecrg” andaddress=“10.10.0.1”hooray! Valid>and blah-blah-blah
  32. Демонстрация 0day
  33. Что делать?Проводить обзор кода.Автоматизированныхсредств не достаточно
  34. PS.
  35. WEBНе XSS, не SQLi… что-то новое хотим!
  36. Google docs
  37. Как это выглядит? Пользователь.
  38. Как это выглядит? Создатель.
  39. Как атаковать?Это же Exсel Засунем =A1+B1
  40. Как атаковать?Засунем %08=A1+B1Yaaahooo!!
  41. Уязвимость?
  42. Уязвимость?
  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 • Руками…Обзор архитектуры (логические ошибки)Ошибки в 3rd party- в базе CVE
  46. Автоматизация Fuzzers Source Code AnalyzersSQLMap RATS Peach FlawfinderCOMRaider Yasca Sulley
  47. Разработка (с) OWASP
  48. Спасибо за внимание www.twitter.com/asintsov a.sintsov@dsec.ru
  49. Пожалуйста, поставьте оценку моему докладу.Ваше мнение очень важно. Спасибо!

×