Благими намерениями
Во множестве организаций существует такая фича социальной поддержки и удержания сотрудников, как корпоративные предоплаченные карты питания, или «foodcard», как их еще называют. Раз в квартал бухгалтерия перечисляет на них относительно небольшие суммы, которых хватает на кофе, аспирин и барбариски.
Финансовым посредником выступает одна из расчетных некоммерческих организаций (НКО) в нашей стране. Работодателю это выгодно: схема дешевле, избавляет от проблем и снижает налогообложение, а НКО получает свой законный мелкий гешефт.
Все счастливы. Все в безопасности. Все так думают.

Чтобы проверить баланс карты, её владелец должен открыть сайт-лендинг на специальном поддомене, ввести номер с обратной стороны пластика, и вуаля - система выдает данные о балансе, статусе SMS-уведомлений.. и полную историю операций.
Проявив немного здорового (или не очень) любопытства, можно выяснить, что все эти чувствительные данные отдаются в результате одного простого запроса
GET /api/v1/foodcard/3001234567894?limit=100
Ни пароля. Ни токена. Ни даже вялого намёка на двухфакторную защиту. Бесплатно, и без смс. Просто возьми и посмотри. Как если бы банк выдавал выписку по счёту любому, кто правильно назовёт номер твоего почтового ящика.
{
"status": "OK",
"data": {
"phone": "+7 (999) - *** - ** -99",
"balance": {
"availableAmount": 41.96
},
"history": [
{
"time": "2026-06-24T19:39:52.000+03:00",
"amount": -659.37,
"locationName": [
"KRASNOE&BELOE"
],
"trnType": 774,
"mcc": "5499",
"currency": "RUR",
"merchantId": "781000402060 ",
"reversal": false,
"posRechargeReceipt": null,
"smsInfoReceipt": null,
"credit": false,
"locationCity": "Samara"
}
],
"smsInfoStatus": "OFF",
"smsNotificationAvailable": false,
"cardType": "food"
}
}Для демонстрации истории я оставил только одну операцию, но, надеюсь, этого достаточно, чтобы оценить масштаб проблемы.
От удобства к криповой реальности
Если предположить, что бэкенд сервиса выделяет пул номеров формата EAN-13 под конкретную организацию, то эти номера можно обнаружить простым перебором (брутфорсом). А это означает, что данные о времени, месте и сумме покупки превращаются в готовые поведенческие паттерны.

Для «человека с улицы» это просто набор цифр. Но для инсайдера ситуация выглядит иначе. Доступ к корпоративному справочнику в кампании имеет практически каждый. Такой человек может смержить эти записи за считанные минуты, и как он этим воспользуется большой вопрос.
Я это другое дело!
Признаюсь, я оценил всю глубину проблемы не сразу. Единственная мысль, которая пришла мне в голову в момент открытия: «Публичный API? Здорово! Ведь я могу навайбкодить Android-приложение для себя и коллег, ведь проверять баланс через сайт так неудобно!». Чем я и занимался с энтузиазмом на протяжении нескольких недель, пока не потерял к нему интерес.
Эпилог
Нам часто кажется, что в эпоху тотальной прозрачности данных мы настолько незначительны, что напоминаем «неуловимого Джо». Однако главная опасность кроется в социальной инженерии. Имея на руках время, место и сумму свежих транзакций, злоумышленник получает идеальный плацдарм для сталкинга.. или фишинга. Звонок якобы из «службы безопасности» с упоминанием вчерашней покупки в конкретном магазине звучит уже не как догадка, а как неоспоримый факт. Эта пугающая осведомленность мгновенно ломает психологическую защиту, заставляя испуганную жертву поверить звонящему и добровольно слить доступ к своим финансам или корпоративным системам.




















