{"id":14271,"url":"\/distributions\/14271\/click?bit=1&hash=51917511656265921c5b13ff3eb9d4e048e0aaeb67fc3977400bb43652cdbd32","title":"\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043d\u0430\u0442\u0438\u0432\u043e\u043a \u0438 \u0441\u043f\u0435\u0446\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 vc.ru \u2014 \u043d\u0430\u0439\u0434\u0438\u0441\u044c!","buttonText":"","imageUuid":""}

Пользователь «Хабра» нашёл в публичном доступе исходный код нескольких сервисов налоговой — он открыт около года Статьи редакции

Разработчик нашёл данные после проверки приложения «Проверка чеков» — с марта в нём можно отследить все свои покупки, сделанные в интернет-сервисах.

Исходный код некоторых сервисов Федеральной налоговой службы (ФНС) уже около года находится в открытом доступе, а данные пользователей о покупках — под возможной угрозой утечки. К таким выводам пришёл пользователь «Хабра» Антон Пискунов.

Разработчик обратил внимание на приложение «Проверка чеков». Оно позволяет получать и хранить кассовые чеки в электронном виде, проверять добросовестность продавца, отправлять на него жалобы и так далее, сообщали в ФНС.

С помощью приложения пользователь может отсканировать QR-код на электронном чеке, который присылает оператор фискальных данных (ОФД) после завершения заказа в каком-либо сервисе или магазине. Например, после заказа в «Яндекс.Еде» Пискунову пришёл чек от «Яндекс ОФД».

Антон Пискунов

После сканирования в приложении появляется электронная копия чека с полными данными о заказе. 4 марта 2021 года разработчики обновили «Проверку чеков», добавив функцию «отображение чеков из сервиса «“Мои Чеки Онлайн”».

Если пройти аутентификацию в приложении «Проверка чека», указав номер телефона, привязанный к сервисам вроде «Яндекс.Еды», «Такси», «Самоката» и другим, в разделе «Мои чеки» автоматически будут отображены все чеки по всем операциям в этих сервисах.

«Мои чеки» в приложении «Проверка чеков»

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

«Выяснилось, что эндпоинт с данными находится по адресу irkkt-mobile.nalog.ru:8888, на котором живёт простейшее приложение на NodeJS с применением фреймворка Express. Механизм аутентификации пользователя пускает тебя к данным, если ты верно указал заголовок “sessionId”, значение которого представляет из себя какой-то самопальный токен, генерирующийся на стороне сервера», — добавляет Пискунов.

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

Он также обратил внимание, что в случае крэша приложения оно отправляет диагностические данные в Sentry, располагающийся по адресу, не связанному, ни с ФНС, ни с ФГУП ГНИИВЦ ФНС России (разработчик «Проверка чеков» — vc.ru), а на домен sentry.studiotg.ru.

После этого он нашёл ссылки на публичные репозитории StudioTG на GitLab, которые находятся в индексе Google, по словам разработчика, более года. В репозиториях он нашёл папки, содержащие подстройки «lkio», «lkip», «lkul». Они относятся к одноимённым сервисам ФНС на домене nalog.ru — lkio.nalog.ru, lkip.nalog.ru и lkul.nalog.ru.

«Для сверки, что обнаруженные исходники действительно относятся к сервисам ФНС, проведена простая проверка наличия на боевом веб-сервере файла uppod-styles.txt, который не мог там оказаться по случайному совпадению», — пишет Пискунов.

Он сделал вывод, что фактический разработчик приложения «Проверка чеков» — StudioTG. На сайте «Студия ТГ», которая занимается ИТ-консалтингом и разработкой ПО, среди проектов указан «Личный кабинет налогоплательщика» от ФНС.

Также Пискунов считает, что по вине компании, исходный код сервисов налоговой около года находится в публичном доступе. Редакция vc.ru направила запрос и ожидает комментарии от ФНС и «Студии ТГ».

0
159 комментариев
Написать комментарий...
Ivan Pogoreloff

Я только не понял, а в чем опасность этой информации? Ну, кроме того, что, возможно, в коде есть какие-то баги, способные обеспечить доступ к серверам. Но автор не говорит ни о чем таком, т.е. заявление в общем-то из разряда "могут, а могут и не быть". Причём он же пишет, что сервер представляет собой "простейшее приложение на NodeJS с применением фреймворка Express", т.е. база кола не так уж велика и шанс обнаружения критических багов минимален.

Дальше, лично мне интересен момент с "простым перехватом" обмена между приложением и серверами. Серьёзно? Я, конечно, невысокого мнения о работниках госорганов, но уж HTTPS организовать по пошаговым руководствам они смогут. Наверное. А это значит, что для перехвата пользователь должен установить "левые" корневые сертификаты, что делается не в один клик.

Да, бесспорно, тут налицо халатность подрядчика и недоработки в самом приложении, вроде собственного механизма сессий и отсутствия certificate pinning (хотя и он обходится, что уж), но я не вижу, как компрометируются пользовательские данные.

Ответить
Развернуть ветку
Дарья Смолякова

Базюки с вашими чеками (по сервисам) продаются. А так ничего страшного. 

Ответить
Развернуть ветку
Sergei Timofeyev

Причём сам ОФД не имеет доступа к тому, что вы купили. Только ИНН, категория товара, сумма покупки, дата, оплата 

Ответить
Развернуть ветку
Дмитрий Тенетович

С 1 фераля, вроде как, всех уже окончательно обязали печатать в чеках и передавать в ОФД номенклатуру товара. Или вы о чем-то другом?

Ответить
Развернуть ветку
Sergei Timofeyev

Спасибо. Не знал.

Ответить
Развернуть ветку
Ivan Pogoreloff

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

Ответить
Развернуть ветку
156 комментариев
Раскрывать всегда