{"id":14270,"url":"\/distributions\/14270\/click?bit=1&hash=a51bb85a950ab21cdf691932d23b81e76bd428323f3fda8d1e62b0843a9e5699","title":"\u041b\u044b\u0436\u0438, \u043c\u0443\u0437\u044b\u043a\u0430 \u0438 \u0410\u043b\u044c\u0444\u0430-\u0411\u0430\u043d\u043a \u2014 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u0440\u0435","buttonText":"\u041d\u0430 \u043a\u0430\u043a\u043e\u0439?","imageUuid":"f84aced9-2f9d-5a50-9157-8e37d6ce1060"}

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

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

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

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

С помощью приложения пользователь может отсканировать 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 комментариев
Написать комментарий...
Вася Пражкин
 данные пользователей о покупках — под угрозой утечки

Давайте отделять мух от котлет - открытые исходники не имеют отношения к данным. Данные ФНС не открыты. Антону Пискунову надо бы выпить таблеток и успокоиться.

Ответить
Развернуть ветку
Vasiliy Gorin

Ага, только вот в оригинальной статье на хабре ещё было сказано, что вместе с исходниками лежал .env для прода(!), в котором были прописаны доступы к базам данных, и т.д.

Редакторы VC этот факт опустили, видимо по технической безграмотности и непониманию, что именно он - критически важный в этой новости.

Не говоря уже о несбрасываемых токенах доступа к приватной информации и об отправке sentry на не принадлежащий налоговой домен.

Ответить
Развернуть ветку
Миша Шарапов
>  .env для прода(!), в котором были прописаны доступы к базам данных, и т.д.

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

Ответить
Развернуть ветку
Вася Пражкин

Ну обычно backend сервера все же надежно прикрыты файрволами снаружи. Так что толку от этих credentials стороннему человеку немного.

Ответить
Развернуть ветку
Vasiliy Gorin

Ну "обычно" и .env в проде не используют. И тем более не выкладывают его в паблик. Но мы ведь наблюдаем необычный кейс, не так ли? :)

Ответить
Развернуть ветку
Вася Пражкин

Надо признать, что нет достоверной информации, что именно этот код работает в ФНС без каких-либо изменений. .env вполне может содержать данные разработчика или неизвестного тестового сервера. Антон Пискунов тут недоработал, оставляем ему на вторую часть расследования :).

Ответить
Развернуть ветку
Vasiliy Gorin
.env вполне может содержать данные разработчика или неизвестного тестового сервера.

Увы, на скриншоте, который выложил автор статьи, видно, что URL в этом .env вполне боевые. Адреса сервисов налоговой в публичном домене nalog.ru. А переменные указывающие на среду установлены следующим образом: APP_ENV=prod, APP_DEBUG=false

¯\_(ツ)_/¯

Ответить
Развернуть ветку
Вася Пражкин

Вопрос не про URL, а про credentials. Вы проверили, что они от боевых серверов ФНС?

Ответить
Развернуть ветку
Vasiliy Gorin

Началась демагогия. Не понимаю, зачем вы защищаете ФНС в её очевидном факапе и всех фактах, указывающих на связь этого репозитория с продакшеном.

Credentials не были обнародованы по очевидным причинам.

Преуменьшение факапа ФНС также критически опасно для всех нас - людей, чьи крайне чувствительные данные ФНС хранит и обрабатывает. Не надо так.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Вася Пражкин

Я не защищаю ФНС, мне вообще до них фиолетово. Но подобные .env файлы довольно часто коммитятся практически во всех компаниях и вреда никакого не несут, если credentials от внутренних серверов. После обнародования credentials поменяют и проблема решена.

Но даже если мой или Ваш чек кто-то посмотрит - в чем проблема-то?

Ответить
Развернуть ветку
John Doe
 подобные .env файлы довольно часто коммитятся практически во всех компаниях и вреда никакого не несут

нет, не коммитятся.  .env файлы и существуют для того, что бы держать приватные данные  по серверу отдельно от репо. И должны быть сразу в gitignore. Так что не нужно заниматся тут демогогией. 
Я вам больше скажу - там явно github им не раз и не два говорил о том, что у них приватные данные в репо (они постоянно делают автоматические сканы). Но похоже разработчики еще те раздолбаи. 

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

".env файлы и существуют для того, что бы держать приватные данные по серверу отдельно от репо"
плюсплюс. очевидные вещи очевидны.

Ответить
Развернуть ветку
Алекс Вебдизайнов

Дайте мне эту БД и я буду предсказателем ваших желаний. Это гораздо круче, чем пичкать вас куками, видеть гео и поисковые запросы.

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