Alexey Sintsov - Where do the money lie

Preview:

DESCRIPTION

International Security Conference "ZeroNights 2011" - http://www.zeronights.org/

Citation preview

Где лежат деньги?

© 2002—2011 , Digital Security

Алексей Синцов

Руководитель Департамента Аудита ИБ

Digital Security

#whoami

© 2002—2011, Digital Security

Digital Security:

• Аудит/Тест на проникновение (ISO/PCI/PA–DSS и бла-бла-бла)

• Анализ защищенности ERP/SAP/ ДБО/Citrix/VMware

• Разработка «специализированного софта»

• Поиск ошибок и уязвимостей (DSecRG)

• Поиск путей эксплуатации

Журнал XAKEP:

• Когда-то: колонка «Обзор Эксплойтов»

• Статьи на тему разработки эксплойтов и тестов

на проникновение

Люблю поболтать:

• CONFidence 2011 Krakow

• Hack In The Box 2010 Amsterdam

• Chaos Construction 2011 СПБ

Где лежат деньги?

$$$

© 2002—2011, Digital Security

Где лежат деньги?

Где можно поднять немного РЕАЛЬНЫХ

денег ?

Клиенты:

Банковские Карты

Клиенты: ДБО ТСП: Шопы

Мерчанты

Банки: ДБО/АБС

Процессинги

$$$

© 2002—2011, Digital Security

Где лежат деньги?

Где можно поднять немного РЕАЛЬНЫХ

денег ?

Клиенты:

Банковские Карты

Клиенты: ДБО ТСП: Шопы

Мерчанты

Банки: ДБО/АБС

Процессинги

Цель - ПО Банка

© 2002—2011, Digital Security

• Мало информации

• Инциденты - не было/неизвестны/скрыты (нужное подчеркнуть)

• Ответственность Банка

• Будущие цели …

Где лежат деньги?

Как это работает

© 2002—2011, Digital Security

Где лежат деньги?

Ы

Операционная

Система

Ы

WEB-сервер

WEB-

приложение

Ы

Операционная

Система

СУБД

Ы

Операционная

Система

Ы

Браузер

ActiveX

СЕРВЕРНАЯ ЧАСТЬ КЛИЕНТСКАЯ

Ы

Операционная

Система

АБС/СУБД

. . .

© 2002—2011, Digital Security

Где лежат деньги?

Так где лежат деньги?

© 2002—2011, Digital Security

Где лежат деньги?

Так где лежат деньги?

© 2002—2011, Digital Security

Где лежат деньги?

АБС - счета клиентов и все самое ценное там

Процессинг - работа с картами

WEB SOFT RDBMS SOFT RDBMS

\\Деньги тут

Атака в лоб…. WEB

© 2002—2011, Digital Security

Где лежат деньги?

• В 90% отечественных ДБО есть/были XSS

• SQLi - то же бывают

^^^^^^^^^^^^^^^^^^^^^^^^^^^

…это и так все знают (Правда?)

Атака в лоб…. WEB

© 2002—2011, Digital Security

Где лежат деньги?

• В 90% отечественных ДБО есть/были XSS

• SQLi - то же бывают

^^^^^^^^^^^^^^^^^^^^^^^^^^^

…это и так все знают (Правда?)

• Ошибки авторизации

(местами их и вовсе не бывает)

• Раскрытие данных

• Ошибки АРХИТЕКТУРЫ

• И многое другое……..

Не слишком ли много для такого

критичного продукта?

Хотите примеров? Их есть у меня!

© 2002—2011, Digital Security

Где лежат деньги?

ДБО для физ. лиц (pre-auth):

> GET /online/usersPANList.jsp?uname=OAOKlient3 HTTP/1.1

> ….

> ….

< 200 OK HTTP/1.1

< ….

< PAN[0]=4234567890123456

< PAN[1]=4234567890123457

< ….

Получаем карты без аутентификации…

Кстати, PCI DSS НЕ работает тут…

Хотите примеров? Их есть у меня ещё!

© 2002—2011, Digital Security

Где лежат деньги?

ДБО для юр. лиц (post-auth):

GET /online/userinfo.jsp?uid=1478 HTTP/1.1

• Это было c CitiBank недавно….

GET /online/main_template.jsp?uid=1478 HTTP/1.1

• Доступ к ЧУЖИМ шаблонам страниц

• С возможностью ИЗМЕНЕНИЯ

• С уязвимостью типа stored XSS …

Инфицирование всех профелей

EPIC FAIL

Баги-багами, а деньги-то где?

© 2002—2011, Digital Security

Где лежат деньги?

Для примера c физ. лицами :

• CSRF для получения данных виртуальных карт CVV2 …

• HolderName = Virtual Card

• EXP. Date = + 1 месяц

// Если не вируталка, то все кроме CVV2

Profit!

Для примера с юр лицами:

- ЭЦП ставит клиент на своем ПК!

- Баги на сервере НЕ могут влиять на ключ клиента.

- Деньги не украсть?

P.S.

• Мы говорим о клиенте который защищен и не затроянен.

• Используем только дыры на ДБО.

XSS vs. Token

© 2002—2011, Digital Security

Где лежат деньги?

XSS

-> OOO “WikiLeaks”

-> 3.000 RUR

XSS vs. Token

© 2002—2011, Digital Security

Где лежат деньги?

Troll-in-the-Browser

-> OOO “WikiLeaks”

-> 3.000 RUR

XSS vs. Token

© 2002—2011, Digital Security

Где лежат деньги?

<- OOO “WikiLeaks”

<- 3.000 RUR

<- OOO “RogaKopyta”

<- 3.000 RUR

Bender-in-the-Browser

XSS vs. Token

© 2002—2011, Digital Security

Где лежат деньги?

<- OOO “WikiLeaks”

<- 3.000 RUR

<- OOO “RogaKopyta”

<- 3.000 RUR

Подписать

Bender-in-the-Browser

XSS vs. Token

© 2002—2011, Digital Security

Где лежат деньги?

<- OOO “WikiLeaks”

<- 3.000 RUR

-> OOO “RogaKopyta”

-> 3.000 RUR

-> Sign

Подписать

Bender-in-the-Browser

XSS vs. Token

© 2002—2011, Digital Security

Где лежат деньги?

<- OOO “WikiLeaks”

<- 3.000 RUR

<- Статус: подписано

-> OOO “RogaKopyta”---- >

-> 3.000 RUR ---- >

-> Sign ---- >

Отправить

Bender-in-the-Browser

XSS vs. Token

© 2002—2011, Digital Security

Где лежат деньги?

<- OOO “WikiLeaks”

<- 3.000 RUR

<- Статус: Выполнено

<- OOO “RogaKopyta”

<- 3.000 RUR

<- Статус: Выполнено

Bender-in-the-Browser

Решение 1: Уведомление по второму каналу

© 2002—2011, Digital Security

Где лежат деньги?

Troll-in-the-Browser

<- OOO “WikiLeaks”

<- 3.000 RUR

-> OOO “RogaKopyta”

-> 3.000 RUR

-> Подготовить

Подготовить!

1. SHA1(in + RND)

= hash

2. Send SMS

Решение 1: Уведомление по второму каналу

© 2002—2011, Digital Security

Где лежат деньги?

Troll-in-the-Browser

<- OOO “WikiLeaks”

<- 3.000 RUR

-> OOO “RogaKopyta”

-> 3.000 RUR

-> Подготовить

Отмена!

1. SHA1(in + RND)

= hash

2. Send SMS

3. Send hash for sign

-> OOO “RogaKopyta”

-> 3.000 RUR

-> OOO “RogaKopyta”

-> 3.000 RUR

-> hash

Решение 1: Уведомление по второму каналу

© 2002—2011, Digital Security

Где лежат деньги?

Troll-in-the-Browser

<- OOO “WikiLeaks”

<- 3.000 RUR

-> OOO “RogaKopyta”

-> 3.000 RUR

-> Подготовить

Отмена!

1. SHA1(in + RND)

= hash

2. Send SMS

3. Send hash for sign

+ OTP

-> OOO “RogaKopyta”

-> 3.000 RUR + OTP

Решение 2: Токен с дисплеем

© 2002—2011, Digital Security

Где лежат деньги?

Troll-in-the-Browser

<- OOO “WikiLeaks”

<- 3.000 RUR

-> OOO “RogaKopyta”

-> 3.000 RUR

-> Sign

Отмена!

^ ^ ^

| | |

SMS - OTP

© 2002—2011, Digital Security

Где лежат деньги?

SuperBankInfo:

Перевод:

3.000 руб

на счет:

400810000010010

Кое-что об АБС

© 2002—2011, Digital Security

Где лежат деньги?

Кому

Сколько

Сессия

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Кое-что об АБС

© 2002—2011, Digital Security

Где лежат деньги?

Кому

Сколько

Сессия

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Кое-что об АБС

© 2002—2011, Digital Security

Где лежат деньги?

Кому

Сколько

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Принято

Кому

Сколько

Id

Status:0

Кое-что об АБС

© 2002—2011, Digital Security

Где лежат деньги?

id

Подпись

Сессия

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Кому

Сколько

Id

Status:0

Кое-что об АБС

© 2002—2011, Digital Security

Где лежат деньги?

id

Подпись

Сессия

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Кому

Сколько

Id

Status:0

Кое-что об АБС

© 2002—2011, Digital Security

Где лежат деньги?

id

Подпись

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Кому

Сколько

Id

Status:1

UID.pub

Подписано

Кое-что об АБС

© 2002—2011, Digital Security

Где лежат деньги?

id

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Кому

Сколько

Id

Status:1

INSERT INTO ABS.docz …

FROM DBO.docz

WHERE status=1

Кому

Сколько

Id_ABS

Кое-что об АБС

© 2002—2011, Digital Security

Где лежат деньги?

id

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Кому

Сколько

Id

Status:2

Доставлено

Кому

Сколько

Id_ABS

Кому

Сколько

Id_ABS

Кое-что об АБС

© 2002—2011, Digital Security

Где лежат деньги?

id

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Кому

Сколько

Id

Status:3

Ваше желание

исполнено!

Атака с учетом архитектуры

© 2002—2011, Digital Security

Где лежат деньги?

• Обход проверки ЭЦП

• Не спасут Токены

• Не спасут Токены с дисплеем

• Уведомления - постфактум (DoS via SMS)

Атака

© 2002—2011, Digital Security

Где лежат деньги?

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Кому

Сколько

Сессия

Отсылка без ЭЦП…

© 2002—2011, Digital Security

Где лежат деньги?

Кому

Сколько

Сессия

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Жаль, что нет ключа у нас

© 2002—2011, Digital Security

Где лежат деньги?

Кому

Сколько

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Принято

Кому

Сколько

Id

Status:0

SQLi против АБС

© 2002—2011, Digital Security

Где лежат деньги?

Id; update …

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Кому

Сколько

Id

Status:1

‘; update … set status =1

INSERT INTO ABS.docz …

FROM DBO.docz

WHERE status=1

Троллим АБС

© 2002—2011, Digital Security

Где лежат деньги?

id

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Кому

Сколько

Id

Status:1

Кому

Сколько

Id_ABS

Платежка ушла

© 2002—2011, Digital Security

Где лежат деньги?

id

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Кому

Сколько

Id

Status:2

Доставлено

Кому

Сколько

Id_ABS

Кому

Сколько

Id_ABS

… yea.

© 2002—2011, Digital Security

Где лежат деньги?

id

Browser WEB SOFT RDBMS RDBMS

\\Деньги тут

Кому

Сколько

Id

Status:3

Ваше желание

исполнено!

Логика работы с Token’ом

© 2002—2011, Digital Security

Где лежат деньги?

<object … id=‘token’>

<script>

token.silent_mode=true;

var sign = token.Sing(data); //PIN из памяти…

</script>

• Подпись «на лету»

• Подпись с сохраненным PIN’ом

• Ввод PIN’а средствами JavaScript

Можно выполнить подпись на ДРУГОМ сайте и отправить

платежку, например, используя CSRF

P.S. Молчу уж про XSS…

Клиентское ПО

© 2002—2011, Digital Security

ActiveX

- SafeForScripting

- SafeForInit

- Домен

Где лежат деньги?

Клиентское ПО

© 2002—2011, Digital Security

ActiveX

- SafeForScripting

- SafeForInit

- Домен -------------> bankZ.ru <> bankckient.bankZ.ru

Где лежат деньги?

Old 1DAY -

© 2002—2011, Digital Security

Где лежат деньги?

Мы уведомили производителя ДВА года назад

Но на одном из доменов обновления нет…

New 0DAY -

© 2002—2011, Digital Security

Где лежат деньги?

Ошибки логики…

Свежая, но стоит ли раскрывать? --- #NOMOREFREEBUGS

New 0/1DAY -

© 2002—2011, Digital Security

Где лежат деньги?

Мне нечего сказать…

p.S Не только ActiveX

Выводы

© 2002—2011, Digital Security

Где лежат деньги?

• Ошибки в коде

• Ошибки в архитектуре

• Ошибки при внедрении

• Отсутствие применения существующих мер защиты (от DEP до HTTPOnly)

• Отсутствие процедур проверки ИБ

• Отсутствие процедуры распространения КРИТЧИНЫХ патчей!

• Банки НЕ информируются о наличиях проблем с ИБ в ПО!

Классические ошибки в коде + слабая архитектура + отсутствие защит = ДБО

Зато сертифицированные СКЗИ есть!

Выводы

© 2002—2011, Digital Security

Где лежат деньги?

Меры смягчения: СУБД

© 2002—2011, Digital Security

• Роли приложений

• Роли операторов

• Роли администраторов

• Шифрование паролей

• Хранение ЭЦП

• Хранимые процедуры

Где лежат деньги?

Меры смягчения: WEB

- HttpOnly

- Secure

- Уникальный токен запроса

- SSL

- Frame Busting

XSS позволяет подменять данные и код на странице

платежной системы!

CSRF позволяет выполнять действия от имени

пользователя в Системе!

© 2002—2011, Digital Security

https://www.owasp.org/index.php/

OWASP_Code_Review_Guide_Ta

ble_of_Contents

https://www.owasp.org/index.php/Clickjacking https://www.owasp.org/index.php/Cross-

Site_Request_Forgery_(CSRF)_Prevent

ion_Cheat_Sheet

Где лежат деньги?

Меры смягчения: ПО

- ASLR

- DEP

- /GS

- SEHOP

- Анализ кода

- Анализ логики

- Фаззинг

© 2002—2011, Digital Security

Где лежат деньги?

https://www.securecoding.cert.org/confluence/display/s

eccode/CERT+C+Secure+Coding+Standard

https://www.securecoding.cert.org/confluence/pages/vi

ewpage.action?pageId=637 http://www.microsoft.com/security/sdl/default.aspx

Процессы…

© 2002—2011, Digital Security

Где лежат деньги?

Рекомендую…

Заключение

© 2002—2011, Digital Security

Где лежат деньги?

• Большая часть ДБО - содержит уязвимости. (По результатам пен-тестов,

в 100% системах были XSS уязвимости)

• Что бы обойти защиту Token’а - достаточно XSS или CSRF

• Большую часть ошибок могут поэксплуатировать НЕ специалисты (CitiBank)

• При неправильной архитектуре - ЭЦП и вовсе ‘ФИКТИВНАЯ’ защита

• Уязвимое ПО выдается не только Банку, но и его клиентам.

• Вендоры НЕ информируют Банки о наличиях проблем с ИБ в ПО!

• Системы разрабатывалась без учета возможных угроз

+

• Проблемы ИБ внутри Банка (фильтрация, сегментация, патч-менеджмент)

• Ошибки при внедрении

Деньги лежат в …

• Большая часть ДБО - содержит уязвимости. (По результатам пен-тестов,

в 100% системах были XSS уязвимости)

• Что бы обойти защиту Token’а - достаточно XSS или CSRF

• Большую часть ошибок могут поэксплуатировать НЕ специалисты (CitiBank)

• При неправильной архитектуре - ЭЦП и вовсе ‘ФИКТИВНАЯ’ защита

• Уязвимое ПО выдается не только Банку, но и его клиентам.

• Вендоры НЕ информируют Банки о наличиях проблем с ИБ в ПО!

• Системы разрабатывалась без учета возможных угроз

+

• Проблемы ИБ внутри Банка (фильтрация, сегментация, патч-менеджмент)

• Ошибки при внедрении

Деньги лежат в …

Заключение

© 2002—2011, Digital Security

Где лежат деньги?

Заключение

© 2002—2011, Digital Security

Где лежат деньги?

Заключение

© 2002—2011, Digital Security

Где лежат деньги?

www.twitter.com/asintsov

a.sintsov@dsec.ru

© 2002—2011, Digital Security