Как я нашел в публичном доступе исходники нескольких сервисов ФНС
Возьмём приложение «Проверка чека» и разберемся что оно делает и зачем ваще кому-то понадобилось проверять чеки с помощью приложения.
Суть приложения «Проверка чеков»Я не помню как это работало раньше, но с 2016-2017 годов, благодаря 54-ФЗ «О применении ККТ» появились некие ОФД с целью «...осуществления операций по приёму, обработке, хранению и передаче фискальных данных в ФНС», а всех кого только можно обязали использовать кассовое оборудование, генерирующее те самые фискальные данные и что немаловажно, обязали эти данные посредством ОФД передавать в ФНС.
Если у вас тоже немного припекает от всех этих аббревиатур, то вот вам терминальная стадия аббревиатуринга в лице названия организации которая отвечает за приложение «Проверка чека» — ФГУП ГНИИВЦ ФНС РФ.
К этому моменту — мы еще вернёмся, кстати.
Страница приложения «Проверка чеков» в App StoreПрикладной смысл вышеописанного очень лёгко понять на примере сервиса заказа еды.
После заказа вы получаете на почту электронный чек, это и есть те самые фискальные данные. Отправляет их в ваш адрес, однако, не сервис заказа еды, а именно ОФД, которое используется сервисом, в данном случае — Яндекс
Любой подобный чек всегда содержит несколько обязательных идентификаторов в натуральном виде и в виде QR-кода, который можно отсканировать с помощью исследуемого нами приложения «Проверка чека».
В итоге, в приложении «Проверка чека», появляется электронная копия данного чека и тут я хочу обратить ваше внимание на атрибутивный состав кортежа с данными, а именно, на полный и детальный список чего и когда и за сколько денег моя персона приобрела, это — важно.
Но всё бы ничего, если бы не один недавний апдейт данного поделия, который и привёл меня в ужас. До недавних пор приложение оперировало лишь теми данными которые ты сам соизволил туда засунуть путём сканирования QR-кодов и не представляло, ни особого интереса, ни особой угрозы личной безопасности.
Всё изменилось две недели назад после обновления 2.15.0 в рамках которого был выкачен функционал «отображение чеков из сервиса Мои Чеки Онлайн».
История версий приложения «Проверка чека»Обновление 2.15.0Если пройти аутентификацию в приложении «Проверка чека» указав номер телефона, который вы так же используете в популярных сервисах, например, в Яндекс.Еде, Яндекс.Такси, Самокате, Ситимобиле и других, то в разделе «Мои чеки» автомагически будут отображены все ваши чеки по всем операциям в этих сервисах за «всё время».
В моём случае, это порядка 400 чеков, каждый из которых содержит детальный набор «сколько, за что, когда и куда».
Мне сразу же стало интересно насколько хорошо подобный массив данных защищен и может ли предполагаемый злоумышленник получить несанкционированный доступ к нему.
Для исследования я поставил в разрыв между интернетом и приложением «Проверка чека» простой прокси и записывая сетевую активность приложения потыкал в кнопки.
Довольно быстро выяснилось, что эндпойнт с данными находится по адресу irkkt-mobile.nalog.ru:8888 на котором живёт простейшее приложение на NodeJS с применением фреймворка Express, а механизм аутентификации пользователя пускает тебя к данным, если ты верно указал заголовок «sessionId» значение которого представляет из себя какой-то самопальный токен генерирующийся на стороне сервера.
При этом, если нажать кнопку «Выйти» в приложении «Проверка чека», то как оказалось, инвалидации данного токена не происходит. Так же нет функционала просмотра всех своих сесссий и нет кнопки «Выйти на всех устройствах».
Таким образом даже если вы каким-то образом поняли что токен доступа был скомпрометирован, то нет никакой возможности его сбросить и тем самым гарантировать с этого момента отсутствие у предполагаемого злоумышленника доступа к вашим данным.
Крайне безответственно, но не фатально.
SentryВ процессе просмотра «улова» на промежуточном прокси я обратил внимание, что в случае крэша приложения оно отправляет диагностические данные в Sentry располагающийся по адресу не связанному, ни с ФНС, ни с ФГУП ГНИИВЦ ФНС РФ, а на домен зарегистрированный на физическое лицо — sentry.studiotg.ru.
Страница входа в Sentry команды Studio TGРядом сразу же был обнаружен gitlab.studiotg.ru.
Страница входа в GitLab команды Studio TGДальнейшее исследование эндпойнта привело к ссылками на публичные репозитории в этом Гитлабе находящиеся в индексе Гугла уже более года.
Содержимое публичных репозиториевзаставило меня биться в истерике.
Публично доступный репозиторий ansible_conf/install_geo Содержимое архивов из репозитория ansible_conf/install_geoПояснение к скриншоту выше: папки содержащие подстроки «lkio», «lkip», «lkul» напрямую относятся к одноименным сервисам ФНС на домене nalog.ru.
Содержимое папки lkip-web-login, это — исходный код сервиса lkip2.nalog.ruДля сверки, что обнаруженные исходники действительно относятся к сервисам ФНС, проведена простая проверка наличия на боевом веб-сервере файла uppod-styles.txt, который не мог там оказаться по случайному совпадению.
uppod-styles.txt на сайте lkip2.nalog.ru Содержимое файла .env судя по всему прямиком с боевых серверов В итогеФактический разработчик мобильного приложения «Проверка чека» некая studiotg.ru.
Вероятно есть нарушение соглашений об обработке персональных данных в силу передачи диагностических сведений со стороны ФГУП ГНИИВЦ ФНС РФ в адрес третьих лиц.
Данные ребята так же причастны к разработке сервисов lkip.nalog.ru, lkul.nalog.ru и lkio.nalog.ru.
По их вине исходный код данных сервисов находится в публичном доступе уже около года.
Исходя из общей картины, предположу, что данные о ваших покупках попадающие в ОФД путём информационного обмена фискальными данными с ФНС, на текущий момент, находятся под угрозой утечки.
Как-то так.Подробнее
ФЕДЕРАЛЬНАЯ НАЛОГОВАЯ СЛУЖБА Хранение чеков в одном месте Мои чеки — § М ООО "Максидом' В 232,60 Р 29.06 2020 Пол>**м ЖО Аптека ИП Жукова О.Н. О 518,50 Р 3006 2020 С жалобой М ООО "МВМ" О 2 990 Р 0607.2020 С жалобой <Ф ООО <ОБИ ФЦ> О 961,40 Р 09072020 С жалобой ДИ ООО "ДОМАШНИЙ ИНТЕРЬЕР" В 1 577 Р 1706 2020 <■.1 • А Ф т
Проверка чеков ФНС России («3 ФГУП ГНИВЦ ФНС России Покупки: № 143 в этой категории ★ ★ ★ ★ ★ 4,8 • Оценок: 608 Бесплатно
Яндекс ОФД кассовый чек / приход 19.03.2021 23:28 Общество с ограниченной ответственностью "ЯНДЕКС.ЕДА" https://eda.yandex.ru 127410, Москва г, Алтуфьевское ш 9, дом № ЗЗГ ИНН 9705114405 Налогообложение ОСН № Наименование Сумма 1. Сэндвич Сабвэй Мелт 354.00Р х 2 = 708.00Р Сумма с НДС 0% ИНН поставщика 7723648678 Товар / Полный расчет 2. Сэндвич Итальянский Бмт 335.00Р х 1 = 335.00Р Сумма с НДС 0% ИНН поставщика 7723648678 Товар / Полный расчет 3. Сэндвич Острый Итальянский 335.00Р х 1 = 335.00Р Сумма с НДС 0% ИНН поставщика 7723648678 Товар / Полный расчет Итого Сумма с НДС 0% 1378.00Р 1378.00Р
18Ю5 .11 К> уЗ ПРОВЕРКА ЧЕКА сейчас ФНС. Проверка чека Чек на сумму 1378.00 р. получен Торговая точка ООО "ЯНДЕКС.ЕДА" Дата и время покупки 19.03.2021 23:28 1. Сэндвич Сабвэй Мелт 354,00 9 2 шт 708,00 Р 2. Сэндвич Итальянский Бмт 335,00 9 1 шт 335,00 Р 3. Сэндвич Острый Итальянский 335,00 9 1 шт 335,00 Р ИТОГО: 1 378,00 Р Электронные средства 1 378,00 Р НДС со ставкой 0% 1 378,00 Р 127410, Москва г, Алтуфьевское ш, Адрес магазина ... _ ' дом № ЗЗГ ИНН организации 9705114405 Кассовый чек 1604 Признак расчета Приход Смена № 45 Вид налогообложения осн Рег. номеру ФН № ^ 17043620 ДЕЙСТВИЯ С ЧЕКОМ /ч 0343759 II Лента Мои чеки К Сканер Сообщения Профиль
ФЕДЕРАЛЬНАЯ НАЛОГОВАЯ СЛУЖБА Авторизация любым удобным способом Добро пожаловать! Авторизуйтесь, чтобы продолжить Номер телефона Личный кабинет налогоплательщика Портал Госуслуг
18Ю6 ,.|| ДО Мои чеки ” § Я ООО "ЯНДЕКС.ТАКСИ" Сумма Дата Статус 1 378 Р 22.02.2021 Получен Я ООО "ЯНДЕКС.ЕДА" Сумма Дата Статус 1 378 Р 19.03.2021 Получен УР ООО "УМНЫЙ РИТЕЙЛ" Сумма Дата Статус 1 161 Р 23.02.2021 Получен УР ООО "УМНЫЙ РИТЕЙЛ" Сумма Дата Статус 1153 Р 11.01.2021 Получен Я ООО "ЯНДЕКС.ТАКСИ" Сумма Дата Статус 1 118 Р 01.06.2020 По^^^. •ч. — г 1 А • II Е Л ? * Лента Мои чеки Сканер Сообщения Профиль
Studio TG Sign in with your Gitlab account to continue. Login with Gitlab
V GitLab A complete DevOps platform GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security. This is a self-managed instance of GitLab. Remember me
Google site:gitlab.studiotg.ru X Q. Q Все (3 Картинки (Ц) Новости <•) Покупки ф Карты ; Ещё Настройки Инструменты Результатов: примерно 1180 (0,35 сек.) Ссыпки Google Попробуйте Google Search Console www.google.com/webmasters/ Вы являетесь владельцем gitlab.studlotg.ru? Получите данные индексирования и рейтинг от Google. https://gitlab.studiotg.ru ▼ Перевести эту страницу Sign in • GitLab A complete DevOps platform. GitLab is a single application for the entire software development lifecycle. From project planning and source code management to ... https://gitlab.studiotg.ru > tree ▼ Перевести эту страницу install_geo/soft... - GitLab - Directory: / 8 июл. 2019 r. — Name, Last commit, Last update .. LK3LK3.000 • config, 1 year ago .gitignore • config, 1 year ago. CROSS.cer • config, 1 year ago. Trusted.zip ... https://gitlab.studiotg.ru >... > Ansible_conf ▼ install_geo • master • Станислав Маркин / Ansible_conf • GitLab install web server GOST for LK3. https://gitlab.studiotg.ru > DevOps > Merge Requests ▼ Merge Requests • DevOps • GitLab 26 февр. 2021 г. — Шаблоны и докер образы для CI. https://gitlab.studiotg.ru > blob ▼ Перевести эту страницу install_geo/install_geo.yml... - GitLab - Directory: / 8 июл. 2019 г. — name: install_soft hosts: web1 become: yes gather_facts: False tasks: - name: pings ping: - name: Disable SELinux selinux: state: disabled ... https://gitlab.studiotg.ru > DevOps > Issues ▼ Issues • DevOps • GitLab Select project to create issue. Search for project. Recent searches. You don’t have any recent searches. Author; Assignee; Milestone; Label; Confidential
-» G Л 0 A https://gitlab.studiotg.rU/smarkin/ansible_conf/-/tree/master/install_geo St* GitLab Projects Groups Snippets Help A Ansible_conf Hr Project overview 0 Repository Files Commits Branches Tags Contributors Graph Compare D Issues o I4! Merge Requests 0 Cl /CD <$> Operations 0 Packages & Registries Li! Analytics □ Wiki & Snippets & Members Станислав Маркин > Ansible_conf > Repository master v ansible_conf / install_geo Stanislav authored 1 year ago Name Ь soft 0 ansible.cfg Э hosts.txt {•••} install_crypto.yml instalLgeo.yml {•••} install_soft.yml Last commit config config config config config « Collapse sidebar Search or jump to. v Sign in History Find file 284188Ы ft Last update 1 year ago 1 year ago 1 year ago 1 year ago 1 year ago 1 year ago
■ instalLgeo ft ansible.cfg ft hosts.txt ft install_crypto.retry ft install_crypto.yml ft install_geo.retry ft install_geo.yml ft instalLsoft.retry ft ¡nstall_soft.yml v ■ soft ED .gitignore > ■ config ft config.zip D CROSS.cer ft httpd.conf S license B Iinux-amd64.tgz > ■ LK3LK3.000 > ■ Ikio-cabinet ft lkio-cabinet.zip > ■ Ikio-service ft lkio-service.zip > ■ Ikip-web-certificate ft lkip-web-certificate.zip > H Ikip-web-login ft lkip-web-login.zip > ■ Ikul-check-portal ft lkul-check-portal.zip > ■ Ikul-log-portal ft lkul-log-portal.zip > ■ Ikul-portal ft lkul-portal.zip D Ikul.cer ft my.repo > ft opt ft Trusted.zip ft README.md 11 марта 2021 г., 15:50 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 11 марта 2021 г., 15:56 8 июля 2019 г., 11:09 11 марта 2021 г., 15:50 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 11 марта 2021 г., 15:52 8 июля 2019 г., 11:09 11 марта 2021 г., 15:52 8 июля 2019 г., 11:09 11 марта 2021 г., 15:54 8 июля 2019 г., 11:09 Сегодня, 20:20 8 июля 2019 г., 11:09 11 марта 2021 г., 15:54 8 июля 2019 г., 11:09 11 марта 2021 г., 15:55 8 июля 2019 г., 11:09 11 марта 2021 г., 15:56 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 11 марта 2021 г., 15:56 8 июля 2019 г., 11:09 8 июля 2019 г., 11:09 — Папка 20 КБ Документ 37 Б Простой текст 5 Б Документ 3 КБ YAML Document 5 Б Документ 1 КБ YAML Document 5 Б Документ 3 КБ YAML Document — Папка 20 Б Испол„.йл Unix — Папка 3 КБ Zip-архив 5,9 МБ сертификат 12 КБ Surge Profile 43 Б Испол...йл Unix 15,1 МБ gzip tar archive — Папка — Папка 21,9 МБ Zip-архив — Папка 21,1 МБ Zip-архив — Папка 71,8 МБ Zip-архив — Папка 71,8 МБ Zip-архив — Папка 32,6 МБ Zip-архив — Папка 39,8 МБ Zip-архив — Папка 40,5 МБ Zip-архив 2 КБ сертификат 75 Б Документ — Папка 65,4 МБ Zip-архив 13 Б Markdo...ument
Имя ^ Дата изменения Размер Тип to env ■ app to .htaccess > ■ config > ■ fake > ■ migrations > ■ resources > ■ soap > ■ storage > ■ template > ■ xsd to console.php to install to portal-install ■ src > ■ Api to ApplicationVersions.php > ■ Console > ■ Events > ■ Library >■ Web ■ vendor to VERSION ■ web to -htaccess to app.php to app190144.js B app190144.js.gz to appJsAII190144.js B appJsAII190144.js.gz > ■ css > ■ docs E3 favicon.ico to framework.js B framework.js.gz > ■ images e index.html > ■ js > ■ resources to robots.txt to uppod-styles.txt I uppod.swf 11 июня 2019 г., 13:21 2 КБ О 0 uppod-styles.txt Й Открыть в приложении «TextEdit» 01ARzbSYJcCZYTljlillCQVbYvlXeSua8tjklmzC5Gkev0kNtjlvLB2NXzC45kN3Qy3Q3Q3yzkOklAmwXRWHNvz31kXlCa42Hjlll9k0nTWdwjG3NtXzB GDDY31X=djOkedSQVhdwaf9vwj9zC5kl9sQ3Q2hGkTCGsJ6dwLAFdwbTDCwXpvBQXe3wyVT30hazdwnQdB56I29GXR3GGXbdwhdRpQo6ZdGXe3RwVTd5s LFdwbeRpQo6DdGXXWZNhzd5fLFdwbNzkOkaHBwnzBhGDRWNEkbkl3HQ3Q3Qa3QktjQlfRdwBnY3w6dp30jYSvlXAx5YctjlTtzC5kN42Qi6S3Gktj41oz fUrG Документ Папка Документ Папка Папка Папка Папка Папка Папка Папка Папка РНР Script Документ Документ Папка Папка РНР Script Папка Папка Папка Папка Папка Документ Папка Документ РНР Script JavaScript GZip-архив JavaScript GZip-архив Папка Папка M3o6pa...indows JavaScript GZip-архив Папка Текст HTML Папка Папка Простой текст Простой текст SWF File
¡(SJ https://lkip2.nalog.ru/uppod-i X + <- -> C i Ik¡p2.nalog.ru/uppod-styles.txt 01ARzbSYJcCZYTljlillCQVbYvlXeSua8tjklmzC5Gkev0kNtjlvLB2NXzC45kN3Qy3Q3Q3yzkOklAmwXRWHNvz31kXlCa42Hjlll9k0nTWdwjG3NtXzBGDDY31X-fLFdwbNzkOkaHBwnzBhGDRWNEkbk!3HQ3Q3Qa3QktjQlfRdwBnY3w6dp30jYSvlXAxSYctj!TtzC5kN42Qi6S3Gktj4lozfürG djOkedSQVhdwaf9vwj9zC5kl9sQ3Q2hGkTCGsJ6dwLAFdwbTDCwXpvBQXe3wyVT30hazdwnQdB56I29GXR3GGXbdwhdRpQo6ZdGXe3RwVTd5sLFdwbeRpQo6DdGXXWZNhzd5
Имя Дата изменения Размер Тип В env 11 июня 2019 г., 13:21 2 КБ Документ B .htaccess > ■ config > ■ fake > H migrations > ■ resources > B soap > ■ storage > B template > B xsd i console.php B install B portal-install v B src > B Api B ApplicationVersions.php > B Console > B Events > B Library > B Web > B vendor B VERSION v B web B -htaccess B app.php B app190144.js B app190144.js.gz B appJsAII190144.js B appJsAII190144.js.gz > B css > B docs E3 favicon.ico B framework.js B framework.js.gz > B images index.html > B js > B resources B robots.txt B uppod-styles.txt B uppod.swf О 0 .env Û Открыть в приложении «TextEdit» APP_ENV=prod APP_DEBUG=false G0ST_URL=https://Ikipgost.nalog.ru/lk RSA_URL=https://lkip.nalog. ru LK2_LINK=https://lkfl.nalog.ru/lk/index.html?lkip=:token MARKIR0VKA_H0ST=http://markirovka.nalog.ru/lk3 SMP_HOST=https://rmsp.nalog.ru/sign-in.html # параметры поаключения lk3 nsi DB_HOST_NSI= DB_DATABASE_NSI= DB_USERNAME_NSI= DB_PASSWORD_NSI= # параметры подключения lk3_log DB_HOST_LOG= DB_DATABASE_LOG=l DB_USERNAME_LOG=< DB_PASSW0RD_L0G=< # хост и порт очереди MSMQ_H0ST= MSMQ_P0RT= # параметры smtp сервера MAIL_DRIVER=smtp MAIL_HOST=n5001-mail MAIL_P0RT=25 MAIL_FROM_EMAIL=no_reply@fcod.nalog.ru MAIL_FROM_NAME="«HC России" # включено ли отображение баннера TECH_BANNER_ENABLED=false # текст сообщения TECH_BANNER_TEXT="<div class=\"message__Ыоск-Ьеабег\">Уважаемый пользователь!</div> В связи с проведением технологических работ возможна нестабильная работа сервиса. Федеральная налоговая служба приносит извинения за доставленные неудобства." # true, если показывать баннер только для пользователей со статусом конвертации 2; false - для всех TECH_BANNER_0NLY_F0R_STATUS2=true # как обрабатывать статус конвертации -1 MINUS_0NE_C0NV_STATUS=2 PDF_DISABLE_SMART_SHRINKING=false LK3_EMAIL=lk3_eг го r@s tu dio-1 g.ru SUPPORT_MAIL=vekker@studio-tg.ru STATISTICS=t rue Папка Документ Папка Папка Папка Папка Папка Папка Папка Папка РНР Script Документ Документ Папка Папка РНР Script Папка Папка Папка Папка Папка Документ Папка Документ РНР Script JavaScript GZip-архив JavaScript GZip-архив Папка Папка H3o6pa...indows JavaScript GZip-архив Папка Текст HTML Папка Папка Простой текст Простой текст SWF File
информационная небезопасность,дыра,уязвимость,новости,habrahabr,длинопост,информационная безопасность,it,мопед не мой,habr,Российская федерация,страны,копипаста
«олег за всё берётся смело
всё превращается в говно
а если за говно берётся
то просто тратит меньше сил»
— Стишки-пирошки
всё превращается в макет
а если за макет берется
то нет
Однако должен вам заметить, что:
1) IT-шник с его навыками может позволить себе такие чеки где угодно. Особенно если живёт один.
2) "Самокат" работает в 8 городах России.
3) Совпадение до рубля суммы чека на бутерброды и на такси заставляет сомневаться в их правдивости.
4) Не знаю как сейчас, а до пандемии меньше чем за тыщу мне в подмосковье ни какая доставка бы ничего и не повезла.
Если ты платишь больше чем зарабатываешь, то на тебя есть дело.
Так как все чеки сохранены.
Сначала сократят объем бумажных денег, потом начнут отслеживать диспропорцию расходов.
Создают списки подозреваемых в обнале, типа бюро кредитных историй.
Задумайтесь ребята которые не интересуются политикой, скоро уклоняться от налогов не получится, товарищ рогозин, патриарх кирилл, и прочие милые люди очень хотят наши деньги)
товарисч майор найти не сможет если захочет палок нарубить подбросив в номер пакет с травой?
людям что, деньги не нужны? или лишние деньги как то навредят людям?
или зарабатывать бабло должен только работодатель, а работники должны страдать и экономить каждую копейку?
что плохого в том что у людей будет чуть больше денег чем рассчитал работодатель?
Не знаю, о каких поборах идет речь, но когда тебе завернут авансовый отчет из-за того, что в Нижних Корчах админ хостела выдал тебе липовый чек за проживание тысяч на 15, можно будет порассуждать о них и о тяжелой доле ипшника и конкретного администратора, который работает за маленькую зарплату и "вынужден" брать наличку и селить не оформляя или оформляя по поддельным документам.
Вот только расходы из твоего личного кармана не возместят.