Исследователи Уральского центра систем безопасности провели оценку защищенности сайтов банков в Екатеринбурге.
В 2015-2016 годах почти три десятка крупных банков России стали жертвами хакерских атак. Чтобы проверить защищенность банков, мы провели независимое исследование.
В область исследования попали 56 банков, представленных в Екатеринбурге. Анализ защищенности проводился только для официальных банковских сайтов (сайтов, содержащих информацию о банковских продуктах, тарифах, услугах, и пр.). Интернет-банки из области исследования мы исключили, т.к. их безопасности и так уделяется повышенное внимание, а компрометация официального сайта банка, если физически он находится во внутренней сети банка, может привести к не менее негативным последствиям.
Методика
Исследование заключалось в выявлении уязвимостей без осуществления несанкционированного доступа к ресурсам банков и нарушения работы исследуемых сайтов.
В первую очередь каждый из сайтов был проверен на наличие стандартных уязвимостей:
Далее несколько самых интересных функций каждого из сайтов проверялись на наличии наиболее тривиальных уязвимостей: SQL- и XPATH-инъекций и XSS.
Результаты
В ходе исследования мы обнаружили ряд стандартных SQL-инъекций и XSS, несмотря на то, что современные технологии в виде шаблонизаторов и ORM не только упрощают процесс разработки, но и при правильном использовании в качестве приятного бонуса позволяют обезопасить приложение от данных уязвимостей.
Впрочем, для доступа к БД не всегда нужно было пользоваться SQL-инъекциями. Иногда бэкапы БД довольно удобно были расположены в корневом каталоге сайта по типу:
www.verynicebank.ru/dump.sql
На одном из сайтов была обнаружена уязвимость Heartbleed в OpenSSL, позволяющая несанкционированно читать оперативную память веб-сервера. При эксплуатации этой уязвимости на невысоконагруженных серверах довольно быстро удается получить приватный ключ шифрования веб-сервера, что позволяет злоумышленнику расшифровывать трафик TLS/SSL-соединений с сайтом.
Также на ряде сайтов использовалось ПО, выпущенное 10 лет назад. Информация об уязвимостях данного ПО появилась в открытых источниках минимум в 2012 году.
На исследованных сайтах было обнаружено огромное количество технологического мусора, оставшегося после разработки. В одном случае с сайта забыли убрать не банальный phpinfo, а служебный каталог системы контроля версий Mercurial. Данный каталог содержит все версии отслеживаемых файлов в специальном формате. Чтобы посмотреть список файлов достаточно загрузить www.verynicebank.ru/.hg/dirstate:
Само содержимое файлов в таком случае будет доступно по ссылкам вида www.verynicebank.ru/.hg/store/test1.txt.i. Заметьте, что для загрузки файлов с сервера не нужен включенный листинг директорий.
На одном веб-сервере в открытом доступе лежал файл с аутентификационной информацией:
А в одном банке попытались ограничить доступ к панели администратора по IP-адресу, довольно успешно: доступ действительно получить не удастся, но при попытках зайти в панель с недоверенного IP-адреса CMS падает с ошибкой (и полной трассировкой вызовов):
Статистика
В результате мы обнаружили более 60 уязвимостей на 41 банковском сайте (напомню, что всего рассматривались 56 сайтов). То есть почти три четверти из анализируемых банков имели какие-либо недостатки в системе защиты своих сайтов. Информацию о найденных уязвимостей в числах можно получить из картинки ниже.
SQL-инъекции |
3 |
XPATH-инъекции |
1 |
Возможность загрузки на веб-сервер произвольных файлов сценариев |
1 |
Возможность управления некоторыми файлами на сервере (например, изменение файлов установки банк-клиентов) |
1 |
Доступ к резервным копиям БД |
1 |
Heartbleed |
1 |
XSS |
6 |
Уязвимость DNS-серверов к запросам на передачу доменной зоны |
6 |
Доступ к служебным файлам с чувствительной информацией (например, файлам системы контроля версий) |
12 |
Разглашение информации об ошибках |
5 |
Доступ к служебным файлам с некритичной информацией (например, phpinfo) |
16 |
Открытое перенаправление |
8 |
Другое |
2 |
В качестве заключения
По результатам исследования мы проинформировали все банки о найденных на их сайтах уязвимостях. Однако обратной связи не было получено ни от одного банка, за исключением тех случаев, когда уведомления передавались лично.
На момент публикации статьи полностью устранили уязвимости 4 банка, помимо них частично устранили уязвимости 5 банков. С некоторыми банками продолжается вестись работа по устранению уязвимостей.
Живой, мертвый или в суперпозиции? Узнайте в нашем канале