15 августа в Днепре запустили электронный «Кабинет жителя». Это единый интерфейс для всех оцифрованных госуслуг, который работает на базе iGov.
Через «Кабинет» можно оформить субсидию, занять очередь в детский сад, зарегистрировать предпринимательскую деятельность и так далее, сообщает сайт горсовета.
Вскоре о сайте заговорили в другом ключе. Как рассказал на Facebook предприниматель Андрей Хорсев, у портала проблемы с безопасностью — если получить персонализированную ссылку пользователя, можно узнать его персональную информацию.
Как это работает и чем опасно
- На сайте «Кабинета» подключена безопасная авторизация через BankID или ЭЦП.
- Но услуги указываются на сайте iGov, куда пользователя отправляют после авторизации.
- Для подтверждения, iGov опирается на уникальную ссылку, в которую внесен идентификатор сессии. Ссылку можно получить из истории посещений браузера или адресной строки, нажав «Назад» при первом редиректе на iGov.
Персонализированная ссылка позволяет любому, кто ее получит, узнать следующее:
- ФИО;
- паспортные данные;
- ИНН;
- номер телефона.
Как рассказывает Хорсев, этих данных достаточно, чтобы оформить кредит на человека.
Это равносильно тому чтобы «ПриватБанк» выдавал ссылки по которым каждый мог заходить в ваш Privat24.
Позиция iGov
IT-директор iGov Владимир Белявцев считает, что проблема раздута. Он рассказал AIN.UA, что вина за утечку данных в таком случае может лежать только на пользователе:
Получить сессию может только тот, кому пользователь сам перешлет ссылку. Сама ссылка появляется в адресной строке на несколько секунд, а затем исчезает.
Это равноценно тому, чтобы отправлять кому-то ссылку на восстановление пароля в аккаунте. Кроме того, ссылка прекращает действие по истечению сессии — а она длится сутки.
По его словам, сразу после получения первых сообщений, команда проекта начала работу над вопросом. Решение будет готово в ближайшее время:
Вскоре идентификатор сессии будет передаваться иначе. Думаю, сегодня работу над этим уже завершат.
Мнение эксперта
С тем, что нынешний вариант полностью безопасен, не соглашается Егор Папышев, offensive security researcher:
Нынешний вариант, скажем так, не вполне соответствует лучшим практикам по кибербезопасности.
Нужно совсем убрать сессию из GET-параметра и передавать ее в cookie, добавить CSRF-токен. Сам сессионный токен должен быть достаточно большим и случайным.
Еще необходимо реализовать ACL при которой нельзя будет результативно осуществить брутфорс, лимитировать обращения к критичным API. Трафик, естественно, должен быть защищен TLS. Это минимальный набор необходимых мер.
Источник: ain.ua