alexey sintsov - where do the money lie
DESCRIPTION
International Security Conference "ZeroNights 2011" - http://www.zeronights.org/TRANSCRIPT
Где лежат деньги?
© 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
© 2002—2011, Digital Security