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

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

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

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

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

Ответить
Развернуть ветку
34 комментария
Yan

Я думаю Антон страхуется. Ну сказать что там он увидел возможность доступа к внутренним сервисам, то это сразу большие юридические риски для него.

Вообще ситуация с отправками пускай даже крашлитикса коммерческой компании не корректно. 

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

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

Ответить
Развернуть ветку
4 комментария
eyyujg fyhfdg

по исходникам можно найти проблемы в безопасности

Ответить
Развернуть ветку
16 комментариев
Alexander Matveev

Имея исходные коды проще найти уязвимости и вытащить эти самые данные

Ответить
Развернуть ветку
Andrei Kirillov

)))))

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

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

Ответить
Развернуть ветку
Евгений Трифонов

Ну, если бы это было официально и с bug bounty, можно было бы только порадоваться, согласен.

Но если исходники торчат в интернет по какой-то случайности, так что разработчики могут этого не осознавать (и, например, в комментариях писать любую внутреннюю информацию) — ну такое.

Ответить
Развернуть ветку
Victor Raine

Да, что же вы все палите.

Нормальные же были репозитарии, использовали бы и использовали недокументированные возможности, сейчас опять ждать годами пока Налоговая напишет документацию по своему АПИ.

Ответить
Развернуть ветку
Виктория Усмаркина

Вообще ничего удивительного, хабра что-то нашел. Вы на этом форуме были? там же большая часть пользователей говорят на непонятном языке))))ахаа)

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

С регистрацией! Отличный второй комментарий!

Ответить
Развернуть ветку
12 комментариев
Gre Li

Ну, как бы это хорошая практика, когда ПО, создаваемое на деньги налогоплательщиков — открытое. Собственно, лицензия BSD именно так и появилась.

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

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

Ответить
Развернуть ветку
Igor Filippov

А коммерческие компании не теряют данные? 

Ответить
Развернуть ветку
8 комментариев
Evgeniy

Судя по тому, что они даже свой сайт сверстать нормально не могут, смею предположить, что багов в исходниках хоть отбавляй. И анализ их может привести к печальным последствиям. 

Ответить
Развернуть ветку
Oleg Voskoboev

Сайт есть? Есть.
Цели добились. Результатом, прости господи, гордятся...

Ответить
Развернуть ветку
Канищев Максим

Не удивлюсь если все данные налоговой  снифуются и отсылаются сразу в США.

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

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

Ответить
Развернуть ветку
3 комментария
Ilnur Adylov

У нас на работе бухгалтерá говорят:
«вот я сидела до 4 утра, чтобы отправить отчёт в налоговую, а то у них сайт нагружен днём»
и для них это нормально:)

Ответить
Развернуть ветку
Вася Пражкин
 вот я сидела до 4 утра, чтобы отправить отчёт в налоговую

Меня терзают смутные сомненья..

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

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

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

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

Ответить
Развернуть ветку
Alexander Matveev

Человек имел в виду то, что сделал man in the middle для реверс-инжиниринга, это к перехвату данных других пользователей относится только косвенно

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

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

Ответить
Развернуть ветку
4 комментария
Sergei Timofeyev

Могу сказать, что это показатель серьёзности компания-разработчика, которая держит свой код на сторонних сервисах и ещё в открытом виде. У нас был период, когда в Gitlab некоторым ведущим программистам дали админский доступ. Хапнуть не хапнули, но вот лещей пришлось раздавать. Они создавали Public репозитории, куда сливали свой код.

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

Иногда стоит прочитать статью оригинал, а не пересказ редакции ЦП. У них self-hosted версия гитлаба. На своем же домене. И Sentry тоже свой. О каких "ведущих программистах" и "сторонних сервисах" ведём разговор?

https://gitlab.studiotg.ru/

Ответить
Развернуть ветку
1 комментарий
Чайка О.

На днях после оплаты одной из услуг ЖКХ решила вернуться назад (внести показания счетчика). Но в этот раз вместо возврата на предыдущую страницу мне показали программный код. 

Ответить
Развернуть ветку
Constantine Geist

Обычно так бывает, когда разработчики отлаживают сайт - ошибки выполнения сразу выдаются на странице, что может быть удобно. Но считается хорошим тоном в финальной версии сайта такое отключать, чтобы лишний раз не светить внутрянкой. Звучит тоже как халатность/некомпетентность/пофигизм.

Ответить
Развернуть ветку
3 комментария
Борис Моренко

Ужас. Кто-то забыл отладочный режим выключить на эксепшене. Ждём статью на Хабре)

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

Это такая вариация эксгибиционизма )

Ответить
Развернуть ветку
Denis Kiselev

Если говорить о коде, который пишется за Государственное финансирование - я бы ОБЯЗАЛ передавать его в open source и публиковал бы его в обязательном порядке на GitHub (или «отечественном аналоге», если такое сделают).

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

Безопасности через закрытость не бывает.

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

Найти дырку у налоговой, все равно что в Африке без контрацептива экспериментировать ....

Ответить
Развернуть ветку
Щукин Сергей

За это у нас в стране убивают?/из-за этого у нас в стране умирают люди?

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

Ну, справедливости ради, у ФНС более-менее неплохо все в плане доступности и работоспособности сервисов (сужу как физлицо). Есть с чем сравнивать, увы.

Ответить
Развернуть ветку
Vitaliy Sitnikov

-

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

The дырявое IT России. ничего нового

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

Антону, видимо, пора быть повнимательнее. Судя по описанию он провёл полноценный пин-тест, и обнаружение проблемы было не случайным, что по сути можно законодательно прировнять к хакерской атаке.

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

Недооцененный коммент. Такое вполне может иметь место быть, к сожалению.

Ответить
Развернуть ветку
Gabby BenDer

😂

Ответить
Развернуть ветку
Игорь Соколовский

Вот именно, что под возможной угрозой утечки, а не под угрозой возможной утечки)

Ответить
Развернуть ветку
Антон Пискунов

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

Теперь, норм?

Ответить
Развернуть ветку
1 комментарий
El'murza Alchakov

Никогда такого не было и вот опять

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

Такие статьи с разоблачениями публикуются только после того, как их уберут из общего доступа и пофиксят критические баги. Иначе может такая ответочка прилететь, сто мало не покажется. 

Ответить
Развернуть ветку
Антон Пискунов

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

Ответить
Развернуть ветку
1 комментарий
Сергей Икрин

Похоже, что у Студии ТГ будут проблемы

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

На этом можно было закончить, по сути. Трафик должен шифроваться прибитыми к приложению сертификатами, чтобы MTM не получилось использовать.

Ответить
Развернуть ветку
Илья Зернин

Добавляешь в доверенные корневые центры сертификации свой центр сертификации и получаешь возможность переподписывать данные, весь зашифрованный трафик будет виден.

Ответить
Развернуть ветку
10 комментариев
Антон Пискунов

Статью не читай — комментарий пиши 👌

Ответить
Развернуть ветку
2 комментария
Денис Кравцов

Как-то поленились разрабы

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

Интересно узнать какая сумма контракта была у этих ребят. Судя по rusprofile у них с ФНС около 50 мультов контракты. 

Ответить
Развернуть ветку
Борис Садовский

Решетоооо....

Ответить
Развернуть ветку
Michael Wylsakom

настоящий классик

Ответить
Развернуть ветку
Илья Владимиров

Это п**дец

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