Пользователь Habr обнаружил исходники сервисов ФНС в публичном доступе

Антон Пискунов выяснил это после исследования приложения «Проверка чеков». Оно было разработано налоговой для получения и хранения кассовых чеков в электронном виде.

Благодаря 54-ФЗ «О применении ККТ» появился сервис ОФД, который генерирует и отправляет пользователям фискальные данные об интернет-покупках в виде чека. Эти же данные поступают также и в налоговую. Любой подобный чек всегда содержит несколько обязательных идентификаторов в натуральном виде и в виде QR-кода, который можно отсканировать с помощью приложения «Проверка чека».

На примере сервиса заказа еды от Яндекса пользователь Habr продемонстрировал, что в этом приложении появляется электронная копия чека с подробным и детальным списком покупок, имеющим различные атрибуты.

Пискунов заметил, что, начиная с обновления 2.15.0, в рамках которого добавили функциональность отображения чеков из сервиса «Мои Чеки Онлайн», после аутентификации в приложении «Проверка чека» через номер телефона, который также используется и в других популярных сервисах, например, в Яндекс.Еда, Самокат, Ситимобил и прочих, будут отображены все чеки пользователя по всем операциям в этих сервисах за «всё время». Антон Пискунов отметил, что до этого момента приложение оперировало только лишь теми данными, информация о которых поступала после сканирования QR-кодов самим пользователем.

Чеки пользователя по всем операциям в сервисах за «всё время»

Исследователю сразу же стало интересно, насколько хорошо такой огромный массив данных защищён и может ли предполагаемый злоумышленник получить несанкционированный доступ к нему. Для этого он поставил в разрыв между интернетом и приложением «Проверка чека» простой прокси, чтобы записать сетевую активность приложения.

Довольно быстро выяснилось, что конечная точка с данными находится по адресу irkkt-mobile.nalog.ru:8888, на котором используется простейшее приложение на NodeJS с применением фреймворка Express. Механизм аутентификации пользователя пускает к данным при верном указании заголовка «sessionId». Его значение представляет из себя токен, который генерируется на стороне сервера.

При этом обнаружилось, что при компрометации токена нет никакой возможности его сбросить для гарантии отсутствия у предполагаемого злоумышленника доступа данным. Кроме того, Пискунов обратил внимание, что в случае ошибок приложения диагностические данные отправляются на домен sentry.studiotg.ru, зарегистрированный на физическое лицо, который не связан ни с ФНС, ни с ФГУП ГНИИВЦ ФНС РФ. Дальнейшее исследование его привело к ссылкам на публичные репозитории, индексируемыми поиском Google уже более года.

При исследовании содержимого репозиториев, пользователь Habr обнаружил исходники сервисов ФНС. Исходя из общей картины, он предположил, что данные о покупках россиян, попадающие в ОФД путём информационного обмена фискальными данными ФНС, находятся под угрозой утечки.

Источник: kod.ru